{"version":3,"file":"static/js/main.277e7e96.js","mappings":"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,EAAK,IAAID,MAAM,IACfsC,EAAU,GACVo9B,EAAU,EACV38B,EAAU,EAEVlD,EAAM,IAAIG,MAAM,IAChBqC,EAAM,IAAIrC,MAAM,IAChBiE,EAAM,IAAIjE,MAAM,IAChBwuD,EAAM,IAAIxuD,MAAM,KAChBg4B,EAAgB,IAAIh4B,MAAM,MAG1B2S,EAAS,CACX,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGE3O,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEkrD,EAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7D3sD,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEnB,EAA0B,CAC5B,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAGEssD,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEqB,EAA4B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC/Dl8C,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEo8C,EAA4B,CAC9B,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IA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uK,KAAA,QAGhBzL,EAAU,GACPA,EAAU,GAAoB,GAAfrC,EAAGqC,IACvBA,IAAA,GAGa,GAAXA,EAAA,OACF8sD,EAAU9I,GACH3pC,EAAA,QAGL+iB,EADA38B,EAAI,EAEDA,GAAKT,GAAS,SACfzC,EAAWkD,EACC,GAAT9C,EAAG8C,IAAWA,GAAKT,KACtBS,EAAA,IAEAV,EAAWU,EAAIlD,EAAA,GACfwC,GApCI,GAoCa,CACnBq9B,EAAMr9B,GAAY,MACb,IAAI4B,EAAW,EAAGA,GAAYy7B,IAAOz7B,EACxCmrD,EAAUtuD,GACZuB,GAAsB,GAExB0L,EAAM,MAAQ9N,EAAG8C,GACjBqsD,EAAU7vD,GAAM8C,GAAY,GAAKD,EAAS2L,KAC1CqhD,EAAU5rD,EAAQuK,IAClBhL,GAAA,QA5CQ,IA8CNT,GACF8sD,EAAU9I,GAEL3pC,CAAA,UA8HA4xC,EAAW1tD,GAClBA,EAAUuE,KAAKwT,IAAIxT,KAAKC,IAAIxE,EAAS,GAAI,KAErCkN,GAAkBlN,IAAA,SA1qBCA,GAAA,QACnBnB,EAAM,CACR,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IAGOid,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvB5b,EAAIulD,GAAQ5mD,EAAIid,GAAK9b,EAAK,IAAM,KACpCE,EAAIqE,KAAKwT,IAAIxT,KAAKC,IAAItE,EAAG,GAAI,KAC7BD,EAAO6R,EAAOgK,IAAM5b,CAAA,SAElBxB,EAAO,CACT,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GA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,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA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EAAKqlI,2BACZtD,GAAK/hI,EAAKslI,QACVzD,GAAK7hI,EAAKulI,oCACVtD,GAAKjiI,EAAKwlI,SAEVvE,GAAMjhI,EAAKylI,kBAAoB,GACjCxE,GAAGxkI,OAAS,IACXuD,EAAK0lI,eAAiB,IAAIjpI,OAAS,IACnCuD,EAAK2lI,oBAAsB,IAAIlpI,OAAS,IACxCuD,EAAK4lI,iBAAmB,IAAInpI,OAAS,OAClCykI,GACFG,GACAC,GACAG,GACAG,GACAJ,GA+3BA0B,GAIAl8E,GACAs8E,GACAH,GACAC,GACAC,GACAlkC,GACAn2C,GACAu6E,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAIAxD,GACAkB,GACAnB,GACAvqC,GAz5BA8sC,GAAK51H,EAAE,KACP61H,GAAK71H,EAAE,MACP81H,GAAK91H,EAAE,KACP+1H,GAAK/1H,EAAE,KACP21H,GAAK,EACLqB,GAAKnB,GACLhX,GAAKiX,GACLiB,GAAIhB,GACJkB,GAAIrB,GACJ1B,GAAK,EACLX,GAAK,EACLc,GAAK,EACLb,GAAK,EACLJ,GAAK,EACLK,GAAK,EACLgB,GAAK,EACL7B,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,GACLqC,GAAK,CAAC,EAAG,EAAG,GACZD,GAAK,CAAC,EAAG,EAAG,IACZF,GAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAC1BI,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,GAClBH,GAAK,CAAC,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IACpEvB,GAAK,CACH,GACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,KAEFqB,GAAK,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEF7kD,GAAK,EACLxB,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFqB,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFN,GAAK,KACLN,GAAK,CACH,CAAC,IAAK,IAAK,IAAK,GAChB,CAAC,IAAK,IAAK,IAAK,IAAK,GACrB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAC1B,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAE1Df,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,IACxDwB,GAAK,EAAE,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GACnEK,GAAK,CACH,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,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K,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,I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AAMnB,QACtB,IAAKH,IAAgB+mD,GAAgBv4C,EAAWjN,EAAW,KAE5DC,EAA0BmT,EAC1BnG,GAEFhL,EAvZM,EAwZNlC,EAAOmD,EAASnD,EAAMnB,EAAmBid,GACzC5Z,EA1ZM,EA2ZNmR,GAAA,EACArT,EAAOmD,EAASnD,EAAMnB,EAAmBid,GACzCzI,EAAuBnT,IAGvBgC,EAhaM,EAiaNlC,EAAOmD,EAASnD,EAAMnB,EAAmBid,GACzC9b,EAAO2tD,EAAc3tD,EAAMnB,GAC3BqD,EAlaM,EAmaNmR,GAAA,EACArT,EAAOmD,EAASnD,EAAMnB,EAAmBid,GACzCzI,EAAuBnT,EACvBF,EAAO2tD,EAAc3tD,EAAMnB,GAAA,OAxC7BqD,EA/XQ,EAgYRlC,EAAOmD,EAASnD,EAAMnB,EAAmBid,QAdzC5Z,EAAOgL,EAjXC,EADA,EAmXRlN,EAAOmD,EAASnD,EAAMnB,EAAmBid,GAAA,OAuDpC9b,CAAA,OAcJgwI,eAAetlB,WAAa,SAAS1qH,GACpCA,IACFtB,EAAcsB,EAAQqwI,cACtB5qF,EAAezlD,EAAQswI,eACvBpjI,EAAWlN,EAAQuwI,WACnBtwI,EAAYD,EAAQwwI,YACpBn9H,EAAuBrT,EAAQywI,oBAAA,OAI9BT,eAAetlB,WAAW1qH,GACxBL,KAAKqwI,cAAA,MAGVnxI,EA5jFmB,CACrB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,MACA,IACA,MACA,MACA,IACA,MACA,MACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,MACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA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","sources":["../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/html2canvas/node_modules/tslib/tslib.es6.js","../node_modules/html2canvas/node_modules/src/Util.ts","../node_modules/src/css/layout/bounds.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Util.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/utrie/node_modules/src/index.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Trie.ts","../node_modules/html2canvas/node_modules/src/linebreak-trie.ts","../node_modules/html2canvas/node_modules/src/LineBreak.ts","../node_modules/src/css/syntax/tokenizer.ts","../node_modules/src/css/syntax/parser.ts","../node_modules/src/css/types/length.ts","../node_modules/src/css/types/length-percentage.ts","../node_modules/src/css/types/angle.ts","../node_modules/src/css/types/color.ts","../node_modules/src/css/property-descriptors/background-clip.ts","../node_modules/src/css/property-descriptors/background-color.ts","../node_modules/src/css/types/functions/gradient.ts","../node_modules/src/css/types/functions/-prefix-linear-gradient.ts","../node_modules/src/css/types/functions/radial-gradient.ts","../node_modules/src/css/types/functions/-prefix-radial-gradient.ts","../node_modules/src/css/types/image.ts","../node_modules/src/css/property-descriptors/background-size.ts","../node_modules/src/css/types/functions/linear-gradient.ts","../node_modules/src/css/types/functions/-webkit-gradient.ts","../node_modules/src/css/property-descriptors/background-image.ts","../node_modules/src/css/property-descriptors/background-origin.ts","../node_modules/src/css/property-descriptors/background-position.ts","../node_modules/src/css/property-descriptors/background-repeat.ts","../node_modules/src/css/property-descriptors/line-break.ts","../node_modules/src/css/property-descriptors/border-color.ts","../node_modules/src/css/property-descriptors/border-radius.ts","../node_modules/src/css/property-descriptors/border-style.ts","../node_modules/src/css/property-descriptors/border-width.ts","../node_modules/src/css/property-descriptors/color.ts","../node_modules/src/css/property-descriptors/direction.ts","../node_modules/src/css/property-descriptors/display.ts","../node_modules/src/css/property-descriptors/float.ts","../node_modules/src/css/property-descriptors/letter-spacing.ts","../node_modules/src/css/property-descriptors/word-break.ts","../node_modules/src/css/property-descriptors/line-height.ts","../node_modules/src/css/property-descriptors/list-style-image.ts","../node_modules/src/css/property-descriptors/list-style-position.ts","../node_modules/src/css/property-descriptors/list-style-type.ts","../node_modules/src/css/property-descriptors/margin.ts","../node_modules/src/css/property-descriptors/overflow.ts","../node_modules/src/css/property-descriptors/overflow-wrap.ts","../node_modules/src/css/property-descriptors/padding.ts","../node_modules/src/css/property-descriptors/text-align.ts","../node_modules/src/css/property-descriptors/position.ts","../node_modules/src/css/property-descriptors/text-shadow.ts","../node_modules/src/css/property-descriptors/text-transform.ts","../node_modules/src/css/property-descriptors/transform.ts","../node_modules/src/css/property-descriptors/transform-origin.ts","../node_modules/src/css/property-descriptors/visibility.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Util.ts","../node_modules/src/css/property-descriptors/z-index.ts","../node_modules/src/css/types/time.ts","../node_modules/src/css/property-descriptors/opacity.ts","../node_modules/src/css/property-descriptors/text-decoration-color.ts","../node_modules/src/css/property-descriptors/text-decoration-line.ts","../node_modules/src/css/property-descriptors/font-family.ts","../node_modules/src/css/property-descriptors/font-size.ts","../node_modules/src/css/property-descriptors/font-weight.ts","../node_modules/src/css/property-descriptors/font-variant.ts","../node_modules/src/css/property-descriptors/font-style.ts","../node_modules/src/core/bitwise.ts","../node_modules/src/css/property-descriptors/content.ts","../node_modules/src/css/property-descriptors/counter-increment.ts","../node_modules/src/css/property-descriptors/counter-reset.ts","../node_modules/src/css/property-descriptors/duration.ts","../node_modules/src/css/property-descriptors/quotes.ts","../node_modules/src/css/property-descriptors/box-shadow.ts","../node_modules/src/css/property-descriptors/paint-order.ts","../node_modules/src/css/property-descriptors/webkit-text-stroke-color.ts","../node_modules/src/css/property-descriptors/webkit-text-stroke-width.ts","../node_modules/src/css/index.ts","../node_modules/src/core/debugger.ts","../node_modules/src/dom/element-container.ts","../node_modules/html2canvas/node_modules/src/grapheme-break-trie.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/utrie/node_modules/src/index.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Trie.ts","../node_modules/html2canvas/node_modules/src/GraphemeBreak.ts","../node_modules/src/dom/document-cloner.ts","../node_modules/src/core/features.ts","../node_modules/src/css/layout/text.ts","../node_modules/src/dom/text-container.ts","../node_modules/src/dom/replaced-elements/image-element-container.ts","../node_modules/src/dom/replaced-elements/canvas-element-container.ts","../node_modules/src/dom/replaced-elements/svg-element-container.ts","../node_modules/src/dom/elements/li-element-container.ts","../node_modules/src/dom/elements/ol-element-container.ts","../node_modules/src/dom/replaced-elements/input-element-container.ts","../node_modules/src/dom/elements/select-element-container.ts","../node_modules/src/dom/elements/textarea-element-container.ts","../node_modules/src/dom/replaced-elements/iframe-element-container.ts","../node_modules/src/dom/node-parser.ts","../node_modules/src/css/types/functions/counter.ts","../node_modules/src/render/bound-curves.ts","../node_modules/src/core/cache-storage.ts","../node_modules/src/render/vector.ts","../node_modules/src/render/bezier-curve.ts","../node_modules/src/render/effects.ts","../node_modules/src/render/path.ts","../node_modules/src/render/stacking-context.ts","../node_modules/src/render/border.ts","../node_modules/src/render/box-sizing.ts","../node_modules/src/render/background.ts","../node_modules/src/core/util.ts","../node_modules/src/render/font-metrics.ts","../node_modules/src/render/renderer.ts","../node_modules/src/render/canvas/canvas-renderer.ts","../node_modules/src/render/canvas/foreignobject-renderer.ts","../node_modules/src/core/logger.ts","../node_modules/src/core/context.ts","../node_modules/src/index.ts","../node_modules/papaparse/papaparse.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/void-elements/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","lib/theme-switcher.js","../node_modules/fflate/esm/browser.js","../node_modules/jspdf/src/libs/globalObject.js","../node_modules/jspdf/src/libs/console.js","../node_modules/jspdf/src/libs/FileSaver.js","../node_modules/jspdf/src/libs/AtobBtoa.js","../node_modules/jspdf/src/libs/rgbcolor.js","../node_modules/jspdf/src/libs/md5.js","../node_modules/jspdf/src/libs/rc4.js","../node_modules/jspdf/src/libs/pdfsecurity.js","../node_modules/jspdf/src/libs/pdfname.js","../node_modules/jspdf/src/jspdf.js","../node_modules/jspdf/src/modules/acroform.js","../node_modules/jspdf/src/libs/fontFace.js","../node_modules/jspdf/src/modules/addimage.js","../node_modules/jspdf/src/modules/annotations.js","../node_modules/jspdf/src/modules/arabic.js","../node_modules/jspdf/src/modules/autoprint.js","../node_modules/jspdf/src/modules/canvas.js","../node_modules/jspdf/src/modules/cell.js","../node_modules/jspdf/src/modules/javascript.js","../node_modules/jspdf/src/modules/context2d.js","../node_modules/jspdf/src/modules/filters.js","../node_modules/jspdf/src/modules/fileloading.js","../node_modules/jspdf/src/modules/html.js","../node_modules/jspdf/src/modules/outline.js","../node_modules/jspdf/src/modules/jpeg_support.js","../node_modules/jspdf/src/libs/png.js","../node_modules/jspdf/src/modules/split_text_to_size.js","../node_modules/jspdf/src/libs/omggif.js","../node_modules/jspdf/src/libs/JPEGEncoder.js","../node_modules/jspdf/src/libs/BMPDecoder.js","../node_modules/jspdf/src/libs/WebPDecoder.js","../node_modules/jspdf/src/modules/png_support.js","../node_modules/jspdf/src/modules/gif_support.js","../node_modules/jspdf/src/modules/bmp_support.js","../node_modules/jspdf/src/modules/webp_support.js","../node_modules/jspdf/src/modules/rgba_support.js","../node_modules/jspdf/src/modules/setlanguage.js","../node_modules/jspdf/src/modules/standard_fonts_metrics.js","../node_modules/jspdf/src/modules/ttfsupport.js","../node_modules/jspdf/src/modules/svg.js","../node_modules/jspdf/src/modules/total_pages.js","../node_modules/jspdf/src/modules/viewerpreferences.js","../node_modules/jspdf/src/modules/xmp_metadata.js","../node_modules/jspdf/src/modules/utf8.js","../node_modules/jspdf/src/modules/vfs.js","../node_modules/jspdf/src/libs/bidiEngine.js","../node_modules/jspdf/src/libs/ttffont.js","../node_modules/html-parse-stringify/src/parse.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/defaults.js","../node_modules/react-i18next/dist/es/i18nInstance.js","../node_modules/react-i18next/dist/es/initReactI18next.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/react-i18next/dist/es/index.js","../node_modules/deepmerge/dist/es.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/clone.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/toPath.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/lodash-es/cloneDeep.js","../node_modules/formik/src/utils.ts","../node_modules/formik/src/FormikContext.tsx","../node_modules/formik/src/Formik.tsx","../node_modules/formik/src/Form.tsx","../node_modules/formik/src/FieldArray.tsx","../node_modules/formik/src/ErrorMessage.tsx","../node_modules/formik/src/FastField.tsx","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","components/TextInput.tsx","components/Form.tsx","i18n/translations.ts","components/PDFPreview.tsx","components/Arrow.tsx","components/flags.tsx","components/LanguageSelect.tsx","App.tsx","../node_modules/i18next/dist/esm/i18next.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","i18n/i18n.ts","index.tsx"],"sourcesContent":["'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {Context} from '../../core/context';\n\nexport class Bounds {\n constructor(readonly left: number, readonly top: number, readonly width: number, readonly height: number) {}\n\n add(x: number, y: number, w: number, h: number): Bounds {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n }\n\n static fromClientRect(context: Context, clientRect: ClientRect): Bounds {\n return new Bounds(\n clientRect.left + context.windowBounds.left,\n clientRect.top + context.windowBounds.top,\n clientRect.width,\n clientRect.height\n );\n }\n\n static fromDOMRectList(context: Context, domRectList: DOMRectList): Bounds {\n const domRect = Array.from(domRectList).find((rect) => rect.width !== 0);\n return domRect\n ? new Bounds(\n domRect.left + context.windowBounds.left,\n domRect.top + context.windowBounds.top,\n domRect.width,\n domRect.height\n )\n : Bounds.EMPTY;\n }\n\n static EMPTY = new Bounds(0, 0, 0, 0);\n}\n\nexport const parseBounds = (context: Context, node: Element): Bounds => {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n};\n\nexport const parseDocumentSize = (document: Document): Bounds => {\n const body = document.body;\n const documentElement = document.documentElement;\n\n if (!body || !documentElement) {\n throw new Error(`Unable to get document size`);\n }\n const width = Math.max(\n Math.max(body.scrollWidth, documentElement.scrollWidth),\n Math.max(body.offsetWidth, documentElement.offsetWidth),\n Math.max(body.clientWidth, documentElement.clientWidth)\n );\n\n const height = Math.max(\n Math.max(body.scrollHeight, documentElement.scrollHeight),\n Math.max(body.offsetHeight, documentElement.offsetHeight),\n Math.max(body.clientHeight, documentElement.clientHeight)\n );\n\n return new Bounds(0, 0, width, height);\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","export const base64 =\n 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\nexport const byteLength = 39664;\n","'use strict';\n\nimport {createTrieFromBase64} from 'utrie';\nimport {base64, byteLength} from './linebreak-trie';\nimport {fromCodePoint, toCodePoints} from './Util';\n\nexport const LETTER_NUMBER_MODIFIER = 50;\n\n// Non-tailorable Line Breaking Classes\nconst BK = 1; // Cause a line break (after)\nconst CR = 2; // Cause a line break (after), except between CR and LF\nconst LF = 3; // Cause a line break (after)\nconst CM = 4; // Prohibit a line break between the character and the preceding character\nconst NL = 5; // Cause a line break (after)\nconst SG = 6; // Do not occur in well-formed text\nconst WJ = 7; // Prohibit line breaks before and after\nconst ZW = 8; // Provide a break opportunity\nconst GL = 9; // Prohibit line breaks before and after\nconst SP = 10; // Enable indirect line breaks\nconst ZWJ = 11; // Prohibit line breaks within joiner sequences\n// Break Opportunities\nconst B2 = 12; // Provide a line break opportunity before and after the character\nconst BA = 13; // Generally provide a line break opportunity after the character\nconst BB = 14; // Generally provide a line break opportunity before the character\nconst HY = 15; // Provide a line break opportunity after the character, except in numeric context\nconst CB = 16; // Provide a line break opportunity contingent on additional information\n// Characters Prohibiting Certain Breaks\nconst CL = 17; // Prohibit line breaks before\nconst CP = 18; // Prohibit line breaks before\nconst EX = 19; // Prohibit line breaks before\nconst IN = 20; // Allow only indirect line breaks between pairs\nconst NS = 21; // Allow only indirect line breaks before\nconst OP = 22; // Prohibit line breaks after\nconst QU = 23; // Act like they are both opening and closing\n// Numeric Context\nconst IS = 24; // Prevent breaks after any and before numeric\nconst NU = 25; // Form numeric expressions for line breaking purposes\nconst PO = 26; // Do not break following a numeric expression\nconst PR = 27; // Do not break in front of a numeric expression\nconst SY = 28; // Prevent a break before; and allow a break after\n// Other Characters\nconst AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\nconst AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\nconst CJ = 31; // Treat as NS or ID for strict or normal breaking.\nconst EB = 32; // Do not break from following Emoji Modifier\nconst EM = 33; // Do not break from preceding Emoji Base\nconst H2 = 34; // Form Korean syllable blocks\nconst H3 = 35; // Form Korean syllable blocks\nconst HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\nconst ID = 37; // Break before or after; except in some numeric context\nconst JL = 38; // Form Korean syllable blocks\nconst JV = 39; // Form Korean syllable blocks\nconst JT = 40; // Form Korean syllable blocks\nconst RI = 41; // Keep pairs together. For pairs; break before and after other classes\nconst SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\nconst XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\n\nconst ea_OP = [0x2329, 0xff08];\n\nexport const classes: {[key: string]: number} = {\n BK,\n CR,\n LF,\n CM,\n NL,\n SG,\n WJ,\n ZW,\n GL,\n SP,\n ZWJ,\n B2,\n BA,\n BB,\n HY,\n CB,\n CL,\n CP,\n EX,\n IN,\n NS,\n OP,\n QU,\n IS,\n NU,\n PO,\n PR,\n SY,\n AI,\n AL,\n CJ,\n EB,\n EM,\n H2,\n H3,\n HL,\n ID,\n JL,\n JV,\n JT,\n RI,\n SA,\n XX,\n};\n\nexport const BREAK_MANDATORY = '!';\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nconst ALPHABETICS = [AL, HL];\nconst HARD_LINE_BREAKS = [BK, CR, LF, NL];\nconst SPACE = [SP, ZW];\nconst PREFIX_POSTFIX = [PR, PO];\nconst LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE);\nconst KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\nconst HYPHEN = [HY, BA];\n\nexport const codePointsToCharacterClasses = (\n codePoints: number[],\n lineBreak: string = 'strict'\n): [number[], number[], boolean[]] => {\n const types: number[] = [];\n const indices: number[] = [];\n const categories: boolean[] = [];\n codePoints.forEach((codePoint, index) => {\n let classType = UnicodeTrie.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n } else {\n categories.push(false);\n }\n\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n\n if (classType === CM || classType === ZWJ) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n const prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n\n indices.push(index);\n\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n\n if (classType === SA) {\n return types.push(AL);\n }\n\n if (classType === AI) {\n return types.push(AL);\n }\n\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n } else {\n return types.push(AL);\n }\n }\n\n types.push(classType);\n });\n\n return [indices, types, categories];\n};\n\nconst isAdjacentWithSpaceIgnored = (\n a: number[] | number,\n b: number,\n currentIndex: number,\n classTypes: number[]\n): boolean => {\n const current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n let i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n let next = classTypes[i];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (current === SP) {\n let i = currentIndex;\n\n while (i > 0) {\n i--;\n const prev = classTypes[i];\n\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n let n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n let next = classTypes[n];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n};\n\nconst previousNonSpaceClassType = (currentIndex: number, classTypes: number[]): number => {\n let i = currentIndex;\n while (i >= 0) {\n let type = classTypes[i];\n if (type === SP) {\n i--;\n } else {\n return type;\n }\n }\n return 0;\n};\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED | typeof BREAK_MANDATORY;\n\nconst _lineBreakAtIndex = (\n codePoints: number[],\n classTypes: number[],\n indicies: number[],\n index: number,\n forbiddenBreaks?: boolean[]\n): BREAK_OPPORTUNITIES => {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n let currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED;\n }\n\n let beforeIndex = currentIndex - 1;\n let afterIndex = currentIndex + 1;\n let current = classTypes[currentIndex];\n\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n let before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n let next = classTypes[afterIndex];\n\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB7 Do not break before spaces or zero width space.\n if (SPACE.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED;\n }\n\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie.get(codePoints[afterIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB15 Do not break within ‘”[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED;\n }\n\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED;\n }\n\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if (\n (current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if (\n (ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n let prevIndex = currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n let prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // LB26 Do not break a Korean syllable.\n if (\n (JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB27 Treat a Korean Syllable Block the same as ID.\n if (\n (KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB28 Do not break between alphabetics (“at”).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if (\n (ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI && next === RI) {\n let i = indicies[currentIndex];\n let count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI) {\n count++;\n } else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED;\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const lineBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // LB2 Never break at the start of text.\n if (index === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB3 Always break at the end of text.\n if (index >= codePoints.length) {\n return BREAK_MANDATORY;\n }\n\n const [indices, classTypes] = codePointsToCharacterClasses(codePoints);\n\n return _lineBreakAtIndex(codePoints, classTypes, indices, index);\n};\n\nexport type LINE_BREAK = 'auto' | 'normal' | 'strict';\nexport type WORD_BREAK = 'normal' | 'break-all' | 'break-word' | 'keep-all';\n\ninterface IOptions {\n lineBreak?: LINE_BREAK;\n wordBreak?: WORD_BREAK;\n}\n\nconst cssFormattedClasses = (codePoints: number[], options?: IOptions): [number[], number[], boolean[] | undefined] => {\n if (!options) {\n options = {lineBreak: 'normal', wordBreak: 'normal'};\n }\n let [indicies, classTypes, isLetterNumber] = codePointsToCharacterClasses(codePoints, options.lineBreak);\n\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map((type) => ([NU, AL, SA].indexOf(type) !== -1 ? ID : type));\n }\n\n const forbiddenBreakpoints =\n options.wordBreak === 'keep-all'\n ? isLetterNumber.map((letterNumber, i) => {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n\n return [indicies, classTypes, forbiddenBreakpoints];\n};\n\nexport const inlineBreakOpportunities = (str: string, options?: IOptions): string => {\n const codePoints = toCodePoints(str);\n let output = BREAK_NOT_ALLOWED;\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n\n codePoints.forEach((codePoint, i) => {\n output +=\n fromCodePoint(codePoint) +\n (i >= codePoints.length - 1\n ? BREAK_MANDATORY\n : _lineBreakAtIndex(codePoints, classTypes, indicies, i + 1, forbiddenBreakpoints));\n });\n\n return output;\n};\n\nclass Break {\n private readonly codePoints: number[];\n readonly required: boolean;\n readonly start: number;\n readonly end: number;\n\n constructor(codePoints: number[], lineBreak: string, start: number, end: number) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n\n slice(): string {\n return fromCodePoint(...this.codePoints.slice(this.start, this.end));\n }\n}\n\nexport type LineBreak =\n | {\n done: true;\n value: null;\n }\n | {\n done: false;\n value: Break;\n };\n\ninterface ILineBreakIterator {\n next: () => LineBreak;\n}\n\nexport const LineBreaker = (str: string, options?: IOptions): ILineBreakIterator => {\n const codePoints = toCodePoints(str);\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n const length = codePoints.length;\n let lastEnd = 0;\n let nextIndex = 0;\n\n return {\n next: () => {\n if (nextIndex >= length) {\n return {done: true, value: null};\n }\n let lineBreak = BREAK_NOT_ALLOWED;\n while (\n nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED\n ) {}\n\n if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) {\n const value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n },\n };\n};\n","// https://www.w3.org/TR/css-syntax-3\n\nimport {fromCodePoint, toCodePoints} from 'css-line-break';\n\nexport const enum TokenType {\n STRING_TOKEN,\n BAD_STRING_TOKEN,\n LEFT_PARENTHESIS_TOKEN,\n RIGHT_PARENTHESIS_TOKEN,\n COMMA_TOKEN,\n HASH_TOKEN,\n DELIM_TOKEN,\n AT_KEYWORD_TOKEN,\n PREFIX_MATCH_TOKEN,\n DASH_MATCH_TOKEN,\n INCLUDE_MATCH_TOKEN,\n LEFT_CURLY_BRACKET_TOKEN,\n RIGHT_CURLY_BRACKET_TOKEN,\n SUFFIX_MATCH_TOKEN,\n SUBSTRING_MATCH_TOKEN,\n DIMENSION_TOKEN,\n PERCENTAGE_TOKEN,\n NUMBER_TOKEN,\n FUNCTION,\n FUNCTION_TOKEN,\n IDENT_TOKEN,\n COLUMN_TOKEN,\n URL_TOKEN,\n BAD_URL_TOKEN,\n CDC_TOKEN,\n CDO_TOKEN,\n COLON_TOKEN,\n SEMICOLON_TOKEN,\n LEFT_SQUARE_BRACKET_TOKEN,\n RIGHT_SQUARE_BRACKET_TOKEN,\n UNICODE_RANGE_TOKEN,\n WHITESPACE_TOKEN,\n EOF_TOKEN\n}\n\ninterface IToken {\n type: TokenType;\n}\n\nexport interface Token extends IToken {\n type:\n | TokenType.BAD_URL_TOKEN\n | TokenType.BAD_STRING_TOKEN\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.RIGHT_PARENTHESIS_TOKEN\n | TokenType.COMMA_TOKEN\n | TokenType.SUBSTRING_MATCH_TOKEN\n | TokenType.PREFIX_MATCH_TOKEN\n | TokenType.SUFFIX_MATCH_TOKEN\n | TokenType.COLON_TOKEN\n | TokenType.SEMICOLON_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN\n | TokenType.RIGHT_CURLY_BRACKET_TOKEN\n | TokenType.DASH_MATCH_TOKEN\n | TokenType.INCLUDE_MATCH_TOKEN\n | TokenType.COLUMN_TOKEN\n | TokenType.WHITESPACE_TOKEN\n | TokenType.CDC_TOKEN\n | TokenType.CDO_TOKEN\n | TokenType.EOF_TOKEN;\n}\n\nexport interface StringValueToken extends IToken {\n type:\n | TokenType.STRING_TOKEN\n | TokenType.DELIM_TOKEN\n | TokenType.FUNCTION_TOKEN\n | TokenType.IDENT_TOKEN\n | TokenType.URL_TOKEN\n | TokenType.AT_KEYWORD_TOKEN;\n value: string;\n}\n\nexport interface HashToken extends IToken {\n type: TokenType.HASH_TOKEN;\n flags: number;\n value: string;\n}\n\nexport interface NumberValueToken extends IToken {\n type: TokenType.PERCENTAGE_TOKEN | TokenType.NUMBER_TOKEN;\n flags: number;\n number: number;\n}\n\nexport interface DimensionToken extends IToken {\n type: TokenType.DIMENSION_TOKEN;\n flags: number;\n unit: string;\n number: number;\n}\n\nexport interface UnicodeRangeToken extends IToken {\n type: TokenType.UNICODE_RANGE_TOKEN;\n start: number;\n end: number;\n}\n\nexport type CSSToken = Token | StringValueToken | NumberValueToken | DimensionToken | UnicodeRangeToken | HashToken;\n\nexport const FLAG_UNRESTRICTED = 1 << 0;\nexport const FLAG_ID = 1 << 1;\nexport const FLAG_INTEGER = 1 << 2;\nexport const FLAG_NUMBER = 1 << 3;\n\nconst LINE_FEED = 0x000a;\nconst SOLIDUS = 0x002f;\nconst REVERSE_SOLIDUS = 0x005c;\nconst CHARACTER_TABULATION = 0x0009;\nconst SPACE = 0x0020;\nconst QUOTATION_MARK = 0x0022;\nconst EQUALS_SIGN = 0x003d;\nconst NUMBER_SIGN = 0x0023;\nconst DOLLAR_SIGN = 0x0024;\nconst PERCENTAGE_SIGN = 0x0025;\nconst APOSTROPHE = 0x0027;\nconst LEFT_PARENTHESIS = 0x0028;\nconst RIGHT_PARENTHESIS = 0x0029;\nconst LOW_LINE = 0x005f;\nconst HYPHEN_MINUS = 0x002d;\nconst EXCLAMATION_MARK = 0x0021;\nconst LESS_THAN_SIGN = 0x003c;\nconst GREATER_THAN_SIGN = 0x003e;\nconst COMMERCIAL_AT = 0x0040;\nconst LEFT_SQUARE_BRACKET = 0x005b;\nconst RIGHT_SQUARE_BRACKET = 0x005d;\nconst CIRCUMFLEX_ACCENT = 0x003d;\nconst LEFT_CURLY_BRACKET = 0x007b;\nconst QUESTION_MARK = 0x003f;\nconst RIGHT_CURLY_BRACKET = 0x007d;\nconst VERTICAL_LINE = 0x007c;\nconst TILDE = 0x007e;\nconst CONTROL = 0x0080;\nconst REPLACEMENT_CHARACTER = 0xfffd;\nconst ASTERISK = 0x002a;\nconst PLUS_SIGN = 0x002b;\nconst COMMA = 0x002c;\nconst COLON = 0x003a;\nconst SEMICOLON = 0x003b;\nconst FULL_STOP = 0x002e;\nconst NULL = 0x0000;\nconst BACKSPACE = 0x0008;\nconst LINE_TABULATION = 0x000b;\nconst SHIFT_OUT = 0x000e;\nconst INFORMATION_SEPARATOR_ONE = 0x001f;\nconst DELETE = 0x007f;\nconst EOF = -1;\nconst ZERO = 0x0030;\nconst a = 0x0061;\nconst e = 0x0065;\nconst f = 0x0066;\nconst u = 0x0075;\nconst z = 0x007a;\nconst A = 0x0041;\nconst E = 0x0045;\nconst F = 0x0046;\nconst U = 0x0055;\nconst Z = 0x005a;\n\nconst isDigit = (codePoint: number) => codePoint >= ZERO && codePoint <= 0x0039;\nconst isSurrogateCodePoint = (codePoint: number) => codePoint >= 0xd800 && codePoint <= 0xdfff;\nconst isHex = (codePoint: number) =>\n isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\nconst isLowerCaseLetter = (codePoint: number) => codePoint >= a && codePoint <= z;\nconst isUpperCaseLetter = (codePoint: number) => codePoint >= A && codePoint <= Z;\nconst isLetter = (codePoint: number) => isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint);\nconst isNonASCIICodePoint = (codePoint: number) => codePoint >= CONTROL;\nconst isWhiteSpace = (codePoint: number): boolean =>\n codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\nconst isNameStartCodePoint = (codePoint: number): boolean =>\n isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\nconst isNameCodePoint = (codePoint: number): boolean =>\n isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\nconst isNonPrintableCodePoint = (codePoint: number): boolean => {\n return (\n (codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE\n );\n};\nconst isValidEscape = (c1: number, c2: number): boolean => {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n\n return c2 !== LINE_FEED;\n};\nconst isIdentifierStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n } else if (isNameStartCodePoint(c1)) {\n return true;\n } else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n};\n\nconst isNumberStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n\n return c2 === FULL_STOP && isDigit(c3);\n }\n\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n\n return isDigit(c1);\n};\n\nconst stringToNumber = (codePoints: number[]): number => {\n let c = 0;\n let sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n\n const integers = [];\n\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n\n const int = integers.length ? parseInt(fromCodePoint(...integers), 10) : 0;\n\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n\n const fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n\n const fracd = fraction.length;\n const frac = fracd ? parseInt(fromCodePoint(...fraction), 10) : 0;\n\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n\n let expsign = 1;\n\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n\n const exponent = [];\n\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n\n const exp = exponent.length ? parseInt(fromCodePoint(...exponent), 10) : 0;\n\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n};\n\nconst LEFT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.LEFT_PARENTHESIS_TOKEN\n};\nconst RIGHT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.RIGHT_PARENTHESIS_TOKEN\n};\nconst COMMA_TOKEN: Token = {type: TokenType.COMMA_TOKEN};\nconst SUFFIX_MATCH_TOKEN: Token = {type: TokenType.SUFFIX_MATCH_TOKEN};\nconst PREFIX_MATCH_TOKEN: Token = {type: TokenType.PREFIX_MATCH_TOKEN};\nconst COLUMN_TOKEN: Token = {type: TokenType.COLUMN_TOKEN};\nconst DASH_MATCH_TOKEN: Token = {type: TokenType.DASH_MATCH_TOKEN};\nconst INCLUDE_MATCH_TOKEN: Token = {type: TokenType.INCLUDE_MATCH_TOKEN};\nconst LEFT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_CURLY_BRACKET_TOKEN\n};\nconst RIGHT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_CURLY_BRACKET_TOKEN\n};\nconst SUBSTRING_MATCH_TOKEN: Token = {type: TokenType.SUBSTRING_MATCH_TOKEN};\nconst BAD_URL_TOKEN: Token = {type: TokenType.BAD_URL_TOKEN};\nconst BAD_STRING_TOKEN: Token = {type: TokenType.BAD_STRING_TOKEN};\nconst CDO_TOKEN: Token = {type: TokenType.CDO_TOKEN};\nconst CDC_TOKEN: Token = {type: TokenType.CDC_TOKEN};\nconst COLON_TOKEN: Token = {type: TokenType.COLON_TOKEN};\nconst SEMICOLON_TOKEN: Token = {type: TokenType.SEMICOLON_TOKEN};\nconst LEFT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_SQUARE_BRACKET_TOKEN\n};\nconst RIGHT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n};\nconst WHITESPACE_TOKEN: Token = {type: TokenType.WHITESPACE_TOKEN};\nexport const EOF_TOKEN: Token = {type: TokenType.EOF_TOKEN};\n\nexport class Tokenizer {\n private _value: number[];\n\n constructor() {\n this._value = [];\n }\n\n write(chunk: string): void {\n this._value = this._value.concat(toCodePoints(chunk));\n }\n\n read(): CSSToken[] {\n const tokens = [];\n let token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n }\n\n private consumeToken(): CSSToken {\n const codePoint = this.consumeCodePoint();\n\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n const flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n const value = this.consumeName();\n\n return {type: TokenType.HASH_TOKEN, value, flags};\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n const e1 = codePoint;\n const e2 = this.peekCodePoint(0);\n const e3 = this.peekCodePoint(1);\n\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n let c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (\n this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS\n ) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n const a1 = this.peekCodePoint(0);\n const a2 = this.peekCodePoint(1);\n const a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n const value = this.consumeName();\n return {type: TokenType.AT_KEYWORD_TOKEN, value};\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n const u1 = this.peekCodePoint(0);\n const u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n return {type: TokenType.DELIM_TOKEN, value: fromCodePoint(codePoint)};\n }\n\n private consumeCodePoint(): number {\n const value = this._value.shift();\n\n return typeof value === 'undefined' ? -1 : value;\n }\n\n private reconsumeCodePoint(codePoint: number) {\n this._value.unshift(codePoint);\n }\n\n private peekCodePoint(delta: number): number {\n if (delta >= this._value.length) {\n return -1;\n }\n\n return this._value[delta];\n }\n\n private consumeUnicodeRangeToken(): UnicodeRangeToken {\n const digits = [];\n let codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n let questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n\n if (questionMarks) {\n const start = parseInt(\n fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? ZERO : digit))),\n 16\n );\n const end = parseInt(fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? F : digit))), 16);\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n }\n\n const start = parseInt(fromCodePoint(...digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n const endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n const end = parseInt(fromCodePoint(...endDigits), 16);\n\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n } else {\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end: start};\n }\n }\n\n private consumeIdentLikeToken(): StringValueToken | Token {\n const value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n } else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.FUNCTION_TOKEN, value};\n }\n\n return {type: TokenType.IDENT_TOKEN, value};\n }\n\n private consumeUrlToken(): StringValueToken | Token {\n const value = [];\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF) {\n return {type: TokenType.URL_TOKEN, value: ''};\n }\n\n const next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n const stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === TokenType.STRING_TOKEN) {\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: stringToken.value};\n }\n }\n\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n } else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (\n codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)\n ) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n } else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n } else {\n value.push(codePoint);\n }\n }\n }\n\n private consumeWhiteSpace(): void {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n }\n\n private consumeBadUrlRemnants(): void {\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n }\n\n private consumeStringSlice(count: number): string {\n const SLICE_STACK_SIZE = 50000;\n let value = '';\n while (count > 0) {\n const amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint(...this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n\n return value;\n }\n\n private consumeStringToken(endingCodePoint: number): StringValueToken | Token {\n let value = '';\n let i = 0;\n\n do {\n const codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return {type: TokenType.STRING_TOKEN, value};\n }\n\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n\n if (codePoint === REVERSE_SOLIDUS) {\n const next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n } else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n\n i++;\n } while (true);\n }\n\n private consumeNumber() {\n const repr = [];\n let type = FLAG_INTEGER;\n let c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n let c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n return [stringToNumber(repr), type];\n }\n\n private consumeNumericToken(): NumberValueToken | DimensionToken {\n const [number, flags] = this.consumeNumber();\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n\n if (isIdentifierStart(c1, c2, c3)) {\n const unit = this.consumeName();\n return {type: TokenType.DIMENSION_TOKEN, number, flags, unit};\n }\n\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return {type: TokenType.PERCENTAGE_TOKEN, number, flags};\n }\n\n return {type: TokenType.NUMBER_TOKEN, number, flags};\n }\n\n private consumeEscapedCodePoint(): number {\n const codePoint = this.consumeCodePoint();\n\n if (isHex(codePoint)) {\n let hex = fromCodePoint(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint(this.consumeCodePoint());\n }\n\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n\n const hexCodePoint = parseInt(hex, 16);\n\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n\n return hexCodePoint;\n }\n\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n\n return codePoint;\n }\n\n private consumeName(): string {\n let result = '';\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint(codePoint);\n } else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint(this.consumeEscapedCodePoint());\n } else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n }\n}\n","import {\n CSSToken,\n DimensionToken,\n EOF_TOKEN,\n NumberValueToken,\n StringValueToken,\n Tokenizer,\n TokenType\n} from './tokenizer';\n\nexport type CSSBlockType =\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN;\n\nexport interface CSSBlock {\n type: CSSBlockType;\n values: CSSValue[];\n}\n\nexport interface CSSFunction {\n type: TokenType.FUNCTION;\n name: string;\n values: CSSValue[];\n}\n\nexport type CSSValue = CSSFunction | CSSToken | CSSBlock;\n\nexport class Parser {\n private _tokens: CSSToken[];\n\n constructor(tokens: CSSToken[]) {\n this._tokens = tokens;\n }\n\n static create(value: string): Parser {\n const tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n }\n\n static parseValue(value: string): CSSValue {\n return Parser.create(value).parseComponentValue();\n }\n\n static parseValues(value: string): CSSValue[] {\n return Parser.create(value).parseComponentValues();\n }\n\n parseComponentValue(): CSSValue {\n let token = this.consumeToken();\n while (token.type === TokenType.WHITESPACE_TOKEN) {\n token = this.consumeToken();\n }\n\n if (token.type === TokenType.EOF_TOKEN) {\n throw new SyntaxError(`Error parsing CSS component value, unexpected EOF`);\n }\n\n this.reconsumeToken(token);\n const value = this.consumeComponentValue();\n\n do {\n token = this.consumeToken();\n } while (token.type === TokenType.WHITESPACE_TOKEN);\n\n if (token.type === TokenType.EOF_TOKEN) {\n return value;\n }\n\n throw new SyntaxError(`Error parsing CSS component value, multiple values found when expecting only one`);\n }\n\n parseComponentValues(): CSSValue[] {\n const values = [];\n while (true) {\n const value = this.consumeComponentValue();\n if (value.type === TokenType.EOF_TOKEN) {\n return values;\n }\n values.push(value);\n values.push();\n }\n }\n\n private consumeComponentValue(): CSSValue {\n const token = this.consumeToken();\n\n switch (token.type) {\n case TokenType.LEFT_CURLY_BRACKET_TOKEN:\n case TokenType.LEFT_SQUARE_BRACKET_TOKEN:\n case TokenType.LEFT_PARENTHESIS_TOKEN:\n return this.consumeSimpleBlock(token.type);\n case TokenType.FUNCTION_TOKEN:\n return this.consumeFunction(token);\n }\n\n return token;\n }\n\n private consumeSimpleBlock(type: CSSBlockType): CSSBlock {\n const block: CSSBlock = {type, values: []};\n\n let token = this.consumeToken();\n while (true) {\n if (token.type === TokenType.EOF_TOKEN || isEndingTokenFor(token, type)) {\n return block;\n }\n\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n }\n\n private consumeFunction(functionToken: StringValueToken): CSSFunction {\n const cssFunction: CSSFunction = {\n name: functionToken.value,\n values: [],\n type: TokenType.FUNCTION\n };\n\n while (true) {\n const token = this.consumeToken();\n if (token.type === TokenType.EOF_TOKEN || token.type === TokenType.RIGHT_PARENTHESIS_TOKEN) {\n return cssFunction;\n }\n\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n }\n\n private consumeToken(): CSSToken {\n const token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n }\n\n private reconsumeToken(token: CSSToken): void {\n this._tokens.unshift(token);\n }\n}\n\nexport const isDimensionToken = (token: CSSValue): token is DimensionToken => token.type === TokenType.DIMENSION_TOKEN;\nexport const isNumberToken = (token: CSSValue): token is NumberValueToken => token.type === TokenType.NUMBER_TOKEN;\nexport const isIdentToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.IDENT_TOKEN;\nexport const isStringToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.STRING_TOKEN;\nexport const isIdentWithValue = (token: CSSValue, value: string): boolean =>\n isIdentToken(token) && token.value === value;\n\nexport const nonWhiteSpace = (token: CSSValue): boolean => token.type !== TokenType.WHITESPACE_TOKEN;\nexport const nonFunctionArgSeparator = (token: CSSValue): boolean =>\n token.type !== TokenType.WHITESPACE_TOKEN && token.type !== TokenType.COMMA_TOKEN;\n\nexport const parseFunctionArgs = (tokens: CSSValue[]): CSSValue[][] => {\n const args: CSSValue[][] = [];\n let arg: CSSValue[] = [];\n tokens.forEach((token) => {\n if (token.type === TokenType.COMMA_TOKEN) {\n if (arg.length === 0) {\n throw new Error(`Error parsing function args, zero tokens for arg`);\n }\n args.push(arg);\n arg = [];\n return;\n }\n\n if (token.type !== TokenType.WHITESPACE_TOKEN) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n\n return args;\n};\n\nconst isEndingTokenFor = (token: CSSToken, type: CSSBlockType): boolean => {\n if (type === TokenType.LEFT_CURLY_BRACKET_TOKEN && token.type === TokenType.RIGHT_CURLY_BRACKET_TOKEN) {\n return true;\n }\n if (type === TokenType.LEFT_SQUARE_BRACKET_TOKEN && token.type === TokenType.RIGHT_SQUARE_BRACKET_TOKEN) {\n return true;\n }\n\n return type === TokenType.LEFT_PARENTHESIS_TOKEN && token.type === TokenType.RIGHT_PARENTHESIS_TOKEN;\n};\n","import {CSSValue} from '../syntax/parser';\nimport {DimensionToken, NumberValueToken, TokenType} from '../syntax/tokenizer';\n\nexport type Length = DimensionToken | NumberValueToken;\n\nexport const isLength = (token: CSSValue): token is Length =>\n token.type === TokenType.NUMBER_TOKEN || token.type === TokenType.DIMENSION_TOKEN;\n","import {DimensionToken, FLAG_INTEGER, NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {isLength} from './length';\nexport type LengthPercentage = DimensionToken | NumberValueToken;\nexport type LengthPercentageTuple = [LengthPercentage] | [LengthPercentage, LengthPercentage];\n\nexport const isLengthPercentage = (token: CSSValue): token is LengthPercentage =>\n token.type === TokenType.PERCENTAGE_TOKEN || isLength(token);\nexport const parseLengthPercentageTuple = (tokens: LengthPercentage[]): LengthPercentageTuple =>\n tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\nexport const ZERO_LENGTH: NumberValueToken = {\n type: TokenType.NUMBER_TOKEN,\n number: 0,\n flags: FLAG_INTEGER\n};\n\nexport const FIFTY_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\n\nexport const HUNDRED_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 100,\n flags: FLAG_INTEGER\n};\n\nexport const getAbsoluteValueForTuple = (\n tuple: LengthPercentageTuple,\n width: number,\n height: number\n): [number, number] => {\n const [x, y] = tuple;\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n};\nexport const getAbsoluteValue = (token: LengthPercentage, parent: number): number => {\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n return (token.number / 100) * parent;\n }\n\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n\n return token.number;\n};\n","import {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {HUNDRED_PERCENT, ZERO_LENGTH} from './length-percentage';\nimport {GradientCorner} from './image';\nimport {Context} from '../../core/context';\n\nconst DEG = 'deg';\nconst GRAD = 'grad';\nconst RAD = 'rad';\nconst TURN = 'turn';\n\nexport const angle: ITypeDescriptor = {\n name: 'angle',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n\n throw new Error(`Unsupported angle type`);\n }\n};\n\nexport const isAngle = (value: CSSValue): boolean => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n};\n\nexport const parseNamedSide = (tokens: CSSValue[]): number | GradientCorner => {\n const sideOrCorner = tokens\n .filter(isIdentToken)\n .map((ident) => ident.value)\n .join(' ');\n\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n\n return 0;\n};\n\nexport const deg = (deg: number): number => (Math.PI * deg) / 180;\n","import {CSSValue, nonFunctionArgSeparator, Parser} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {angle, deg} from './angle';\nimport {getAbsoluteValue, isLengthPercentage} from './length-percentage';\nimport {Context} from '../../core/context';\nexport type Color = number;\n\nexport const color: ITypeDescriptor = {\n name: 'color',\n parse: (context: Context, value: CSSValue): Color => {\n if (value.type === TokenType.FUNCTION) {\n const colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported color function \"${value.name}\"`);\n }\n return colorFunction(context, value.values);\n }\n\n if (value.type === TokenType.HASH_TOKEN) {\n if (value.value.length === 3) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n\n if (value.value.length === 4) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n const a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n\n if (value.value.length === 6) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n\n if (value.value.length === 8) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n const a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n\n if (value.type === TokenType.IDENT_TOKEN) {\n const namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n\n return COLORS.TRANSPARENT;\n }\n};\n\nexport const isTransparent = (color: Color): boolean => (0xff & color) === 0;\n\nexport const asString = (color: Color): string => {\n const alpha = 0xff & color;\n const blue = 0xff & (color >> 8);\n const green = 0xff & (color >> 16);\n const red = 0xff & (color >> 24);\n return alpha < 255 ? `rgba(${red},${green},${blue},${alpha / 255})` : `rgb(${red},${green},${blue})`;\n};\n\nexport const pack = (r: number, g: number, b: number, a: number): Color =>\n ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n\nconst getTokenColorValue = (token: CSSValue, i: number): number => {\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n const max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n\n return 0;\n};\n\nconst rgb = (_context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n\n if (tokens.length === 3) {\n const [r, g, b] = tokens.map(getTokenColorValue);\n return pack(r, g, b, 1);\n }\n\n if (tokens.length === 4) {\n const [r, g, b, a] = tokens.map(getTokenColorValue);\n return pack(r, g, b, a);\n }\n\n return 0;\n};\n\nfunction hue2rgb(t1: number, t2: number, hue: number): number {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n } else if (hue < 1 / 2) {\n return t2;\n } else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n } else {\n return t1;\n }\n}\n\nconst hsl = (context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n const [hue, saturation, lightness, alpha] = tokens;\n\n const h = (hue.type === TokenType.NUMBER_TOKEN ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n const s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n const l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n const a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n\n const t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n\n const t1 = l * 2 - t2;\n const r = hue2rgb(t1, t2, h + 1 / 3);\n const g = hue2rgb(t1, t2, h);\n const b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n};\n\nconst SUPPORTED_COLOR_FUNCTIONS: {\n [key: string]: (context: Context, args: CSSValue[]) => number;\n} = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n};\n\nexport const parseColor = (context: Context, value: string): Color =>\n color.parse(context, Parser.create(value).parseComponentValue());\n\nexport const COLORS: {[key: string]: Color} = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum BACKGROUND_CLIP {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundClip = BACKGROUND_CLIP[];\n\nexport const backgroundClip: IPropertyListDescriptor = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundClip => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_CLIP.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_CLIP.CONTENT_BOX;\n }\n }\n return BACKGROUND_CLIP.BORDER_BOX;\n });\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const backgroundColor: IPropertyTypeValueDescriptor = {\n name: `background-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue} from '../../syntax/parser';\nimport {\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n GradientColorStop,\n GradientCorner,\n UnprocessedGradientColorStop\n} from '../image';\nimport {color as colorType} from '../color';\nimport {getAbsoluteValue, HUNDRED_PERCENT, isLengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const parseColorStop = (context: Context, args: CSSValue[]): UnprocessedGradientColorStop => {\n const color = colorType.parse(context, args[0]);\n const stop = args[1];\n return stop && isLengthPercentage(stop) ? {color, stop} : {color, stop: null};\n};\n\nexport const processColorStops = (stops: UnprocessedGradientColorStop[], lineLength: number): GradientColorStop[] => {\n const first = stops[0];\n const last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n\n const processStops: (number | null)[] = [];\n let previous = 0;\n for (let i = 0; i < stops.length; i++) {\n const stop = stops[i].stop;\n if (stop !== null) {\n const absoluteValue = getAbsoluteValue(stop, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n } else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n } else {\n processStops.push(null);\n }\n }\n\n let gapBegin = null;\n for (let i = 0; i < processStops.length; i++) {\n const stop = processStops[i];\n if (stop === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n } else if (gapBegin !== null) {\n const gapLength = i - gapBegin;\n const beforeGap = processStops[gapBegin - 1] as number;\n const gapValue = (stop - beforeGap) / (gapLength + 1);\n for (let g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n\n return stops.map(({color}, i) => {\n return {color, stop: Math.max(Math.min(1, (processStops[i] as number) / lineLength), 0)};\n });\n};\n\nconst getAngleFromCorner = (corner: GradientCorner, width: number, height: number): number => {\n const centerX = width / 2;\n const centerY = height / 2;\n const x = getAbsoluteValue(corner[0], width) - centerX;\n const y = centerY - getAbsoluteValue(corner[1], height);\n\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n};\n\nexport const calculateGradientDirection = (\n angle: number | GradientCorner,\n width: number,\n height: number\n): [number, number, number, number, number] => {\n const radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n\n const lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n\n const halfWidth = width / 2;\n const halfHeight = height / 2;\n const halfLineLength = lineLength / 2;\n\n const yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n const xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n};\n\nconst distance = (a: number, b: number): number => Math.sqrt(a * a + b * b);\n\nconst findCorner = (width: number, height: number, x: number, y: number, closest: boolean): [number, number] => {\n const corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n\n return corners.reduce(\n (stat, corner) => {\n const [cx, cy] = corner;\n const d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n\n return stat;\n },\n {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }\n ).optimumCorner as [number, number];\n};\n\nexport const calculateRadius = (\n gradient: CSSRadialGradientImage,\n x: number,\n y: number,\n width: number,\n height: number\n): [number, number] => {\n let rx = 0;\n let ry = 0;\n\n switch (gradient.size) {\n case CSSRadialExtent.CLOSEST_SIDE:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.CLOSEST_CORNER:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n const c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, true);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n\n case CSSRadialExtent.FARTHEST_SIDE:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.FARTHEST_CORNER:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n const c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, false);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n\n return [rx, ry];\n};\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixLinearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (\n firstToken.type === TokenType.IDENT_TOKEN &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1\n ) {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = (angleType.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {\n angle,\n stops,\n type: CSSImageType.LINEAR_GRADIENT\n };\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {Context} from '../../../core/context';\nexport const CLOSEST_SIDE = 'closest-side';\nexport const FARTHEST_SIDE = 'farthest-side';\nexport const CLOSEST_CORNER = 'closest-corner';\nexport const FARTHEST_CORNER = 'farthest-corner';\nexport const CIRCLE = 'circle';\nexport const ELLIPSE = 'ellipse';\nexport const COVER = 'cover';\nexport const CONTAIN = 'contain';\n\nexport const radialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n let isAtPosition = false;\n isColorStop = arg.reduce((acc, token) => {\n if (isAtPosition) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n } else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case 'at':\n isAtPosition = true;\n return false;\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {\n CIRCLE,\n CLOSEST_CORNER,\n CLOSEST_SIDE,\n CONTAIN,\n COVER,\n ELLIPSE,\n FARTHEST_CORNER,\n FARTHEST_SIDE\n} from './radial-gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixRadialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n } else if (i === 1) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Color} from './color';\nimport {linearGradient} from './functions/linear-gradient';\nimport {prefixLinearGradient} from './functions/-prefix-linear-gradient';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {LengthPercentage} from './length-percentage';\nimport {webkitGradient} from './functions/-webkit-gradient';\nimport {radialGradient} from './functions/radial-gradient';\nimport {prefixRadialGradient} from './functions/-prefix-radial-gradient';\nimport {Context} from '../../core/context';\n\nexport const enum CSSImageType {\n URL,\n LINEAR_GRADIENT,\n RADIAL_GRADIENT\n}\n\nexport const isLinearGradient = (background: ICSSImage): background is CSSLinearGradientImage => {\n return background.type === CSSImageType.LINEAR_GRADIENT;\n};\n\nexport const isRadialGradient = (background: ICSSImage): background is CSSRadialGradientImage => {\n return background.type === CSSImageType.RADIAL_GRADIENT;\n};\n\nexport interface UnprocessedGradientColorStop {\n color: Color;\n stop: LengthPercentage | null;\n}\n\nexport interface GradientColorStop {\n color: Color;\n stop: number;\n}\n\nexport interface ICSSImage {\n type: CSSImageType;\n}\n\nexport interface CSSURLImage extends ICSSImage {\n url: string;\n type: CSSImageType.URL;\n}\n\n// interface ICSSGeneratedImage extends ICSSImage {}\n\nexport type GradientCorner = [LengthPercentage, LengthPercentage];\n\ninterface ICSSGradientImage extends ICSSImage {\n stops: UnprocessedGradientColorStop[];\n}\n\nexport interface CSSLinearGradientImage extends ICSSGradientImage {\n angle: number | GradientCorner;\n type: CSSImageType.LINEAR_GRADIENT;\n}\n\nexport const enum CSSRadialShape {\n CIRCLE,\n ELLIPSE\n}\n\nexport const enum CSSRadialExtent {\n CLOSEST_SIDE,\n FARTHEST_SIDE,\n CLOSEST_CORNER,\n FARTHEST_CORNER\n}\n\nexport type CSSRadialSize = CSSRadialExtent | LengthPercentage[];\n\nexport interface CSSRadialGradientImage extends ICSSGradientImage {\n type: CSSImageType.RADIAL_GRADIENT;\n shape: CSSRadialShape;\n size: CSSRadialSize;\n position: LengthPercentage[];\n}\n\nexport const image: ITypeDescriptor = {\n name: 'image',\n parse: (context: Context, value: CSSValue): ICSSImage => {\n if (value.type === TokenType.URL_TOKEN) {\n const image: CSSURLImage = {url: value.value, type: CSSImageType.URL};\n context.cache.addImage(value.value);\n return image;\n }\n\n if (value.type === TokenType.FUNCTION) {\n const imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported image function \"${value.name}\"`);\n }\n return imageFunction(context, value.values);\n }\n\n throw new Error(`Unsupported image type ${value.type}`);\n }\n};\n\nexport function isSupportedImage(value: CSSValue): boolean {\n return (\n !(value.type === TokenType.IDENT_TOKEN && value.value === 'none') &&\n (value.type !== TokenType.FUNCTION || !!SUPPORTED_IMAGE_FUNCTIONS[value.name])\n );\n}\n\nconst SUPPORTED_IMAGE_FUNCTIONS: Record ICSSImage> = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {StringValueToken} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport enum BACKGROUND_SIZE {\n AUTO = 'auto',\n CONTAIN = 'contain',\n COVER = 'cover'\n}\n\nexport type BackgroundSizeInfo = LengthPercentage | StringValueToken;\nexport type BackgroundSize = BackgroundSizeInfo[][];\n\nexport const backgroundSize: IPropertyListDescriptor = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundSize => {\n return parseFunctionArgs(tokens).map((values) => values.filter(isBackgroundSizeInfoToken));\n }\n};\n\nconst isBackgroundSizeInfoToken = (value: CSSValue): value is BackgroundSizeInfo =>\n isIdentToken(value) || isLengthPercentage(value);\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const linearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (firstToken.type === TokenType.IDENT_TOKEN && firstToken.value === 'to') {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = angleType.parse(context, firstToken);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {angle, stops, type: CSSImageType.LINEAR_GRADIENT};\n};\n","import {CSSValue, isIdentToken, isNumberToken, nonFunctionArgSeparator, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSLinearGradientImage,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {deg} from '../angle';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {color as colorType} from '../color';\nimport {HUNDRED_PERCENT, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const webkitGradient = (\n context: Context,\n tokens: CSSValue[]\n): CSSLinearGradientImage | CSSRadialGradientImage => {\n const angle = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n let type = CSSImageType.LINEAR_GRADIENT;\n const shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n const size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n const firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = CSSImageType.LINEAR_GRADIENT;\n return;\n } else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = CSSImageType.RADIAL_GRADIENT;\n return;\n }\n }\n\n if (firstToken.type === TokenType.FUNCTION) {\n if (firstToken.name === 'from') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: ZERO_LENGTH, color});\n } else if (firstToken.name === 'to') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: HUNDRED_PERCENT, color});\n } else if (firstToken.name === 'color-stop') {\n const values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n const color = colorType.parse(context, values[1]);\n const stop = values[0];\n if (isNumberToken(stop)) {\n stops.push({\n stop: {type: TokenType.PERCENTAGE_TOKEN, number: stop.number * 100, flags: stop.flags},\n color\n });\n }\n }\n }\n }\n });\n\n return type === CSSImageType.LINEAR_GRADIENT\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops,\n type\n }\n : {size, shape, stops, position, type};\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image, isSupportedImage} from '../types/image';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, nonFunctionArgSeparator} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const backgroundImage: IPropertyListDescriptor = {\n name: 'background-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens\n .filter((value) => nonFunctionArgSeparator(value) && isSupportedImage(value))\n .map((value) => image.parse(context, value));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum BACKGROUND_ORIGIN {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundOrigin = BACKGROUND_ORIGIN[];\n\nexport const backgroundOrigin: IPropertyListDescriptor = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundOrigin => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_ORIGIN.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_ORIGIN.CONTENT_BOX;\n }\n }\n return BACKGROUND_ORIGIN.BORDER_BOX;\n });\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BackgroundPosition = BackgroundImagePosition[];\n\nexport type BackgroundImagePosition = LengthPercentageTuple;\n\nexport const backgroundPosition: IPropertyListDescriptor = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundPosition => {\n return parseFunctionArgs(tokens)\n .map((values: CSSValue[]) => values.filter(isLengthPercentage))\n .map(parseLengthPercentageTuple);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport type BackgroundRepeat = BACKGROUND_REPEAT[];\n\nexport const enum BACKGROUND_REPEAT {\n REPEAT = 0,\n NO_REPEAT = 1,\n REPEAT_X = 2,\n REPEAT_Y = 3\n}\n\nexport const backgroundRepeat: IPropertyListDescriptor = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundRepeat => {\n return parseFunctionArgs(tokens)\n .map((values) =>\n values\n .filter(isIdentToken)\n .map((token) => token.value)\n .join(' ')\n )\n .map(parseBackgroundRepeat);\n }\n};\n\nconst parseBackgroundRepeat = (value: string): BACKGROUND_REPEAT => {\n switch (value) {\n case 'no-repeat':\n return BACKGROUND_REPEAT.NO_REPEAT;\n case 'repeat-x':\n case 'repeat no-repeat':\n return BACKGROUND_REPEAT.REPEAT_X;\n case 'repeat-y':\n case 'no-repeat repeat':\n return BACKGROUND_REPEAT.REPEAT_Y;\n case 'repeat':\n default:\n return BACKGROUND_REPEAT.REPEAT;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum LINE_BREAK {\n NORMAL = 'normal',\n STRICT = 'strict'\n}\n\nexport const lineBreak: IPropertyIdentValueDescriptor = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, lineBreak: string): LINE_BREAK => {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nconst borderColorForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `border-${side}-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n});\n\nexport const borderTopColor: IPropertyTypeValueDescriptor = borderColorForSide('top');\nexport const borderRightColor: IPropertyTypeValueDescriptor = borderColorForSide('right');\nexport const borderBottomColor: IPropertyTypeValueDescriptor = borderColorForSide('bottom');\nexport const borderLeftColor: IPropertyTypeValueDescriptor = borderColorForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BorderRadius = LengthPercentageTuple;\n\nconst borderRadiusForSide = (side: string): IPropertyListDescriptor => ({\n name: `border-radius-${side}`,\n initialValue: '0 0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BorderRadius =>\n parseLengthPercentageTuple(tokens.filter(isLengthPercentage))\n});\n\nexport const borderTopLeftRadius: IPropertyListDescriptor = borderRadiusForSide('top-left');\nexport const borderTopRightRadius: IPropertyListDescriptor = borderRadiusForSide('top-right');\nexport const borderBottomRightRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-right');\nexport const borderBottomLeftRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum BORDER_STYLE {\n NONE = 0,\n SOLID = 1,\n DASHED = 2,\n DOTTED = 3,\n DOUBLE = 4\n}\n\nconst borderStyleForSide = (side: string): IPropertyIdentValueDescriptor => ({\n name: `border-${side}-style`,\n initialValue: 'solid',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, style: string): BORDER_STYLE => {\n switch (style) {\n case 'none':\n return BORDER_STYLE.NONE;\n case 'dashed':\n return BORDER_STYLE.DASHED;\n case 'dotted':\n return BORDER_STYLE.DOTTED;\n case 'double':\n return BORDER_STYLE.DOUBLE;\n }\n return BORDER_STYLE.SOLID;\n }\n});\n\nexport const borderTopStyle: IPropertyIdentValueDescriptor = borderStyleForSide('top');\nexport const borderRightStyle: IPropertyIdentValueDescriptor = borderStyleForSide('right');\nexport const borderBottomStyle: IPropertyIdentValueDescriptor = borderStyleForSide('bottom');\nexport const borderLeftStyle: IPropertyIdentValueDescriptor = borderStyleForSide('left');\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nconst borderWidthForSide = (side: string): IPropertyValueDescriptor => ({\n name: `border-${side}-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n});\n\nexport const borderTopWidth: IPropertyValueDescriptor = borderWidthForSide('top');\nexport const borderRightWidth: IPropertyValueDescriptor = borderWidthForSide('right');\nexport const borderBottomWidth: IPropertyValueDescriptor = borderWidthForSide('bottom');\nexport const borderLeftWidth: IPropertyValueDescriptor = borderWidthForSide('left');\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const color: IPropertyTypeValueDescriptor = {\n name: `color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\n\nexport const enum DIRECTION {\n LTR = 0,\n RTL = 1\n}\n\nexport const direction: IPropertyIdentValueDescriptor = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, direction: string) => {\n switch (direction) {\n case 'rtl':\n return DIRECTION.RTL;\n case 'ltr':\n default:\n return DIRECTION.LTR;\n }\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum DISPLAY {\n NONE = 0,\n BLOCK = 1 << 1,\n INLINE = 1 << 2,\n RUN_IN = 1 << 3,\n FLOW = 1 << 4,\n FLOW_ROOT = 1 << 5,\n TABLE = 1 << 6,\n FLEX = 1 << 7,\n GRID = 1 << 8,\n RUBY = 1 << 9,\n SUBGRID = 1 << 10,\n LIST_ITEM = 1 << 11,\n TABLE_ROW_GROUP = 1 << 12,\n TABLE_HEADER_GROUP = 1 << 13,\n TABLE_FOOTER_GROUP = 1 << 14,\n TABLE_ROW = 1 << 15,\n TABLE_CELL = 1 << 16,\n TABLE_COLUMN_GROUP = 1 << 17,\n TABLE_COLUMN = 1 << 18,\n TABLE_CAPTION = 1 << 19,\n RUBY_BASE = 1 << 20,\n RUBY_TEXT = 1 << 21,\n RUBY_BASE_CONTAINER = 1 << 22,\n RUBY_TEXT_CONTAINER = 1 << 23,\n CONTENTS = 1 << 24,\n INLINE_BLOCK = 1 << 25,\n INLINE_LIST_ITEM = 1 << 26,\n INLINE_TABLE = 1 << 27,\n INLINE_FLEX = 1 << 28,\n INLINE_GRID = 1 << 29\n}\n\nexport type Display = number;\n\nexport const display: IPropertyListDescriptor = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): Display => {\n return tokens.filter(isIdentToken).reduce((bit, token) => {\n return bit | parseDisplayValue(token.value);\n }, DISPLAY.NONE);\n }\n};\n\nconst parseDisplayValue = (display: string): Display => {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return DISPLAY.BLOCK;\n case 'inline':\n return DISPLAY.INLINE;\n case 'run-in':\n return DISPLAY.RUN_IN;\n case 'flow':\n return DISPLAY.FLOW;\n case 'flow-root':\n return DISPLAY.FLOW_ROOT;\n case 'table':\n return DISPLAY.TABLE;\n case 'flex':\n case '-webkit-flex':\n return DISPLAY.FLEX;\n case 'grid':\n case '-ms-grid':\n return DISPLAY.GRID;\n case 'ruby':\n return DISPLAY.RUBY;\n case 'subgrid':\n return DISPLAY.SUBGRID;\n case 'list-item':\n return DISPLAY.LIST_ITEM;\n case 'table-row-group':\n return DISPLAY.TABLE_ROW_GROUP;\n case 'table-header-group':\n return DISPLAY.TABLE_HEADER_GROUP;\n case 'table-footer-group':\n return DISPLAY.TABLE_FOOTER_GROUP;\n case 'table-row':\n return DISPLAY.TABLE_ROW;\n case 'table-cell':\n return DISPLAY.TABLE_CELL;\n case 'table-column-group':\n return DISPLAY.TABLE_COLUMN_GROUP;\n case 'table-column':\n return DISPLAY.TABLE_COLUMN;\n case 'table-caption':\n return DISPLAY.TABLE_CAPTION;\n case 'ruby-base':\n return DISPLAY.RUBY_BASE;\n case 'ruby-text':\n return DISPLAY.RUBY_TEXT;\n case 'ruby-base-container':\n return DISPLAY.RUBY_BASE_CONTAINER;\n case 'ruby-text-container':\n return DISPLAY.RUBY_TEXT_CONTAINER;\n case 'contents':\n return DISPLAY.CONTENTS;\n case 'inline-block':\n return DISPLAY.INLINE_BLOCK;\n case 'inline-list-item':\n return DISPLAY.INLINE_LIST_ITEM;\n case 'inline-table':\n return DISPLAY.INLINE_TABLE;\n case 'inline-flex':\n return DISPLAY.INLINE_FLEX;\n case 'inline-grid':\n return DISPLAY.INLINE_GRID;\n }\n\n return DISPLAY.NONE;\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FLOAT {\n NONE = 0,\n LEFT = 1,\n RIGHT = 2,\n INLINE_START = 3,\n INLINE_END = 4\n}\n\nexport const float: IPropertyIdentValueDescriptor = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, float: string) => {\n switch (float) {\n case 'left':\n return FLOAT.LEFT;\n case 'right':\n return FLOAT.RIGHT;\n case 'inline-start':\n return FLOAT.INLINE_START;\n case 'inline-end':\n return FLOAT.INLINE_END;\n }\n return FLOAT.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport const letterSpacing: IPropertyValueDescriptor = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'normal') {\n return 0;\n }\n\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.DIMENSION_TOKEN) {\n return token.number;\n }\n\n return 0;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum WORD_BREAK {\n NORMAL = 'normal',\n BREAK_ALL = 'break-all',\n KEEP_ALL = 'keep-all'\n}\n\nexport const wordBreak: IPropertyIdentValueDescriptor = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, wordBreak: string): WORD_BREAK => {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {getAbsoluteValue, isLengthPercentage} from '../types/length-percentage';\nexport const lineHeight: IPropertyTokenValueDescriptor = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n};\n\nexport const computeLineHeight = (token: CSSValue, fontSize: number): number => {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n } else if (token.type === TokenType.NUMBER_TOKEN) {\n return fontSize * token.number;\n } else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n\n return fontSize;\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image} from '../types/image';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const listStyleImage: IPropertyValueDescriptor = {\n name: 'list-style-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n return image.parse(context, token);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_POSITION {\n INSIDE = 0,\n OUTSIDE = 1\n}\n\nexport const listStylePosition: IPropertyIdentValueDescriptor = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'inside':\n return LIST_STYLE_POSITION.INSIDE;\n case 'outside':\n default:\n return LIST_STYLE_POSITION.OUTSIDE;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_TYPE {\n NONE = -1,\n DISC = 0,\n CIRCLE = 1,\n SQUARE = 2,\n DECIMAL = 3,\n CJK_DECIMAL = 4,\n DECIMAL_LEADING_ZERO = 5,\n LOWER_ROMAN = 6,\n UPPER_ROMAN = 7,\n LOWER_GREEK = 8,\n LOWER_ALPHA = 9,\n UPPER_ALPHA = 10,\n ARABIC_INDIC = 11,\n ARMENIAN = 12,\n BENGALI = 13,\n CAMBODIAN = 14,\n CJK_EARTHLY_BRANCH = 15,\n CJK_HEAVENLY_STEM = 16,\n CJK_IDEOGRAPHIC = 17,\n DEVANAGARI = 18,\n ETHIOPIC_NUMERIC = 19,\n GEORGIAN = 20,\n GUJARATI = 21,\n GURMUKHI = 22,\n HEBREW = 22,\n HIRAGANA = 23,\n HIRAGANA_IROHA = 24,\n JAPANESE_FORMAL = 25,\n JAPANESE_INFORMAL = 26,\n KANNADA = 27,\n KATAKANA = 28,\n KATAKANA_IROHA = 29,\n KHMER = 30,\n KOREAN_HANGUL_FORMAL = 31,\n KOREAN_HANJA_FORMAL = 32,\n KOREAN_HANJA_INFORMAL = 33,\n LAO = 34,\n LOWER_ARMENIAN = 35,\n MALAYALAM = 36,\n MONGOLIAN = 37,\n MYANMAR = 38,\n ORIYA = 39,\n PERSIAN = 40,\n SIMP_CHINESE_FORMAL = 41,\n SIMP_CHINESE_INFORMAL = 42,\n TAMIL = 43,\n TELUGU = 44,\n THAI = 45,\n TIBETAN = 46,\n TRAD_CHINESE_FORMAL = 47,\n TRAD_CHINESE_INFORMAL = 48,\n UPPER_ARMENIAN = 49,\n DISCLOSURE_OPEN = 50,\n DISCLOSURE_CLOSED = 51\n}\n\nexport const listStyleType: IPropertyIdentValueDescriptor = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, type: string) => {\n switch (type) {\n case 'disc':\n return LIST_STYLE_TYPE.DISC;\n case 'circle':\n return LIST_STYLE_TYPE.CIRCLE;\n case 'square':\n return LIST_STYLE_TYPE.SQUARE;\n case 'decimal':\n return LIST_STYLE_TYPE.DECIMAL;\n case 'cjk-decimal':\n return LIST_STYLE_TYPE.CJK_DECIMAL;\n case 'decimal-leading-zero':\n return LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO;\n case 'lower-roman':\n return LIST_STYLE_TYPE.LOWER_ROMAN;\n case 'upper-roman':\n return LIST_STYLE_TYPE.UPPER_ROMAN;\n case 'lower-greek':\n return LIST_STYLE_TYPE.LOWER_GREEK;\n case 'lower-alpha':\n return LIST_STYLE_TYPE.LOWER_ALPHA;\n case 'upper-alpha':\n return LIST_STYLE_TYPE.UPPER_ALPHA;\n case 'arabic-indic':\n return LIST_STYLE_TYPE.ARABIC_INDIC;\n case 'armenian':\n return LIST_STYLE_TYPE.ARMENIAN;\n case 'bengali':\n return LIST_STYLE_TYPE.BENGALI;\n case 'cambodian':\n return LIST_STYLE_TYPE.CAMBODIAN;\n case 'cjk-earthly-branch':\n return LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH;\n case 'cjk-heavenly-stem':\n return LIST_STYLE_TYPE.CJK_HEAVENLY_STEM;\n case 'cjk-ideographic':\n return LIST_STYLE_TYPE.CJK_IDEOGRAPHIC;\n case 'devanagari':\n return LIST_STYLE_TYPE.DEVANAGARI;\n case 'ethiopic-numeric':\n return LIST_STYLE_TYPE.ETHIOPIC_NUMERIC;\n case 'georgian':\n return LIST_STYLE_TYPE.GEORGIAN;\n case 'gujarati':\n return LIST_STYLE_TYPE.GUJARATI;\n case 'gurmukhi':\n return LIST_STYLE_TYPE.GURMUKHI;\n case 'hebrew':\n return LIST_STYLE_TYPE.HEBREW;\n case 'hiragana':\n return LIST_STYLE_TYPE.HIRAGANA;\n case 'hiragana-iroha':\n return LIST_STYLE_TYPE.HIRAGANA_IROHA;\n case 'japanese-formal':\n return LIST_STYLE_TYPE.JAPANESE_FORMAL;\n case 'japanese-informal':\n return LIST_STYLE_TYPE.JAPANESE_INFORMAL;\n case 'kannada':\n return LIST_STYLE_TYPE.KANNADA;\n case 'katakana':\n return LIST_STYLE_TYPE.KATAKANA;\n case 'katakana-iroha':\n return LIST_STYLE_TYPE.KATAKANA_IROHA;\n case 'khmer':\n return LIST_STYLE_TYPE.KHMER;\n case 'korean-hangul-formal':\n return LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL;\n case 'korean-hanja-formal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL;\n case 'korean-hanja-informal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL;\n case 'lao':\n return LIST_STYLE_TYPE.LAO;\n case 'lower-armenian':\n return LIST_STYLE_TYPE.LOWER_ARMENIAN;\n case 'malayalam':\n return LIST_STYLE_TYPE.MALAYALAM;\n case 'mongolian':\n return LIST_STYLE_TYPE.MONGOLIAN;\n case 'myanmar':\n return LIST_STYLE_TYPE.MYANMAR;\n case 'oriya':\n return LIST_STYLE_TYPE.ORIYA;\n case 'persian':\n return LIST_STYLE_TYPE.PERSIAN;\n case 'simp-chinese-formal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL;\n case 'simp-chinese-informal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL;\n case 'tamil':\n return LIST_STYLE_TYPE.TAMIL;\n case 'telugu':\n return LIST_STYLE_TYPE.TELUGU;\n case 'thai':\n return LIST_STYLE_TYPE.THAI;\n case 'tibetan':\n return LIST_STYLE_TYPE.TIBETAN;\n case 'trad-chinese-formal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL;\n case 'trad-chinese-informal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL;\n case 'upper-armenian':\n return LIST_STYLE_TYPE.UPPER_ARMENIAN;\n case 'disclosure-open':\n return LIST_STYLE_TYPE.DISCLOSURE_OPEN;\n case 'disclosure-closed':\n return LIST_STYLE_TYPE.DISCLOSURE_CLOSED;\n case 'none':\n default:\n return LIST_STYLE_TYPE.NONE;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst marginForSide = (side: string): IPropertyTokenValueDescriptor => ({\n name: `margin-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n});\n\nexport const marginTop: IPropertyTokenValueDescriptor = marginForSide('top');\nexport const marginRight: IPropertyTokenValueDescriptor = marginForSide('right');\nexport const marginBottom: IPropertyTokenValueDescriptor = marginForSide('bottom');\nexport const marginLeft: IPropertyTokenValueDescriptor = marginForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW {\n VISIBLE = 0,\n HIDDEN = 1,\n SCROLL = 2,\n CLIP = 3,\n AUTO = 4\n}\n\nexport const overflow: IPropertyListDescriptor = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): OVERFLOW[] => {\n return tokens.filter(isIdentToken).map((overflow) => {\n switch (overflow.value) {\n case 'hidden':\n return OVERFLOW.HIDDEN;\n case 'scroll':\n return OVERFLOW.SCROLL;\n case 'clip':\n return OVERFLOW.CLIP;\n case 'auto':\n return OVERFLOW.AUTO;\n case 'visible':\n default:\n return OVERFLOW.VISIBLE;\n }\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW_WRAP {\n NORMAL = 'normal',\n BREAK_WORD = 'break-word'\n}\n\nexport const overflowWrap: IPropertyIdentValueDescriptor = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'break-word':\n return OVERFLOW_WRAP.BREAK_WORD;\n case 'normal':\n default:\n return OVERFLOW_WRAP.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst paddingForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `padding-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length-percentage'\n});\n\nexport const paddingTop: IPropertyTypeValueDescriptor = paddingForSide('top');\nexport const paddingRight: IPropertyTypeValueDescriptor = paddingForSide('right');\nexport const paddingBottom: IPropertyTypeValueDescriptor = paddingForSide('bottom');\nexport const paddingLeft: IPropertyTypeValueDescriptor = paddingForSide('left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_ALIGN {\n LEFT = 0,\n CENTER = 1,\n RIGHT = 2\n}\n\nexport const textAlign: IPropertyIdentValueDescriptor = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textAlign: string) => {\n switch (textAlign) {\n case 'right':\n return TEXT_ALIGN.RIGHT;\n case 'center':\n case 'justify':\n return TEXT_ALIGN.CENTER;\n case 'left':\n default:\n return TEXT_ALIGN.LEFT;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum POSITION {\n STATIC = 0,\n RELATIVE = 1,\n ABSOLUTE = 2,\n FIXED = 3,\n STICKY = 4\n}\n\nexport const position: IPropertyIdentValueDescriptor = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'relative':\n return POSITION.RELATIVE;\n case 'absolute':\n return POSITION.ABSOLUTE;\n case 'fixed':\n return POSITION.FIXED;\n case 'sticky':\n return POSITION.STICKY;\n }\n\n return POSITION.STATIC;\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color, COLORS} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type TextShadow = TextShadowItem[];\ninterface TextShadowItem {\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n}\n\nexport const textShadow: IPropertyListDescriptor = {\n name: 'text-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): TextShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: TextShadowItem = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else {\n shadow.blur = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_TRANSFORM {\n NONE = 0,\n LOWERCASE = 1,\n UPPERCASE = 2,\n CAPITALIZE = 3\n}\n\nexport const textTransform: IPropertyIdentValueDescriptor = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textTransform: string) => {\n switch (textTransform) {\n case 'uppercase':\n return TEXT_TRANSFORM.UPPERCASE;\n case 'lowercase':\n return TEXT_TRANSFORM.LOWERCASE;\n case 'capitalize':\n return TEXT_TRANSFORM.CAPITALIZE;\n }\n\n return TEXT_TRANSFORM.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type Matrix = [number, number, number, number, number, number];\nexport type Transform = Matrix | null;\n\nexport const transform: IPropertyValueDescriptor = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n if (token.type === TokenType.FUNCTION) {\n const transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported transform function \"${token.name}\"`);\n }\n return transformFunction(token.values);\n }\n\n return null;\n }\n};\n\nconst matrix = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n return values.length === 6 ? (values as Matrix) : null;\n};\n\n// doesn't support 3D transforms at the moment\nconst matrix3d = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n const [a1, b1, {}, {}, a2, b2, {}, {}, {}, {}, {}, {}, a4, b4, {}, {}] = values;\n\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n};\n\nconst SUPPORTED_TRANSFORM_FUNCTIONS: {\n [key: string]: (args: CSSValue[]) => Transform;\n} = {\n matrix: matrix,\n matrix3d: matrix3d\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {FLAG_INTEGER, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type TransformOrigin = [LengthPercentage, LengthPercentage];\n\nconst DEFAULT_VALUE: LengthPercentage = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\nconst DEFAULT: TransformOrigin = [DEFAULT_VALUE, DEFAULT_VALUE];\n\nexport const transformOrigin: IPropertyListDescriptor = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const origins: LengthPercentage[] = tokens.filter(isLengthPercentage);\n\n if (origins.length !== 2) {\n return DEFAULT;\n }\n\n return [origins[0], origins[1]];\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum VISIBILITY {\n VISIBLE = 0,\n HIDDEN = 1,\n COLLAPSE = 2\n}\n\nexport const visibility: IPropertyIdentValueDescriptor = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, visibility: string) => {\n switch (visibility) {\n case 'hidden':\n return VISIBILITY.HIDDEN;\n case 'collapse':\n return VISIBILITY.COLLAPSE;\n case 'visible':\n default:\n return VISIBILITY.VISIBLE;\n }\n }\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\ninterface zIndex {\n order: number;\n auto: boolean;\n}\n\nexport const zIndex: IPropertyValueDescriptor = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue): zIndex => {\n if (token.type === TokenType.IDENT_TOKEN) {\n return {auto: true, order: 0};\n }\n\n if (isNumberToken(token)) {\n return {auto: false, order: token.number};\n }\n\n throw new Error(`Invalid z-index number parsed`);\n }\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {Context} from '../../core/context';\n\nexport const time: ITypeDescriptor = {\n name: 'time',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n\n throw new Error(`Unsupported time type`);\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const opacity: IPropertyValueDescriptor = {\n name: 'opacity',\n initialValue: '1',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const textDecorationColor: IPropertyTypeValueDescriptor = {\n name: `text-decoration-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum TEXT_DECORATION_LINE {\n NONE = 0,\n UNDERLINE = 1,\n OVERLINE = 2,\n LINE_THROUGH = 3,\n BLINK = 4\n}\n\nexport type TextDecorationLine = TEXT_DECORATION_LINE[];\n\nexport const textDecorationLine: IPropertyListDescriptor = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): TextDecorationLine => {\n return tokens\n .filter(isIdentToken)\n .map((token) => {\n switch (token.value) {\n case 'underline':\n return TEXT_DECORATION_LINE.UNDERLINE;\n case 'overline':\n return TEXT_DECORATION_LINE.OVERLINE;\n case 'line-through':\n return TEXT_DECORATION_LINE.LINE_THROUGH;\n case 'none':\n return TEXT_DECORATION_LINE.BLINK;\n }\n return TEXT_DECORATION_LINE.NONE;\n })\n .filter((line) => line !== TEXT_DECORATION_LINE.NONE);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport type FONT_FAMILY = string;\n\nexport type FontFamily = FONT_FAMILY[];\n\nexport const fontFamily: IPropertyListDescriptor = {\n name: `font-family`,\n initialValue: '',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const accumulator: string[] = [];\n const results: string[] = [];\n tokens.forEach((token) => {\n switch (token.type) {\n case TokenType.IDENT_TOKEN:\n case TokenType.STRING_TOKEN:\n accumulator.push(token.value);\n break;\n case TokenType.NUMBER_TOKEN:\n accumulator.push(token.number.toString());\n break;\n case TokenType.COMMA_TOKEN:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map((result) => (result.indexOf(' ') === -1 ? result : `'${result}'`));\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const fontSize: IPropertyTypeValueDescriptor = {\n name: `font-size`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length'\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontWeight: IPropertyValueDescriptor = {\n name: 'font-weight',\n initialValue: 'normal',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n\n return 400;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontVariant: IPropertyListDescriptor = {\n name: 'font-variant',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): string[] => {\n return tokens.filter(isIdentToken).map((token) => token.value);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FONT_STYLE {\n NORMAL = 'normal',\n ITALIC = 'italic',\n OBLIQUE = 'oblique'\n}\n\nexport const fontStyle: IPropertyIdentValueDescriptor = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'oblique':\n return FONT_STYLE.OBLIQUE;\n case 'italic':\n return FONT_STYLE.ITALIC;\n case 'normal':\n default:\n return FONT_STYLE.NORMAL;\n }\n }\n};\n","export const contains = (bit: number, value: number): boolean => (bit & value) !== 0;\n","import {TokenType} from '../syntax/tokenizer';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport type Content = CSSValue[];\n\nexport const content: IPropertyListDescriptor = {\n name: 'content',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_INCREMENT {\n counter: string;\n increment: number;\n}\n\nexport type CounterIncrement = COUNTER_INCREMENT[] | null;\n\nexport const counterIncrement: IPropertyListDescriptor = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const increments = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (counter.type === TokenType.IDENT_TOKEN) {\n const increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({counter: counter.value, increment});\n }\n }\n\n return increments;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_RESET {\n counter: string;\n reset: number;\n}\n\nexport type CounterReset = COUNTER_RESET[];\n\nexport const counterReset: IPropertyListDescriptor = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const resets = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n const reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({counter: counter.value, reset});\n }\n }\n\n return resets;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {time} from '../types/time';\n\nexport const duration: IPropertyListDescriptor = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (context: Context, tokens: CSSValue[]) => {\n return tokens.filter(isDimensionToken).map((token) => time.parse(context, token));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isStringToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface QUOTE {\n open: string;\n close: string;\n}\n\nexport type Quotes = QUOTE[] | null;\n\nexport const quotes: IPropertyListDescriptor = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const quotes = [];\n const filtered = tokens.filter(isStringToken);\n\n if (filtered.length % 2 !== 0) {\n return null;\n }\n\n for (let i = 0; i < filtered.length; i += 2) {\n const open = filtered[i].value;\n const close = filtered[i + 1].value;\n quotes.push({open, close});\n }\n\n return quotes;\n }\n};\n\nexport const getQuote = (quotes: Quotes, depth: number, open: boolean): string => {\n if (!quotes) {\n return '';\n }\n\n const quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n\n return open ? quote.open : quote.close;\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type BoxShadow = BoxShadowItem[];\ninterface BoxShadowItem {\n inset: boolean;\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n spread: Length;\n}\n\nexport const boxShadow: IPropertyListDescriptor = {\n name: 'box-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): BoxShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: BoxShadowItem = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n } else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else if (c === 2) {\n shadow.blur = token;\n } else {\n shadow.spread = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum PAINT_ORDER_LAYER {\n FILL,\n STROKE,\n MARKERS\n}\n\nexport type PaintOrder = PAINT_ORDER_LAYER[];\n\nexport const paintOrder: IPropertyListDescriptor = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): PaintOrder => {\n const DEFAULT_VALUE = [PAINT_ORDER_LAYER.FILL, PAINT_ORDER_LAYER.STROKE, PAINT_ORDER_LAYER.MARKERS];\n const layers: PaintOrder = [];\n\n tokens.filter(isIdentToken).forEach((token) => {\n switch (token.value) {\n case 'stroke':\n layers.push(PAINT_ORDER_LAYER.STROKE);\n break;\n case 'fill':\n layers.push(PAINT_ORDER_LAYER.FILL);\n break;\n case 'markers':\n layers.push(PAINT_ORDER_LAYER.MARKERS);\n break;\n }\n });\n DEFAULT_VALUE.forEach((value) => {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n\n return layers;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nexport const webkitTextStrokeColor: IPropertyTypeValueDescriptor = {\n name: `-webkit-text-stroke-color`,\n initialValue: 'currentcolor',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const webkitTextStrokeWidth: IPropertyValueDescriptor = {\n name: `-webkit-text-stroke-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n};\n","import {CSSPropertyDescriptor, PropertyDescriptorParsingType} from './IPropertyDescriptor';\nimport {backgroundClip} from './property-descriptors/background-clip';\nimport {backgroundColor} from './property-descriptors/background-color';\nimport {backgroundImage} from './property-descriptors/background-image';\nimport {backgroundOrigin} from './property-descriptors/background-origin';\nimport {backgroundPosition} from './property-descriptors/background-position';\nimport {backgroundRepeat} from './property-descriptors/background-repeat';\nimport {backgroundSize} from './property-descriptors/background-size';\nimport {\n borderBottomColor,\n borderLeftColor,\n borderRightColor,\n borderTopColor\n} from './property-descriptors/border-color';\nimport {\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderTopLeftRadius,\n borderTopRightRadius\n} from './property-descriptors/border-radius';\nimport {\n borderBottomStyle,\n borderLeftStyle,\n borderRightStyle,\n borderTopStyle\n} from './property-descriptors/border-style';\nimport {\n borderBottomWidth,\n borderLeftWidth,\n borderRightWidth,\n borderTopWidth\n} from './property-descriptors/border-width';\nimport {color} from './property-descriptors/color';\nimport {direction} from './property-descriptors/direction';\nimport {display, DISPLAY} from './property-descriptors/display';\nimport {float, FLOAT} from './property-descriptors/float';\nimport {letterSpacing} from './property-descriptors/letter-spacing';\nimport {lineBreak} from './property-descriptors/line-break';\nimport {lineHeight} from './property-descriptors/line-height';\nimport {listStyleImage} from './property-descriptors/list-style-image';\nimport {listStylePosition} from './property-descriptors/list-style-position';\nimport {listStyleType} from './property-descriptors/list-style-type';\nimport {marginBottom, marginLeft, marginRight, marginTop} from './property-descriptors/margin';\nimport {overflow, OVERFLOW} from './property-descriptors/overflow';\nimport {overflowWrap} from './property-descriptors/overflow-wrap';\nimport {paddingBottom, paddingLeft, paddingRight, paddingTop} from './property-descriptors/padding';\nimport {textAlign} from './property-descriptors/text-align';\nimport {position, POSITION} from './property-descriptors/position';\nimport {textShadow} from './property-descriptors/text-shadow';\nimport {textTransform} from './property-descriptors/text-transform';\nimport {transform} from './property-descriptors/transform';\nimport {transformOrigin} from './property-descriptors/transform-origin';\nimport {visibility, VISIBILITY} from './property-descriptors/visibility';\nimport {wordBreak} from './property-descriptors/word-break';\nimport {zIndex} from './property-descriptors/z-index';\nimport {CSSValue, isIdentToken, Parser} from './syntax/parser';\nimport {Tokenizer} from './syntax/tokenizer';\nimport {Color, color as colorType, isTransparent} from './types/color';\nimport {angle} from './types/angle';\nimport {image} from './types/image';\nimport {time} from './types/time';\nimport {opacity} from './property-descriptors/opacity';\nimport {textDecorationColor} from './property-descriptors/text-decoration-color';\nimport {textDecorationLine} from './property-descriptors/text-decoration-line';\nimport {isLengthPercentage, LengthPercentage, ZERO_LENGTH} from './types/length-percentage';\nimport {fontFamily} from './property-descriptors/font-family';\nimport {fontSize} from './property-descriptors/font-size';\nimport {isLength} from './types/length';\nimport {fontWeight} from './property-descriptors/font-weight';\nimport {fontVariant} from './property-descriptors/font-variant';\nimport {fontStyle} from './property-descriptors/font-style';\nimport {contains} from '../core/bitwise';\nimport {content} from './property-descriptors/content';\nimport {counterIncrement} from './property-descriptors/counter-increment';\nimport {counterReset} from './property-descriptors/counter-reset';\nimport {duration} from './property-descriptors/duration';\nimport {quotes} from './property-descriptors/quotes';\nimport {boxShadow} from './property-descriptors/box-shadow';\nimport {paintOrder} from './property-descriptors/paint-order';\nimport {webkitTextStrokeColor} from './property-descriptors/webkit-text-stroke-color';\nimport {webkitTextStrokeWidth} from './property-descriptors/webkit-text-stroke-width';\nimport {Context} from '../core/context';\n\nexport class CSSParsedDeclaration {\n animationDuration: ReturnType;\n backgroundClip: ReturnType;\n backgroundColor: Color;\n backgroundImage: ReturnType;\n backgroundOrigin: ReturnType;\n backgroundPosition: ReturnType;\n backgroundRepeat: ReturnType;\n backgroundSize: ReturnType;\n borderTopColor: Color;\n borderRightColor: Color;\n borderBottomColor: Color;\n borderLeftColor: Color;\n borderTopLeftRadius: ReturnType;\n borderTopRightRadius: ReturnType;\n borderBottomRightRadius: ReturnType;\n borderBottomLeftRadius: ReturnType;\n borderTopStyle: ReturnType;\n borderRightStyle: ReturnType;\n borderBottomStyle: ReturnType;\n borderLeftStyle: ReturnType;\n borderTopWidth: ReturnType;\n borderRightWidth: ReturnType;\n borderBottomWidth: ReturnType;\n borderLeftWidth: ReturnType;\n boxShadow: ReturnType;\n color: Color;\n direction: ReturnType;\n display: ReturnType;\n float: ReturnType;\n fontFamily: ReturnType;\n fontSize: LengthPercentage;\n fontStyle: ReturnType;\n fontVariant: ReturnType;\n fontWeight: ReturnType;\n letterSpacing: ReturnType;\n lineBreak: ReturnType;\n lineHeight: CSSValue;\n listStyleImage: ReturnType;\n listStylePosition: ReturnType;\n listStyleType: ReturnType;\n marginTop: CSSValue;\n marginRight: CSSValue;\n marginBottom: CSSValue;\n marginLeft: CSSValue;\n opacity: ReturnType;\n overflowX: OVERFLOW;\n overflowY: OVERFLOW;\n overflowWrap: ReturnType;\n paddingTop: LengthPercentage;\n paddingRight: LengthPercentage;\n paddingBottom: LengthPercentage;\n paddingLeft: LengthPercentage;\n paintOrder: ReturnType;\n position: ReturnType;\n textAlign: ReturnType;\n textDecorationColor: Color;\n textDecorationLine: ReturnType;\n textShadow: ReturnType;\n textTransform: ReturnType;\n transform: ReturnType;\n transformOrigin: ReturnType;\n visibility: ReturnType;\n webkitTextStrokeColor: Color;\n webkitTextStrokeWidth: ReturnType;\n wordBreak: ReturnType;\n zIndex: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n const overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(\n context,\n textDecorationColor,\n declaration.textDecorationColor ?? declaration.color\n );\n this.textDecorationLine = parse(\n context,\n textDecorationLine,\n declaration.textDecorationLine ?? declaration.textDecoration\n );\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n\n isVisible(): boolean {\n return this.display > 0 && this.opacity > 0 && this.visibility === VISIBILITY.VISIBLE;\n }\n\n isTransparent(): boolean {\n return isTransparent(this.backgroundColor);\n }\n\n isTransformed(): boolean {\n return this.transform !== null;\n }\n\n isPositioned(): boolean {\n return this.position !== POSITION.STATIC;\n }\n\n isPositionedWithZIndex(): boolean {\n return this.isPositioned() && !this.zIndex.auto;\n }\n\n isFloating(): boolean {\n return this.float !== FLOAT.NONE;\n }\n\n isInlineLevel(): boolean {\n return (\n contains(this.display, DISPLAY.INLINE) ||\n contains(this.display, DISPLAY.INLINE_BLOCK) ||\n contains(this.display, DISPLAY.INLINE_FLEX) ||\n contains(this.display, DISPLAY.INLINE_GRID) ||\n contains(this.display, DISPLAY.INLINE_LIST_ITEM) ||\n contains(this.display, DISPLAY.INLINE_TABLE)\n );\n }\n}\n\nexport class CSSParsedPseudoDeclaration {\n content: ReturnType;\n quotes: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n}\n\nexport class CSSParsedCounterDeclaration {\n counterIncrement: ReturnType;\n counterReset: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst parse = (context: Context, descriptor: CSSPropertyDescriptor, style?: string | null) => {\n const tokenizer = new Tokenizer();\n const value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n const parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case PropertyDescriptorParsingType.IDENT_VALUE:\n const token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case PropertyDescriptorParsingType.VALUE:\n return descriptor.parse(context, parser.parseComponentValue());\n case PropertyDescriptorParsingType.LIST:\n return descriptor.parse(context, parser.parseComponentValues());\n case PropertyDescriptorParsingType.TOKEN_VALUE:\n return parser.parseComponentValue();\n case PropertyDescriptorParsingType.TYPE_VALUE:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return colorType.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n const length = parser.parseComponentValue();\n return isLength(length) ? length : ZERO_LENGTH;\n case 'length-percentage':\n const value = parser.parseComponentValue();\n return isLengthPercentage(value) ? value : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n};\n","const elementDebuggerAttribute = 'data-html2canvas-debug';\nexport const enum DebuggerType {\n NONE,\n ALL,\n CLONE,\n PARSE,\n RENDER\n}\n\nconst getElementDebugType = (element: Element): DebuggerType => {\n const attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return DebuggerType.ALL;\n case 'clone':\n return DebuggerType.CLONE;\n case 'parse':\n return DebuggerType.PARSE;\n case 'render':\n return DebuggerType.RENDER;\n default:\n return DebuggerType.NONE;\n }\n};\n\nexport const isDebugging = (element: Element, type: Omit): boolean => {\n const elementType = getElementDebugType(element);\n return elementType === DebuggerType.ALL || type === elementType;\n};\n","import {CSSParsedDeclaration} from '../css/index';\nimport {TextContainer} from './text-container';\nimport {Bounds, parseBounds} from '../css/layout/bounds';\nimport {isHTMLElementNode} from './node-parser';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport const enum FLAGS {\n CREATES_STACKING_CONTEXT = 1 << 1,\n CREATES_REAL_STACKING_CONTEXT = 1 << 2,\n IS_LIST_OWNER = 1 << 3,\n DEBUG_RENDER = 1 << 4\n}\n\nexport class ElementContainer {\n readonly styles: CSSParsedDeclaration;\n readonly textNodes: TextContainer[] = [];\n readonly elements: ElementContainer[] = [];\n bounds: Bounds;\n flags = 0;\n\n constructor(protected readonly context: Context, element: Element) {\n if (isDebugging(element, DebuggerType.PARSE)) {\n debugger;\n }\n\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some((duration) => duration > 0)) {\n element.style.animationDuration = '0s';\n }\n\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n\n this.bounds = parseBounds(this.context, element);\n\n if (isDebugging(element, DebuggerType.RENDER)) {\n this.flags |= FLAGS.DEBUG_RENDER;\n }\n }\n}\n","export const base64 =\n 'AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=';\nexport const byteLength = 19616;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","import {base64, byteLength} from './grapheme-break-trie';\nimport {createTrieFromBase64} from 'utrie';\n\nconst Other = 0;\nconst Prepend = 1;\nconst CR = 2;\nconst LF = 3;\nconst Control = 4;\nconst Extend = 5;\nconst Regional_Indicator = 6;\nconst SpacingMark = 7;\nconst L = 8;\nconst V = 9;\nconst T = 10;\nconst LV = 11;\nconst LVT = 12;\nconst ZWJ = 13;\nconst Extended_Pictographic = 14;\nconst RI = 15;\n\nexport const classes: {[key: string]: number} = {\n Other,\n Prepend,\n CR,\n LF,\n Control,\n Extend,\n Regional_Indicator,\n SpacingMark,\n L,\n V,\n T,\n LV,\n LVT,\n ZWJ,\n Extended_Pictographic,\n RI,\n};\n\nexport const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED;\n\nexport const codePointToClass = (codePoint: number): number => UnicodeTrie.get(codePoint);\n\nconst _graphemeBreakAtIndex = (_codePoints: number[], classTypes: number[], index: number): BREAK_OPPORTUNITIES => {\n let prevIndex = index - 2;\n let prev = classTypes[prevIndex];\n const current = classTypes[index - 1];\n const next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n let countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const graphemeBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // GB1 Break at the start and end of text, unless the text is empty.\n if (index === 0) {\n return BREAK_ALLOWED;\n }\n\n // GB2\n if (index >= codePoints.length) {\n return BREAK_ALLOWED;\n }\n\n const classTypes = codePoints.map(codePointToClass);\n return _graphemeBreakAtIndex(codePoints, classTypes, index);\n};\n\nexport const GraphemeBreaker = (str: string) => {\n const codePoints = toCodePoints(str);\n const length = codePoints.length;\n let index = 0;\n let lastEnd = 0;\n const classTypes = codePoints.map(codePointToClass);\n\n return {\n next: () => {\n if (index >= length) {\n return {done: true, value: null};\n }\n\n let graphemeBreak = BREAK_NOT_ALLOWED;\n while (\n index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED\n ) {}\n\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n const value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n while (index < length) {}\n\n return {done: true, value: null};\n },\n };\n};\n\nexport const splitGraphemes = (str: string): string[] => {\n const breaker = GraphemeBreaker(str);\n\n const graphemes = [];\n let bk;\n\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n\n return graphemes;\n};\n","import {Bounds} from '../css/layout/bounds';\nimport {\n isBodyElement,\n isCanvasElement,\n isCustomElement,\n isElementNode,\n isHTMLElementNode,\n isIFrameElement,\n isImageElement,\n isScriptElement,\n isSelectElement,\n isSlotElement,\n isStyleElement,\n isSVGElementNode,\n isTextareaElement,\n isTextNode,\n isVideoElement\n} from './node-parser';\nimport {isIdentToken, nonFunctionArgSeparator} from '../css/syntax/parser';\nimport {TokenType} from '../css/syntax/tokenizer';\nimport {CounterState, createCounterText} from '../css/types/functions/counter';\nimport {LIST_STYLE_TYPE, listStyleType} from '../css/property-descriptors/list-style-type';\nimport {CSSParsedCounterDeclaration, CSSParsedPseudoDeclaration} from '../css/index';\nimport {getQuote} from '../css/property-descriptors/quotes';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport interface CloneOptions {\n ignoreElements?: (element: Element) => boolean;\n onclone?: (document: Document, element: HTMLElement) => void;\n allowTaint?: boolean;\n}\n\nexport interface WindowOptions {\n scrollX: number;\n scrollY: number;\n windowWidth: number;\n windowHeight: number;\n}\n\nexport type CloneConfigurations = CloneOptions & {\n inlineImages: boolean;\n copyStyles: boolean;\n};\n\nconst IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\n\nexport class DocumentCloner {\n private readonly scrolledElements: [Element, number, number][];\n private readonly referenceElement: HTMLElement;\n clonedReferenceElement?: HTMLElement;\n private readonly documentElement: HTMLElement;\n private readonly counters: CounterState;\n private quoteDepth: number;\n\n constructor(\n private readonly context: Context,\n element: HTMLElement,\n private readonly options: CloneConfigurations\n ) {\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false) as HTMLElement;\n }\n\n toIFrame(ownerDocument: Document, windowSize: Bounds): Promise {\n const iframe: HTMLIFrameElement = createIFrameContainer(ownerDocument, windowSize);\n\n if (!iframe.contentWindow) {\n return Promise.reject(`Unable to find iframe window`);\n }\n\n const scrollX = (ownerDocument.defaultView as Window).pageXOffset;\n const scrollY = (ownerDocument.defaultView as Window).pageYOffset;\n\n const cloneWindow = iframe.contentWindow;\n const documentClone: Document = cloneWindow.document;\n\n /* Chrome doesn't detect relative background-images assigned in inline \";\r\n var nW = globalObject.open();\r\n\r\n if (nW !== null) {\r\n nW.document.write(htmlForNewWindow);\r\n }\r\n return nW;\r\n } else {\r\n throw new Error(\r\n \"The option pdfobjectnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n case \"pdfjsnewwindow\":\r\n if (\r\n Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n ) {\r\n var pdfJsUrl = options.pdfJsUrl || \"examples/PDF.js/web/viewer.html\";\r\n var htmlForPDFjsNewWindow =\r\n \"\" +\r\n \"\" +\r\n '' +\r\n \"\";\r\n var dataURLNewWindow = globalObject.open();\r\n if (dataURLNewWindow !== null) {\r\n dataURLNewWindow.document.write(htmlForDataURLNewWindow);\r\n dataURLNewWindow.document.title = options.filename;\r\n }\r\n if (dataURLNewWindow || typeof safari === \"undefined\")\r\n return dataURLNewWindow;\r\n } else {\r\n throw new Error(\r\n \"The option dataurlnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n break;\r\n case \"datauri\":\r\n case \"dataurl\":\r\n return (globalObject.document.location.href = this.output(\r\n \"datauristring\",\r\n options\r\n ));\r\n default:\r\n return null;\r\n }\r\n }));\r\n\r\n /**\r\n * Used to see if a supplied hotfix was requested when the pdf instance was created.\r\n * @param {string} hotfixName - The name of the hotfix to check.\r\n * @returns {boolean}\r\n */\r\n var hasHotfix = function(hotfixName) {\r\n return (\r\n Array.isArray(hotfixes) === true && hotfixes.indexOf(hotfixName) > -1\r\n );\r\n };\r\n\r\n switch (unit) {\r\n case \"pt\":\r\n scaleFactor = 1;\r\n break;\r\n case \"mm\":\r\n scaleFactor = 72 / 25.4;\r\n break;\r\n case \"cm\":\r\n scaleFactor = 72 / 2.54;\r\n break;\r\n case \"in\":\r\n scaleFactor = 72;\r\n break;\r\n case \"px\":\r\n if (hasHotfix(\"px_scaling\") == true) {\r\n scaleFactor = 72 / 96;\r\n } else {\r\n scaleFactor = 96 / 72;\r\n }\r\n break;\r\n case \"pc\":\r\n scaleFactor = 12;\r\n break;\r\n case \"em\":\r\n scaleFactor = 12;\r\n break;\r\n case \"ex\":\r\n scaleFactor = 6;\r\n break;\r\n default:\r\n if (typeof unit === \"number\") {\r\n scaleFactor = unit;\r\n } else {\r\n throw new Error(\"Invalid unit: \" + unit);\r\n }\r\n }\r\n\r\n var encryption = null;\r\n setCreationDate();\r\n setFileId();\r\n\r\n var getEncryptor = function(objectId) {\r\n if (encryptionOptions !== null) {\r\n return encryption.encryptor(objectId, 0);\r\n }\r\n return function(data) {\r\n return data;\r\n };\r\n };\r\n\r\n //---------------------------------------\r\n // Public API\r\n\r\n var getPageInfo = (API.__private__.getPageInfo = API.getPageInfo = function(\r\n pageNumberOneBased\r\n ) {\r\n if (isNaN(pageNumberOneBased) || pageNumberOneBased % 1 !== 0) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");\r\n }\r\n var objId = pagesContext[pageNumberOneBased].objId;\r\n return {\r\n objId: objId,\r\n pageNumber: pageNumberOneBased,\r\n pageContext: pagesContext[pageNumberOneBased]\r\n };\r\n });\r\n\r\n var getPageInfoByObjId = (API.__private__.getPageInfoByObjId = function(\r\n objId\r\n ) {\r\n if (isNaN(objId) || objId % 1 !== 0) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");\r\n }\r\n for (var pageNumber in pagesContext) {\r\n if (pagesContext[pageNumber].objId === objId) {\r\n break;\r\n }\r\n }\r\n return getPageInfo(pageNumber);\r\n });\r\n\r\n var getCurrentPageInfo = (API.__private__.getCurrentPageInfo = API.getCurrentPageInfo = function() {\r\n return {\r\n objId: pagesContext[currentPage].objId,\r\n pageNumber: currentPage,\r\n pageContext: pagesContext[currentPage]\r\n };\r\n });\r\n\r\n /**\r\n * Adds (and transfers the focus to) new page to the PDF document.\r\n * @param format {String/Array} The format of the new page. Can be:
  • a0 - a10
  • b0 - b10
  • c0 - c10
  • dl
  • letter
  • government-letter
  • legal
  • junior-legal
  • ledger
  • tabloid
  • credit-card

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

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

    \n *

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

    \n *

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

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

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

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

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

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

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

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



    a c e

    b d f

    0 0 1

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

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

    In other words, the setTransform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.setTransform = function(a, b, c, d, e, f) {\r\n a = isNaN(a) ? 1 : a;\r\n b = isNaN(b) ? 0 : b;\r\n c = isNaN(c) ? 0 : c;\r\n d = isNaN(d) ? 1 : d;\r\n e = isNaN(e) ? 0 : e;\r\n f = isNaN(f) ? 0 : f;\r\n this.ctx.transform = new Matrix(a, b, c, d, e, f);\r\n };\r\n\r\n /**\r\n * Should only be used if pageWrapYEnabled is true\r\n *\r\n * @name setPageByYPosition\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns One-based Page Number\r\n */\r\n var setPageByYPosition = function(y) {\r\n if (this.pageWrapYEnabled) {\r\n this.lastBreak = 0;\r\n var manualBreaks = 0;\r\n var autoBreaks = 0;\r\n for (var i = 0; i < this.pageBreaks.length; i++) {\r\n if (y >= this.pageBreaks[i]) {\r\n manualBreaks++;\r\n if (this.lastBreak === 0) {\r\n autoBreaks++;\r\n }\r\n var spaceBetweenLastBreak = this.pageBreaks[i] - this.lastBreak;\r\n this.lastBreak = this.pageBreaks[i];\r\n var pagesSinceLastBreak = Math.floor(\r\n spaceBetweenLastBreak / this.pageWrapY\r\n );\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n }\r\n if (this.lastBreak === 0) {\r\n var pagesSinceLastBreak = Math.floor(y / this.pageWrapY) + 1;\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n return autoBreaks + manualBreaks;\r\n } else {\r\n return this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n }\r\n };\r\n\r\n var hasMargins = function() {\r\n return (\r\n this.margin[0] > 0 ||\r\n this.margin[1] > 0 ||\r\n this.margin[2] > 0 ||\r\n this.margin[3] > 0\r\n );\r\n };\r\n\r\n /**\r\n * Draws an image, canvas, or video onto the canvas\r\n *\r\n * @function\r\n * @param img {} Specifies the image, canvas, or video element to use\r\n * @param sx {Number} Optional. The x coordinate where to start clipping\r\n * @param sy {Number} Optional. The y coordinate where to start clipping\r\n * @param swidth {Number} Optional. The width of the clipped image\r\n * @param sheight {Number} Optional. The height of the clipped image\r\n * @param x {Number} The x coordinate where to place the image on the canvas\r\n * @param y {Number} The y coordinate where to place the image on the canvas\r\n * @param width {Number} Optional. The width of the image to use (stretch or reduce the image)\r\n * @param height {Number} Optional. The height of the image to use (stretch or reduce the image)\r\n */\r\n Context2D.prototype.drawImage = function(\r\n img,\r\n sx,\r\n sy,\r\n swidth,\r\n sheight,\r\n x,\r\n y,\r\n width,\r\n height\r\n ) {\r\n var imageProperties = this.pdf.getImageProperties(img);\r\n var factorX = 1;\r\n var factorY = 1;\r\n var isClip;\r\n\r\n var clipFactorX = 1;\r\n var clipFactorY = 1;\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width !== \"undefined\") {\r\n isClip = true;\r\n clipFactorX = width / swidth;\r\n clipFactorY = height / sheight;\r\n factorX = ((imageProperties.width / swidth) * width) / swidth;\r\n factorY = ((imageProperties.height / sheight) * height) / sheight;\r\n }\r\n\r\n //is sx and sy are set and x and y not, set x and y with values of sx and sy\r\n if (typeof x === \"undefined\") {\r\n x = sx;\r\n y = sy;\r\n sx = 0;\r\n sy = 0;\r\n }\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width === \"undefined\") {\r\n width = swidth;\r\n height = sheight;\r\n }\r\n if (typeof swidth === \"undefined\" && typeof width === \"undefined\") {\r\n width = imageProperties.width;\r\n height = imageProperties.height;\r\n }\r\n\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var angle = rad2deg(decomposedTransformationMatrix.rotate.shx);\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n var xRect = matrix.applyToRectangle(\r\n new Rectangle(\r\n x - sx * clipFactorX,\r\n y - sy * clipFactorY,\r\n swidth * factorX,\r\n sheight * factorY\r\n )\r\n );\r\n var pageArray = getPagesByPath.call(this, xRect);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var tmpRect = JSON.parse(JSON.stringify(xRect));\r\n tmpRect = pathPositionRedo(\r\n [tmpRect],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping = (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n tmpRect.x,\r\n tmpRect.y,\r\n tmpRect.w,\r\n tmpRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n xRect.x,\r\n xRect.y,\r\n xRect.w,\r\n xRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n }\r\n };\r\n\r\n var getPagesByPath = function(path, pageWrapX, pageWrapY) {\r\n var result = [];\r\n pageWrapX = pageWrapX || this.pdf.internal.pageSize.width;\r\n pageWrapY =\r\n pageWrapY ||\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var yOffset = this.posY + this.ctx.prevPageLastElemOffset;\r\n\r\n switch (path.type) {\r\n default:\r\n case \"mt\":\r\n case \"lt\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n break;\r\n case \"arc\":\r\n result.push(\r\n Math.floor((path.y + yOffset - path.radius) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor((path.y + yOffset + path.radius) / pageWrapY) + 1\r\n );\r\n break;\r\n case \"qct\":\r\n var rectOfQuadraticCurve = getQuadraticCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfQuadraticCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfQuadraticCurve.y + rectOfQuadraticCurve.h + yOffset) /\r\n pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"bct\":\r\n var rectOfBezierCurve = getBezierCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x2,\r\n path.y2,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfBezierCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfBezierCurve.y + rectOfBezierCurve.h + yOffset) / pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"rect\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n result.push(Math.floor((path.y + path.h + yOffset) / pageWrapY) + 1);\r\n }\r\n\r\n for (var i = 0; i < result.length; i += 1) {\r\n while (this.pdf.internal.getNumberOfPages() < result[i]) {\r\n addPage.call(this);\r\n }\r\n }\r\n return result;\r\n };\r\n\r\n var addPage = function() {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var font = this.font;\r\n var lineCap = this.lineCap;\r\n var lineWidth = this.lineWidth;\r\n var lineJoin = this.lineJoin;\r\n this.pdf.addPage();\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.font = font;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n };\r\n\r\n var pathPositionRedo = function(paths, x, y) {\r\n for (var i = 0; i < paths.length; i++) {\r\n switch (paths[i].type) {\r\n case \"bct\":\r\n paths[i].x2 += x;\r\n paths[i].y2 += y;\r\n case \"qct\":\r\n paths[i].x1 += x;\r\n paths[i].y1 += y;\r\n case \"mt\":\r\n case \"lt\":\r\n case \"arc\":\r\n default:\r\n paths[i].x += x;\r\n paths[i].y += y;\r\n }\r\n }\r\n return paths;\r\n };\r\n\r\n var sortPages = function(pages) {\r\n return pages.sort(function(a, b) {\r\n return a - b;\r\n });\r\n };\r\n\r\n var pathPreProcess = function(rule, isClip) {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var lineCap = this.lineCap;\r\n var oldLineWidth = this.lineWidth;\r\n var lineWidth = Math.abs(oldLineWidth * this.ctx.transform.scaleX);\r\n var lineJoin = this.lineJoin;\r\n\r\n var origPath = JSON.parse(JSON.stringify(this.path));\r\n var xPath = JSON.parse(JSON.stringify(this.path));\r\n var clipPath;\r\n var tmpPath;\r\n var pages = [];\r\n\r\n for (var i = 0; i < xPath.length; i++) {\r\n if (typeof xPath[i].x !== \"undefined\") {\r\n var page = getPagesByPath.call(this, xPath[i]);\r\n\r\n for (var ii = 0; ii < page.length; ii += 1) {\r\n if (pages.indexOf(page[ii]) === -1) {\r\n pages.push(page[ii]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var j = 0; j < pages.length; j++) {\r\n while (this.pdf.internal.getNumberOfPages() < pages[j]) {\r\n addPage.call(this);\r\n }\r\n }\r\n sortPages(pages);\r\n\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var k = min; k < max + 1; k++) {\r\n this.pdf.setPage(k);\r\n\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = k === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n k === 1 ? 0 : firstPageHeight + (k - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, rule, true);\r\n this.path = tmpPaths;\r\n }\r\n tmpPath = JSON.parse(JSON.stringify(origPath));\r\n this.path = pathPositionRedo(\r\n tmpPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n if (isClip === false || k === 0) {\r\n const needsClipping = (k > min || k < max) && hasMargins.call(this);\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n drawPaths.call(this, rule, isClip);\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n this.lineWidth = oldLineWidth;\r\n }\r\n } else {\r\n this.lineWidth = lineWidth;\r\n drawPaths.call(this, rule, isClip);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n this.path = origPath;\r\n };\r\n\r\n /**\r\n * Processes the paths\r\n *\r\n * @function\r\n * @param rule {String}\r\n * @param isClip {Boolean}\r\n * @private\r\n * @ignore\r\n */\r\n var drawPaths = function(rule, isClip) {\r\n if (rule === \"stroke\" && !isClip && isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n if (rule !== \"stroke\" && !isClip && isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var moves = [];\r\n\r\n //var alpha = (this.ctx.fillOpacity < 1) ? this.ctx.fillOpacity : this.ctx.globalAlpha;\r\n var delta;\r\n var xPath = this.path;\r\n for (var i = 0; i < xPath.length; i++) {\r\n var pt = xPath[i];\r\n\r\n switch (pt.type) {\r\n case \"begin\":\r\n moves.push({\r\n begin: true\r\n });\r\n break;\r\n\r\n case \"close\":\r\n moves.push({\r\n close: true\r\n });\r\n break;\r\n\r\n case \"mt\":\r\n moves.push({\r\n start: pt,\r\n deltas: [],\r\n abs: []\r\n });\r\n break;\r\n\r\n case \"lt\":\r\n var iii = moves.length;\r\n if (xPath[i - 1] && !isNaN(xPath[i - 1].x)) {\r\n delta = [pt.x - xPath[i - 1].x, pt.y - xPath[i - 1].y];\r\n if (iii > 0) {\r\n for (iii; iii >= 0; iii--) {\r\n if (\r\n moves[iii - 1].close !== true &&\r\n moves[iii - 1].begin !== true\r\n ) {\r\n moves[iii - 1].deltas.push(delta);\r\n moves[iii - 1].abs.push(pt);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case \"bct\":\r\n delta = [\r\n pt.x1 - xPath[i - 1].x,\r\n pt.y1 - xPath[i - 1].y,\r\n pt.x2 - xPath[i - 1].x,\r\n pt.y2 - xPath[i - 1].y,\r\n pt.x - xPath[i - 1].x,\r\n pt.y - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"qct\":\r\n var x1 = xPath[i - 1].x + (2.0 / 3.0) * (pt.x1 - xPath[i - 1].x);\r\n var y1 = xPath[i - 1].y + (2.0 / 3.0) * (pt.y1 - xPath[i - 1].y);\r\n var x2 = pt.x + (2.0 / 3.0) * (pt.x1 - pt.x);\r\n var y2 = pt.y + (2.0 / 3.0) * (pt.y1 - pt.y);\r\n var x3 = pt.x;\r\n var y3 = pt.y;\r\n delta = [\r\n x1 - xPath[i - 1].x,\r\n y1 - xPath[i - 1].y,\r\n x2 - xPath[i - 1].x,\r\n y2 - xPath[i - 1].y,\r\n x3 - xPath[i - 1].x,\r\n y3 - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"arc\":\r\n moves.push({\r\n deltas: [],\r\n abs: [],\r\n arc: true\r\n });\r\n\r\n if (Array.isArray(moves[moves.length - 1].abs)) {\r\n moves[moves.length - 1].abs.push(pt);\r\n }\r\n break;\r\n }\r\n }\r\n var style;\r\n if (!isClip) {\r\n if (rule === \"stroke\") {\r\n style = \"stroke\";\r\n } else {\r\n style = \"fill\";\r\n }\r\n } else {\r\n style = null;\r\n }\r\n\r\n var began = false;\r\n for (var k = 0; k < moves.length; k++) {\r\n if (moves[k].arc) {\r\n var arcs = moves[k].abs;\r\n\r\n for (var ii = 0; ii < arcs.length; ii++) {\r\n var arc = arcs[ii];\r\n\r\n if (arc.type === \"arc\") {\r\n drawArc.call(\r\n this,\r\n arc.x,\r\n arc.y,\r\n arc.radius,\r\n arc.startAngle,\r\n arc.endAngle,\r\n arc.counterclockwise,\r\n undefined,\r\n isClip,\r\n !began\r\n );\r\n } else {\r\n drawLine.call(this, arc.x, arc.y);\r\n }\r\n began = true;\r\n }\r\n } else if (moves[k].close === true) {\r\n this.pdf.internal.out(\"h\");\r\n began = false;\r\n } else if (moves[k].begin !== true) {\r\n var x = moves[k].start.x;\r\n var y = moves[k].start.y;\r\n drawLines.call(this, moves[k].deltas, x, y);\r\n began = true;\r\n }\r\n }\r\n\r\n if (style) {\r\n putStyle.call(this, style);\r\n }\r\n if (isClip) {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var getBaseline = function(y) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n switch (this.ctx.textBaseline) {\r\n case \"bottom\":\r\n return y - descent;\r\n case \"top\":\r\n return y + height - descent;\r\n case \"hanging\":\r\n return y + height - 2 * descent;\r\n case \"middle\":\r\n return y + height / 2 - descent;\r\n case \"ideographic\":\r\n // TODO not implemented\r\n return y;\r\n case \"alphabetic\":\r\n default:\r\n return y;\r\n }\r\n };\r\n\r\n var getTextBottom = function(yBaseLine) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n return yBaseLine + descent;\r\n };\r\n\r\n Context2D.prototype.createLinearGradient = function createLinearGradient() {\r\n var canvasGradient = function canvasGradient() {};\r\n\r\n canvasGradient.colorStops = [];\r\n canvasGradient.addColorStop = function(offset, color) {\r\n this.colorStops.push([offset, color]);\r\n };\r\n\r\n canvasGradient.getColor = function() {\r\n if (this.colorStops.length === 0) {\r\n return \"#000000\";\r\n }\r\n\r\n return this.colorStops[0][1];\r\n };\r\n\r\n canvasGradient.isCanvasGradient = true;\r\n return canvasGradient;\r\n };\r\n Context2D.prototype.createPattern = function createPattern() {\r\n return this.createLinearGradient();\r\n };\r\n Context2D.prototype.createRadialGradient = function createRadialGradient() {\r\n return this.createLinearGradient();\r\n };\r\n\r\n /**\r\n *\r\n * @param x Edge point X\r\n * @param y Edge point Y\r\n * @param r Radius\r\n * @param a1 start angle\r\n * @param a2 end angle\r\n * @param counterclockwise\r\n * @param style\r\n * @param isClip\r\n */\r\n var drawArc = function(\r\n x,\r\n y,\r\n r,\r\n a1,\r\n a2,\r\n counterclockwise,\r\n style,\r\n isClip,\r\n includeMove\r\n ) {\r\n // http://hansmuller-flex.blogspot.com/2011/10/more-about-approximating-circular-arcs.html\r\n var curves = createArc.call(this, r, a1, a2, counterclockwise);\r\n\r\n for (var i = 0; i < curves.length; i++) {\r\n var curve = curves[i];\r\n if (i === 0) {\r\n if (includeMove) {\r\n doMove.call(this, curve.x1 + x, curve.y1 + y);\r\n } else {\r\n drawLine.call(this, curve.x1 + x, curve.y1 + y);\r\n }\r\n }\r\n drawCurve.call(\r\n this,\r\n x,\r\n y,\r\n curve.x2,\r\n curve.y2,\r\n curve.x3,\r\n curve.y3,\r\n curve.x4,\r\n curve.y4\r\n );\r\n }\r\n\r\n if (!isClip) {\r\n putStyle.call(this, style);\r\n } else {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n switch (style) {\r\n case \"stroke\":\r\n this.pdf.internal.out(\"S\");\r\n break;\r\n case \"fill\":\r\n this.pdf.internal.out(\"f\");\r\n break;\r\n }\r\n };\r\n\r\n var doClip = function() {\r\n this.pdf.clip();\r\n this.pdf.discardPath();\r\n };\r\n\r\n var doMove = function(x, y) {\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x) +\r\n \" \" +\r\n getVerticalCoordinateString(y) +\r\n \" m\"\r\n );\r\n };\r\n\r\n var putText = function(options) {\r\n var textAlign;\r\n switch (options.align) {\r\n case \"right\":\r\n case \"end\":\r\n textAlign = \"right\";\r\n break;\r\n case \"center\":\r\n textAlign = \"center\";\r\n break;\r\n case \"left\":\r\n case \"start\":\r\n default:\r\n textAlign = \"left\";\r\n break;\r\n }\r\n\r\n var textDimensions = this.pdf.getTextDimensions(options.text);\r\n var yBaseLine = getBaseline.call(this, options.y);\r\n var yBottom = getTextBottom.call(this, yBaseLine);\r\n var yTop = yBottom - textDimensions.h;\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(options.x, yBaseLine));\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n\r\n var baselineRect = this.ctx.transform.applyToRectangle(\r\n new Rectangle(options.x, yBaseLine, textDimensions.w, textDimensions.h)\r\n );\r\n var textBounds = matrix.applyToRectangle(\r\n new Rectangle(options.x, yTop, textDimensions.w, textDimensions.h)\r\n );\r\n var pageArray = getPagesByPath.call(this, textBounds);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath, oldSize, oldLineWidth;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusBottomMargin =\r\n this.pdf.internal.pageSize.height - this.margin[2];\r\n var pageHeightMinusMargins =\r\n pageHeightMinusBottomMargin - this.margin[0];\r\n var pageWidthMinusRightMargin =\r\n this.pdf.internal.pageSize.width - this.margin[1];\r\n var pageWidthMinusMargins = pageWidthMinusRightMargin - this.margin[3];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -1 * previousPageHeightSum + topMargin\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var textBoundsOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(textBounds))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n\r\n var doSlice = this.autoPaging !== \"text\";\r\n\r\n if (\r\n doSlice ||\r\n textBoundsOnPage.y + textBoundsOnPage.h <= pageHeightMinusBottomMargin\r\n ) {\r\n if (\r\n doSlice ||\r\n (textBoundsOnPage.y >= topMargin &&\r\n textBoundsOnPage.x <= pageWidthMinusRightMargin)\r\n ) {\r\n var croppedText = doSlice\r\n ? options.text\r\n : this.pdf.splitTextToSize(\r\n options.text,\r\n options.maxWidth ||\r\n pageWidthMinusRightMargin - textBoundsOnPage.x\r\n )[0];\r\n var baseLineRectOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(baselineRect))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum +\r\n topMargin +\r\n this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping =\r\n doSlice && (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n\r\n this.pdf.text(\r\n croppedText,\r\n baseLineRectOnPage.x,\r\n baseLineRectOnPage.y,\r\n {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode\r\n }\r\n );\r\n\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n // This text is the last element of the page, but it got cut off due to the margin\r\n // so we render it in the next page\r\n\r\n if (textBoundsOnPage.y < pageHeightMinusBottomMargin) {\r\n // As a result, all other elements have their y offset increased\r\n this.ctx.prevPageLastElemOffset +=\r\n pageHeightMinusBottomMargin - textBoundsOnPage.y;\r\n }\r\n }\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n } else {\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n this.pdf.text(options.text, pt.x + this.posX, pt.y + this.posY, {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode,\r\n maxWidth: options.maxWidth\r\n });\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n };\r\n\r\n var drawLine = function(x, y, prevX, prevY) {\r\n prevX = prevX || 0;\r\n prevY = prevY || 0;\r\n\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x + prevX) +\r\n \" \" +\r\n getVerticalCoordinateString(y + prevY) +\r\n \" l\"\r\n );\r\n };\r\n\r\n var drawLines = function(lines, x, y) {\r\n return this.pdf.lines(lines, x, y, null, null);\r\n };\r\n\r\n var drawCurve = function(x, y, x1, y1, x2, y2, x3, y3) {\r\n this.pdf.internal.out(\r\n [\r\n f2(getHorizontalCoordinate(x1 + x)),\r\n f2(getVerticalCoordinate(y1 + y)),\r\n f2(getHorizontalCoordinate(x2 + x)),\r\n f2(getVerticalCoordinate(y2 + y)),\r\n f2(getHorizontalCoordinate(x3 + x)),\r\n f2(getVerticalCoordinate(y3 + y)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n };\r\n\r\n /**\r\n * Return a array of objects that represent bezier curves which approximate the circular arc centered at the origin, from startAngle to endAngle (radians) with the specified radius.\r\n *\r\n * Each bezier curve is an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n * @function createArc\r\n */\r\n var createArc = function(radius, startAngle, endAngle, anticlockwise) {\r\n var EPSILON = 0.00001; // Roughly 1/1000th of a degree, see below\r\n var twoPi = Math.PI * 2;\r\n var halfPi = Math.PI / 2.0;\r\n\r\n while (startAngle > endAngle) {\r\n startAngle = startAngle - twoPi;\r\n }\r\n var totalAngle = Math.abs(endAngle - startAngle);\r\n if (totalAngle < twoPi) {\r\n if (anticlockwise) {\r\n totalAngle = twoPi - totalAngle;\r\n }\r\n }\r\n\r\n // Compute the sequence of arc curves, up to PI/2 at a time.\r\n var curves = [];\r\n\r\n // clockwise or counterclockwise\r\n var sgn = anticlockwise ? -1 : +1;\r\n\r\n var a1 = startAngle;\r\n for (; totalAngle > EPSILON; ) {\r\n var remain = sgn * Math.min(totalAngle, halfPi);\r\n var a2 = a1 + remain;\r\n curves.push(createSmallArc.call(this, radius, a1, a2));\r\n totalAngle -= Math.abs(a2 - a1);\r\n a1 = a2;\r\n }\r\n\r\n return curves;\r\n };\r\n\r\n /**\r\n * Cubic bezier approximation of a circular arc centered at the origin, from (radians) a1 to a2, where a2-a1 < pi/2. The arc's radius is r.\r\n *\r\n * Returns an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n *\r\n * This algorithm is based on the approach described in: A. Riškus, \"Approximation of a Cubic Bezier Curve by Circular Arcs and Vice Versa,\" Information Technology and Control, 35(4), 2006 pp. 371-378.\r\n */\r\n var createSmallArc = function(r, a1, a2) {\r\n var a = (a2 - a1) / 2.0;\r\n\r\n var x4 = r * Math.cos(a);\r\n var y4 = r * Math.sin(a);\r\n var x1 = x4;\r\n var y1 = -y4;\r\n\r\n var q1 = x1 * x1 + y1 * y1;\r\n var q2 = q1 + x1 * x4 + y1 * y4;\r\n var k2 = ((4 / 3) * (Math.sqrt(2 * q1 * q2) - q2)) / (x1 * y4 - y1 * x4);\r\n\r\n var x2 = x1 - k2 * y1;\r\n var y2 = y1 + k2 * x1;\r\n var x3 = x2;\r\n var y3 = -y2;\r\n\r\n var ar = a + a1;\r\n var cos_ar = Math.cos(ar);\r\n var sin_ar = Math.sin(ar);\r\n\r\n return {\r\n x1: r * Math.cos(a1),\r\n y1: r * Math.sin(a1),\r\n x2: x2 * cos_ar - y2 * sin_ar,\r\n y2: x2 * sin_ar + y2 * cos_ar,\r\n x3: x3 * cos_ar - y3 * sin_ar,\r\n y3: x3 * sin_ar + y3 * cos_ar,\r\n x4: r * Math.cos(a2),\r\n y4: r * Math.sin(a2)\r\n };\r\n };\r\n\r\n var rad2deg = function(value) {\r\n return (value * 180) / Math.PI;\r\n };\r\n\r\n var getQuadraticCurveBoundary = function(sx, sy, cpx, cpy, ex, ey) {\r\n var midX1 = sx + (cpx - sx) * 0.5;\r\n var midY1 = sy + (cpy - sy) * 0.5;\r\n var midX2 = ex + (cpx - ex) * 0.5;\r\n var midY2 = ey + (cpy - ey) * 0.5;\r\n var resultX1 = Math.min(sx, ex, midX1, midX2);\r\n var resultX2 = Math.max(sx, ex, midX1, midX2);\r\n var resultY1 = Math.min(sy, ey, midY1, midY2);\r\n var resultY2 = Math.max(sy, ey, midY1, midY2);\r\n return new Rectangle(\r\n resultX1,\r\n resultY1,\r\n resultX2 - resultX1,\r\n resultY2 - resultY1\r\n );\r\n };\r\n\r\n //De Casteljau algorithm\r\n var getBezierCurveBoundary = function(ax, ay, bx, by, cx, cy, dx, dy) {\r\n var tobx = bx - ax;\r\n var toby = by - ay;\r\n var tocx = cx - bx;\r\n var tocy = cy - by;\r\n var todx = dx - cx;\r\n var tody = dy - cy;\r\n var precision = 40;\r\n var d,\r\n i,\r\n px,\r\n py,\r\n qx,\r\n qy,\r\n rx,\r\n ry,\r\n tx,\r\n ty,\r\n sx,\r\n sy,\r\n x,\r\n y,\r\n minx,\r\n miny,\r\n maxx,\r\n maxy,\r\n toqx,\r\n toqy,\r\n torx,\r\n tory,\r\n totx,\r\n toty;\r\n for (i = 0; i < precision + 1; i++) {\r\n d = i / precision;\r\n px = ax + d * tobx;\r\n py = ay + d * toby;\r\n qx = bx + d * tocx;\r\n qy = by + d * tocy;\r\n rx = cx + d * todx;\r\n ry = cy + d * tody;\r\n toqx = qx - px;\r\n toqy = qy - py;\r\n torx = rx - qx;\r\n tory = ry - qy;\r\n\r\n sx = px + d * toqx;\r\n sy = py + d * toqy;\r\n tx = qx + d * torx;\r\n ty = qy + d * tory;\r\n totx = tx - sx;\r\n toty = ty - sy;\r\n\r\n x = sx + d * totx;\r\n y = sy + d * toty;\r\n if (i == 0) {\r\n minx = x;\r\n miny = y;\r\n maxx = x;\r\n maxy = y;\r\n } else {\r\n minx = Math.min(minx, x);\r\n miny = Math.min(miny, y);\r\n maxx = Math.max(maxx, x);\r\n maxy = Math.max(maxy, y);\r\n }\r\n }\r\n return new Rectangle(\r\n Math.round(minx),\r\n Math.round(miny),\r\n Math.round(maxx - minx),\r\n Math.round(maxy - miny)\r\n );\r\n };\r\n\r\n var getPrevLineDashValue = function(lineDash, lineDashOffset) {\r\n return JSON.stringify({\r\n lineDash: lineDash,\r\n lineDashOffset: lineDashOffset\r\n });\r\n };\r\n\r\n var setLineDash = function() {\r\n // Avoid unnecessary line dash declarations.\r\n if (\r\n !this.prevLineDash &&\r\n !this.ctx.lineDash.length &&\r\n !this.ctx.lineDashOffset\r\n ) {\r\n return;\r\n }\r\n\r\n // Avoid unnecessary line dash declarations.\r\n const nextLineDash = getPrevLineDashValue(\r\n this.ctx.lineDash,\r\n this.ctx.lineDashOffset\r\n );\r\n if (this.prevLineDash !== nextLineDash) {\r\n this.pdf.setLineDash(this.ctx.lineDash, this.ctx.lineDashOffset);\r\n this.prevLineDash = nextLineDash;\r\n }\r\n };\r\n})(jsPDF.API);\r\n","/**\n * @license\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var ASCII85Encode = function(a) {\n var b, c, d, e, f, g, h, i, j, k;\n // eslint-disable-next-line no-control-regex\n for (\n !/[^\\x00-\\xFF]/.test(a),\n b = \"\\x00\\x00\\x00\\x00\".slice(a.length % 4 || 4),\n a += b,\n c = [],\n d = 0,\n e = a.length;\n e > d;\n d += 4\n )\n (f =\n (a.charCodeAt(d) << 24) +\n (a.charCodeAt(d + 1) << 16) +\n (a.charCodeAt(d + 2) << 8) +\n a.charCodeAt(d + 3)),\n 0 !== f\n ? ((k = f % 85),\n (f = (f - k) / 85),\n (j = f % 85),\n (f = (f - j) / 85),\n (i = f % 85),\n (f = (f - i) / 85),\n (h = f % 85),\n (f = (f - h) / 85),\n (g = f % 85),\n c.push(g + 33, h + 33, i + 33, j + 33, k + 33))\n : c.push(122);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(c, b.length),\n String.fromCharCode.apply(String, c) + \"~>\"\n );\n };\n\n var ASCII85Decode = function(a) {\n var c,\n d,\n e,\n f,\n g,\n h = String,\n l = \"length\",\n w = 255,\n x = \"charCodeAt\",\n y = \"slice\",\n z = \"replace\";\n for (\n \"~>\" === a[y](-2),\n a = a[y](0, -2)\n [z](/\\s/g, \"\")\n [z](\"z\", \"!!!!!\"),\n c = \"uuuuu\"[y](a[l] % 5 || 5),\n a += c,\n e = [],\n f = 0,\n g = a[l];\n g > f;\n f += 5\n )\n (d =\n 52200625 * (a[x](f) - 33) +\n 614125 * (a[x](f + 1) - 33) +\n 7225 * (a[x](f + 2) - 33) +\n 85 * (a[x](f + 3) - 33) +\n (a[x](f + 4) - 33)),\n e.push(w & (d >> 24), w & (d >> 16), w & (d >> 8), w & d);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(e, c[l]),\n h.fromCharCode.apply(h, e)\n );\n };\n\n var ASCIIHexEncode = function(value) {\n return (\n value\n .split(\"\")\n .map(function(value) {\n return (\"0\" + value.charCodeAt().toString(16)).slice(-2);\n })\n .join(\"\") + \">\"\n );\n };\n\n var ASCIIHexDecode = function(value) {\n var regexCheckIfHex = new RegExp(/^([0-9A-Fa-f]{2})+$/);\n value = value.replace(/\\s/g, \"\");\n if (value.indexOf(\">\") !== -1) {\n value = value.substr(0, value.indexOf(\">\"));\n }\n if (value.length % 2) {\n value += \"0\";\n }\n if (regexCheckIfHex.test(value) === false) {\n return \"\";\n }\n var result = \"\";\n for (var i = 0; i < value.length; i += 2) {\n result += String.fromCharCode(\"0x\" + (value[i] + value[i + 1]));\n }\n return result;\n };\n /*\n var FlatePredictors = {\n None: 1,\n TIFF: 2,\n PNG_None: 10,\n PNG_Sub: 11,\n PNG_Up: 12,\n PNG_Average: 13,\n PNG_Paeth: 14,\n PNG_Optimum: 15\n };\n */\n\n var FlateEncode = function(data) {\n var arr = new Uint8Array(data.length);\n var i = data.length;\n while (i--) {\n arr[i] = data.charCodeAt(i);\n }\n arr = zlibSync(arr);\n data = arr.reduce(function(data, byte) {\n return data + String.fromCharCode(byte);\n }, \"\");\n return data;\n };\n\n jsPDFAPI.processDataByFilters = function(origData, filterChain) {\n \"use strict\";\n var i = 0;\n var data = origData || \"\";\n var reverseChain = [];\n filterChain = filterChain || [];\n\n if (typeof filterChain === \"string\") {\n filterChain = [filterChain];\n }\n\n for (i = 0; i < filterChain.length; i += 1) {\n switch (filterChain[i]) {\n case \"ASCII85Decode\":\n case \"/ASCII85Decode\":\n data = ASCII85Decode(data);\n reverseChain.push(\"/ASCII85Encode\");\n break;\n case \"ASCII85Encode\":\n case \"/ASCII85Encode\":\n data = ASCII85Encode(data);\n reverseChain.push(\"/ASCII85Decode\");\n break;\n case \"ASCIIHexDecode\":\n case \"/ASCIIHexDecode\":\n data = ASCIIHexDecode(data);\n reverseChain.push(\"/ASCIIHexEncode\");\n break;\n case \"ASCIIHexEncode\":\n case \"/ASCIIHexEncode\":\n data = ASCIIHexEncode(data);\n reverseChain.push(\"/ASCIIHexDecode\");\n break;\n case \"FlateEncode\":\n case \"/FlateEncode\":\n data = FlateEncode(data);\n reverseChain.push(\"/FlateDecode\");\n break;\n default:\n throw new Error(\n 'The filter: \"' + filterChain[i] + '\" is not implemented'\n );\n }\n }\n\n return { data: data, reverseChain: reverseChain.reverse().join(\" \") };\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name fileloading\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name loadFile\n * @function\n * @param {string} url\n * @param {boolean} sync\n * @param {function} callback\n * @returns {string|undefined} result\n */\n jsPDFAPI.loadFile = function(url, sync, callback) {\n return browserRequest(url, sync, callback);\n\n };\n\n /**\n * @name loadImageFile\n * @function\n * @param {string} path\n * @param {boolean} sync\n * @param {function} callback\n */\n jsPDFAPI.loadImageFile = jsPDFAPI.loadFile;\n\n function browserRequest(url, sync, callback) {\n sync = sync === false ? false : true;\n callback = typeof callback === \"function\" ? callback : function() {};\n var result = undefined;\n\n var xhr = function(url, sync, callback) {\n var request = new XMLHttpRequest();\n var i = 0;\n\n var sanitizeUnicode = function(data) {\n var dataLength = data.length;\n var charArray = [];\n var StringFromCharCode = String.fromCharCode;\n\n //Transform Unicode to ASCII\n for (i = 0; i < dataLength; i += 1) {\n charArray.push(StringFromCharCode(data.charCodeAt(i) & 0xff));\n }\n return charArray.join(\"\");\n };\n\n request.open(\"GET\", url, !sync);\n // XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]\n request.overrideMimeType(\"text/plain; charset=x-user-defined\");\n\n if (sync === false) {\n request.onload = function() {\n if (request.status === 200) {\n callback(sanitizeUnicode(this.responseText));\n } else {\n callback(undefined);\n }\n };\n }\n request.send(null);\n\n if (sync && request.status === 200) {\n return sanitizeUnicode(request.responseText);\n }\n };\n try {\n result = xhr(url, sync, callback);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n return result;\n }\n\n function nodeReadFile(url, sync, callback) {\n sync = sync === false ? false : true;\n var result = undefined;\n\n var fs = require(\"fs\");\n var path = require(\"path\");\n\n url = path.resolve(url);\n if (sync) {\n try {\n result = fs.readFileSync(url, { encoding: \"latin1\" });\n } catch (e) {\n return undefined;\n }\n } else {\n fs.readFile(url, { encoding: \"latin1\" }, function(err, data) {\n if (!callback) {\n return;\n }\n if (err) {\n callback(undefined);\n }\n callback(data);\n });\n }\n\n return result;\n }\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2018 Erik Koopmans\n * Released under the MIT License.\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { normalizeFontFace } from \"../libs/fontFace.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF html PlugIn\n *\n * @name html\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadHtml2Canvas() {\n return (function() {\n if (globalObject[\"html2canvas\"]) {\n return Promise.resolve(globalObject[\"html2canvas\"]);\n }\n\n return import(\"html2canvas\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load html2canvas: \" + e));\n })\n .then(function(html2canvas) {\n return html2canvas.default ? html2canvas.default : html2canvas;\n });\n }\n\n function loadDomPurify() {\n return (function() {\n if (globalObject[\"DOMPurify\"]) {\n return Promise.resolve(globalObject[\"DOMPurify\"]);\n }\n\n return import(\"dompurify\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load dompurify: \" + e));\n })\n .then(function(dompurify) {\n return dompurify.default ? dompurify.default : dompurify;\n });\n }\n\n /**\n * Determine the type of a variable/object.\n *\n * @private\n * @ignore\n */\n var objType = function(obj) {\n var type = typeof obj;\n if (type === \"undefined\") return \"undefined\";\n else if (type === \"string\" || obj instanceof String) return \"string\";\n else if (type === \"number\" || obj instanceof Number) return \"number\";\n else if (type === \"function\" || obj instanceof Function) return \"function\";\n else if (!!obj && obj.constructor === Array) return \"array\";\n else if (obj && obj.nodeType === 1) return \"element\";\n else if (type === \"object\") return \"object\";\n else return \"unknown\";\n };\n\n /**\n * Create an HTML element with optional className, innerHTML, and style.\n *\n * @private\n * @ignore\n */\n var createElement = function(tagName, opt) {\n var el = document.createElement(tagName);\n if (opt.className) el.className = opt.className;\n if (opt.innerHTML && opt.dompurify) {\n el.innerHTML = opt.dompurify.sanitize(opt.innerHTML);\n }\n for (var key in opt.style) {\n el.style[key] = opt.style[key];\n }\n return el;\n };\n\n /**\n * Deep-clone a node and preserve contents/properties.\n *\n * @private\n * @ignore\n */\n var cloneNode = function(node, javascriptEnabled) {\n // Recursively clone the node.\n var clone =\n node.nodeType === 3\n ? document.createTextNode(node.nodeValue)\n : node.cloneNode(false);\n for (var child = node.firstChild; child; child = child.nextSibling) {\n if (\n javascriptEnabled === true ||\n child.nodeType !== 1 ||\n child.nodeName !== \"SCRIPT\"\n ) {\n clone.appendChild(cloneNode(child, javascriptEnabled));\n }\n }\n\n if (node.nodeType === 1) {\n // Preserve contents/properties of special nodes.\n if (node.nodeName === \"CANVAS\") {\n clone.width = node.width;\n clone.height = node.height;\n clone.getContext(\"2d\").drawImage(node, 0, 0);\n } else if (node.nodeName === \"TEXTAREA\" || node.nodeName === \"SELECT\") {\n clone.value = node.value;\n }\n\n // Preserve the node's scroll position when it loads.\n clone.addEventListener(\n \"load\",\n function() {\n clone.scrollTop = node.scrollTop;\n clone.scrollLeft = node.scrollLeft;\n },\n true\n );\n }\n\n // Return the cloned node.\n return clone;\n };\n\n /* ----- CONSTRUCTOR ----- */\n\n var Worker = function Worker(opt) {\n // Create the root parent for the proto chain, and the starting Worker.\n var root = Object.assign(\n Worker.convert(Promise.resolve()),\n JSON.parse(JSON.stringify(Worker.template))\n );\n var self = Worker.convert(Promise.resolve(), root);\n\n // Set progress, optional settings, and return.\n self = self.setProgress(1, Worker, 1, [Worker]);\n self = self.set(opt);\n return self;\n };\n\n // Boilerplate for subclassing Promise.\n Worker.prototype = Object.create(Promise.prototype);\n Worker.prototype.constructor = Worker;\n\n // Converts/casts promises into Workers.\n Worker.convert = function convert(promise, inherit) {\n // Uses prototypal inheritance to receive changes made to ancestors' properties.\n promise.__proto__ = inherit || Worker.prototype;\n return promise;\n };\n\n Worker.template = {\n prop: {\n src: null,\n container: null,\n overlay: null,\n canvas: null,\n img: null,\n pdf: null,\n pageSize: null,\n callback: function() {}\n },\n progress: {\n val: 0,\n state: null,\n n: 0,\n stack: []\n },\n opt: {\n filename: \"file.pdf\",\n margin: [0, 0, 0, 0],\n enableLinks: true,\n x: 0,\n y: 0,\n html2canvas: {},\n jsPDF: {},\n backgroundColor: \"transparent\"\n }\n };\n\n /* ----- FROM / TO ----- */\n\n Worker.prototype.from = function from(src, type) {\n function getType(src) {\n switch (objType(src)) {\n case \"string\":\n return \"string\";\n case \"element\":\n return src.nodeName.toLowerCase() === \"canvas\" ? \"canvas\" : \"element\";\n default:\n return \"unknown\";\n }\n }\n\n return this.then(function from_main() {\n type = type || getType(src);\n switch (type) {\n case \"string\":\n return this.then(loadDomPurify).then(function(dompurify) {\n return this.set({\n src: createElement(\"div\", {\n innerHTML: src,\n dompurify: dompurify\n })\n });\n });\n case \"element\":\n return this.set({ src: src });\n case \"canvas\":\n return this.set({ canvas: src });\n case \"img\":\n return this.set({ img: src });\n default:\n return this.error(\"Unknown source type.\");\n }\n });\n };\n\n Worker.prototype.to = function to(target) {\n // Route the 'to' request to the appropriate method.\n switch (target) {\n case \"container\":\n return this.toContainer();\n case \"canvas\":\n return this.toCanvas();\n case \"img\":\n return this.toImg();\n case \"pdf\":\n return this.toPdf();\n default:\n return this.error(\"Invalid target.\");\n }\n };\n\n Worker.prototype.toContainer = function toContainer() {\n // Set up function prerequisites.\n var prereqs = [\n function checkSrc() {\n return (\n this.prop.src || this.error(\"Cannot duplicate - no source HTML.\")\n );\n },\n function checkPageSize() {\n return this.prop.pageSize || this.setPageSize();\n }\n ];\n return this.thenList(prereqs).then(function toContainer_main() {\n // Define the CSS styles for the container and its overlay parent.\n var overlayCSS = {\n position: \"fixed\",\n overflow: \"hidden\",\n zIndex: 1000,\n left: \"-100000px\",\n right: 0,\n bottom: 0,\n top: 0\n };\n var containerCSS = {\n position: \"relative\",\n display: \"inline-block\",\n width:\n (typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.windowWidth\n : Math.max(\n this.prop.src.clientWidth,\n this.prop.src.scrollWidth,\n this.prop.src.offsetWidth\n )) + \"px\",\n left: 0,\n right: 0,\n top: 0,\n margin: \"auto\",\n backgroundColor: this.opt.backgroundColor\n }; // Set the overlay to hidden (could be changed in the future to provide a print preview).\n\n var source = cloneNode(\n this.prop.src,\n this.opt.html2canvas.javascriptEnabled\n );\n\n if (source.tagName === \"BODY\") {\n containerCSS.height =\n Math.max(\n document.body.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.clientHeight,\n document.documentElement.scrollHeight,\n document.documentElement.offsetHeight\n ) + \"px\";\n }\n\n this.prop.overlay = createElement(\"div\", {\n className: \"html2pdf__overlay\",\n style: overlayCSS\n });\n this.prop.container = createElement(\"div\", {\n className: \"html2pdf__container\",\n style: containerCSS\n });\n this.prop.container.appendChild(source);\n this.prop.container.firstChild.appendChild(\n createElement(\"div\", {\n style: {\n clear: \"both\",\n border: \"0 none transparent\",\n margin: 0,\n padding: 0,\n height: 0\n }\n })\n );\n this.prop.container.style.float = \"none\";\n this.prop.overlay.appendChild(this.prop.container);\n document.body.appendChild(this.prop.overlay);\n this.prop.container.firstChild.style.position = \"relative\";\n this.prop.container.height =\n Math.max(\n this.prop.container.firstChild.clientHeight,\n this.prop.container.firstChild.scrollHeight,\n this.prop.container.firstChild.offsetHeight\n ) + \"px\";\n });\n };\n\n Worker.prototype.toCanvas = function toCanvas() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toCanvas_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var options = Object.assign({}, this.opt.html2canvas);\n delete options.onrendered;\n\n return html2canvas(this.prop.container, options);\n })\n .then(function toCanvas_post(canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toContext2d = function toContext2d() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toContext2d_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n\n var pdf = this.opt.jsPDF;\n var fontFaces = this.opt.fontFaces;\n\n var scale =\n typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.width / this.opt.windowWidth\n : 1;\n\n var options = Object.assign(\n {\n async: true,\n allowTaint: true,\n scale: scale,\n scrollX: this.opt.scrollX || 0,\n scrollY: this.opt.scrollY || 0,\n backgroundColor: \"#ffffff\",\n imageTimeout: 15000,\n logging: true,\n proxy: null,\n removeContainer: true,\n foreignObjectRendering: false,\n useCORS: false\n },\n this.opt.html2canvas\n );\n delete options.onrendered;\n\n pdf.context2d.autoPaging =\n typeof this.opt.autoPaging === \"undefined\"\n ? true\n : this.opt.autoPaging;\n pdf.context2d.posX = this.opt.x;\n pdf.context2d.posY = this.opt.y;\n pdf.context2d.margin = this.opt.margin;\n pdf.context2d.fontFaces = fontFaces;\n\n if (fontFaces) {\n for (var i = 0; i < fontFaces.length; ++i) {\n var font = fontFaces[i];\n var src = font.src.find(function(src) {\n return src.format === \"truetype\";\n });\n\n if (src) {\n pdf.addFont(src.url, font.ref.name, font.ref.style);\n }\n }\n }\n\n options.windowHeight = options.windowHeight || 0;\n options.windowHeight =\n options.windowHeight == 0\n ? Math.max(\n this.prop.container.clientHeight,\n this.prop.container.scrollHeight,\n this.prop.container.offsetHeight\n )\n : options.windowHeight;\n\n pdf.context2d.save(true);\n return html2canvas(this.prop.container, options);\n })\n .then(function toContext2d_post(canvas) {\n this.opt.jsPDF.context2d.restore(true);\n\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toImg = function toImg() {\n // Set up function prerequisites.\n var prereqs = [\n function checkCanvas() {\n return this.prop.canvas || this.toCanvas();\n }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toImg_main() {\n var imgData = this.prop.canvas.toDataURL(\n \"image/\" + this.opt.image.type,\n this.opt.image.quality\n );\n this.prop.img = document.createElement(\"img\");\n this.prop.img.src = imgData;\n });\n };\n\n Worker.prototype.toPdf = function toPdf() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContext2d() {\n return this.toContext2d();\n }\n //function checkCanvas() { return this.prop.canvas || this.toCanvas(); }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toPdf_main() {\n // Create local copies of frequently used properties.\n this.prop.pdf = this.prop.pdf || this.opt.jsPDF;\n });\n };\n\n /* ----- OUTPUT / SAVE ----- */\n\n Worker.prototype.output = function output(type, options, src) {\n // Redirect requests to the correct function (outputPdf / outputImg).\n src = src || \"pdf\";\n if (src.toLowerCase() === \"img\" || src.toLowerCase() === \"image\") {\n return this.outputImg(type, options);\n } else {\n return this.outputPdf(type, options);\n }\n };\n\n Worker.prototype.outputPdf = function outputPdf(type, options) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputPdf_main() {\n /* Currently implemented output types:\n * https://rawgit.com/MrRio/jsPDF/master/docs/jspdf.js.html#line992\n * save(options), arraybuffer, blob, bloburi/bloburl,\n * datauristring/dataurlstring, dataurlnewwindow, datauri/dataurl\n */\n return this.prop.pdf.output(type, options);\n });\n };\n\n Worker.prototype.outputImg = function outputImg(type) {\n // Set up function prerequisites.\n var prereqs = [\n function checkImg() {\n return this.prop.img || this.toImg();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputImg_main() {\n switch (type) {\n case undefined:\n case \"img\":\n return this.prop.img;\n case \"datauristring\":\n case \"dataurlstring\":\n return this.prop.img.src;\n case \"datauri\":\n case \"dataurl\":\n return (document.location.href = this.prop.img.src);\n default:\n throw 'Image output type \"' + type + '\" is not supported.';\n }\n });\n };\n\n Worker.prototype.save = function save(filename) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs)\n .set(filename ? { filename: filename } : null)\n .then(function save_main() {\n this.prop.pdf.save(this.opt.filename);\n });\n };\n\n Worker.prototype.doCallback = function doCallback() {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs).then(function doCallback_main() {\n this.prop.callback(this.prop.pdf);\n });\n };\n\n /* ----- SET / GET ----- */\n\n Worker.prototype.set = function set(opt) {\n // TODO: Implement ordered pairs?\n\n // Silently ignore invalid or empty input.\n if (objType(opt) !== \"object\") {\n return this;\n }\n\n // Build an array of setter functions to queue.\n var fns = Object.keys(opt || {}).map(function(key) {\n if (key in Worker.template.prop) {\n // Set pre-defined properties.\n return function set_prop() {\n this.prop[key] = opt[key];\n };\n } else {\n switch (key) {\n case \"margin\":\n return this.setMargin.bind(this, opt.margin);\n case \"jsPDF\":\n return function set_jsPDF() {\n this.opt.jsPDF = opt.jsPDF;\n return this.setPageSize();\n };\n case \"pageSize\":\n return this.setPageSize.bind(this, opt.pageSize);\n default:\n // Set any other properties in opt.\n return function set_opt() {\n this.opt[key] = opt[key];\n };\n }\n }\n }, this);\n\n // Set properties within the promise chain.\n return this.then(function set_main() {\n return this.thenList(fns);\n });\n };\n\n Worker.prototype.get = function get(key, cbk) {\n return this.then(function get_main() {\n // Fetch the requested property, either as a predefined prop or in opt.\n var val = key in Worker.template.prop ? this.prop[key] : this.opt[key];\n return cbk ? cbk(val) : val;\n });\n };\n\n Worker.prototype.setMargin = function setMargin(margin) {\n return this.then(function setMargin_main() {\n // Parse the margin property.\n switch (objType(margin)) {\n case \"number\":\n margin = [margin, margin, margin, margin];\n // eslint-disable-next-line no-fallthrough\n case \"array\":\n if (margin.length === 2) {\n margin = [margin[0], margin[1], margin[0], margin[1]];\n }\n if (margin.length === 4) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n default:\n return this.error(\"Invalid margin array.\");\n }\n\n // Set the margin property, then update pageSize.\n this.opt.margin = margin;\n }).then(this.setPageSize);\n };\n\n Worker.prototype.setPageSize = function setPageSize(pageSize) {\n function toPx(val, k) {\n return Math.floor(((val * k) / 72) * 96);\n }\n\n return this.then(function setPageSize_main() {\n // Retrieve page-size based on jsPDF settings, if not explicitly provided.\n pageSize = pageSize || jsPDF.getPageSize(this.opt.jsPDF);\n\n // Add 'inner' field if not present.\n if (!pageSize.hasOwnProperty(\"inner\")) {\n pageSize.inner = {\n width: pageSize.width - this.opt.margin[1] - this.opt.margin[3],\n height: pageSize.height - this.opt.margin[0] - this.opt.margin[2]\n };\n pageSize.inner.px = {\n width: toPx(pageSize.inner.width, pageSize.k),\n height: toPx(pageSize.inner.height, pageSize.k)\n };\n pageSize.inner.ratio = pageSize.inner.height / pageSize.inner.width;\n }\n\n // Attach pageSize to this.\n this.prop.pageSize = pageSize;\n });\n };\n\n Worker.prototype.setProgress = function setProgress(val, state, n, stack) {\n // Immediately update all progress values.\n if (val != null) this.progress.val = val;\n if (state != null) this.progress.state = state;\n if (n != null) this.progress.n = n;\n if (stack != null) this.progress.stack = stack;\n this.progress.ratio = this.progress.val / this.progress.state;\n\n // Return this for command chaining.\n return this;\n };\n\n Worker.prototype.updateProgress = function updateProgress(\n val,\n state,\n n,\n stack\n ) {\n // Immediately update all progress values, using setProgress.\n return this.setProgress(\n val ? this.progress.val + val : null,\n state ? state : null,\n n ? this.progress.n + n : null,\n stack ? this.progress.stack.concat(stack) : null\n );\n };\n\n /* ----- PROMISE MAPPING ----- */\n\n Worker.prototype.then = function then(onFulfilled, onRejected) {\n // Wrap `this` for encapsulation.\n var self = this;\n\n return this.thenCore(onFulfilled, onRejected, function then_main(\n onFulfilled,\n onRejected\n ) {\n // Update progress while queuing, calling, and resolving `then`.\n self.updateProgress(null, null, 1, [onFulfilled]);\n return Promise.prototype.then\n .call(this, function then_pre(val) {\n self.updateProgress(null, onFulfilled);\n return val;\n })\n .then(onFulfilled, onRejected)\n .then(function then_post(val) {\n self.updateProgress(1);\n return val;\n });\n });\n };\n\n Worker.prototype.thenCore = function thenCore(\n onFulfilled,\n onRejected,\n thenBase\n ) {\n // Handle optional thenBase parameter.\n thenBase = thenBase || Promise.prototype.then;\n\n // Wrap `this` for encapsulation and bind it to the promise handlers.\n var self = this;\n if (onFulfilled) {\n onFulfilled = onFulfilled.bind(self);\n }\n if (onRejected) {\n onRejected = onRejected.bind(self);\n }\n\n // Cast self into a Promise to avoid polyfills recursively defining `then`.\n var isNative =\n Promise.toString().indexOf(\"[native code]\") !== -1 &&\n Promise.name === \"Promise\";\n var selfPromise = isNative\n ? self\n : Worker.convert(Object.assign({}, self), Promise.prototype);\n\n // Return the promise, after casting it into a Worker and preserving props.\n var returnVal = thenBase.call(selfPromise, onFulfilled, onRejected);\n return Worker.convert(returnVal, self.__proto__);\n };\n\n Worker.prototype.thenExternal = function thenExternal(\n onFulfilled,\n onRejected\n ) {\n // Call `then` and return a standard promise (exits the Worker chain).\n return Promise.prototype.then.call(this, onFulfilled, onRejected);\n };\n\n Worker.prototype.thenList = function thenList(fns) {\n // Queue a series of promise 'factories' into the promise chain.\n var self = this;\n fns.forEach(function thenList_forEach(fn) {\n self = self.thenCore(fn);\n });\n return self;\n };\n\n Worker.prototype[\"catch\"] = function(onRejected) {\n // Bind `this` to the promise handler, call `catch`, and return a Worker.\n if (onRejected) {\n onRejected = onRejected.bind(this);\n }\n var returnVal = Promise.prototype[\"catch\"].call(this, onRejected);\n return Worker.convert(returnVal, this);\n };\n\n Worker.prototype.catchExternal = function catchExternal(onRejected) {\n // Call `catch` and return a standard promise (exits the Worker chain).\n return Promise.prototype[\"catch\"].call(this, onRejected);\n };\n\n Worker.prototype.error = function error(msg) {\n // Throw the error in the Promise chain.\n return this.then(function error_main() {\n throw new Error(msg);\n });\n };\n\n /* ----- ALIASES ----- */\n\n Worker.prototype.using = Worker.prototype.set;\n Worker.prototype.saveAs = Worker.prototype.save;\n Worker.prototype.export = Worker.prototype.output;\n Worker.prototype.run = Worker.prototype.then;\n\n // Get dimensions of a PDF page, as determined by jsPDF.\n jsPDF.getPageSize = function(orientation, unit, format) {\n // Decode options object\n if (typeof orientation === \"object\") {\n var options = orientation;\n orientation = options.orientation;\n unit = options.unit || unit;\n format = options.format || format;\n }\n\n // Default options\n unit = unit || \"mm\";\n format = format || \"a4\";\n orientation = (\"\" + (orientation || \"P\")).toLowerCase();\n var format_as_string = (\"\" + format).toLowerCase();\n\n // Size in pt of various paper formats\n var pageFormats = {\n a0: [2383.94, 3370.39],\n a1: [1683.78, 2383.94],\n a2: [1190.55, 1683.78],\n a3: [841.89, 1190.55],\n a4: [595.28, 841.89],\n a5: [419.53, 595.28],\n a6: [297.64, 419.53],\n a7: [209.76, 297.64],\n a8: [147.4, 209.76],\n a9: [104.88, 147.4],\n a10: [73.7, 104.88],\n b0: [2834.65, 4008.19],\n b1: [2004.09, 2834.65],\n b2: [1417.32, 2004.09],\n b3: [1000.63, 1417.32],\n b4: [708.66, 1000.63],\n b5: [498.9, 708.66],\n b6: [354.33, 498.9],\n b7: [249.45, 354.33],\n b8: [175.75, 249.45],\n b9: [124.72, 175.75],\n b10: [87.87, 124.72],\n c0: [2599.37, 3676.54],\n c1: [1836.85, 2599.37],\n c2: [1298.27, 1836.85],\n c3: [918.43, 1298.27],\n c4: [649.13, 918.43],\n c5: [459.21, 649.13],\n c6: [323.15, 459.21],\n c7: [229.61, 323.15],\n c8: [161.57, 229.61],\n c9: [113.39, 161.57],\n c10: [79.37, 113.39],\n dl: [311.81, 623.62],\n letter: [612, 792],\n \"government-letter\": [576, 756],\n legal: [612, 1008],\n \"junior-legal\": [576, 360],\n ledger: [1224, 792],\n tabloid: [792, 1224],\n \"credit-card\": [153, 243]\n };\n\n var k;\n // Unit conversion\n switch (unit) {\n case \"pt\":\n k = 1;\n break;\n case \"mm\":\n k = 72 / 25.4;\n break;\n case \"cm\":\n k = 72 / 2.54;\n break;\n case \"in\":\n k = 72;\n break;\n case \"px\":\n k = 72 / 96;\n break;\n case \"pc\":\n k = 12;\n break;\n case \"em\":\n k = 12;\n break;\n case \"ex\":\n k = 6;\n break;\n default:\n throw \"Invalid unit: \" + unit;\n }\n var pageHeight = 0;\n var pageWidth = 0;\n\n // Dimensions are stored as user units and converted to points on output\n if (pageFormats.hasOwnProperty(format_as_string)) {\n pageHeight = pageFormats[format_as_string][1] / k;\n pageWidth = pageFormats[format_as_string][0] / k;\n } else {\n try {\n pageHeight = format[1];\n pageWidth = format[0];\n } catch (err) {\n throw new Error(\"Invalid format: \" + format);\n }\n }\n\n var tmp;\n // Handle page orientation\n if (orientation === \"p\" || orientation === \"portrait\") {\n orientation = \"p\";\n if (pageWidth > pageHeight) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else if (orientation === \"l\" || orientation === \"landscape\") {\n orientation = \"l\";\n if (pageHeight > pageWidth) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else {\n throw \"Invalid orientation: \" + orientation;\n }\n\n // Return information (k is the unit conversion ratio from pts)\n var info = {\n width: pageWidth,\n height: pageHeight,\n unit: unit,\n k: k,\n orientation: orientation\n };\n return info;\n };\n\n /**\n * @typedef FontFace\n *\n * The font-face type implements an interface similar to that of the font-face CSS rule,\n * and is used by jsPDF to match fonts when the font property of CanvasRenderingContext2D\n * is updated.\n *\n * All properties expect values similar to those in the font-face CSS rule. A difference\n * is the font-family, which do not need to be enclosed in double-quotes when containing\n * spaces like in CSS.\n *\n * @property {string} family The name of the font-family.\n * @property {string|undefined} style The style that this font-face defines, e.g. 'italic'.\n * @property {string|number|undefined} weight The weight of the font, either as a string or a number (400, 500, 600, e.g.)\n * @property {string|undefined} stretch The stretch of the font, e.g. condensed, normal, expanded.\n * @property {Object[]} src A list of URLs from where fonts of various formats can be fetched.\n * @property {string} [src] url A URL to a font of a specific format.\n * @property {string} [src] format Format of the font referenced by the URL.\n */\n\n /**\n * Generate a PDF from an HTML element or string using.\n *\n * @name html\n * @function\n * @param {HTMLElement|string} source The source HTMLElement or a string containing HTML.\n * @param {Object} [options] Collection of settings\n * @param {function} [options.callback] The mandatory callback-function gets as first parameter the current jsPDF instance\n * @param {(number|number[])=} [options.margin] Page margins [top, right, bottom, left]. Default is 0.\n * @param {(boolean|'slice'|'text')=} [options.autoPaging] The auto paging mode.\n *
      \n *
    • \n * false: Auto paging is disabled.\n *
    • \n *
    • \n * true or 'slice': Will cut shapes or text chunks across page breaks. Will possibly\n * slice text in half, making it difficult to read.\n *
    • \n *
    • \n * 'text': Trys not to cut text in half across page breaks. Works best for documents consisting\n * mostly of a single column of text.\n *
    • \n *
    \n * Default is true.\n * @param {string} [options.filename] name of the file\n * @param {HTMLOptionImage} [options.image] image settings when converting HTML to image\n * @param {Html2CanvasOptions} [options.html2canvas] html2canvas options\n * @param {FontFace[]} [options.fontFaces] A list of font-faces to match when resolving fonts. Fonts will be added to the PDF based on the specified URL. If omitted, the font match algorithm falls back to old algorithm.\n * @param {jsPDF} [options.jsPDF] jsPDF instance\n * @param {number=} [options.x] x position on the PDF document in jsPDF units.\n * @param {number=} [options.y] y position on the PDF document in jsPDF units.\n * @param {number=} [options.width] The target width in the PDF document in jsPDF units. The rendered element will be\n * scaled such that it fits into the specified width. Has no effect if either the html2canvas.scale is\n * specified or the windowWidth option is NOT specified.\n * @param {number=} [options.windowWidth] The window width in CSS pixels. In contrast to the\n * html2canvas.windowWidth option, this option affects the actual container size while rendering and\n * does NOT affect CSS media queries. This option only has an effect, if the width option is also specified.\n *\n * @example\n * var doc = new jsPDF();\n *\n * doc.html(document.body, {\n * callback: function (doc) {\n * doc.save();\n * },\n * x: 10,\n * y: 10\n * });\n */\n jsPDFAPI.html = function(src, options) {\n \"use strict\";\n\n options = options || {};\n options.callback = options.callback || function() {};\n options.html2canvas = options.html2canvas || {};\n options.html2canvas.canvas = options.html2canvas.canvas || this.canvas;\n options.jsPDF = options.jsPDF || this;\n options.fontFaces = options.fontFaces\n ? options.fontFaces.map(normalizeFontFace)\n : null;\n\n // Create a new worker with the given options.\n var worker = new Worker(options);\n\n if (!options.worker) {\n // If worker is not set to true, perform the traditional 'simple' operation.\n return worker.from(src).doCallback();\n } else {\n // Otherwise, return the worker for new Promise-based operation.\n return worker;\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Outline PlugIn\n *\n * Generates a PDF Outline\n * @name outline\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namesOid;\n //var destsGoto = [];\n\n jsPDFAPI.events.push([\n \"postPutResources\",\n function() {\n var pdf = this;\n var rx = /^(\\d+) 0 obj$/;\n\n // Write action goto objects for each page\n // this.outline.destsGoto = [];\n // for (var i = 0; i < totalPages; i++) {\n // var id = pdf.internal.newObject();\n // this.outline.destsGoto.push(id);\n // pdf.internal.write(\"<> endobj\");\n // }\n //\n // for (var i = 0; i < dests.length; i++) {\n // pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0\n // R\");\n // }\n //\n if (this.outline.root.children.length > 0) {\n var lines = pdf.outline.render().split(/\\r\\n/);\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i];\n var m = rx.exec(line);\n if (m != null) {\n var oid = m[1];\n pdf.internal.newObjectDeferredBegin(oid, false);\n }\n pdf.internal.write(line);\n }\n }\n\n // This code will write named destination for each page reference\n // (page_1, etc)\n if (this.outline.createNamedDestinations) {\n var totalPages = this.internal.pages.length;\n // WARNING: this assumes jsPDF starts on page 3 and pageIDs\n // follow 5, 7, 9, etc\n // Write destination objects for each page\n var dests = [];\n for (var i = 0; i < totalPages; i++) {\n var id = pdf.internal.newObject();\n dests.push(id);\n var info = pdf.internal.getPageInfo(i + 1);\n pdf.internal.write(\n \"<< /D[\" + info.objId + \" 0 R /XYZ null null null]>> endobj\"\n );\n }\n\n // assign a name for each destination\n var names2Oid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Names [ \");\n for (var i = 0; i < dests.length; i++) {\n pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0 R\");\n }\n pdf.internal.write(\" ] >>\", \"endobj\");\n\n // var kids = pdf.internal.newObject();\n // pdf.internal.write('<< /Kids [ ' + names2Oid + ' 0 R');\n // pdf.internal.write(' ] >>', 'endobj');\n\n namesOid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Dests \" + names2Oid + \" 0 R\");\n pdf.internal.write(\">>\", \"endobj\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putCatalog\",\n function() {\n var pdf = this;\n if (pdf.outline.root.children.length > 0) {\n pdf.internal.write(\n \"/Outlines\",\n this.outline.makeRef(this.outline.root)\n );\n if (this.outline.createNamedDestinations) {\n pdf.internal.write(\"/Names \" + namesOid + \" 0 R\");\n }\n // Open with Bookmarks showing\n // pdf.internal.write(\"/PageMode /UseOutlines\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n var pdf = this;\n\n pdf.outline = {\n createNamedDestinations: false,\n root: {\n children: []\n }\n };\n\n /**\n * Options: pageNumber\n */\n pdf.outline.add = function(parent, title, options) {\n var item = {\n title: title,\n options: options,\n children: []\n };\n if (parent == null) {\n parent = this.root;\n }\n parent.children.push(item);\n return item;\n };\n\n pdf.outline.render = function() {\n this.ctx = {};\n this.ctx.val = \"\";\n this.ctx.pdf = pdf;\n\n this.genIds_r(this.root);\n this.renderRoot(this.root);\n this.renderItems(this.root);\n\n return this.ctx.val;\n };\n\n pdf.outline.genIds_r = function(node) {\n node.id = pdf.internal.newObjectDeferred();\n for (var i = 0; i < node.children.length; i++) {\n this.genIds_r(node.children[i]);\n }\n };\n\n pdf.outline.renderRoot = function(node) {\n this.objStart(node);\n this.line(\"/Type /Outlines\");\n if (node.children.length > 0) {\n this.line(\"/First \" + this.makeRef(node.children[0]));\n this.line(\n \"/Last \" + this.makeRef(node.children[node.children.length - 1])\n );\n }\n this.line(\n \"/Count \" +\n this.count_r(\n {\n count: 0\n },\n node\n )\n );\n this.objEnd();\n };\n\n pdf.outline.renderItems = function(node) {\n var getVerticalCoordinateString = this.ctx.pdf.internal\n .getVerticalCoordinateString;\n for (var i = 0; i < node.children.length; i++) {\n var item = node.children[i];\n this.objStart(item);\n\n this.line(\"/Title \" + this.makeString(item.title));\n\n this.line(\"/Parent \" + this.makeRef(node));\n if (i > 0) {\n this.line(\"/Prev \" + this.makeRef(node.children[i - 1]));\n }\n if (i < node.children.length - 1) {\n this.line(\"/Next \" + this.makeRef(node.children[i + 1]));\n }\n if (item.children.length > 0) {\n this.line(\"/First \" + this.makeRef(item.children[0]));\n this.line(\n \"/Last \" + this.makeRef(item.children[item.children.length - 1])\n );\n }\n\n var count = (this.count = this.count_r(\n {\n count: 0\n },\n item\n ));\n if (count > 0) {\n this.line(\"/Count \" + count);\n }\n\n if (item.options) {\n if (item.options.pageNumber) {\n // Explicit Destination\n //WARNING this assumes page ids are 3,5,7, etc.\n var info = pdf.internal.getPageInfo(item.options.pageNumber);\n this.line(\n \"/Dest \" +\n \"[\" +\n info.objId +\n \" 0 R /XYZ 0 \" +\n getVerticalCoordinateString(0) +\n \" 0]\"\n );\n // this line does not work on all clients (pageNumber instead of page ref)\n //this.line('/Dest ' + '[' + (item.options.pageNumber - 1) + ' /XYZ 0 ' + this.ctx.pdf.internal.pageSize.getHeight() + ' 0]');\n\n // Named Destination\n // this.line('/Dest (page_' + (item.options.pageNumber) + ')');\n\n // Action Destination\n // var id = pdf.internal.newObject();\n // pdf.internal.write('<> endobj');\n // this.line('/A ' + id + ' 0 R' );\n }\n }\n this.objEnd();\n }\n for (var z = 0; z < node.children.length; z++) {\n this.renderItems(node.children[z]);\n }\n };\n\n pdf.outline.line = function(text) {\n this.ctx.val += text + \"\\r\\n\";\n };\n\n pdf.outline.makeRef = function(node) {\n return node.id + \" 0 R\";\n };\n\n pdf.outline.makeString = function(val) {\n return \"(\" + pdf.internal.pdfEscape(val) + \")\";\n };\n\n pdf.outline.objStart = function(node) {\n this.ctx.val += \"\\r\\n\" + node.id + \" 0 obj\" + \"\\r\\n<<\\r\\n\";\n };\n\n pdf.outline.objEnd = function() {\n this.ctx.val += \">> \\r\\n\" + \"endobj\" + \"\\r\\n\";\n };\n\n pdf.outline.count_r = function(ctx, node) {\n for (var i = 0; i < node.children.length; i++) {\n ctx.count++;\n this.count_r(ctx, node.children[i]);\n }\n return ctx.count;\n };\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF jpeg Support PlugIn\n *\n * @name jpeg_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * 0xc0 (SOF) Huffman - Baseline DCT\n * 0xc1 (SOF) Huffman - Extended sequential DCT\n * 0xc2 Progressive DCT (SOF2)\n * 0xc3 Spatial (sequential) lossless (SOF3)\n * 0xc4 Differential sequential DCT (SOF5)\n * 0xc5 Differential progressive DCT (SOF6)\n * 0xc6 Differential spatial (SOF7)\n * 0xc7\n */\n var markers = [0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7];\n\n //takes a string imgData containing the raw bytes of\n //a jpeg image and returns [width, height]\n //Algorithm from: http://www.64lines.com/jpeg-width-height\n var getJpegInfo = function(imgData) {\n var width, height, numcomponents;\n var blockLength = imgData.charCodeAt(4) * 256 + imgData.charCodeAt(5);\n var len = imgData.length;\n var result = { width: 0, height: 0, numcomponents: 1 };\n for (var i = 4; i < len; i += 2) {\n i += blockLength;\n if (markers.indexOf(imgData.charCodeAt(i + 1)) !== -1) {\n height = imgData.charCodeAt(i + 5) * 256 + imgData.charCodeAt(i + 6);\n width = imgData.charCodeAt(i + 7) * 256 + imgData.charCodeAt(i + 8);\n numcomponents = imgData.charCodeAt(i + 9);\n result = { width: width, height: height, numcomponents: numcomponents };\n break;\n } else {\n blockLength =\n imgData.charCodeAt(i + 2) * 256 + imgData.charCodeAt(i + 3);\n }\n }\n return result;\n };\n\n /**\n * @ignore\n */\n jsPDFAPI.processJPEG = function(\n data,\n index,\n alias,\n compression,\n dataAsBinaryString,\n colorSpace\n ) {\n var filter = this.decode.DCT_DECODE,\n bpc = 8,\n dims,\n result = null;\n\n if (\n typeof data === \"string\" ||\n this.__addimage__.isArrayBuffer(data) ||\n this.__addimage__.isArrayBufferView(data)\n ) {\n // if we already have a stored binary string rep use that\n data = dataAsBinaryString || data;\n data = this.__addimage__.isArrayBuffer(data)\n ? new Uint8Array(data)\n : data;\n data = this.__addimage__.isArrayBufferView(data)\n ? this.__addimage__.arrayBufferToBinaryString(data)\n : data;\n\n dims = getJpegInfo(data);\n switch (dims.numcomponents) {\n case 1:\n colorSpace = this.color_spaces.DEVICE_GRAY;\n break;\n case 4:\n colorSpace = this.color_spaces.DEVICE_CMYK;\n break;\n case 3:\n colorSpace = this.color_spaces.DEVICE_RGB;\n break;\n }\n\n result = {\n data: data,\n width: dims.width,\n height: dims.height,\n colorSpace: colorSpace,\n bitsPerComponent: bpc,\n filter: filter,\n index: index,\n alias: alias\n };\n }\n return result;\n };\n})(jsPDF.API);\n","// Generated by CoffeeScript 1.4.0\n\n/**\n * @license\n * PNG.js\n * Copyright (c) 2011 Devon Govett\n * MIT LICENSE\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\n * software and associated documentation files (the \"Software\"), to deal in the Software\n * without restriction, including without limitation the rights to use, copy, modify, merge,\n * publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons\n * to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or\n * substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nimport { unzlibSync } from \"./fflate.js\";\nimport { globalObject } from \"./globalObject.js\";\n\nvar PNG = (function() {\n var APNG_BLEND_OP_OVER,\n APNG_BLEND_OP_SOURCE,\n APNG_DISPOSE_OP_BACKGROUND,\n APNG_DISPOSE_OP_NONE,\n APNG_DISPOSE_OP_PREVIOUS,\n makeImage,\n scratchCanvas,\n scratchCtx;\n\n APNG_DISPOSE_OP_NONE = 0;\n\n APNG_DISPOSE_OP_BACKGROUND = 1;\n\n APNG_DISPOSE_OP_PREVIOUS = 2;\n\n APNG_BLEND_OP_SOURCE = 0;\n\n APNG_BLEND_OP_OVER = 1;\n\n function PNG(data) {\n var chunkSize,\n colors,\n palLen,\n delayDen,\n delayNum,\n frame,\n i,\n index,\n key,\n section,\n palShort,\n text,\n _i,\n _j,\n _ref;\n this.data = data;\n this.pos = 8;\n this.palette = [];\n this.imgData = [];\n this.transparency = {};\n this.animation = null;\n this.text = {};\n frame = null;\n while (true) {\n chunkSize = this.readUInt32();\n section = function() {\n var _i, _results;\n _results = [];\n for (i = _i = 0; _i < 4; i = ++_i) {\n _results.push(String.fromCharCode(this.data[this.pos++]));\n }\n return _results;\n }\n .call(this)\n .join(\"\");\n switch (section) {\n case \"IHDR\":\n this.width = this.readUInt32();\n this.height = this.readUInt32();\n this.bits = this.data[this.pos++];\n this.colorType = this.data[this.pos++];\n this.compressionMethod = this.data[this.pos++];\n this.filterMethod = this.data[this.pos++];\n this.interlaceMethod = this.data[this.pos++];\n break;\n case \"acTL\":\n this.animation = {\n numFrames: this.readUInt32(),\n numPlays: this.readUInt32() || Infinity,\n frames: []\n };\n break;\n case \"PLTE\":\n this.palette = this.read(chunkSize);\n break;\n case \"fcTL\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.pos += 4;\n frame = {\n width: this.readUInt32(),\n height: this.readUInt32(),\n xOffset: this.readUInt32(),\n yOffset: this.readUInt32()\n };\n delayNum = this.readUInt16();\n delayDen = this.readUInt16() || 100;\n frame.delay = (1000 * delayNum) / delayDen;\n frame.disposeOp = this.data[this.pos++];\n frame.blendOp = this.data[this.pos++];\n frame.data = [];\n break;\n case \"IDAT\":\n case \"fdAT\":\n if (section === \"fdAT\") {\n this.pos += 4;\n chunkSize -= 4;\n }\n data = (frame != null ? frame.data : void 0) || this.imgData;\n for (\n i = _i = 0;\n 0 <= chunkSize ? _i < chunkSize : _i > chunkSize;\n i = 0 <= chunkSize ? ++_i : --_i\n ) {\n data.push(this.data[this.pos++]);\n }\n break;\n case \"tRNS\":\n this.transparency = {};\n switch (this.colorType) {\n case 3:\n palLen = this.palette.length / 3;\n this.transparency.indexed = this.read(chunkSize);\n if (this.transparency.indexed.length > palLen)\n throw new Error(\"More transparent colors than palette size\");\n /*\n * According to the PNG spec trns should be increased to the same size as palette if shorter\n */\n //palShort = 255 - this.transparency.indexed.length;\n palShort = palLen - this.transparency.indexed.length;\n if (palShort > 0) {\n for (\n i = _j = 0;\n 0 <= palShort ? _j < palShort : _j > palShort;\n i = 0 <= palShort ? ++_j : --_j\n ) {\n this.transparency.indexed.push(255);\n }\n }\n break;\n case 0:\n this.transparency.grayscale = this.read(chunkSize)[0];\n break;\n case 2:\n this.transparency.rgb = this.read(chunkSize);\n }\n break;\n case \"tEXt\":\n text = this.read(chunkSize);\n index = text.indexOf(0);\n key = String.fromCharCode.apply(String, text.slice(0, index));\n this.text[key] = String.fromCharCode.apply(\n String,\n text.slice(index + 1)\n );\n break;\n case \"IEND\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.colors = function() {\n switch (this.colorType) {\n case 0:\n case 3:\n case 4:\n return 1;\n case 2:\n case 6:\n return 3;\n }\n }.call(this);\n this.hasAlphaChannel = (_ref = this.colorType) === 4 || _ref === 6;\n colors = this.colors + (this.hasAlphaChannel ? 1 : 0);\n this.pixelBitlength = this.bits * colors;\n this.colorSpace = function() {\n switch (this.colors) {\n case 1:\n return \"DeviceGray\";\n case 3:\n return \"DeviceRGB\";\n }\n }.call(this);\n this.imgData = new Uint8Array(this.imgData);\n return;\n default:\n this.pos += chunkSize;\n }\n this.pos += 4;\n if (this.pos > this.data.length) {\n throw new Error(\"Incomplete or corrupt PNG file\");\n }\n }\n }\n\n PNG.prototype.read = function(bytes) {\n var i, _i, _results;\n _results = [];\n for (\n i = _i = 0;\n 0 <= bytes ? _i < bytes : _i > bytes;\n i = 0 <= bytes ? ++_i : --_i\n ) {\n _results.push(this.data[this.pos++]);\n }\n return _results;\n };\n\n PNG.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.data[this.pos++] << 24;\n b2 = this.data[this.pos++] << 16;\n b3 = this.data[this.pos++] << 8;\n b4 = this.data[this.pos++];\n return b1 | b2 | b3 | b4;\n };\n\n PNG.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.data[this.pos++] << 8;\n b2 = this.data[this.pos++];\n return b1 | b2;\n };\n\n PNG.prototype.decodePixels = function(data) {\n var pixelBytes = this.pixelBitlength / 8;\n var fullPixels = new Uint8Array(this.width * this.height * pixelBytes);\n var pos = 0;\n var _this = this;\n\n if (data == null) {\n data = this.imgData;\n }\n if (data.length === 0) {\n return new Uint8Array(0);\n }\n\n data = unzlibSync(data);\n function pass(x0, y0, dx, dy) {\n var abyte,\n c,\n col,\n i,\n left,\n length,\n p,\n pa,\n paeth,\n pb,\n pc,\n pixels,\n row,\n scanlineLength,\n upper,\n upperLeft,\n _i,\n _j,\n _k,\n _l,\n _m;\n var w = Math.ceil((_this.width - x0) / dx),\n h = Math.ceil((_this.height - y0) / dy);\n var isFull = _this.width == w && _this.height == h;\n scanlineLength = pixelBytes * w;\n pixels = isFull ? fullPixels : new Uint8Array(scanlineLength * h);\n length = data.length;\n row = 0;\n c = 0;\n while (row < h && pos < length) {\n switch (data[pos++]) {\n case 0:\n for (i = _i = 0; _i < scanlineLength; i = _i += 1) {\n pixels[c++] = data[pos++];\n }\n break;\n case 1:\n for (i = _j = 0; _j < scanlineLength; i = _j += 1) {\n abyte = data[pos++];\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n pixels[c++] = (abyte + left) % 256;\n }\n break;\n case 2:\n for (i = _k = 0; _k < scanlineLength; i = _k += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (upper + abyte) % 256;\n }\n break;\n case 3:\n for (i = _l = 0; _l < scanlineLength; i = _l += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (abyte + Math.floor((left + upper) / 2)) % 256;\n }\n break;\n case 4:\n for (i = _m = 0; _m < scanlineLength; i = _m += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n if (row === 0) {\n upper = upperLeft = 0;\n } else {\n upper =\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n upperLeft =\n col &&\n pixels[\n (row - 1) * scanlineLength +\n (col - 1) * pixelBytes +\n (i % pixelBytes)\n ];\n }\n p = left + upper - upperLeft;\n pa = Math.abs(p - left);\n pb = Math.abs(p - upper);\n pc = Math.abs(p - upperLeft);\n if (pa <= pb && pa <= pc) {\n paeth = left;\n } else if (pb <= pc) {\n paeth = upper;\n } else {\n paeth = upperLeft;\n }\n pixels[c++] = (abyte + paeth) % 256;\n }\n break;\n default:\n throw new Error(\"Invalid filter algorithm: \" + data[pos - 1]);\n }\n if (!isFull) {\n var fullPos = ((y0 + row * dy) * _this.width + x0) * pixelBytes;\n var partPos = row * scanlineLength;\n for (i = 0; i < w; i += 1) {\n for (var j = 0; j < pixelBytes; j += 1)\n fullPixels[fullPos++] = pixels[partPos++];\n fullPos += (dx - 1) * pixelBytes;\n }\n }\n row++;\n }\n }\n if (_this.interlaceMethod == 1) {\n /*\n 1 6 4 6 2 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n 3 6 4 6 3 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n */\n pass(0, 0, 8, 8); // 1\n /* NOTE these seem to follow the pattern:\n * pass(x, 0, 2*x, 2*x);\n * pass(0, x, x, 2*x);\n * with x being 4, 2, 1.\n */\n pass(4, 0, 8, 8); // 2\n pass(0, 4, 4, 8); // 3\n\n pass(2, 0, 4, 4); // 4\n pass(0, 2, 2, 4); // 5\n\n pass(1, 0, 2, 2); // 6\n pass(0, 1, 1, 2); // 7\n } else {\n pass(0, 0, 1, 1);\n }\n return fullPixels;\n };\n\n PNG.prototype.decodePalette = function() {\n var c, i, length, palette, pos, ret, transparency, _i, _ref, _ref1;\n palette = this.palette;\n transparency = this.transparency.indexed || [];\n ret = new Uint8Array((transparency.length || 0) + palette.length);\n pos = 0;\n length = palette.length;\n c = 0;\n for (i = _i = 0, _ref = length; _i < _ref; i = _i += 3) {\n ret[pos++] = palette[i];\n ret[pos++] = palette[i + 1];\n ret[pos++] = palette[i + 2];\n ret[pos++] = (_ref1 = transparency[c++]) != null ? _ref1 : 255;\n }\n return ret;\n };\n\n PNG.prototype.copyToImageData = function(imageData, pixels) {\n var alpha, colors, data, i, input, j, k, length, palette, v, _ref;\n colors = this.colors;\n palette = null;\n alpha = this.hasAlphaChannel;\n if (this.palette.length) {\n palette =\n (_ref = this._decodedPalette) != null\n ? _ref\n : (this._decodedPalette = this.decodePalette());\n colors = 4;\n alpha = true;\n }\n data = imageData.data || imageData;\n length = data.length;\n input = palette || pixels;\n i = j = 0;\n if (colors === 1) {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n v = input[k++];\n data[i++] = v;\n data[i++] = v;\n data[i++] = v;\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n } else {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n }\n };\n\n PNG.prototype.decode = function() {\n var ret;\n ret = new Uint8Array(this.width * this.height * 4);\n this.copyToImageData(ret, this.decodePixels());\n return ret;\n };\n\n var hasBrowserCanvas = function() {\n if (Object.prototype.toString.call(globalObject) === \"[object Window]\") {\n try {\n scratchCanvas = globalObject.document.createElement(\"canvas\");\n scratchCtx = scratchCanvas.getContext(\"2d\");\n } catch (e) {\n return false;\n }\n return true;\n }\n return false;\n };\n\n hasBrowserCanvas();\n\n makeImage = function(imageData) {\n if (hasBrowserCanvas() === true) {\n var img;\n scratchCtx.width = imageData.width;\n scratchCtx.height = imageData.height;\n scratchCtx.clearRect(0, 0, imageData.width, imageData.height);\n scratchCtx.putImageData(imageData, 0, 0);\n img = new Image();\n img.src = scratchCanvas.toDataURL();\n return img;\n }\n throw new Error(\"This method requires a Browser with Canvas-capability.\");\n };\n\n PNG.prototype.decodeFrames = function(ctx) {\n var frame, i, imageData, pixels, _i, _len, _ref, _results;\n if (!this.animation) {\n return;\n }\n _ref = this.animation.frames;\n _results = [];\n for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n frame = _ref[i];\n imageData = ctx.createImageData(frame.width, frame.height);\n pixels = this.decodePixels(new Uint8Array(frame.data));\n this.copyToImageData(imageData, pixels);\n frame.imageData = imageData;\n _results.push((frame.image = makeImage(imageData)));\n }\n return _results;\n };\n\n PNG.prototype.renderFrame = function(ctx, number) {\n var frame, frames, prev;\n frames = this.animation.frames;\n frame = frames[number];\n prev = frames[number - 1];\n if (number === 0) {\n ctx.clearRect(0, 0, this.width, this.height);\n }\n if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_BACKGROUND\n ) {\n ctx.clearRect(prev.xOffset, prev.yOffset, prev.width, prev.height);\n } else if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_PREVIOUS\n ) {\n ctx.putImageData(prev.imageData, prev.xOffset, prev.yOffset);\n }\n if (frame.blendOp === APNG_BLEND_OP_SOURCE) {\n ctx.clearRect(frame.xOffset, frame.yOffset, frame.width, frame.height);\n }\n return ctx.drawImage(frame.image, frame.xOffset, frame.yOffset);\n };\n\n PNG.prototype.animate = function(ctx) {\n var doFrame,\n frameNumber,\n frames,\n numFrames,\n numPlays,\n _ref,\n _this = this;\n frameNumber = 0;\n (_ref = this.animation),\n (numFrames = _ref.numFrames),\n (frames = _ref.frames),\n (numPlays = _ref.numPlays);\n return (doFrame = function() {\n var f, frame;\n f = frameNumber++ % numFrames;\n frame = frames[f];\n _this.renderFrame(ctx, f);\n if (numFrames > 1 && frameNumber / numFrames < numPlays) {\n return (_this.animation._timeout = setTimeout(doFrame, frame.delay));\n }\n })();\n };\n\n PNG.prototype.stopAnimation = function() {\n var _ref;\n return clearTimeout(\n (_ref = this.animation) != null ? _ref._timeout : void 0\n );\n };\n\n PNG.prototype.render = function(canvas) {\n var ctx, data;\n if (canvas._png) {\n canvas._png.stopAnimation();\n }\n canvas._png = this;\n canvas.width = this.width;\n canvas.height = this.height;\n ctx = canvas.getContext(\"2d\");\n if (this.animation) {\n this.decodeFrames(ctx);\n return this.animate(ctx);\n } else {\n data = ctx.createImageData(this.width, this.height);\n this.copyToImageData(data, this.decodePixels());\n return ctx.putImageData(data, 0, 0);\n }\n };\n\n return PNG;\n})();\n\nexport { PNG };\n","/** @license\n * MIT license.\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF split_text_to_size plugin\n *\n * @name split_text_to_size\n * @module\n */\n(function(API) {\n \"use strict\";\n /**\n * Returns an array of length matching length of the 'word' string, with each\n * cell occupied by the width of the char in that position.\n *\n * @name getCharWidthsArray\n * @function\n * @param {string} text\n * @param {Object} options\n * @returns {Array}\n */\n var getCharWidthsArray = (API.getCharWidthsArray = function(text, options) {\n options = options || {};\n\n var activeFont = options.font || this.internal.getFont();\n var fontSize = options.fontSize || this.internal.getFontSize();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n\n var widths = options.widths\n ? options.widths\n : activeFont.metadata.Unicode.widths;\n var widthsFractionOf = widths.fof ? widths.fof : 1;\n var kerning = options.kerning\n ? options.kerning\n : activeFont.metadata.Unicode.kerning;\n var kerningFractionOf = kerning.fof ? kerning.fof : 1;\n var doKerning = options.doKerning === false ? false : true;\n var kerningValue = 0;\n\n var i;\n var length = text.length;\n var char_code;\n var prior_char_code = 0; //for kerning\n var default_char_width = widths[0] || widthsFractionOf;\n var output = [];\n\n for (i = 0; i < length; i++) {\n char_code = text.charCodeAt(i);\n\n if (typeof activeFont.metadata.widthOfString === \"function\") {\n output.push(\n (activeFont.metadata.widthOfGlyph(\n activeFont.metadata.characterToGlyph(char_code)\n ) +\n charSpace * (1000 / fontSize) || 0) / 1000\n );\n } else {\n if (\n doKerning &&\n typeof kerning[char_code] === \"object\" &&\n !isNaN(parseInt(kerning[char_code][prior_char_code], 10))\n ) {\n kerningValue =\n kerning[char_code][prior_char_code] / kerningFractionOf;\n } else {\n kerningValue = 0;\n }\n output.push(\n (widths[char_code] || default_char_width) / widthsFractionOf +\n kerningValue\n );\n }\n prior_char_code = char_code;\n }\n\n return output;\n });\n\n /**\n * Returns a widths of string in a given font, if the font size is set as 1 point.\n *\n * In other words, this is \"proportional\" value. For 1 unit of font size, the length\n * of the string will be that much.\n *\n * Multiply by font size to get actual width in *points*\n * Then divide by 72 to get inches or divide by (72/25.6) to get 'mm' etc.\n *\n * @name getStringUnitWidth\n * @public\n * @function\n * @param {string} text\n * @param {string} options\n * @returns {number} result\n */\n var getStringUnitWidth = (API.getStringUnitWidth = function(text, options) {\n options = options || {};\n\n var fontSize = options.fontSize || this.internal.getFontSize();\n var font = options.font || this.internal.getFont();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n var result = 0;\n\n if (API.processArabic) {\n text = API.processArabic(text);\n }\n\n if (typeof font.metadata.widthOfString === \"function\") {\n result =\n font.metadata.widthOfString(text, fontSize, charSpace) / fontSize;\n } else {\n result = getCharWidthsArray\n .apply(this, arguments)\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n }\n return result;\n });\n\n /**\n returns array of lines\n */\n var splitLongWord = function(word, widths_array, firstLineMaxLen, maxLen) {\n var answer = [];\n\n // 1st, chop off the piece that can fit on the hanging line.\n var i = 0,\n l = word.length,\n workingLen = 0;\n while (i !== l && workingLen + widths_array[i] < firstLineMaxLen) {\n workingLen += widths_array[i];\n i++;\n }\n // this is first line.\n answer.push(word.slice(0, i));\n\n // 2nd. Split the rest into maxLen pieces.\n var startOfLine = i;\n workingLen = 0;\n while (i !== l) {\n if (workingLen + widths_array[i] > maxLen) {\n answer.push(word.slice(startOfLine, i));\n workingLen = 0;\n startOfLine = i;\n }\n workingLen += widths_array[i];\n i++;\n }\n if (startOfLine !== i) {\n answer.push(word.slice(startOfLine, i));\n }\n\n return answer;\n };\n\n // Note, all sizing inputs for this function must be in \"font measurement units\"\n // By default, for PDF, it's \"point\".\n var splitParagraphIntoLines = function(text, maxlen, options) {\n // at this time works only on Western scripts, ones with space char\n // separating the words. Feel free to expand.\n\n if (!options) {\n options = {};\n }\n\n var line = [],\n lines = [line],\n line_length = options.textIndent || 0,\n separator_length = 0,\n current_word_length = 0,\n word,\n widths_array,\n words = text.split(\" \"),\n spaceCharWidth = getCharWidthsArray.apply(this, [\" \", options])[0],\n i,\n l,\n tmp,\n lineIndent;\n\n if (options.lineIndent === -1) {\n lineIndent = words[0].length + 2;\n } else {\n lineIndent = options.lineIndent || 0;\n }\n if (lineIndent) {\n var pad = Array(lineIndent).join(\" \"),\n wrds = [];\n words.map(function(wrd) {\n wrd = wrd.split(/\\s*\\n/);\n if (wrd.length > 1) {\n wrds = wrds.concat(\n wrd.map(function(wrd, idx) {\n return (idx && wrd.length ? \"\\n\" : \"\") + wrd;\n })\n );\n } else {\n wrds.push(wrd[0]);\n }\n });\n words = wrds;\n lineIndent = getStringUnitWidth.apply(this, [pad, options]);\n }\n\n for (i = 0, l = words.length; i < l; i++) {\n var force = 0;\n\n word = words[i];\n if (lineIndent && word[0] == \"\\n\") {\n word = word.substr(1);\n force = 1;\n }\n widths_array = getCharWidthsArray.apply(this, [word, options]);\n current_word_length = widths_array.reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n\n if (\n line_length + separator_length + current_word_length > maxlen ||\n force\n ) {\n if (current_word_length > maxlen) {\n // this happens when you have space-less long URLs for example.\n // we just chop these to size. We do NOT insert hiphens\n tmp = splitLongWord.apply(this, [\n word,\n widths_array,\n maxlen - (line_length + separator_length),\n maxlen\n ]);\n // first line we add to existing line object\n line.push(tmp.shift()); // it's ok to have extra space indicator there\n // last line we make into new line object\n line = [tmp.pop()];\n // lines in the middle we apped to lines object as whole lines\n while (tmp.length) {\n lines.push([tmp.shift()]); // single fragment occupies whole line\n }\n current_word_length = widths_array\n .slice(word.length - (line[0] ? line[0].length : 0))\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n } else {\n // just put it on a new line\n line = [word];\n }\n\n // now we attach new line to lines\n lines.push(line);\n line_length = current_word_length + lineIndent;\n separator_length = spaceCharWidth;\n } else {\n line.push(word);\n\n line_length += separator_length + current_word_length;\n separator_length = spaceCharWidth;\n }\n }\n\n var postProcess;\n if (lineIndent) {\n postProcess = function(ln, idx) {\n return (idx ? pad : \"\") + ln.join(\" \");\n };\n } else {\n postProcess = function(ln) {\n return ln.join(\" \");\n };\n }\n\n return lines.map(postProcess);\n };\n\n /**\n * Splits a given string into an array of strings. Uses 'size' value\n * (in measurement units declared as default for the jsPDF instance)\n * and the font's \"widths\" and \"Kerning\" tables, where available, to\n * determine display length of a given string for a given font.\n *\n * We use character's 100% of unit size (height) as width when Width\n * table or other default width is not available.\n *\n * @name splitTextToSize\n * @public\n * @function\n * @param {string} text Unencoded, regular JavaScript (Unicode, UTF-16 / UCS-2) string.\n * @param {number} size Nominal number, measured in units default to this instance of jsPDF.\n * @param {Object} options Optional flags needed for chopper to do the right thing.\n * @returns {Array} array Array with strings chopped to size.\n */\n API.splitTextToSize = function(text, maxlen, options) {\n \"use strict\";\n\n options = options || {};\n\n var fsize = options.fontSize || this.internal.getFontSize(),\n newOptions = function(options) {\n var widths = {\n 0: 1\n },\n kerning = {};\n\n if (!options.widths || !options.kerning) {\n var f = this.internal.getFont(options.fontName, options.fontStyle),\n encoding = \"Unicode\";\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE\n // Actual JavaScript-native String's 16bit char codes used.\n // no multi-byte logic here\n\n if (f.metadata[encoding]) {\n return {\n widths: f.metadata[encoding].widths || widths,\n kerning: f.metadata[encoding].kerning || kerning\n };\n } else {\n return {\n font: f.metadata,\n fontSize: this.internal.getFontSize(),\n charSpace: this.internal.getCharSpace()\n };\n }\n } else {\n return {\n widths: options.widths,\n kerning: options.kerning\n };\n }\n }.call(this, options);\n\n // first we split on end-of-line chars\n var paragraphs;\n if (Array.isArray(text)) {\n paragraphs = text;\n } else {\n paragraphs = String(text).split(/\\r?\\n/);\n }\n\n // now we convert size (max length of line) into \"font size units\"\n // at present time, the \"font size unit\" is always 'point'\n // 'proportional' means, \"in proportion to font size\"\n var fontUnit_maxLen = (1.0 * this.internal.scaleFactor * maxlen) / fsize;\n // at this time, fsize is always in \"points\" regardless of the default measurement unit of the doc.\n // this may change in the future?\n // until then, proportional_maxlen is likely to be in 'points'\n\n // If first line is to be indented (shorter or longer) than maxLen\n // we indicate that by using CSS-style \"text-indent\" option.\n // here it's in font units too (which is likely 'points')\n // it can be negative (which makes the first line longer than maxLen)\n newOptions.textIndent = options.textIndent\n ? (options.textIndent * 1.0 * this.internal.scaleFactor) / fsize\n : 0;\n newOptions.lineIndent = options.lineIndent;\n\n var i,\n l,\n output = [];\n for (i = 0, l = paragraphs.length; i < l; i++) {\n output = output.concat(\n splitParagraphIntoLines.apply(this, [\n paragraphs[i],\n fontUnit_maxLen,\n newOptions\n ])\n );\n }\n\n return output;\n };\n})(jsPDF.API);\n","/**\n * @license\n * (c) Dean McNamee , 2013.\n *\n * https://github.com/deanm/omggif\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n * including animation and compression. It does not rely on any specific\n * underlying system, so should run in the browser, Node, or Plask.\n */\n\n\"use strict\";\n\nimport { console } from \"./console.js\";\n\nfunction GifWriter(buf, width, height, gopts) {\n var p = 0;\n\n var gopts = gopts === undefined ? {} : gopts;\n var loop_count = gopts.loop === undefined ? null : gopts.loop;\n var global_palette = gopts.palette === undefined ? null : gopts.palette;\n\n if (width <= 0 || height <= 0 || width > 65535 || height > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n function check_palette_and_num_colors(palette) {\n var num_colors = palette.length;\n if (num_colors < 2 || num_colors > 256 || num_colors & (num_colors - 1)) {\n throw new Error(\n \"Invalid code/color length, must be power of 2 and 2 .. 256.\"\n );\n }\n return num_colors;\n }\n\n // - Header.\n buf[p++] = 0x47;\n buf[p++] = 0x49;\n buf[p++] = 0x46; // GIF\n buf[p++] = 0x38;\n buf[p++] = 0x39;\n buf[p++] = 0x61; // 89a\n\n // Handling of Global Color Table (palette) and background index.\n var gp_num_colors_pow2 = 0;\n var background = 0;\n if (global_palette !== null) {\n var gp_num_colors = check_palette_and_num_colors(global_palette);\n while ((gp_num_colors >>= 1)) ++gp_num_colors_pow2;\n gp_num_colors = 1 << gp_num_colors_pow2;\n --gp_num_colors_pow2;\n if (gopts.background !== undefined) {\n background = gopts.background;\n if (background >= gp_num_colors)\n throw new Error(\"Background index out of range.\");\n // The GIF spec states that a background index of 0 should be ignored, so\n // this is probably a mistake and you really want to set it to another\n // slot in the palette. But actually in the end most browsers, etc end\n // up ignoring this almost completely (including for dispose background).\n if (background === 0)\n throw new Error(\"Background index explicitly passed as 0.\");\n }\n }\n\n // - Logical Screen Descriptor.\n // NOTE(deanm): w/h apparently ignored by implementations, but set anyway.\n buf[p++] = width & 0xff;\n buf[p++] = (width >> 8) & 0xff;\n buf[p++] = height & 0xff;\n buf[p++] = (height >> 8) & 0xff;\n // NOTE: Indicates 0-bpp original color resolution (unused?).\n buf[p++] = (global_palette !== null ? 0x80 : 0) | gp_num_colors_pow2; // Global Color Table Flag. // NOTE: No sort flag (unused?).\n buf[p++] = background; // Background Color Index.\n buf[p++] = 0; // Pixel aspect ratio (unused?).\n\n // - Global Color Table\n if (global_palette !== null) {\n for (var i = 0, il = global_palette.length; i < il; ++i) {\n var rgb = global_palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n if (loop_count !== null) {\n // Netscape block for looping.\n if (loop_count < 0 || loop_count > 65535)\n throw new Error(\"Loop count invalid.\");\n // Extension code, label, and length.\n buf[p++] = 0x21;\n buf[p++] = 0xff;\n buf[p++] = 0x0b;\n // NETSCAPE2.0\n buf[p++] = 0x4e;\n buf[p++] = 0x45;\n buf[p++] = 0x54;\n buf[p++] = 0x53;\n buf[p++] = 0x43;\n buf[p++] = 0x41;\n buf[p++] = 0x50;\n buf[p++] = 0x45;\n buf[p++] = 0x32;\n buf[p++] = 0x2e;\n buf[p++] = 0x30;\n // Sub-block\n buf[p++] = 0x03;\n buf[p++] = 0x01;\n buf[p++] = loop_count & 0xff;\n buf[p++] = (loop_count >> 8) & 0xff;\n buf[p++] = 0x00; // Terminator.\n }\n\n var ended = false;\n\n this.addFrame = function(x, y, w, h, indexed_pixels, opts) {\n if (ended === true) {\n --p;\n ended = false;\n } // Un-end.\n\n opts = opts === undefined ? {} : opts;\n\n // TODO(deanm): Bounds check x, y. Do they need to be within the virtual\n // canvas width/height, I imagine?\n if (x < 0 || y < 0 || x > 65535 || y > 65535)\n throw new Error(\"x/y invalid.\");\n\n if (w <= 0 || h <= 0 || w > 65535 || h > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n if (indexed_pixels.length < w * h)\n throw new Error(\"Not enough pixels for the frame size.\");\n\n var using_local_palette = true;\n var palette = opts.palette;\n if (palette === undefined || palette === null) {\n using_local_palette = false;\n palette = global_palette;\n }\n\n if (palette === undefined || palette === null)\n throw new Error(\"Must supply either a local or global palette.\");\n\n var num_colors = check_palette_and_num_colors(palette);\n\n // Compute the min_code_size (power of 2), destroying num_colors.\n var min_code_size = 0;\n while ((num_colors >>= 1)) ++min_code_size;\n num_colors = 1 << min_code_size; // Now we can easily get it back.\n\n var delay = opts.delay === undefined ? 0 : opts.delay;\n\n // From the spec:\n // 0 - No disposal specified. The decoder is\n // not required to take any action.\n // 1 - Do not dispose. The graphic is to be left\n // in place.\n // 2 - Restore to background color. The area used by the\n // graphic must be restored to the background color.\n // 3 - Restore to previous. The decoder is required to\n // restore the area overwritten by the graphic with\n // what was there prior to rendering the graphic.\n // 4-7 - To be defined.\n // NOTE(deanm): Dispose background doesn't really work, apparently most\n // browsers ignore the background palette index and clear to transparency.\n var disposal = opts.disposal === undefined ? 0 : opts.disposal;\n if (disposal < 0 || disposal > 3)\n // 4-7 is reserved.\n throw new Error(\"Disposal out of range.\");\n\n var use_transparency = false;\n var transparent_index = 0;\n if (opts.transparent !== undefined && opts.transparent !== null) {\n use_transparency = true;\n transparent_index = opts.transparent;\n if (transparent_index < 0 || transparent_index >= num_colors)\n throw new Error(\"Transparent color index.\");\n }\n\n if (disposal !== 0 || use_transparency || delay !== 0) {\n // - Graphics Control Extension\n buf[p++] = 0x21;\n buf[p++] = 0xf9; // Extension / Label.\n buf[p++] = 4; // Byte size.\n\n buf[p++] = (disposal << 2) | (use_transparency === true ? 1 : 0);\n buf[p++] = delay & 0xff;\n buf[p++] = (delay >> 8) & 0xff;\n buf[p++] = transparent_index; // Transparent color index.\n buf[p++] = 0; // Block Terminator.\n }\n\n // - Image Descriptor\n buf[p++] = 0x2c; // Image Seperator.\n buf[p++] = x & 0xff;\n buf[p++] = (x >> 8) & 0xff; // Left.\n buf[p++] = y & 0xff;\n buf[p++] = (y >> 8) & 0xff; // Top.\n buf[p++] = w & 0xff;\n buf[p++] = (w >> 8) & 0xff;\n buf[p++] = h & 0xff;\n buf[p++] = (h >> 8) & 0xff;\n // NOTE: No sort flag (unused?).\n // TODO(deanm): Support interlace.\n buf[p++] = using_local_palette === true ? 0x80 | (min_code_size - 1) : 0;\n\n // - Local Color Table\n if (using_local_palette === true) {\n for (var i = 0, il = palette.length; i < il; ++i) {\n var rgb = palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n p = GifWriterOutputLZWCodeStream(\n buf,\n p,\n min_code_size < 2 ? 2 : min_code_size,\n indexed_pixels\n );\n\n return p;\n };\n\n this.end = function() {\n if (ended === false) {\n buf[p++] = 0x3b; // Trailer.\n ended = true;\n }\n return p;\n };\n\n this.getOutputBuffer = function() {\n return buf;\n };\n this.setOutputBuffer = function(v) {\n buf = v;\n };\n this.getOutputBufferPosition = function() {\n return p;\n };\n this.setOutputBufferPosition = function(v) {\n p = v;\n };\n}\n\n// Main compression routine, palette indexes -> LZW code stream.\n// |index_stream| must have at least one entry.\nfunction GifWriterOutputLZWCodeStream(buf, p, min_code_size, index_stream) {\n buf[p++] = min_code_size;\n var cur_subblock = p++; // Pointing at the length field.\n\n var clear_code = 1 << min_code_size;\n var code_mask = clear_code - 1;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n var cur_shift = 0;\n // We have at most 12-bit codes, so we should have to hold a max of 19\n // bits here (and then we would write out).\n var cur = 0;\n\n function emit_bytes_to_buffer(bit_block_size) {\n while (cur_shift >= bit_block_size) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n }\n\n function emit_code(c) {\n cur |= c << cur_shift;\n cur_shift += cur_code_size;\n emit_bytes_to_buffer(8);\n }\n\n // I am not an expert on the topic, and I don't want to write a thesis.\n // However, it is good to outline here the basic algorithm and the few data\n // structures and optimizations here that make this implementation fast.\n // The basic idea behind LZW is to build a table of previously seen runs\n // addressed by a short id (herein called output code). All data is\n // referenced by a code, which represents one or more values from the\n // original input stream. All input bytes can be referenced as the same\n // value as an output code. So if you didn't want any compression, you\n // could more or less just output the original bytes as codes (there are\n // some details to this, but it is the idea). In order to achieve\n // compression, values greater then the input range (codes can be up to\n // 12-bit while input only 8-bit) represent a sequence of previously seen\n // inputs. The decompressor is able to build the same mapping while\n // decoding, so there is always a shared common knowledge between the\n // encoding and decoder, which is also important for \"timing\" aspects like\n // how to handle variable bit width code encoding.\n //\n // One obvious but very important consequence of the table system is there\n // is always a unique id (at most 12-bits) to map the runs. 'A' might be\n // 4, then 'AA' might be 10, 'AAA' 11, 'AAAA' 12, etc. This relationship\n // can be used for an effecient lookup strategy for the code mapping. We\n // need to know if a run has been seen before, and be able to map that run\n // to the output code. Since we start with known unique ids (input bytes),\n // and then from those build more unique ids (table entries), we can\n // continue this chain (almost like a linked list) to always have small\n // integer values that represent the current byte chains in the encoder.\n // This means instead of tracking the input bytes (AAAABCD) to know our\n // current state, we can track the table entry for AAAABC (it is guaranteed\n // to exist by the nature of the algorithm) and the next character D.\n // Therefor the tuple of (table_entry, byte) is guaranteed to also be\n // unique. This allows us to create a simple lookup key for mapping input\n // sequences to codes (table indices) without having to store or search\n // any of the code sequences. So if 'AAAA' has a table entry of 12, the\n // tuple of ('AAAA', K) for any input byte K will be unique, and can be our\n // key. This leads to a integer value at most 20-bits, which can always\n // fit in an SMI value and be used as a fast sparse array / object key.\n\n // Output code for the current contents of the index buffer.\n var ib_code = index_stream[0] & code_mask; // Load first input index.\n var code_table = {}; // Key'd on our 20-bit \"tuple\".\n\n emit_code(clear_code); // Spec says first code should be a clear code.\n\n // First index already loaded, process the rest of the stream.\n for (var i = 1, il = index_stream.length; i < il; ++i) {\n var k = index_stream[i] & code_mask;\n var cur_key = (ib_code << 8) | k; // (prev, k) unique tuple.\n var cur_code = code_table[cur_key]; // buffer + k.\n\n // Check if we have to create a new code table entry.\n if (cur_code === undefined) {\n // We don't have buffer + k.\n // Emit index buffer (without k).\n // This is an inline version of emit_code, because this is the core\n // writing routine of the compressor (and V8 cannot inline emit_code\n // because it is a closure here in a different context). Additionally\n // we can call emit_byte_to_buffer less often, because we can have\n // 30-bits (from our 31-bit signed SMI), and we know our codes will only\n // be 12-bits, so can safely have 18-bits there without overflow.\n // emit_code(ib_code);\n cur |= ib_code << cur_shift;\n cur_shift += cur_code_size;\n while (cur_shift >= 8) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n\n if (next_code === 4096) {\n // Table full, need a clear.\n emit_code(clear_code);\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_table = {};\n } else {\n // Table not full, insert a new entry.\n // Increase our variable bit code sizes if necessary. This is a bit\n // tricky as it is based on \"timing\" between the encoding and\n // decoder. From the encoders perspective this should happen after\n // we've already emitted the index buffer and are about to create the\n // first table entry that would overflow our current code bit size.\n if (next_code >= 1 << cur_code_size) ++cur_code_size;\n code_table[cur_key] = next_code++; // Insert into code table.\n }\n\n ib_code = k; // Index buffer to single input k.\n } else {\n ib_code = cur_code; // Index buffer to sequence in code table.\n }\n }\n\n emit_code(ib_code); // There will still be something in the index buffer.\n emit_code(eoi_code); // End Of Information.\n\n // Flush / finalize the sub-blocks stream to the buffer.\n emit_bytes_to_buffer(1);\n\n // Finish the sub-blocks, writing out any unfinished lengths and\n // terminating with a sub-block of length 0. If we have already started\n // but not yet used a sub-block it can just become the terminator.\n if (cur_subblock + 1 === p) {\n // Started but unused.\n buf[cur_subblock] = 0;\n } else {\n // Started and used, write length and additional terminator block.\n buf[cur_subblock] = p - cur_subblock - 1;\n buf[p++] = 0;\n }\n return p;\n}\n\nfunction GifReader(buf) {\n var p = 0;\n\n // - Header (GIF87a or GIF89a).\n if (\n buf[p++] !== 0x47 ||\n buf[p++] !== 0x49 ||\n buf[p++] !== 0x46 ||\n buf[p++] !== 0x38 ||\n ((buf[p++] + 1) & 0xfd) !== 0x38 ||\n buf[p++] !== 0x61\n ) {\n throw new Error(\"Invalid GIF 87a/89a header.\");\n }\n\n // - Logical Screen Descriptor.\n var width = buf[p++] | (buf[p++] << 8);\n var height = buf[p++] | (buf[p++] << 8);\n var pf0 = buf[p++]; // .\n var global_palette_flag = pf0 >> 7;\n var num_global_colors_pow2 = pf0 & 0x7;\n var num_global_colors = 1 << (num_global_colors_pow2 + 1);\n var background = buf[p++];\n buf[p++]; // Pixel aspect ratio (unused?).\n\n var global_palette_offset = null;\n var global_palette_size = null;\n\n if (global_palette_flag) {\n global_palette_offset = p;\n global_palette_size = num_global_colors;\n p += num_global_colors * 3; // Seek past palette.\n }\n\n var no_eof = true;\n\n var frames = [];\n\n var delay = 0;\n var transparent_index = null;\n var disposal = 0; // 0 - No disposal specified.\n var loop_count = null;\n\n this.width = width;\n this.height = height;\n\n while (no_eof && p < buf.length) {\n switch (buf[p++]) {\n case 0x21: // Graphics Control Extension Block\n switch (buf[p++]) {\n case 0xff: // Application specific block\n // Try if it's a Netscape block (with animation loop counter).\n if (\n buf[p] !== 0x0b || // 21 FF already read, check block size.\n // NETSCAPE2.0\n (buf[p + 1] == 0x4e &&\n buf[p + 2] == 0x45 &&\n buf[p + 3] == 0x54 &&\n buf[p + 4] == 0x53 &&\n buf[p + 5] == 0x43 &&\n buf[p + 6] == 0x41 &&\n buf[p + 7] == 0x50 &&\n buf[p + 8] == 0x45 &&\n buf[p + 9] == 0x32 &&\n buf[p + 10] == 0x2e &&\n buf[p + 11] == 0x30 &&\n // Sub-block\n buf[p + 12] == 0x03 &&\n buf[p + 13] == 0x01 &&\n buf[p + 16] == 0)\n ) {\n p += 14;\n loop_count = buf[p++] | (buf[p++] << 8);\n p++; // Skip terminator.\n } else {\n // We don't know what it is, just try to get past it.\n p += 12;\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n }\n break;\n\n case 0xf9: // Graphics Control Extension\n if (buf[p++] !== 0x4 || buf[p + 4] !== 0)\n throw new Error(\"Invalid graphics extension block.\");\n var pf1 = buf[p++];\n delay = buf[p++] | (buf[p++] << 8);\n transparent_index = buf[p++];\n if ((pf1 & 1) === 0) transparent_index = null;\n disposal = (pf1 >> 2) & 0x7;\n p++; // Skip terminator.\n break;\n\n case 0xfe: // Comment Extension.\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n // console.log(buf.slice(p, p+block_size).toString('ascii'));\n p += block_size;\n }\n break;\n\n default:\n throw new Error(\n \"Unknown graphic control label: 0x\" + buf[p - 1].toString(16)\n );\n }\n break;\n\n case 0x2c: // Image Descriptor.\n var x = buf[p++] | (buf[p++] << 8);\n var y = buf[p++] | (buf[p++] << 8);\n var w = buf[p++] | (buf[p++] << 8);\n var h = buf[p++] | (buf[p++] << 8);\n var pf2 = buf[p++];\n var local_palette_flag = pf2 >> 7;\n var interlace_flag = (pf2 >> 6) & 1;\n var num_local_colors_pow2 = pf2 & 0x7;\n var num_local_colors = 1 << (num_local_colors_pow2 + 1);\n var palette_offset = global_palette_offset;\n var palette_size = global_palette_size;\n var has_local_palette = false;\n if (local_palette_flag) {\n var has_local_palette = true;\n palette_offset = p; // Override with local palette.\n palette_size = num_local_colors;\n p += num_local_colors * 3; // Seek past palette.\n }\n\n var data_offset = p;\n\n p++; // codesize\n while (true) {\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n\n frames.push({\n x: x,\n y: y,\n width: w,\n height: h,\n has_local_palette: has_local_palette,\n palette_offset: palette_offset,\n palette_size: palette_size,\n data_offset: data_offset,\n data_length: p - data_offset,\n transparent_index: transparent_index,\n interlaced: !!interlace_flag,\n delay: delay,\n disposal: disposal\n });\n break;\n\n case 0x3b: // Trailer Marker (end of file).\n no_eof = false;\n break;\n\n default:\n throw new Error(\"Unknown gif block: 0x\" + buf[p - 1].toString(16));\n break;\n }\n }\n\n this.numFrames = function() {\n return frames.length;\n };\n\n this.loopCount = function() {\n return loop_count;\n };\n\n this.frameInfo = function(frame_num) {\n if (frame_num < 0 || frame_num >= frames.length)\n throw new Error(\"Frame index out of range.\");\n return frames[frame_num];\n };\n\n this.decodeAndBlitFrameBGRA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = b;\n pixels[op++] = g;\n pixels[op++] = r;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n\n // I will go to copy and paste hell one day...\n this.decodeAndBlitFrameRGBA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = r;\n pixels[op++] = g;\n pixels[op++] = b;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n}\n\nfunction GifReaderLZWOutputIndexStream(code_stream, p, output, output_length) {\n var min_code_size = code_stream[p++];\n\n var clear_code = 1 << min_code_size;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n // NOTE: This shares the same name as the encoder, but has a different\n // meaning here. Here this masks each code coming from the code stream.\n var code_mask = (1 << cur_code_size) - 1;\n var cur_shift = 0;\n var cur = 0;\n\n var op = 0; // Output pointer.\n\n var subblock_size = code_stream[p++];\n\n // TODO(deanm): Would using a TypedArray be any faster? At least it would\n // solve the fast mode / backing store uncertainty.\n // var code_table = Array(4096);\n var code_table = new Int32Array(4096); // Can be signed, we only use 20 bits.\n\n var prev_code = null; // Track code-1.\n\n while (true) {\n // Read up to two bytes, making sure we always 12-bits for max sized code.\n while (cur_shift < 16) {\n if (subblock_size === 0) break; // No more data to be read.\n\n cur |= code_stream[p++] << cur_shift;\n cur_shift += 8;\n\n if (subblock_size === 1) {\n // Never let it get to 0 to hold logic above.\n subblock_size = code_stream[p++]; // Next subblock.\n } else {\n --subblock_size;\n }\n }\n\n // TODO(deanm): We should never really get here, we should have received\n // and EOI.\n if (cur_shift < cur_code_size) break;\n\n var code = cur & code_mask;\n cur >>= cur_code_size;\n cur_shift -= cur_code_size;\n\n // TODO(deanm): Maybe should check that the first code was a clear code,\n // at least this is what you're supposed to do. But actually our encoder\n // now doesn't emit a clear code first anyway.\n if (code === clear_code) {\n // We don't actually have to clear the table. This could be a good idea\n // for greater error checking, but we don't really do any anyway. We\n // will just track it with next_code and overwrite old entries.\n\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_mask = (1 << cur_code_size) - 1;\n\n // Don't update prev_code ?\n prev_code = null;\n continue;\n } else if (code === eoi_code) {\n break;\n }\n\n // We have a similar situation as the decoder, where we want to store\n // variable length entries (code table entries), but we want to do in a\n // faster manner than an array of arrays. The code below stores sort of a\n // linked list within the code table, and then \"chases\" through it to\n // construct the dictionary entries. When a new entry is created, just the\n // last byte is stored, and the rest (prefix) of the entry is only\n // referenced by its table entry. Then the code chases through the\n // prefixes until it reaches a single byte code. We have to chase twice,\n // first to compute the length, and then to actually copy the data to the\n // output (backwards, since we know the length). The alternative would be\n // storing something in an intermediate stack, but that doesn't make any\n // more sense. I implemented an approach where it also stored the length\n // in the code table, although it's a bit tricky because you run out of\n // bits (12 + 12 + 8), but I didn't measure much improvements (the table\n // entries are generally not the long). Even when I created benchmarks for\n // very long table entries the complexity did not seem worth it.\n // The code table stores the prefix entry in 12 bits and then the suffix\n // byte in 8 bits, so each entry is 20 bits.\n\n var chase_code = code < next_code ? code : prev_code;\n\n // Chase what we will output, either {CODE} or {CODE-1}.\n var chase_length = 0;\n var chase = chase_code;\n while (chase > clear_code) {\n chase = code_table[chase] >> 8;\n ++chase_length;\n }\n\n var k = chase;\n\n var op_end = op + chase_length + (chase_code !== code ? 1 : 0);\n if (op_end > output_length) {\n console.log(\"Warning, gif stream longer than expected.\");\n return;\n }\n\n // Already have the first byte from the chase, might as well write it fast.\n output[op++] = k;\n\n op += chase_length;\n var b = op; // Track pointer, writing backwards.\n\n if (chase_code !== code)\n // The case of emitting {CODE-1} + k.\n output[op++] = k;\n\n chase = chase_code;\n while (chase_length--) {\n chase = code_table[chase];\n output[--b] = chase & 0xff; // Write backwards.\n chase >>= 8; // Pull down to the prefix code.\n }\n\n if (prev_code !== null && next_code < 4096) {\n code_table[next_code++] = (prev_code << 8) | k;\n // TODO(deanm): Figure out this clearing vs code growth logic better. I\n // have an feeling that it should just happen somewhere else, for now it\n // is awkward between when we grow past the max and then hit a clear code.\n // For now just check if we hit the max 12-bits (then a clear code should\n // follow, also of course encoded in 12-bits).\n if (next_code >= code_mask + 1 && cur_code_size < 12) {\n ++cur_code_size;\n code_mask = (code_mask << 1) | 1;\n }\n }\n\n prev_code = code;\n }\n\n if (op !== output_length) {\n console.log(\"Warning, gif stream shorter than expected.\");\n }\n\n return output;\n}\n\nexport { GifReader, GifWriter };\n","/**\n * @license\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*\nJPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009\n\nBasic GUI blocking jpeg encoder\n*/\n\nfunction JPEGEncoder(quality) {\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT;\n var UVDC_HT;\n var YAC_HT;\n var UVAC_HT;\n\n var bitcode = new Array(65535);\n var category = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n\n var std_dc_luminance_nrcodes = [\n 0,\n 0,\n 1,\n 5,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 3,\n 3,\n 2,\n 4,\n 3,\n 5,\n 5,\n 4,\n 4,\n 0,\n 0,\n 1,\n 0x7d\n ];\n var std_ac_luminance_values = [\n 0x01,\n 0x02,\n 0x03,\n 0x00,\n 0x04,\n 0x11,\n 0x05,\n 0x12,\n 0x21,\n 0x31,\n 0x41,\n 0x06,\n 0x13,\n 0x51,\n 0x61,\n 0x07,\n 0x22,\n 0x71,\n 0x14,\n 0x32,\n 0x81,\n 0x91,\n 0xa1,\n 0x08,\n 0x23,\n 0x42,\n 0xb1,\n 0xc1,\n 0x15,\n 0x52,\n 0xd1,\n 0xf0,\n 0x24,\n 0x33,\n 0x62,\n 0x72,\n 0x82,\n 0x09,\n 0x0a,\n 0x16,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x25,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x34,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe1,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf1,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n var std_dc_chrominance_nrcodes = [\n 0,\n 0,\n 3,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 2,\n 4,\n 4,\n 3,\n 4,\n 7,\n 5,\n 4,\n 4,\n 0,\n 1,\n 2,\n 0x77\n ];\n var std_ac_chrominance_values = [\n 0x00,\n 0x01,\n 0x02,\n 0x03,\n 0x11,\n 0x04,\n 0x05,\n 0x21,\n 0x31,\n 0x06,\n 0x12,\n 0x41,\n 0x51,\n 0x07,\n 0x61,\n 0x71,\n 0x13,\n 0x22,\n 0x32,\n 0x81,\n 0x08,\n 0x14,\n 0x42,\n 0x91,\n 0xa1,\n 0xb1,\n 0xc1,\n 0x09,\n 0x23,\n 0x33,\n 0x52,\n 0xf0,\n 0x15,\n 0x62,\n 0x72,\n 0xd1,\n 0x0a,\n 0x16,\n 0x24,\n 0x34,\n 0xe1,\n 0x25,\n 0xf1,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x82,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n t = Math.min(Math.max(t, 1), 255);\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n u = Math.min(Math.max(u, 1), 255);\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1.0,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1.0,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1.0 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n fdtbl_UV[k] = 1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n k++;\n }\n }\n }\n\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n\n function initHuffmanTbl() {\n YDC_HT = computeHuffmanTbl(\n std_dc_luminance_nrcodes,\n std_dc_luminance_values\n );\n UVDC_HT = computeHuffmanTbl(\n std_dc_chrominance_nrcodes,\n std_dc_chrominance_values\n );\n YAC_HT = computeHuffmanTbl(\n std_ac_luminance_nrcodes,\n std_ac_luminance_values\n );\n UVAC_HT = computeHuffmanTbl(\n std_ac_chrominance_nrcodes,\n std_ac_chrominance_values\n );\n }\n\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n //Positive numbers\n for (var nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n //Negative numbers\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[(i + 256) >> 0] = 38470 * i;\n RGB_YUV_TABLE[(i + 512) >> 0] = 7471 * i + 0x8000;\n RGB_YUV_TABLE[(i + 768) >> 0] = -11059 * i;\n RGB_YUV_TABLE[(i + 1024) >> 0] = -21709 * i;\n RGB_YUV_TABLE[(i + 1280) >> 0] = 32768 * i + 0x807fff;\n RGB_YUV_TABLE[(i + 1536) >> 0] = -27439 * i;\n RGB_YUV_TABLE[(i + 1792) >> 0] = -5329 * i;\n }\n }\n\n // IO functions\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & (1 << posval)) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 0xff) {\n writeByte(0xff);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n\n function writeByte(value) {\n //byteout.push(clt[value]); // write char directly instead of converting later\n byteout.push(value);\n }\n\n function writeWord(value) {\n writeByte((value >> 8) & 0xff);\n writeByte(value & 0xff);\n }\n\n // DCT & quantization core\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n /* Pass 1: process rows. */\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n\n /* Even part */\n var tmp10 = tmp0 + tmp3; /* phase 2 */\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n\n data[dataOff] = tmp10 + tmp11; /* phase 3 */\n data[dataOff + 4] = tmp10 - tmp11;\n\n var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */\n data[dataOff + 2] = tmp13 + z1; /* phase 5 */\n data[dataOff + 6] = tmp13 - z1;\n\n /* Odd part */\n tmp10 = tmp4 + tmp5; /* phase 2 */\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */\n var z2 = 0.5411961 * tmp10 + z5; /* c2-c6 */\n var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */\n var z3 = tmp11 * 0.707106781; /* c4 */\n\n var z11 = tmp7 + z3; /* phase 5 */\n var z13 = tmp7 - z3;\n\n data[dataOff + 5] = z13 + z2; /* phase 6 */\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n\n dataOff += 8; /* advance pointer to next row */\n }\n\n /* Pass 2: process columns. */\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n\n /* Even part */\n var tmp10p2 = tmp0p2 + tmp3p2; /* phase 2 */\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n\n data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */\n data[dataOff + 16] = tmp13p2 + z1p2; /* phase 5 */\n data[dataOff + 48] = tmp13p2 - z1p2;\n\n /* Odd part */\n tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */\n var z2p2 = 0.5411961 * tmp10p2 + z5p2; /* c2-c6 */\n var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */\n var z3p2 = tmp11p2 * 0.707106781; /* c4 */\n\n var z11p2 = tmp7p2 + z3p2; /* phase 5 */\n var z13p2 = tmp7p2 - z3p2;\n\n data[dataOff + 40] = z13p2 + z2p2; /* phase 6 */\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n\n dataOff++; /* advance pointer to next column */\n }\n\n // Quantize/descale the coefficients\n var fDCTQuant;\n for (i = 0; i < I64; ++i) {\n // Apply the quantization and scaling factor & Round to nearest integer\n fDCTQuant = data[i] * fdtbl[i];\n outputfDCTQuant[i] =\n fDCTQuant > 0.0 ? (fDCTQuant + 0.5) | 0 : (fDCTQuant - 0.5) | 0;\n //outputfDCTQuant[i] = fround(fDCTQuant);\n }\n return outputfDCTQuant;\n }\n\n function writeAPP0() {\n writeWord(0xffe0); // marker\n writeWord(16); // length\n writeByte(0x4a); // J\n writeByte(0x46); // F\n writeByte(0x49); // I\n writeByte(0x46); // F\n writeByte(0); // = \"JFIF\",'\\0'\n writeByte(1); // versionhi\n writeByte(1); // versionlo\n writeByte(0); // xyunits\n writeWord(1); // xdensity\n writeWord(1); // ydensity\n writeByte(0); // thumbnwidth\n writeByte(0); // thumbnheight\n }\n\n function writeSOF0(width, height) {\n writeWord(0xffc0); // marker\n writeWord(17); // length, truecolor YUV JPG\n writeByte(8); // precision\n writeWord(height);\n writeWord(width);\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0x11); // HVY\n writeByte(0); // QTY\n writeByte(2); // IdU\n writeByte(0x11); // HVU\n writeByte(1); // QTU\n writeByte(3); // IdV\n writeByte(0x11); // HVV\n writeByte(1); // QTV\n }\n\n function writeDQT() {\n writeWord(0xffdb); // marker\n writeWord(132); // length\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n\n function writeDHT() {\n writeWord(0xffc4); // marker\n writeWord(0x01a2); // length\n\n writeByte(0); // HTYDCinfo\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n\n writeByte(0x10); // HTYACinfo\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n\n writeByte(1); // HTUDCinfo\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n\n writeByte(0x11); // HTUACinfo\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n\n function writeSOS() {\n writeWord(0xffda); // marker\n writeWord(12); // length\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0); // HTY\n writeByte(2); // IdU\n writeByte(0x11); // HTU\n writeByte(3); // IdV\n writeByte(0x11); // HTV\n writeByte(0); // Ss\n writeByte(0x3f); // Se\n writeByte(0); // Bf\n }\n\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0x00];\n var M16zeroes = HTAC[0xf0];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n //ZigZag reorder\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n //Encode DC\n if (Diff == 0) {\n writeBits(HTDC[0]); // Diff might be 0\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category[pos]]);\n writeBits(bitcode[pos]);\n }\n //Encode ACs\n var end0pos = 63; // was const... which is crazy\n while (end0pos > 0 && DU[end0pos] == 0) {\n end0pos--;\n }\n //end0pos = first element in reverse order !=0\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n while (DU[i] == 0 && i <= end0pos) {\n ++i;\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 0xf;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category[pos]]);\n writeBits(bitcode[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n ///// ACHTUNG // 255\n clt[i] = sfcc(i);\n }\n }\n\n this.encode = function(\n image,\n quality // image data object\n ) {\n if (quality) setQuality(quality);\n\n // Initialize bit writer\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n\n // Add JPEG headers\n writeWord(0xffd8); // SOI\n writeAPP0();\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n\n // Encode 8x8 macroblocks\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n\n bytenew = 0;\n bytepos = 7;\n\n this.encode.displayName = \"_encode_\";\n\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n\n var quadWidth = width * 4;\n\n var x,\n y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n col = -1;\n row = 0;\n\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3; // /8\n col = (pos & 7) * 4; // %8\n p = start + row * quadWidth + col;\n\n if (y + row >= height) {\n // padding bottom\n p -= quadWidth * (y + 1 + row - height);\n }\n\n if (x + col >= quadWidth) {\n // padding right\n p -= x + col - quadWidth + 4;\n }\n\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n\n /* // calculate YUV values dynamically\n\t\t\t\t\tYDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80\n\t\t\t\t\tUDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));\n\t\t\t\t\tVDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));\n\t\t\t\t\t*/\n\n // use lookup table (slightly faster)\n YDU[pos] =\n ((RGB_YUV_TABLE[r] +\n RGB_YUV_TABLE[(g + 256) >> 0] +\n RGB_YUV_TABLE[(b + 512) >> 0]) >>\n 16) -\n 128;\n UDU[pos] =\n ((RGB_YUV_TABLE[(r + 768) >> 0] +\n RGB_YUV_TABLE[(g + 1024) >> 0] +\n RGB_YUV_TABLE[(b + 1280) >> 0]) >>\n 16) -\n 128;\n VDU[pos] =\n ((RGB_YUV_TABLE[(r + 1280) >> 0] +\n RGB_YUV_TABLE[(g + 1536) >> 0] +\n RGB_YUV_TABLE[(b + 1792) >> 0]) >>\n 16) -\n 128;\n }\n\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);\n x += 32;\n }\n y += 8;\n }\n\n ////////////////////////////////////////////////////////////////\n\n // Do the bit alignment of the EOI marker\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << (bytepos + 1)) - 1;\n writeBits(fillbits);\n }\n\n writeWord(0xffd9); //EOI\n\n return new Uint8Array(byteout);\n };\n\n function setQuality(quality) {\n quality = Math.min(Math.max(quality, 1), 100);\n\n if (currentQuality == quality) return; // don't recalc if unchanged\n\n var sf =\n quality < 50 ? Math.floor(5000 / quality) : Math.floor(200 - quality * 2);\n\n initQuantTables(sf);\n currentQuality = quality;\n //console.log('Quality set to: '+quality +'%');\n }\n\n function init() {\n quality = quality || 50;\n // Create tables\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n\n setQuality(quality);\n }\n init();\n}\n\nexport { JPEGEncoder };\n","/**\n * @author shaozilee\n *\n * Bmp format decoder,support 1bit 4bit 8bit 24bit bmp\n *\n */\n\nimport { console } from \"./console.js\";\n\nfunction BmpDecoder(buffer, is_with_alpha) {\n this.pos = 0;\n this.buffer = buffer;\n this.datav = new DataView(buffer.buffer);\n this.is_with_alpha = !!is_with_alpha;\n this.bottom_up = true;\n this.flag =\n String.fromCharCode(this.buffer[0]) + String.fromCharCode(this.buffer[1]);\n this.pos += 2;\n if ([\"BM\", \"BA\", \"CI\", \"CP\", \"IC\", \"PT\"].indexOf(this.flag) === -1)\n throw new Error(\"Invalid BMP File\");\n this.parseHeader();\n this.parseBGR();\n}\n\nBmpDecoder.prototype.parseHeader = function() {\n this.fileSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.reserved = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.offset = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.headerSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.width = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.height = this.datav.getInt32(this.pos, true);\n this.pos += 4;\n this.planes = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.bitPP = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.compress = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.rawSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.hr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.vr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.colors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.importantColors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n\n if (this.bitPP === 16 && this.is_with_alpha) {\n this.bitPP = 15;\n }\n if (this.bitPP < 15) {\n var len = this.colors === 0 ? 1 << this.bitPP : this.colors;\n this.palette = new Array(len);\n for (var i = 0; i < len; i++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var quad = this.datav.getUint8(this.pos++, true);\n this.palette[i] = {\n red: red,\n green: green,\n blue: blue,\n quad: quad\n };\n }\n }\n if (this.height < 0) {\n this.height *= -1;\n this.bottom_up = false;\n }\n};\n\nBmpDecoder.prototype.parseBGR = function() {\n this.pos = this.offset;\n try {\n var bitn = \"bit\" + this.bitPP;\n var len = this.width * this.height * 4;\n this.data = new Uint8Array(len);\n\n this[bitn]();\n } catch (e) {\n console.log(\"bit decode error:\" + e);\n }\n};\n\nBmpDecoder.prototype.bit1 = function() {\n var xlen = Math.ceil(this.width / 8);\n var mode = xlen % 4;\n var y;\n for (y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 8 * 4;\n for (var i = 0; i < 8; i++) {\n if (x * 8 + i < this.width) {\n var rgb = this.palette[(b >> (7 - i)) & 0x1];\n this.data[location + i * 4] = rgb.blue;\n this.data[location + i * 4 + 1] = rgb.green;\n this.data[location + i * 4 + 2] = rgb.red;\n this.data[location + i * 4 + 3] = 0xff;\n } else {\n break;\n }\n }\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit4 = function() {\n var xlen = Math.ceil(this.width / 2);\n var mode = xlen % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 2 * 4;\n\n var before = b >> 4;\n var after = b & 0x0f;\n\n var rgb = this.palette[before];\n this.data[location] = rgb.blue;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.red;\n this.data[location + 3] = 0xff;\n\n if (x * 2 + 1 >= this.width) break;\n\n rgb = this.palette[after];\n this.data[location + 4] = rgb.blue;\n this.data[location + 4 + 1] = rgb.green;\n this.data[location + 4 + 2] = rgb.red;\n this.data[location + 4 + 3] = 0xff;\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit8 = function() {\n var mode = this.width % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n if (b < this.palette.length) {\n var rgb = this.palette[b];\n this.data[location] = rgb.red;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.blue;\n this.data[location + 3] = 0xff;\n } else {\n this.data[location] = 0xff;\n this.data[location + 1] = 0xff;\n this.data[location + 2] = 0xff;\n this.data[location + 3] = 0xff;\n }\n }\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit15 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_5) / _1_5) * 255) | 0;\n var red = ((((B >> 10) & _1_5) / _1_5) * 255) | 0;\n var alpha = B >> 15 ? 0xff : 0x00;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit16 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n var _111111 = parseInt(\"111111\", 2),\n _1_6 = _111111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var alpha = 0xff;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_6) / _1_6) * 255) | 0;\n var red = (((B >> 11) / _1_5) * 255) | 0;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit24 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = 0xff;\n }\n //skip extra bytes\n this.pos += this.width % 4;\n }\n};\n\n/**\n * add 32bit decode func\n * @author soubok\n */\nBmpDecoder.prototype.bit32 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var alpha = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n //this.pos += (this.width % 4);\n }\n};\n\nBmpDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { BmpDecoder };\n","function WebPDecoder(imageData) {\n /** @license\n * Copyright 2011 Google Inc.\n *\n * This code is licensed under the same terms as WebM:\n * Software License Agreement: http://www.webmproject.org/license/software/\n * Additional IP Rights Grant: http://www.webmproject.org/license/additional/\n * -----------------------------------------------------------------------------\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * -----------------------------------------------------------------------------\n *\n * Copyright 2011-2017 Dominik Homberger\n * Libwebp Javascript / libwebpjs - the libwebp implementation in javascript (v0.6.0)\n *\n * Author: Dominik Homberger (dominik.homberger@gmail.com)\n */\n\n var self = this;\n var UpsampleRgbLinePair,\n UpsampleBgrLinePair,\n UpsampleRgbaLinePair,\n UpsampleBgraLinePair,\n UpsampleArgbLinePair,\n UpsampleArgbLinePair,\n UpsampleRgba4444LinePair,\n UpsampleRgb565LinePair;\n\n function x(F) {\n if (!F) throw Error(\"assert :P\");\n }\n function fa(F, L, J) {\n for (var H = 0; 4 > H; H++) if (F[L + H] != J.charCodeAt(H)) return !0;\n return !1;\n }\n function I(F, L, J, H, Z) {\n for (var O = 0; O < Z; O++) F[L + O] = J[H + O];\n }\n function M(F, L, J, H) {\n for (var Z = 0; Z < H; Z++) F[L + Z] = J;\n }\n function V(F) {\n return new Int32Array(F);\n }\n function wa(F, L) {\n for (var J = [], H = 0; H < F; H++) J.push(new L());\n return J;\n }\n function wb() {\n function F(J, H, Z) {\n for (var O = Z[H], L = 0; L < O; L++) {\n J.push(Z.length > H + 1 ? [] : 0);\n if (Z.length < H + 1) break;\n F(J[L], H + 1, Z);\n }\n }\n var L = [];\n F(L, 0, [3, 11]);\n return L;\n }\n function Ed(F, L) {\n function J(H, O, F) {\n for (var Z = F[O], ma = 0; ma < Z; ma++) {\n H.push(F.length > O + 1 ? [] : new L());\n if (F.length < O + 1) break;\n J(H[ma], O + 1, F);\n }\n }\n var H = [];\n J(H, 0, F);\n return H;\n }\n var _WebPDecoder = function() {\n var self = this;\n function F() {\n V(55);\n }\n function L(a, b) {\n for (var c = (1 << (b - 1)) >>> 0; a & c; ) c >>>= 1;\n return c ? (a & (c - 1)) + c : a;\n }\n function J(a, b, c, d, e) {\n x(!(d % c));\n do (d -= c), (a[b + d] = e);\n while (0 < d);\n }\n function H(a, b, c, d, e, f) {\n var g = b,\n h = 1 << c,\n k,\n l,\n m = V(16),\n n = V(16);\n x(0 != e);\n x(null != d);\n x(null != a);\n x(0 < c);\n for (l = 0; l < e; ++l) {\n if (15 < d[l]) return 0;\n ++m[d[l]];\n }\n if (m[0] == e) return 0;\n n[1] = 0;\n for (k = 1; 15 > k; ++k) {\n if (m[k] > 1 << k) return 0;\n n[k + 1] = n[k] + m[k];\n }\n for (l = 0; l < e; ++l) (k = d[l]), 0 < d[l] && (f[n[k]++] = l);\n if (1 == n[15])\n return (d = new O()), (d.g = 0), (d.value = f[0]), J(a, g, 1, h, d), h;\n var r = -1,\n q = h - 1,\n t = 0,\n v = 1,\n p = 1,\n u,\n w = 1 << c;\n l = 0;\n k = 1;\n for (e = 2; k <= c; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k])\n (d = new O()),\n (d.g = k),\n (d.value = f[l++]),\n J(a, g + t, e, w, d),\n (t = L(t, k));\n }\n k = c + 1;\n for (e = 2; 15 >= k; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k]) {\n d = new O();\n if ((t & q) != r) {\n g += w;\n r = k;\n for (u = 1 << (r - c); 15 > r; ) {\n u -= m[r];\n if (0 >= u) break;\n ++r;\n u <<= 1;\n }\n u = r - c;\n w = 1 << u;\n h += w;\n r = t & q;\n a[b + r].g = u + c;\n a[b + r].value = g - b - r;\n }\n d.g = k - c;\n d.value = f[l++];\n J(a, g + (t >> c), e, w, d);\n t = L(t, k);\n }\n }\n return v != 2 * n[15] - 1 ? 0 : h;\n }\n function Z(a, b, c, d, e) {\n x(2328 >= e);\n if (512 >= e) var f = V(512);\n else if (((f = V(e)), null == f)) return 0;\n return H(a, b, c, d, e, f);\n }\n function O() {\n this.value = this.g = 0;\n }\n function Fd() {\n this.value = this.g = 0;\n }\n function Ub() {\n this.G = wa(5, O);\n this.H = V(5);\n this.jc = this.Qb = this.qb = this.nd = 0;\n this.pd = wa(xb, Fd);\n }\n function ma(a, b, c, d) {\n x(null != a);\n x(null != b);\n x(2147483648 > d);\n a.Ca = 254;\n a.I = 0;\n a.b = -8;\n a.Ka = 0;\n a.oa = b;\n a.pa = c;\n a.Jd = b;\n a.Yc = c + d;\n a.Zc = 4 <= d ? c + d - 4 + 1 : c;\n Qa(a);\n }\n function na(a, b) {\n for (var c = 0; 0 < b--; ) c |= K(a, 128) << b;\n return c;\n }\n function ca(a, b) {\n var c = na(a, b);\n return G(a) ? -c : c;\n }\n function cb(a, b, c, d) {\n var e,\n f = 0;\n x(null != a);\n x(null != b);\n x(4294967288 > d);\n a.Sb = d;\n a.Ra = 0;\n a.u = 0;\n a.h = 0;\n 4 < d && (d = 4);\n for (e = 0; e < d; ++e) f += b[c + e] << (8 * e);\n a.Ra = f;\n a.bb = d;\n a.oa = b;\n a.pa = c;\n }\n function Vb(a) {\n for (; 8 <= a.u && a.bb < a.Sb; )\n (a.Ra >>>= 8),\n (a.Ra += (a.oa[a.pa + a.bb] << (ob - 8)) >>> 0),\n ++a.bb,\n (a.u -= 8);\n db(a) && ((a.h = 1), (a.u = 0));\n }\n function D(a, b) {\n x(0 <= b);\n if (!a.h && b <= Gd) {\n var c = pb(a) & Hd[b];\n a.u += b;\n Vb(a);\n return c;\n }\n a.h = 1;\n return (a.u = 0);\n }\n function Wb() {\n this.b = this.Ca = this.I = 0;\n this.oa = [];\n this.pa = 0;\n this.Jd = [];\n this.Yc = 0;\n this.Zc = [];\n this.Ka = 0;\n }\n function Ra() {\n this.Ra = 0;\n this.oa = [];\n this.h = this.u = this.bb = this.Sb = this.pa = 0;\n }\n function pb(a) {\n return (a.Ra >>> (a.u & (ob - 1))) >>> 0;\n }\n function db(a) {\n x(a.bb <= a.Sb);\n return a.h || (a.bb == a.Sb && a.u > ob);\n }\n function qb(a, b) {\n a.u = b;\n a.h = db(a);\n }\n function Sa(a) {\n a.u >= Xb && (x(a.u >= Xb), Vb(a));\n }\n function Qa(a) {\n x(null != a && null != a.oa);\n a.pa < a.Zc\n ? ((a.I = (a.oa[a.pa++] | (a.I << 8)) >>> 0), (a.b += 8))\n : (x(null != a && null != a.oa),\n a.pa < a.Yc\n ? ((a.b += 8), (a.I = a.oa[a.pa++] | (a.I << 8)))\n : a.Ka\n ? (a.b = 0)\n : ((a.I <<= 8), (a.b += 8), (a.Ka = 1)));\n }\n function G(a) {\n return na(a, 1);\n }\n function K(a, b) {\n var c = a.Ca;\n 0 > a.b && Qa(a);\n var d = a.b,\n e = (c * b) >>> 8,\n f = (a.I >>> d > e) + 0;\n f ? ((c -= e), (a.I -= ((e + 1) << d) >>> 0)) : (c = e + 1);\n d = c;\n for (e = 0; 256 <= d; ) (e += 8), (d >>= 8);\n d = 7 ^ (e + Id[d]);\n a.b -= d;\n a.Ca = (c << d) - 1;\n return f;\n }\n function ra(a, b, c) {\n a[b + 0] = (c >> 24) & 255;\n a[b + 1] = (c >> 16) & 255;\n a[b + 2] = (c >> 8) & 255;\n a[b + 3] = (c >> 0) & 255;\n }\n function Ta(a, b) {\n return (a[b + 0] << 0) | (a[b + 1] << 8);\n }\n function Yb(a, b) {\n return Ta(a, b) | (a[b + 2] << 16);\n }\n function Ha(a, b) {\n return Ta(a, b) | (Ta(a, b + 2) << 16);\n }\n function Zb(a, b) {\n var c = 1 << b;\n x(null != a);\n x(0 < b);\n a.X = V(c);\n if (null == a.X) return 0;\n a.Mb = 32 - b;\n a.Xa = b;\n return 1;\n }\n function $b(a, b) {\n x(null != a);\n x(null != b);\n x(a.Xa == b.Xa);\n I(b.X, 0, a.X, 0, 1 << b.Xa);\n }\n function ac() {\n this.X = [];\n this.Xa = this.Mb = 0;\n }\n function bc(a, b, c, d) {\n x(null != c);\n x(null != d);\n var e = c[0],\n f = d[0];\n 0 == e && (e = (a * f + b / 2) / b);\n 0 == f && (f = (b * e + a / 2) / a);\n if (0 >= e || 0 >= f) return 0;\n c[0] = e;\n d[0] = f;\n return 1;\n }\n function xa(a, b) {\n return (a + (1 << b) - 1) >>> b;\n }\n function yb(a, b) {\n return (\n (((((a & 4278255360) + (b & 4278255360)) >>> 0) & 4278255360) +\n ((((a & 16711935) + (b & 16711935)) >>> 0) & 16711935)) >>>\n 0\n );\n }\n function X(a, b) {\n self[b] = function(b, d, e, f, g, h, k) {\n var c;\n for (c = 0; c < g; ++c) {\n var m = self[a](h[k + c - 1], e, f + c);\n h[k + c] = yb(b[d + c], m);\n }\n };\n }\n function Jd() {\n this.ud = this.hd = this.jd = 0;\n }\n function aa(a, b) {\n return ((((a ^ b) & 4278124286) >>> 1) + (a & b)) >>> 0;\n }\n function sa(a) {\n if (0 <= a && 256 > a) return a;\n if (0 > a) return 0;\n if (255 < a) return 255;\n }\n function eb(a, b) {\n return sa(a + ((a - b + 0.5) >> 1));\n }\n function Ia(a, b, c) {\n return Math.abs(b - c) - Math.abs(a - c);\n }\n function cc(a, b, c, d, e, f, g) {\n d = f[g - 1];\n for (c = 0; c < e; ++c) f[g + c] = d = yb(a[b + c], d);\n }\n function Kd(a, b, c, d, e) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + f],\n h = (g >> 8) & 255,\n k = g & 16711935,\n k = k + ((h << 16) + h),\n k = k & 16711935;\n d[e + f] = ((g & 4278255360) + k) >>> 0;\n }\n }\n function dc(a, b) {\n b.jd = (a >> 0) & 255;\n b.hd = (a >> 8) & 255;\n b.ud = (a >> 16) & 255;\n }\n function Ld(a, b, c, d, e, f) {\n var g;\n for (g = 0; g < d; ++g) {\n var h = b[c + g],\n k = h >>> 8,\n l = h >>> 16,\n m = h,\n l = l + ((((a.jd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n l = l & 255,\n m = m + ((((a.hd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n m = m + ((((a.ud << 24) >> 24) * ((l << 24) >> 24)) >>> 5),\n m = m & 255;\n e[f + g] = (h & 4278255360) + (l << 16) + m;\n }\n }\n function ec(a, b, c, d, e) {\n self[b] = function(a, b, c, k, l, m, n, r, q) {\n for (k = n; k < r; ++k)\n for (n = 0; n < q; ++n) l[m++] = e(c[d(a[b++])]);\n };\n self[a] = function(a, b, h, k, l, m, n) {\n var f = 8 >> a.b,\n g = a.Ea,\n t = a.K[0],\n v = a.w;\n if (8 > f)\n for (a = (1 << a.b) - 1, v = (1 << f) - 1; b < h; ++b) {\n var p = 0,\n u;\n for (u = 0; u < g; ++u)\n u & a || (p = d(k[l++])), (m[n++] = e(t[p & v])), (p >>= f);\n }\n else self[\"VP8LMapColor\" + c](k, l, t, v, m, n, b, h, g);\n };\n }\n function Md(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n }\n }\n function Nd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 24) & 255;\n }\n }\n function Od(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 240) | ((f >> 12) & 15),\n f = ((f >> 0) & 240) | ((f >> 28) & 15);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Pd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 248) | ((f >> 13) & 7),\n f = ((f >> 5) & 224) | ((f >> 3) & 31);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Qd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 16) & 255;\n }\n }\n function fb(a, b, c, d, e, f) {\n if (0 == f)\n for (c = b + c; b < c; )\n (f = a[b++]),\n ra(\n d,\n ((f[0] >> 24) |\n ((f[1] >> 8) & 65280) |\n ((f[2] << 8) & 16711680) |\n (f[3] << 24)) >>>\n 0\n ),\n (e += 32);\n else I(d, e, a, b, c);\n }\n function gb(a, b) {\n self[b][0] = self[a + \"0\"];\n self[b][1] = self[a + \"1\"];\n self[b][2] = self[a + \"2\"];\n self[b][3] = self[a + \"3\"];\n self[b][4] = self[a + \"4\"];\n self[b][5] = self[a + \"5\"];\n self[b][6] = self[a + \"6\"];\n self[b][7] = self[a + \"7\"];\n self[b][8] = self[a + \"8\"];\n self[b][9] = self[a + \"9\"];\n self[b][10] = self[a + \"10\"];\n self[b][11] = self[a + \"11\"];\n self[b][12] = self[a + \"12\"];\n self[b][13] = self[a + \"13\"];\n self[b][14] = self[a + \"0\"];\n self[b][15] = self[a + \"0\"];\n }\n function hb(a) {\n return a == zb || a == Ab || a == Ja || a == Bb;\n }\n function Rd() {\n this.eb = [];\n this.size = this.A = this.fb = 0;\n }\n function Sd() {\n this.y = [];\n this.f = [];\n this.ea = [];\n this.F = [];\n this.Tc = this.Ed = this.Cd = this.Fd = this.lb = this.Db = this.Ab = this.fa = this.J = this.W = this.N = this.O = 0;\n }\n function Cb() {\n this.Rd = this.height = this.width = this.S = 0;\n this.f = {};\n this.f.RGBA = new Rd();\n this.f.kb = new Sd();\n this.sd = null;\n }\n function Td() {\n this.width = [0];\n this.height = [0];\n this.Pd = [0];\n this.Qd = [0];\n this.format = [0];\n }\n function Ud() {\n this.Id = this.fd = this.Md = this.hb = this.ib = this.da = this.bd = this.cd = this.j = this.v = this.Da = this.Sd = this.ob = 0;\n }\n function Vd(a) {\n alert(\"todo:WebPSamplerProcessPlane\");\n return a.T;\n }\n function Wd(a, b) {\n var c = a.T,\n d = b.ba.f.RGBA,\n e = d.eb,\n f = d.fb + a.ka * d.A,\n g = P[b.ba.S],\n h = a.y,\n k = a.O,\n l = a.f,\n m = a.N,\n n = a.ea,\n r = a.W,\n q = b.cc,\n t = b.dc,\n v = b.Mc,\n p = b.Nc,\n u = a.ka,\n w = a.ka + a.T,\n y = a.U,\n A = (y + 1) >> 1;\n 0 == u\n ? g(h, k, null, null, l, m, n, r, l, m, n, r, e, f, null, null, y)\n : (g(b.ec, b.fc, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y),\n ++c);\n for (; u + 2 < w; u += 2)\n (q = l),\n (t = m),\n (v = n),\n (p = r),\n (m += a.Rc),\n (r += a.Rc),\n (f += 2 * d.A),\n (k += 2 * a.fa),\n g(h, k - a.fa, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y);\n k += a.fa;\n a.j + w < a.o\n ? (I(b.ec, b.fc, h, k, y),\n I(b.cc, b.dc, l, m, A),\n I(b.Mc, b.Nc, n, r, A),\n c--)\n : w & 1 ||\n g(\n h,\n k,\n null,\n null,\n l,\n m,\n n,\n r,\n l,\n m,\n n,\n r,\n e,\n f + d.A,\n null,\n null,\n y\n );\n return c;\n }\n function Xd(a, b, c) {\n var d = a.F,\n e = [a.J];\n if (null != d) {\n var f = a.U,\n g = b.ba.S,\n h = g == ya || g == Ja;\n b = b.ba.f.RGBA;\n var k = [0],\n l = a.ka;\n k[0] = a.T;\n a.Kb &&\n (0 == l ? --k[0] : (--l, (e[0] -= a.width)),\n a.j + a.ka + a.T == a.o && (k[0] = a.o - a.j - l));\n var m = b.eb,\n l = b.fb + l * b.A;\n a = fc(d, e[0], a.width, f, k, m, l + (h ? 0 : 3), b.A);\n x(c == k);\n a && hb(g) && za(m, l, h, f, k, b.A);\n }\n return 0;\n }\n function gc(a) {\n var b = a.ma,\n c = b.ba.S,\n d = 11 > c,\n e = c == Ua || c == Va || c == ya || c == Db || 12 == c || hb(c);\n b.memory = null;\n b.Ib = null;\n b.Jb = null;\n b.Nd = null;\n if (!hc(b.Oa, a, e ? 11 : 12)) return 0;\n e && hb(c) && ic();\n if (a.da) alert(\"todo:use_scaling\");\n else {\n if (d) {\n if (((b.Ib = Vd), a.Kb)) {\n c = (a.U + 1) >> 1;\n b.memory = V(a.U + 2 * c);\n if (null == b.memory) return 0;\n b.ec = b.memory;\n b.fc = 0;\n b.cc = b.ec;\n b.dc = b.fc + a.U;\n b.Mc = b.cc;\n b.Nc = b.dc + c;\n b.Ib = Wd;\n ic();\n }\n } else alert(\"todo:EmitYUV\");\n e && ((b.Jb = Xd), d && Aa());\n }\n if (d && !jc) {\n for (a = 0; 256 > a; ++a)\n (Yd[a] = (89858 * (a - 128) + Ba) >> Wa),\n (Zd[a] = -22014 * (a - 128) + Ba),\n ($d[a] = -45773 * (a - 128)),\n (ae[a] = (113618 * (a - 128) + Ba) >> Wa);\n for (a = ta; a < Eb; ++a)\n (b = (76283 * (a - 16) + Ba) >> Wa),\n (be[a - ta] = ga(b, 255)),\n (ce[a - ta] = ga((b + 8) >> 4, 15));\n jc = 1;\n }\n return 1;\n }\n function kc(a) {\n var b = a.ma,\n c = a.U,\n d = a.T;\n x(!(a.ka & 1));\n if (0 >= c || 0 >= d) return 0;\n c = b.Ib(a, b);\n null != b.Jb && b.Jb(a, b, c);\n b.Dc += c;\n return 1;\n }\n function lc(a) {\n a.ma.memory = null;\n }\n function mc(a, b, c, d) {\n if (47 != D(a, 8)) return 0;\n b[0] = D(a, 14) + 1;\n c[0] = D(a, 14) + 1;\n d[0] = D(a, 1);\n return 0 != D(a, 3) ? 0 : !a.h;\n }\n function ib(a, b) {\n if (4 > a) return a + 1;\n var c = (a - 2) >> 1;\n return ((2 + (a & 1)) << c) + D(b, c) + 1;\n }\n function nc(a, b) {\n if (120 < b) return b - 120;\n var c = de[b - 1],\n c = (c >> 4) * a + (8 - (c & 15));\n return 1 <= c ? c : 1;\n }\n function ua(a, b, c) {\n var d = pb(c);\n b += d & 255;\n var e = a[b].g - 8;\n 0 < e &&\n (qb(c, c.u + 8),\n (d = pb(c)),\n (b += a[b].value),\n (b += d & ((1 << e) - 1)));\n qb(c, c.u + a[b].g);\n return a[b].value;\n }\n function ub(a, b, c) {\n c.g += a.g;\n c.value += (a.value << b) >>> 0;\n x(8 >= c.g);\n return a.g;\n }\n function ha(a, b, c) {\n var d = a.xc;\n b = 0 == d ? 0 : a.vc[a.md * (c >> d) + (b >> d)];\n x(b < a.Wb);\n return a.Ya[b];\n }\n function oc(a, b, c, d) {\n var e = a.ab,\n f = a.c * b,\n g = a.C;\n b = g + b;\n var h = c,\n k = d;\n d = a.Ta;\n for (c = a.Ua; 0 < e--; ) {\n var l = a.gc[e],\n m = g,\n n = b,\n r = h,\n q = k,\n k = d,\n h = c,\n t = l.Ea;\n x(m < n);\n x(n <= l.nc);\n switch (l.hc) {\n case 2:\n pc(r, q, (n - m) * t, k, h);\n break;\n case 0:\n var v = l,\n p = m,\n u = n,\n w = k,\n y = h,\n A = v.Ea;\n 0 == p &&\n (ee(r, q, null, null, 1, w, y),\n cc(r, q + 1, 0, 0, A - 1, w, y + 1),\n (q += A),\n (y += A),\n ++p);\n for (\n var E = 1 << v.b,\n B = E - 1,\n C = xa(A, v.b),\n N = v.K,\n v = v.w + (p >> v.b) * C;\n p < u;\n\n ) {\n var z = N,\n Q = v,\n S = 1;\n for (fe(r, q, w, y - A, 1, w, y); S < A; ) {\n var K = qc[(z[Q++] >> 8) & 15],\n D = (S & ~B) + E;\n D > A && (D = A);\n K(r, q + +S, w, y + S - A, D - S, w, y + S);\n S = D;\n }\n q += A;\n y += A;\n ++p;\n p & B || (v += C);\n }\n n != l.nc && I(k, h - t, k, h + (n - m - 1) * t, t);\n break;\n case 1:\n t = r;\n u = q;\n r = l.Ea;\n q = 1 << l.b;\n w = q - 1;\n y = r & ~w;\n A = r - y;\n p = xa(r, l.b);\n E = l.K;\n for (l = l.w + (m >> l.b) * p; m < n; ) {\n B = E;\n C = l;\n N = new Jd();\n v = u + y;\n for (z = u + r; u < v; )\n dc(B[C++], N), Fb(N, t, u, q, k, h), (u += q), (h += q);\n u < z &&\n (dc(B[C++], N), Fb(N, t, u, A, k, h), (u += A), (h += A));\n ++m;\n m & w || (l += p);\n }\n break;\n case 3:\n if (r == k && q == h && 0 < l.b) {\n y = (n - m) * xa(l.Ea, l.b);\n t = h + (n - m) * t - y;\n u = k;\n r = t;\n q = k;\n w = h;\n A = y;\n p = [];\n for (y = A - 1; 0 <= y; --y) p[y] = q[w + y];\n for (y = A - 1; 0 <= y; --y) u[r + y] = p[y];\n rc(l, m, n, k, t, k, h);\n } else rc(l, m, n, r, q, k, h);\n }\n h = d;\n k = c;\n }\n k != c && I(d, c, h, k, f);\n }\n function ge(a, b) {\n var c = a.V,\n d = a.Ba + a.c * a.C,\n e = b - a.C;\n x(b <= a.l.o);\n x(16 >= e);\n if (0 < e) {\n var f = a.l,\n g = a.Ta,\n h = a.Ua,\n k = f.width;\n oc(a, e, c, d);\n h = [h];\n c = a.C;\n d = b;\n e = h;\n x(c < d);\n x(f.v < f.va);\n d > f.o && (d = f.o);\n if (c < f.j) {\n var l = f.j - c,\n c = f.j;\n e[0] += l * k;\n }\n c >= d\n ? (c = 0)\n : ((e[0] += 4 * f.v),\n (f.ka = c - f.j),\n (f.U = f.va - f.v),\n (f.T = d - c),\n (c = 1));\n if (c) {\n h = h[0];\n c = a.ca;\n if (11 > c.S) {\n for (\n var m = c.f.RGBA,\n d = c.S,\n e = f.U,\n f = f.T,\n l = m.eb,\n n = m.A,\n r = f,\n m = m.fb + a.Ma * m.A;\n 0 < r--;\n\n ) {\n var q = g,\n t = h,\n v = e,\n p = l,\n u = m;\n switch (d) {\n case Ca:\n sc(q, t, v, p, u);\n break;\n case Ua:\n Gb(q, t, v, p, u);\n break;\n case zb:\n Gb(q, t, v, p, u);\n za(p, u, 0, v, 1, 0);\n break;\n case tc:\n uc(q, t, v, p, u);\n break;\n case Va:\n fb(q, t, v, p, u, 1);\n break;\n case Ab:\n fb(q, t, v, p, u, 1);\n za(p, u, 0, v, 1, 0);\n break;\n case ya:\n fb(q, t, v, p, u, 0);\n break;\n case Ja:\n fb(q, t, v, p, u, 0);\n za(p, u, 1, v, 1, 0);\n break;\n case Db:\n Hb(q, t, v, p, u);\n break;\n case Bb:\n Hb(q, t, v, p, u);\n vc(p, u, v, 1, 0);\n break;\n case wc:\n xc(q, t, v, p, u);\n break;\n default:\n x(0);\n }\n h += k;\n m += n;\n }\n a.Ma += f;\n } else alert(\"todo:EmitRescaledRowsYUVA\");\n x(a.Ma <= c.height);\n }\n }\n a.C = b;\n x(a.C <= a.i);\n }\n function yc(a) {\n var b;\n if (0 < a.ua) return 0;\n for (b = 0; b < a.Wb; ++b) {\n var c = a.Ya[b].G,\n d = a.Ya[b].H;\n if (\n 0 < c[1][d[1] + 0].g ||\n 0 < c[2][d[2] + 0].g ||\n 0 < c[3][d[3] + 0].g\n )\n return 0;\n }\n return 1;\n }\n function zc(a, b, c, d, e, f) {\n if (0 != a.Z) {\n var g = a.qd,\n h = a.rd;\n for (x(null != ia[a.Z]); b < c; ++b)\n ia[a.Z](g, h, d, e, d, e, f), (g = d), (h = e), (e += f);\n a.qd = g;\n a.rd = h;\n }\n }\n function Ib(a, b) {\n var c = a.l.ma,\n d = 0 == c.Z || 1 == c.Z ? a.l.j : a.C,\n d = a.C < d ? d : a.C;\n x(b <= a.l.o);\n if (b > d) {\n var e = a.l.width,\n f = c.ca,\n g = c.tb + e * d,\n h = a.V,\n k = a.Ba + a.c * d,\n l = a.gc;\n x(1 == a.ab);\n x(3 == l[0].hc);\n he(l[0], d, b, h, k, f, g);\n zc(c, d, b, f, g, e);\n }\n a.C = a.Ma = b;\n }\n function Jb(a, b, c, d, e, f, g) {\n var h = a.$ / d,\n k = a.$ % d,\n l = a.m,\n m = a.s,\n n = c + a.$,\n r = n;\n e = c + d * e;\n var q = c + d * f,\n t = 280 + m.ua,\n v = a.Pb ? h : 16777216,\n p = 0 < m.ua ? m.Wa : null,\n u = m.wc,\n w = n < q ? ha(m, k, h) : null;\n x(a.C < f);\n x(q <= e);\n var y = !1;\n a: for (;;) {\n for (; y || n < q; ) {\n var A = 0;\n if (h >= v) {\n var v = a,\n E = n - c;\n x(v.Pb);\n v.wd = v.m;\n v.xd = E;\n 0 < v.s.ua && $b(v.s.Wa, v.s.vb);\n v = h + ie;\n }\n k & u || (w = ha(m, k, h));\n x(null != w);\n w.Qb && ((b[n] = w.qb), (y = !0));\n if (!y)\n if ((Sa(l), w.jc)) {\n var A = l,\n E = b,\n B = n,\n C = w.pd[pb(A) & (xb - 1)];\n x(w.jc);\n 256 > C.g\n ? (qb(A, A.u + C.g), (E[B] = C.value), (A = 0))\n : (qb(A, A.u + C.g - 256), x(256 <= C.value), (A = C.value));\n 0 == A && (y = !0);\n } else A = ua(w.G[0], w.H[0], l);\n if (l.h) break;\n if (y || 256 > A) {\n if (!y)\n if (w.nd) b[n] = (w.qb | (A << 8)) >>> 0;\n else {\n Sa(l);\n y = ua(w.G[1], w.H[1], l);\n Sa(l);\n E = ua(w.G[2], w.H[2], l);\n B = ua(w.G[3], w.H[3], l);\n if (l.h) break;\n b[n] = ((B << 24) | (y << 16) | (A << 8) | E) >>> 0;\n }\n y = !1;\n ++n;\n ++k;\n if (\n k >= d &&\n ((k = 0),\n ++h,\n null != g && h <= f && !(h % 16) && g(a, h),\n null != p)\n )\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (280 > A) {\n A = ib(A - 256, l);\n E = ua(w.G[4], w.H[4], l);\n Sa(l);\n E = ib(E, l);\n E = nc(d, E);\n if (l.h) break;\n if (n - c < E || e - n < A) break a;\n else for (B = 0; B < A; ++B) b[n + B] = b[n + B - E];\n n += A;\n for (k += A; k >= d; )\n (k -= d), ++h, null != g && h <= f && !(h % 16) && g(a, h);\n x(n <= e);\n k & u && (w = ha(m, k, h));\n if (null != p)\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (A < t) {\n y = A - 280;\n for (x(null != p); r < n; )\n (A = b[r++]), (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n A = n;\n E = p;\n x(!(y >>> E.Xa));\n b[A] = E.X[y];\n y = !0;\n } else break a;\n y || x(l.h == db(l));\n }\n if (a.Pb && l.h && n < e)\n x(a.m.h),\n (a.a = 5),\n (a.m = a.wd),\n (a.$ = a.xd),\n 0 < a.s.ua && $b(a.s.vb, a.s.Wa);\n else if (l.h) break a;\n else null != g && g(a, h > f ? f : h), (a.a = 0), (a.$ = n - c);\n return 1;\n }\n a.a = 3;\n return 0;\n }\n function Ac(a) {\n x(null != a);\n a.vc = null;\n a.yc = null;\n a.Ya = null;\n var b = a.Wa;\n null != b && (b.X = null);\n a.vb = null;\n x(null != a);\n }\n function Bc() {\n var a = new je();\n if (null == a) return null;\n a.a = 0;\n a.xb = Cc;\n gb(\"Predictor\", \"VP8LPredictors\");\n gb(\"Predictor\", \"VP8LPredictors_C\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd_C\");\n pc = Kd;\n Fb = Ld;\n sc = Md;\n Gb = Nd;\n Hb = Od;\n xc = Pd;\n uc = Qd;\n self.VP8LMapColor32b = ke;\n self.VP8LMapColor8b = le;\n return a;\n }\n function rb(a, b, c, d, e) {\n var f = 1,\n g = [a],\n h = [b],\n k = d.m,\n l = d.s,\n m = null,\n n = 0;\n a: for (;;) {\n if (c)\n for (; f && D(k, 1); ) {\n var r = g,\n q = h,\n t = d,\n v = 1,\n p = t.m,\n u = t.gc[t.ab],\n w = D(p, 2);\n if (t.Oc & (1 << w)) f = 0;\n else {\n t.Oc |= 1 << w;\n u.hc = w;\n u.Ea = r[0];\n u.nc = q[0];\n u.K = [null];\n ++t.ab;\n x(4 >= t.ab);\n switch (w) {\n case 0:\n case 1:\n u.b = D(p, 3) + 2;\n v = rb(xa(u.Ea, u.b), xa(u.nc, u.b), 0, t, u.K);\n u.K = u.K[0];\n break;\n case 3:\n var y = D(p, 8) + 1,\n A = 16 < y ? 0 : 4 < y ? 1 : 2 < y ? 2 : 3;\n r[0] = xa(u.Ea, A);\n u.b = A;\n var v = rb(y, 1, 0, t, u.K),\n E;\n if ((E = v)) {\n var B,\n C = y,\n N = u,\n z = 1 << (8 >> N.b),\n Q = V(z);\n if (null == Q) E = 0;\n else {\n var S = N.K[0],\n K = N.w;\n Q[0] = N.K[0][0];\n for (B = 1; B < 1 * C; ++B) Q[B] = yb(S[K + B], Q[B - 1]);\n for (; B < 4 * z; ++B) Q[B] = 0;\n N.K[0] = null;\n N.K[0] = Q;\n E = 1;\n }\n }\n v = E;\n break;\n case 2:\n break;\n default:\n x(0);\n }\n f = v;\n }\n }\n g = g[0];\n h = h[0];\n if (f && D(k, 1) && ((n = D(k, 4)), (f = 1 <= n && 11 >= n), !f)) {\n d.a = 3;\n break a;\n }\n var H;\n if ((H = f))\n b: {\n var F = d,\n G = g,\n L = h,\n J = n,\n T = c,\n Da,\n ba,\n X = F.m,\n R = F.s,\n P = [null],\n U,\n W = 1,\n aa = 0,\n na = me[J];\n c: for (;;) {\n if (T && D(X, 1)) {\n var ca = D(X, 3) + 2,\n ga = xa(G, ca),\n ka = xa(L, ca),\n qa = ga * ka;\n if (!rb(ga, ka, 0, F, P)) break c;\n P = P[0];\n R.xc = ca;\n for (Da = 0; Da < qa; ++Da) {\n var ia = (P[Da] >> 8) & 65535;\n P[Da] = ia;\n ia >= W && (W = ia + 1);\n }\n }\n if (X.h) break c;\n for (ba = 0; 5 > ba; ++ba) {\n var Y = Dc[ba];\n !ba && 0 < J && (Y += 1 << J);\n aa < Y && (aa = Y);\n }\n var ma = wa(W * na, O);\n var ua = W,\n va = wa(ua, Ub);\n if (null == va) var la = null;\n else x(65536 >= ua), (la = va);\n var ha = V(aa);\n if (null == la || null == ha || null == ma) {\n F.a = 1;\n break c;\n }\n var pa = ma;\n for (Da = U = 0; Da < W; ++Da) {\n var ja = la[Da],\n da = ja.G,\n ea = ja.H,\n Fa = 0,\n ra = 1,\n Ha = 0;\n for (ba = 0; 5 > ba; ++ba) {\n Y = Dc[ba];\n da[ba] = pa;\n ea[ba] = U;\n !ba && 0 < J && (Y += 1 << J);\n d: {\n var sa,\n za = Y,\n ta = F,\n oa = ha,\n db = pa,\n eb = U,\n Ia = 0,\n Ka = ta.m,\n fb = D(Ka, 1);\n M(oa, 0, 0, za);\n if (fb) {\n var gb = D(Ka, 1) + 1,\n hb = D(Ka, 1),\n Ja = D(Ka, 0 == hb ? 1 : 8);\n oa[Ja] = 1;\n 2 == gb && ((Ja = D(Ka, 8)), (oa[Ja] = 1));\n var ya = 1;\n } else {\n var Ua = V(19),\n Va = D(Ka, 4) + 4;\n if (19 < Va) {\n ta.a = 3;\n var Aa = 0;\n break d;\n }\n for (sa = 0; sa < Va; ++sa) Ua[ne[sa]] = D(Ka, 3);\n var Ba = void 0,\n sb = void 0,\n Wa = ta,\n ib = Ua,\n Ca = za,\n Xa = oa,\n Oa = 0,\n La = Wa.m,\n Ya = 8,\n Za = wa(128, O);\n e: for (;;) {\n if (!Z(Za, 0, 7, ib, 19)) break e;\n if (D(La, 1)) {\n var kb = 2 + 2 * D(La, 3),\n Ba = 2 + D(La, kb);\n if (Ba > Ca) break e;\n } else Ba = Ca;\n for (sb = 0; sb < Ca && Ba--; ) {\n Sa(La);\n var $a = Za[0 + (pb(La) & 127)];\n qb(La, La.u + $a.g);\n var jb = $a.value;\n if (16 > jb) (Xa[sb++] = jb), 0 != jb && (Ya = jb);\n else {\n var lb = 16 == jb,\n ab = jb - 16,\n mb = oe[ab],\n bb = D(La, pe[ab]) + mb;\n if (sb + bb > Ca) break e;\n else\n for (var nb = lb ? Ya : 0; 0 < bb--; )\n Xa[sb++] = nb;\n }\n }\n Oa = 1;\n break e;\n }\n Oa || (Wa.a = 3);\n ya = Oa;\n }\n (ya = ya && !Ka.h) && (Ia = Z(db, eb, 8, oa, za));\n ya && 0 != Ia ? (Aa = Ia) : ((ta.a = 3), (Aa = 0));\n }\n if (0 == Aa) break c;\n ra && 1 == qe[ba] && (ra = 0 == pa[U].g);\n Fa += pa[U].g;\n U += Aa;\n if (3 >= ba) {\n var Pa = ha[0],\n tb;\n for (tb = 1; tb < Y; ++tb) ha[tb] > Pa && (Pa = ha[tb]);\n Ha += Pa;\n }\n }\n ja.nd = ra;\n ja.Qb = 0;\n ra &&\n ((ja.qb =\n ((da[3][ea[3] + 0].value << 24) |\n (da[1][ea[1] + 0].value << 16) |\n da[2][ea[2] + 0].value) >>>\n 0),\n 0 == Fa &&\n 256 > da[0][ea[0] + 0].value &&\n ((ja.Qb = 1), (ja.qb += da[0][ea[0] + 0].value << 8)));\n ja.jc = !ja.Qb && 6 > Ha;\n if (ja.jc) {\n var Ga,\n Ea = ja;\n for (Ga = 0; Ga < xb; ++Ga) {\n var Ma = Ga,\n Na = Ea.pd[Ma],\n vb = Ea.G[0][Ea.H[0] + Ma];\n 256 <= vb.value\n ? ((Na.g = vb.g + 256), (Na.value = vb.value))\n : ((Na.g = 0),\n (Na.value = 0),\n (Ma >>= ub(vb, 8, Na)),\n (Ma >>= ub(Ea.G[1][Ea.H[1] + Ma], 16, Na)),\n (Ma >>= ub(Ea.G[2][Ea.H[2] + Ma], 0, Na)),\n ub(Ea.G[3][Ea.H[3] + Ma], 24, Na));\n }\n }\n }\n R.vc = P;\n R.Wb = W;\n R.Ya = la;\n R.yc = ma;\n H = 1;\n break b;\n }\n H = 0;\n }\n f = H;\n if (!f) {\n d.a = 3;\n break a;\n }\n if (0 < n) {\n if (((l.ua = 1 << n), !Zb(l.Wa, n))) {\n d.a = 1;\n f = 0;\n break a;\n }\n } else l.ua = 0;\n var Qa = d,\n cb = g,\n ob = h,\n Ra = Qa.s,\n Ta = Ra.xc;\n Qa.c = cb;\n Qa.i = ob;\n Ra.md = xa(cb, Ta);\n Ra.wc = 0 == Ta ? -1 : (1 << Ta) - 1;\n if (c) {\n d.xb = re;\n break a;\n }\n m = V(g * h);\n if (null == m) {\n d.a = 1;\n f = 0;\n break a;\n }\n f = (f = Jb(d, m, 0, g, h, h, null)) && !k.h;\n break a;\n }\n f\n ? (null != e ? (e[0] = m) : (x(null == m), x(c)), (d.$ = 0), c || Ac(l))\n : Ac(l);\n return f;\n }\n function Ec(a, b) {\n var c = a.c * a.i,\n d = c + b + 16 * b;\n x(a.c <= b);\n a.V = V(d);\n if (null == a.V) return (a.Ta = null), (a.Ua = 0), (a.a = 1), 0;\n a.Ta = a.V;\n a.Ua = a.Ba + c + b;\n return 1;\n }\n function se(a, b) {\n var c = a.C,\n d = b - c,\n e = a.V,\n f = a.Ba + a.c * c;\n for (x(b <= a.l.o); 0 < d; ) {\n var g = 16 < d ? 16 : d,\n h = a.l.ma,\n k = a.l.width,\n l = k * g,\n m = h.ca,\n n = h.tb + k * c,\n r = a.Ta,\n q = a.Ua;\n oc(a, g, e, f);\n Fc(r, q, m, n, l);\n zc(h, c, c + g, m, n, k);\n d -= g;\n e += g * a.c;\n c += g;\n }\n x(c == b);\n a.C = a.Ma = b;\n }\n function te(a, b) {\n var c = [0],\n d = [0],\n e = [0];\n a: for (;;) {\n if (null == a) return 0;\n if (null == b) return (a.a = 2), 0;\n a.l = b;\n a.a = 0;\n cb(a.m, b.data, b.w, b.ha);\n if (!mc(a.m, c, d, e)) {\n a.a = 3;\n break a;\n }\n a.xb = Cc;\n b.width = c[0];\n b.height = d[0];\n if (!rb(c[0], d[0], 1, a, null)) break a;\n return 1;\n }\n x(0 != a.a);\n return 0;\n }\n function ue() {\n this.ub = this.yd = this.td = this.Rb = 0;\n }\n function ve() {\n this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;\n }\n function we() {\n this.Fb = this.Bb = this.Cb = 0;\n this.Zb = V(4);\n this.Lb = V(4);\n }\n function Gc() {\n this.Yb = wb();\n }\n function xe() {\n this.jb = V(3);\n this.Wc = Ed([4, 8], Gc);\n this.Xc = Ed([4, 17], Gc);\n }\n function ye() {\n this.Pc = this.wb = this.Tb = this.zd = 0;\n this.vd = new V(4);\n this.od = new V(4);\n }\n function Xa() {\n this.ld = this.La = this.dd = this.tc = 0;\n }\n function Hc() {\n this.Na = this.la = 0;\n }\n function ze() {\n this.Sc = [0, 0];\n this.Eb = [0, 0];\n this.Qc = [0, 0];\n this.ia = this.lc = 0;\n }\n function Kb() {\n this.ad = V(384);\n this.Za = 0;\n this.Ob = V(16);\n this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;\n }\n function Ae() {\n this.uc = this.M = this.Nb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.ya = Array(new Kb());\n this.aa = 0;\n this.l = new Oa();\n }\n function Ic() {\n this.y = V(16);\n this.f = V(8);\n this.ea = V(8);\n }\n function Be() {\n this.cb = this.a = 0;\n this.sc = \"\";\n this.m = new Wb();\n this.Od = new ue();\n this.Kc = new ve();\n this.ed = new ye();\n this.Qa = new we();\n this.Ic = this.$c = this.Aa = 0;\n this.D = new Ae();\n this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0;\n this.Jc = wa(8, Wb);\n this.ia = 0;\n new F();\n this.pb = wa(4, ze);\n this.Pa = new xe();\n this.Bd = this.kc = 0;\n this.Ac = [];\n this.Bc = 0;\n this.zc = [0, 0, 0, 0];\n this.Gd = Array(new Ic());\n this.Hd = 0;\n this.rb = Array(new Hc());\n this.sb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.oc = [];\n this.pc = 0;\n this.sa = [];\n this.ta = 0;\n this.qa = [];\n this.ra = 0;\n this.Ha = [];\n this.B = this.R = this.Ia = 0;\n this.Ec = [];\n this.M = this.ja = this.Vb = this.Fc = 0;\n this.ya = Array(new Kb());\n this.L = this.aa = 0;\n this.gd = Ed([4, 2], Xa);\n this.ga = null;\n this.Fa = [];\n this.Cc = this.qc = this.P = 0;\n this.Gb = [];\n this.Uc = 0;\n this.mb = [];\n this.nb = 0;\n this.rc = [];\n this.Ga = this.Vc = 0;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function Oa() {\n this.T = this.U = this.ka = this.height = this.width = 0;\n this.y = [];\n this.f = [];\n this.ea = [];\n this.Rc = this.fa = this.W = this.N = this.O = 0;\n this.ma = \"void\";\n this.put = \"VP8IoPutHook\";\n this.ac = \"VP8IoSetupHook\";\n this.bc = \"VP8IoTeardownHook\";\n this.ha = this.Kb = 0;\n this.data = [];\n this.hb = this.ib = this.da = this.o = this.j = this.va = this.v = this.Da = this.ob = this.w = 0;\n this.F = [];\n this.J = 0;\n }\n function Ce() {\n var a = new Be();\n null != a &&\n ((a.a = 0), (a.sc = \"OK\"), (a.cb = 0), (a.Xb = 0), oa || (oa = De));\n return a;\n }\n function T(a, b, c) {\n 0 == a.a && ((a.a = b), (a.sc = c), (a.cb = 0));\n return 0;\n }\n function Jc(a, b, c) {\n return 3 <= c && 157 == a[b + 0] && 1 == a[b + 1] && 42 == a[b + 2];\n }\n function Kc(a, b) {\n if (null == a) return 0;\n a.a = 0;\n a.sc = \"OK\";\n if (null == b) return T(a, 2, \"null VP8Io passed to VP8GetHeaders()\");\n var c = b.data;\n var d = b.w;\n var e = b.ha;\n if (4 > e) return T(a, 7, \"Truncated header.\");\n var f = c[d + 0] | (c[d + 1] << 8) | (c[d + 2] << 16);\n var g = a.Od;\n g.Rb = !(f & 1);\n g.td = (f >> 1) & 7;\n g.yd = (f >> 4) & 1;\n g.ub = f >> 5;\n if (3 < g.td) return T(a, 3, \"Incorrect keyframe parameters.\");\n if (!g.yd) return T(a, 4, \"Frame not displayable.\");\n d += 3;\n e -= 3;\n var h = a.Kc;\n if (g.Rb) {\n if (7 > e) return T(a, 7, \"cannot parse picture header\");\n if (!Jc(c, d, e)) return T(a, 3, \"Bad code word\");\n h.c = ((c[d + 4] << 8) | c[d + 3]) & 16383;\n h.Td = c[d + 4] >> 6;\n h.i = ((c[d + 6] << 8) | c[d + 5]) & 16383;\n h.Ud = c[d + 6] >> 6;\n d += 7;\n e -= 7;\n a.za = (h.c + 15) >> 4;\n a.Ub = (h.i + 15) >> 4;\n b.width = h.c;\n b.height = h.i;\n b.Da = 0;\n b.j = 0;\n b.v = 0;\n b.va = b.width;\n b.o = b.height;\n b.da = 0;\n b.ib = b.width;\n b.hb = b.height;\n b.U = b.width;\n b.T = b.height;\n f = a.Pa;\n M(f.jb, 0, 255, f.jb.length);\n f = a.Qa;\n x(null != f);\n f.Cb = 0;\n f.Bb = 0;\n f.Fb = 1;\n M(f.Zb, 0, 0, f.Zb.length);\n M(f.Lb, 0, 0, f.Lb);\n }\n if (g.ub > e) return T(a, 7, \"bad partition length\");\n f = a.m;\n ma(f, c, d, g.ub);\n d += g.ub;\n e -= g.ub;\n g.Rb && ((h.Ld = G(f)), (h.Kd = G(f)));\n h = a.Qa;\n var k = a.Pa,\n l;\n x(null != f);\n x(null != h);\n h.Cb = G(f);\n if (h.Cb) {\n h.Bb = G(f);\n if (G(f)) {\n h.Fb = G(f);\n for (l = 0; 4 > l; ++l) h.Zb[l] = G(f) ? ca(f, 7) : 0;\n for (l = 0; 4 > l; ++l) h.Lb[l] = G(f) ? ca(f, 6) : 0;\n }\n if (h.Bb) for (l = 0; 3 > l; ++l) k.jb[l] = G(f) ? na(f, 8) : 255;\n } else h.Bb = 0;\n if (f.Ka) return T(a, 3, \"cannot parse segment header\");\n h = a.ed;\n h.zd = G(f);\n h.Tb = na(f, 6);\n h.wb = na(f, 3);\n h.Pc = G(f);\n if (h.Pc && G(f)) {\n for (k = 0; 4 > k; ++k) G(f) && (h.vd[k] = ca(f, 6));\n for (k = 0; 4 > k; ++k) G(f) && (h.od[k] = ca(f, 6));\n }\n a.L = 0 == h.Tb ? 0 : h.zd ? 1 : 2;\n if (f.Ka) return T(a, 3, \"cannot parse filter header\");\n l = d;\n var m = e;\n e = l;\n d = l + m;\n h = m;\n a.Xb = (1 << na(a.m, 2)) - 1;\n k = a.Xb;\n if (m < 3 * k) c = 7;\n else {\n l += 3 * k;\n h -= 3 * k;\n for (m = 0; m < k; ++m) {\n var n = c[e + 0] | (c[e + 1] << 8) | (c[e + 2] << 16);\n n > h && (n = h);\n ma(a.Jc[+m], c, l, n);\n l += n;\n h -= n;\n e += 3;\n }\n ma(a.Jc[+k], c, l, h);\n c = l < d ? 0 : 5;\n }\n if (0 != c) return T(a, c, \"cannot parse partitions\");\n l = a.m;\n c = na(l, 7);\n e = G(l) ? ca(l, 4) : 0;\n d = G(l) ? ca(l, 4) : 0;\n h = G(l) ? ca(l, 4) : 0;\n k = G(l) ? ca(l, 4) : 0;\n l = G(l) ? ca(l, 4) : 0;\n m = a.Qa;\n for (n = 0; 4 > n; ++n) {\n if (m.Cb) {\n var r = m.Zb[n];\n m.Fb || (r += c);\n } else if (0 < n) {\n a.pb[n] = a.pb[0];\n continue;\n } else r = c;\n var q = a.pb[n];\n q.Sc[0] = Lb[ga(r + e, 127)];\n q.Sc[1] = Mb[ga(r + 0, 127)];\n q.Eb[0] = 2 * Lb[ga(r + d, 127)];\n q.Eb[1] = (101581 * Mb[ga(r + h, 127)]) >> 16;\n 8 > q.Eb[1] && (q.Eb[1] = 8);\n q.Qc[0] = Lb[ga(r + k, 117)];\n q.Qc[1] = Mb[ga(r + l, 127)];\n q.lc = r + l;\n }\n if (!g.Rb) return T(a, 4, \"Not a key frame.\");\n G(f);\n g = a.Pa;\n for (c = 0; 4 > c; ++c) {\n for (e = 0; 8 > e; ++e)\n for (d = 0; 3 > d; ++d)\n for (h = 0; 11 > h; ++h)\n (k = K(f, Ee[c][e][d][h]) ? na(f, 8) : Fe[c][e][d][h]),\n (g.Wc[c][e].Yb[d][h] = k);\n for (e = 0; 17 > e; ++e) g.Xc[c][e] = g.Wc[c][Ge[e]];\n }\n a.kc = G(f);\n a.kc && (a.Bd = na(f, 8));\n return (a.cb = 1);\n }\n function De(a, b, c, d, e, f, g) {\n var h = b[e].Yb[c];\n for (c = 0; 16 > e; ++e) {\n if (!K(a, h[c + 0])) return e;\n for (; !K(a, h[c + 1]); )\n if (((h = b[++e].Yb[0]), (c = 0), 16 == e)) return 16;\n var k = b[e + 1].Yb;\n if (K(a, h[c + 2])) {\n var l = a,\n m = h,\n n = c;\n var r = 0;\n if (K(l, m[n + 3]))\n if (K(l, m[n + 6])) {\n h = 0;\n r = K(l, m[n + 8]);\n m = K(l, m[n + 9 + r]);\n n = 2 * r + m;\n r = 0;\n for (m = He[n]; m[h]; ++h) r += r + K(l, m[h]);\n r += 3 + (8 << n);\n } else\n K(l, m[n + 7])\n ? ((r = 7 + 2 * K(l, 165)), (r += K(l, 145)))\n : (r = 5 + K(l, 159));\n else K(l, m[n + 4]) ? (r = 3 + K(l, m[n + 5])) : (r = 2);\n h = k[2];\n } else (r = 1), (h = k[1]);\n k = g + Ie[e];\n l = a;\n 0 > l.b && Qa(l);\n var m = l.b,\n n = l.Ca >> 1,\n q = (n - (l.I >> m)) >> 31;\n --l.b;\n l.Ca += q;\n l.Ca |= 1;\n l.I -= ((n + 1) & q) << m;\n f[k] = ((r ^ q) - q) * d[(0 < e) + 0];\n }\n return 16;\n }\n function Lc(a) {\n var b = a.rb[a.sb - 1];\n b.la = 0;\n b.Na = 0;\n M(a.zc, 0, 0, a.zc.length);\n a.ja = 0;\n }\n function Je(a, b) {\n for (a.M = 0; a.M < a.Va; ++a.M) {\n var c = a.Jc[a.M & a.Xb],\n d = a.m,\n e = a,\n f;\n for (f = 0; f < e.za; ++f) {\n var g = d;\n var h = e;\n var k = h.Ac,\n l = h.Bc + 4 * f,\n m = h.zc,\n n = h.ya[h.aa + f];\n h.Qa.Bb\n ? (n.$b = K(g, h.Pa.jb[0])\n ? 2 + K(g, h.Pa.jb[2])\n : K(g, h.Pa.jb[1]))\n : (n.$b = 0);\n h.kc && (n.Ad = K(g, h.Bd));\n n.Za = !K(g, 145) + 0;\n if (n.Za) {\n var r = n.Ob,\n q = 0;\n for (h = 0; 4 > h; ++h) {\n var t = m[0 + h];\n var v;\n for (v = 0; 4 > v; ++v) {\n t = Ke[k[l + v]][t];\n for (var p = Mc[K(g, t[0])]; 0 < p; )\n p = Mc[2 * p + K(g, t[p])];\n t = -p;\n k[l + v] = t;\n }\n I(r, q, k, l, 4);\n q += 4;\n m[0 + h] = t;\n }\n } else\n (t = K(g, 156) ? (K(g, 128) ? 1 : 3) : K(g, 163) ? 2 : 0),\n (n.Ob[0] = t),\n M(k, l, t, 4),\n M(m, 0, t, 4);\n n.Dd = K(g, 142) ? (K(g, 114) ? (K(g, 183) ? 1 : 3) : 2) : 0;\n }\n if (e.m.Ka) return T(a, 7, \"Premature end-of-partition0 encountered.\");\n for (; a.ja < a.za; ++a.ja) {\n d = a;\n e = c;\n g = d.rb[d.sb - 1];\n k = d.rb[d.sb + d.ja];\n f = d.ya[d.aa + d.ja];\n if ((l = d.kc ? f.Ad : 0))\n (g.la = k.la = 0),\n f.Za || (g.Na = k.Na = 0),\n (f.Hc = 0),\n (f.Gc = 0),\n (f.ia = 0);\n else {\n var u,\n w,\n g = k,\n k = e,\n l = d.Pa.Xc,\n m = d.ya[d.aa + d.ja],\n n = d.pb[m.$b];\n h = m.ad;\n r = 0;\n q = d.rb[d.sb - 1];\n t = v = 0;\n M(h, r, 0, 384);\n if (m.Za) {\n var y = 0;\n var A = l[3];\n } else {\n p = V(16);\n var E = g.Na + q.Na;\n E = oa(k, l[1], E, n.Eb, 0, p, 0);\n g.Na = q.Na = (0 < E) + 0;\n if (1 < E) Nc(p, 0, h, r);\n else {\n var B = (p[0] + 3) >> 3;\n for (p = 0; 256 > p; p += 16) h[r + p] = B;\n }\n y = 1;\n A = l[0];\n }\n var C = g.la & 15;\n var N = q.la & 15;\n for (p = 0; 4 > p; ++p) {\n var z = N & 1;\n for (B = w = 0; 4 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, A, E, n.Sc, y, h, r)),\n (z = E > y),\n (C = (C >> 1) | (z << 7)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 4;\n N = (N >> 1) | (z << 7);\n v = ((v << 8) | w) >>> 0;\n }\n A = C;\n y = N >> 4;\n for (u = 0; 4 > u; u += 2) {\n w = 0;\n C = g.la >> (4 + u);\n N = q.la >> (4 + u);\n for (p = 0; 2 > p; ++p) {\n z = N & 1;\n for (B = 0; 2 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, l[2], E, n.Qc, 0, h, r)),\n (z = 0 < E),\n (C = (C >> 1) | (z << 3)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 2;\n N = (N >> 1) | (z << 5);\n }\n t |= w << (4 * u);\n A |= (C << 4) << u;\n y |= (N & 240) << u;\n }\n g.la = A;\n q.la = y;\n m.Hc = v;\n m.Gc = t;\n m.ia = t & 43690 ? 0 : n.ia;\n l = !(v | t);\n }\n 0 < d.L &&\n ((d.wa[d.Y + d.ja] = d.gd[f.$b][f.Za]),\n (d.wa[d.Y + d.ja].La |= !l));\n if (e.Ka) return T(a, 7, \"Premature end-of-file encountered.\");\n }\n Lc(a);\n c = a;\n d = b;\n e = 1;\n f = c.D;\n g = 0 < c.L && c.M >= c.zb && c.M <= c.Va;\n if (0 == c.Aa)\n a: {\n (f.M = c.M), (f.uc = g), Oc(c, f), (e = 1);\n w = c.D;\n f = w.Nb;\n t = Ya[c.L];\n g = t * c.R;\n k = (t / 2) * c.B;\n p = 16 * f * c.R;\n B = 8 * f * c.B;\n l = c.sa;\n m = c.ta - g + p;\n n = c.qa;\n h = c.ra - k + B;\n r = c.Ha;\n q = c.Ia - k + B;\n C = w.M;\n N = 0 == C;\n v = C >= c.Va - 1;\n 2 == c.Aa && Oc(c, w);\n if (w.uc)\n for (E = c, z = E.D.M, x(E.D.uc), w = E.yb; w < E.Hb; ++w) {\n var Q = E;\n y = w;\n A = z;\n var S = Q.D,\n D = S.Nb;\n u = Q.R;\n var S = S.wa[S.Y + y],\n F = Q.sa,\n H = Q.ta + 16 * D * u + 16 * y,\n J = S.dd,\n G = S.tc;\n if (0 != G)\n if ((x(3 <= G), 1 == Q.L))\n 0 < y && Pc(F, H, u, G + 4),\n S.La && Qc(F, H, u, G),\n 0 < A && Rc(F, H, u, G + 4),\n S.La && Sc(F, H, u, G);\n else {\n var L = Q.B,\n O = Q.qa,\n P = Q.ra + 8 * D * L + 8 * y,\n R = Q.Ha,\n Q = Q.Ia + 8 * D * L + 8 * y,\n D = S.ld;\n 0 < y &&\n (Tc(F, H, u, G + 4, J, D),\n Uc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Vc(F, H, u, G, J, D), Wc(O, P, R, Q, L, G, J, D));\n 0 < A &&\n (Xc(F, H, u, G + 4, J, D),\n Yc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Zc(F, H, u, G, J, D), $c(O, P, R, Q, L, G, J, D));\n }\n }\n c.ia && alert(\"todo:DitherRow\");\n if (null != d.put) {\n w = 16 * C;\n C = 16 * (C + 1);\n N\n ? ((d.y = c.sa),\n (d.O = c.ta + p),\n (d.f = c.qa),\n (d.N = c.ra + B),\n (d.ea = c.Ha),\n (d.W = c.Ia + B))\n : ((w -= t),\n (d.y = l),\n (d.O = m),\n (d.f = n),\n (d.N = h),\n (d.ea = r),\n (d.W = q));\n v || (C -= t);\n C > d.o && (C = d.o);\n d.F = null;\n d.J = null;\n if (\n null != c.Fa &&\n 0 < c.Fa.length &&\n w < C &&\n ((d.J = Le(c, d, w, C - w)),\n (d.F = c.mb),\n null == d.F && 0 == d.F.length)\n ) {\n e = T(c, 3, \"Could not decode alpha data.\");\n break a;\n }\n w < d.j &&\n ((t = d.j - w),\n (w = d.j),\n x(!(t & 1)),\n (d.O += c.R * t),\n (d.N += c.B * (t >> 1)),\n (d.W += c.B * (t >> 1)),\n null != d.F && (d.J += d.width * t));\n w < C &&\n ((d.O += d.v),\n (d.N += d.v >> 1),\n (d.W += d.v >> 1),\n null != d.F && (d.J += d.v),\n (d.ka = w - d.j),\n (d.U = d.va - d.v),\n (d.T = C - w),\n (e = d.put(d)));\n }\n f + 1 != c.Ic ||\n v ||\n (I(c.sa, c.ta - g, l, m + 16 * c.R, g),\n I(c.qa, c.ra - k, n, h + 8 * c.B, k),\n I(c.Ha, c.Ia - k, r, q + 8 * c.B, k));\n }\n if (!e) return T(a, 6, \"Output aborted.\");\n }\n return 1;\n }\n function Me(a, b) {\n if (null == a) return 0;\n if (null == b) return T(a, 2, \"NULL VP8Io parameter in VP8Decode().\");\n if (!a.cb && !Kc(a, b)) return 0;\n x(a.cb);\n if (null == b.ac || b.ac(b)) {\n b.ob && (a.L = 0);\n var c = Ya[a.L];\n 2 == a.L\n ? ((a.yb = 0), (a.zb = 0))\n : ((a.yb = (b.v - c) >> 4),\n (a.zb = (b.j - c) >> 4),\n 0 > a.yb && (a.yb = 0),\n 0 > a.zb && (a.zb = 0));\n a.Va = (b.o + 15 + c) >> 4;\n a.Hb = (b.va + 15 + c) >> 4;\n a.Hb > a.za && (a.Hb = a.za);\n a.Va > a.Ub && (a.Va = a.Ub);\n if (0 < a.L) {\n var d = a.ed;\n for (c = 0; 4 > c; ++c) {\n var e;\n if (a.Qa.Cb) {\n var f = a.Qa.Lb[c];\n a.Qa.Fb || (f += d.Tb);\n } else f = d.Tb;\n for (e = 0; 1 >= e; ++e) {\n var g = a.gd[c][e],\n h = f;\n d.Pc && ((h += d.vd[0]), e && (h += d.od[0]));\n h = 0 > h ? 0 : 63 < h ? 63 : h;\n if (0 < h) {\n var k = h;\n 0 < d.wb &&\n ((k = 4 < d.wb ? k >> 2 : k >> 1),\n k > 9 - d.wb && (k = 9 - d.wb));\n 1 > k && (k = 1);\n g.dd = k;\n g.tc = 2 * h + k;\n g.ld = 40 <= h ? 2 : 15 <= h ? 1 : 0;\n } else g.tc = 0;\n g.La = e;\n }\n }\n }\n c = 0;\n } else T(a, 6, \"Frame setup failed\"), (c = a.a);\n if ((c = 0 == c)) {\n if (c) {\n a.$c = 0;\n 0 < a.Aa || (a.Ic = Ne);\n b: {\n c = a.Ic;\n var k = a.za,\n d = 4 * k,\n l = 32 * k,\n m = k + 1,\n n = 0 < a.L ? k * (0 < a.Aa ? 2 : 1) : 0,\n r = (2 == a.Aa ? 2 : 1) * k;\n e = ((3 * (16 * c + Ya[a.L])) / 2) * l;\n f = null != a.Fa && 0 < a.Fa.length ? a.Kc.c * a.Kc.i : 0;\n g = d + 832 + e + f;\n if (g != g) c = 0;\n else {\n if (g > a.Vb) {\n a.Vb = 0;\n a.Ec = V(g);\n a.Fc = 0;\n if (null == a.Ec) {\n c = T(a, 1, \"no memory during frame initialization.\");\n break b;\n }\n a.Vb = g;\n }\n g = a.Ec;\n h = a.Fc;\n a.Ac = g;\n a.Bc = h;\n h += d;\n a.Gd = wa(l, Ic);\n a.Hd = 0;\n a.rb = wa(m + 1, Hc);\n a.sb = 1;\n a.wa = n ? wa(n, Xa) : null;\n a.Y = 0;\n a.D.Nb = 0;\n a.D.wa = a.wa;\n a.D.Y = a.Y;\n 0 < a.Aa && (a.D.Y += k);\n x(!0);\n a.oc = g;\n a.pc = h;\n h += 832;\n a.ya = wa(r, Kb);\n a.aa = 0;\n a.D.ya = a.ya;\n a.D.aa = a.aa;\n 2 == a.Aa && (a.D.aa += k);\n a.R = 16 * k;\n a.B = 8 * k;\n l = Ya[a.L];\n k = l * a.R;\n l = (l / 2) * a.B;\n a.sa = g;\n a.ta = h + k;\n a.qa = a.sa;\n a.ra = a.ta + 16 * c * a.R + l;\n a.Ha = a.qa;\n a.Ia = a.ra + 8 * c * a.B + l;\n a.$c = 0;\n h += e;\n a.mb = f ? g : null;\n a.nb = f ? h : null;\n x(h + f <= a.Fc + a.Vb);\n Lc(a);\n M(a.Ac, a.Bc, 0, d);\n c = 1;\n }\n }\n if (c) {\n b.ka = 0;\n b.y = a.sa;\n b.O = a.ta;\n b.f = a.qa;\n b.N = a.ra;\n b.ea = a.Ha;\n b.Vd = a.Ia;\n b.fa = a.R;\n b.Rc = a.B;\n b.F = null;\n b.J = 0;\n if (!ad) {\n for (c = -255; 255 >= c; ++c) bd[255 + c] = 0 > c ? -c : c;\n for (c = -1020; 1020 >= c; ++c)\n cd[1020 + c] = -128 > c ? -128 : 127 < c ? 127 : c;\n for (c = -112; 112 >= c; ++c)\n dd[112 + c] = -16 > c ? -16 : 15 < c ? 15 : c;\n for (c = -255; 510 >= c; ++c)\n ed[255 + c] = 0 > c ? 0 : 255 < c ? 255 : c;\n ad = 1;\n }\n Nc = Oe;\n Za = Pe;\n Nb = Qe;\n pa = Re;\n Ob = Se;\n fd = Te;\n Xc = Ue;\n Tc = Ve;\n Yc = We;\n Uc = Xe;\n Zc = Ye;\n Vc = Ze;\n $c = $e;\n Wc = af;\n Rc = gd;\n Pc = hd;\n Sc = bf;\n Qc = cf;\n W[0] = df;\n W[1] = ef;\n W[2] = ff;\n W[3] = gf;\n W[4] = hf;\n W[5] = jf;\n W[6] = kf;\n W[7] = lf;\n W[8] = mf;\n W[9] = nf;\n Y[0] = of;\n Y[1] = pf;\n Y[2] = qf;\n Y[3] = rf;\n Y[4] = sf;\n Y[5] = tf;\n Y[6] = uf;\n ka[0] = vf;\n ka[1] = wf;\n ka[2] = xf;\n ka[3] = yf;\n ka[4] = zf;\n ka[5] = Af;\n ka[6] = Bf;\n c = 1;\n } else c = 0;\n }\n c && (c = Je(a, b));\n null != b.bc && b.bc(b);\n c &= 1;\n }\n if (!c) return 0;\n a.cb = 0;\n return c;\n }\n function qa(a, b, c, d, e) {\n e = a[b + c + 32 * d] + (e >> 3);\n a[b + c + 32 * d] = e & -256 ? (0 > e ? 0 : 255) : e;\n }\n function kb(a, b, c, d, e, f) {\n qa(a, b, 0, c, d + e);\n qa(a, b, 1, c, d + f);\n qa(a, b, 2, c, d - f);\n qa(a, b, 3, c, d - e);\n }\n function da(a) {\n return ((20091 * a) >> 16) + a;\n }\n function id(a, b, c, d) {\n var e = 0,\n f;\n var g = V(16);\n for (f = 0; 4 > f; ++f) {\n var h = a[b + 0] + a[b + 8];\n var k = a[b + 0] - a[b + 8];\n var l = ((35468 * a[b + 4]) >> 16) - da(a[b + 12]);\n var m = da(a[b + 4]) + ((35468 * a[b + 12]) >> 16);\n g[e + 0] = h + m;\n g[e + 1] = k + l;\n g[e + 2] = k - l;\n g[e + 3] = h - m;\n e += 4;\n b++;\n }\n for (f = e = 0; 4 > f; ++f)\n (a = g[e + 0] + 4),\n (h = a + g[e + 8]),\n (k = a - g[e + 8]),\n (l = ((35468 * g[e + 4]) >> 16) - da(g[e + 12])),\n (m = da(g[e + 4]) + ((35468 * g[e + 12]) >> 16)),\n qa(c, d, 0, 0, h + m),\n qa(c, d, 1, 0, k + l),\n qa(c, d, 2, 0, k - l),\n qa(c, d, 3, 0, h - m),\n e++,\n (d += 32);\n }\n function Te(a, b, c, d) {\n var e = a[b + 0] + 4,\n f = (35468 * a[b + 4]) >> 16,\n g = da(a[b + 4]),\n h = (35468 * a[b + 1]) >> 16;\n a = da(a[b + 1]);\n kb(c, d, 0, e + g, a, h);\n kb(c, d, 1, e + f, a, h);\n kb(c, d, 2, e - f, a, h);\n kb(c, d, 3, e - g, a, h);\n }\n function Pe(a, b, c, d, e) {\n id(a, b, c, d);\n e && id(a, b + 16, c, d + 4);\n }\n function Qe(a, b, c, d) {\n Za(a, b + 0, c, d, 1);\n Za(a, b + 32, c, d + 128, 1);\n }\n function Re(a, b, c, d) {\n a = a[b + 0] + 4;\n var e;\n for (e = 0; 4 > e; ++e) for (b = 0; 4 > b; ++b) qa(c, d, b, e, a);\n }\n function Se(a, b, c, d) {\n a[b + 0] && pa(a, b + 0, c, d);\n a[b + 16] && pa(a, b + 16, c, d + 4);\n a[b + 32] && pa(a, b + 32, c, d + 128);\n a[b + 48] && pa(a, b + 48, c, d + 128 + 4);\n }\n function Oe(a, b, c, d) {\n var e = V(16),\n f;\n for (f = 0; 4 > f; ++f) {\n var g = a[b + 0 + f] + a[b + 12 + f];\n var h = a[b + 4 + f] + a[b + 8 + f];\n var k = a[b + 4 + f] - a[b + 8 + f];\n var l = a[b + 0 + f] - a[b + 12 + f];\n e[0 + f] = g + h;\n e[8 + f] = g - h;\n e[4 + f] = l + k;\n e[12 + f] = l - k;\n }\n for (f = 0; 4 > f; ++f)\n (a = e[0 + 4 * f] + 3),\n (g = a + e[3 + 4 * f]),\n (h = e[1 + 4 * f] + e[2 + 4 * f]),\n (k = e[1 + 4 * f] - e[2 + 4 * f]),\n (l = a - e[3 + 4 * f]),\n (c[d + 0] = (g + h) >> 3),\n (c[d + 16] = (l + k) >> 3),\n (c[d + 32] = (g - h) >> 3),\n (c[d + 48] = (l - k) >> 3),\n (d += 64);\n }\n function Pb(a, b, c) {\n var d = b - 32,\n e = R,\n f = 255 - a[d - 1],\n g;\n for (g = 0; g < c; ++g) {\n var h = e,\n k = f + a[b - 1],\n l;\n for (l = 0; l < c; ++l) a[b + l] = h[k + a[d + l]];\n b += 32;\n }\n }\n function ef(a, b) {\n Pb(a, b, 4);\n }\n function wf(a, b) {\n Pb(a, b, 8);\n }\n function pf(a, b) {\n Pb(a, b, 16);\n }\n function qf(a, b) {\n var c;\n for (c = 0; 16 > c; ++c) I(a, b + 32 * c, a, b - 32, 16);\n }\n function rf(a, b) {\n var c;\n for (c = 16; 0 < c; --c) M(a, b, a[b - 1], 16), (b += 32);\n }\n function $a(a, b, c) {\n var d;\n for (d = 0; 16 > d; ++d) M(b, c + 32 * d, a, 16);\n }\n function of(a, b) {\n var c = 16,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d] + a[b + d - 32];\n $a(c >> 5, a, b);\n }\n function sf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d];\n $a(c >> 4, a, b);\n }\n function tf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b + d - 32];\n $a(c >> 4, a, b);\n }\n function uf(a, b) {\n $a(128, a, b);\n }\n function z(a, b, c) {\n return (a + 2 * b + c + 2) >> 2;\n }\n function ff(a, b) {\n var c = b - 32,\n c = new Uint8Array([\n z(a[c - 1], a[c + 0], a[c + 1]),\n z(a[c + 0], a[c + 1], a[c + 2]),\n z(a[c + 1], a[c + 2], a[c + 3]),\n z(a[c + 2], a[c + 3], a[c + 4])\n ]),\n d;\n for (d = 0; 4 > d; ++d) I(a, b + 32 * d, c, 0, c.length);\n }\n function gf(a, b) {\n var c = a[b - 1],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n ra(a, b + 0, 16843009 * z(a[b - 1 - 32], c, d));\n ra(a, b + 32, 16843009 * z(c, d, e));\n ra(a, b + 64, 16843009 * z(d, e, f));\n ra(a, b + 96, 16843009 * z(e, f, f));\n }\n function df(a, b) {\n var c = 4,\n d;\n for (d = 0; 4 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n c >>= 3;\n for (d = 0; 4 > d; ++d) M(a, b + 32 * d, c, 4);\n }\n function hf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 96] = z(d, e, a[b - 1 + 96]);\n a[b + 1 + 96] = a[b + 0 + 64] = z(c, d, e);\n a[b + 2 + 96] = a[b + 1 + 64] = a[b + 0 + 32] = z(f, c, d);\n a[b + 3 + 96] = a[b + 2 + 64] = a[b + 1 + 32] = a[b + 0 + 0] = z(g, f, c);\n a[b + 3 + 64] = a[b + 2 + 32] = a[b + 1 + 0] = z(h, g, f);\n a[b + 3 + 32] = a[b + 2 + 0] = z(k, h, g);\n a[b + 3 + 0] = z(l, k, h);\n }\n function kf(a, b) {\n var c = a[b + 1 - 32],\n d = a[b + 2 - 32],\n e = a[b + 3 - 32],\n f = a[b + 4 - 32],\n g = a[b + 5 - 32],\n h = a[b + 6 - 32],\n k = a[b + 7 - 32];\n a[b + 0 + 0] = z(a[b + 0 - 32], c, d);\n a[b + 1 + 0] = a[b + 0 + 32] = z(c, d, e);\n a[b + 2 + 0] = a[b + 1 + 32] = a[b + 0 + 64] = z(d, e, f);\n a[b + 3 + 0] = a[b + 2 + 32] = a[b + 1 + 64] = a[b + 0 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 64] = a[b + 1 + 96] = z(f, g, h);\n a[b + 3 + 64] = a[b + 2 + 96] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, k);\n }\n function jf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 0] = a[b + 1 + 64] = (f + g + 1) >> 1;\n a[b + 1 + 0] = a[b + 2 + 64] = (g + h + 1) >> 1;\n a[b + 2 + 0] = a[b + 3 + 64] = (h + k + 1) >> 1;\n a[b + 3 + 0] = (k + l + 1) >> 1;\n a[b + 0 + 96] = z(e, d, c);\n a[b + 0 + 64] = z(d, c, f);\n a[b + 0 + 32] = a[b + 1 + 96] = z(c, f, g);\n a[b + 1 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 2 + 32] = a[b + 3 + 96] = z(g, h, k);\n a[b + 3 + 32] = z(h, k, l);\n }\n function lf(a, b) {\n var c = a[b + 0 - 32],\n d = a[b + 1 - 32],\n e = a[b + 2 - 32],\n f = a[b + 3 - 32],\n g = a[b + 4 - 32],\n h = a[b + 5 - 32],\n k = a[b + 6 - 32],\n l = a[b + 7 - 32];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 1 + 0] = a[b + 0 + 64] = (d + e + 1) >> 1;\n a[b + 2 + 0] = a[b + 1 + 64] = (e + f + 1) >> 1;\n a[b + 3 + 0] = a[b + 2 + 64] = (f + g + 1) >> 1;\n a[b + 0 + 32] = z(c, d, e);\n a[b + 1 + 32] = a[b + 0 + 96] = z(d, e, f);\n a[b + 2 + 32] = a[b + 1 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 3 + 64] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, l);\n }\n function nf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 2 + 0] = a[b + 0 + 32] = (d + e + 1) >> 1;\n a[b + 2 + 32] = a[b + 0 + 64] = (e + f + 1) >> 1;\n a[b + 1 + 0] = z(c, d, e);\n a[b + 3 + 0] = a[b + 1 + 32] = z(d, e, f);\n a[b + 3 + 32] = a[b + 1 + 64] = z(e, f, f);\n a[b + 3 + 64] = a[b + 2 + 64] = a[b + 0 + 96] = a[b + 1 + 96] = a[\n b + 2 + 96\n ] = a[b + 3 + 96] = f;\n }\n function mf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96],\n g = a[b - 1 - 32],\n h = a[b + 0 - 32],\n k = a[b + 1 - 32],\n l = a[b + 2 - 32];\n a[b + 0 + 0] = a[b + 2 + 32] = (c + g + 1) >> 1;\n a[b + 0 + 32] = a[b + 2 + 64] = (d + c + 1) >> 1;\n a[b + 0 + 64] = a[b + 2 + 96] = (e + d + 1) >> 1;\n a[b + 0 + 96] = (f + e + 1) >> 1;\n a[b + 3 + 0] = z(h, k, l);\n a[b + 2 + 0] = z(g, h, k);\n a[b + 1 + 0] = a[b + 3 + 32] = z(c, g, h);\n a[b + 1 + 32] = a[b + 3 + 64] = z(d, c, g);\n a[b + 1 + 64] = a[b + 3 + 96] = z(e, d, c);\n a[b + 1 + 96] = z(f, e, d);\n }\n function xf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) I(a, b + 32 * c, a, b - 32, 8);\n }\n function yf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) M(a, b, a[b - 1], 8), (b += 32);\n }\n function lb(a, b, c) {\n var d;\n for (d = 0; 8 > d; ++d) M(b, c + 32 * d, a, 8);\n }\n function vf(a, b) {\n var c = 8,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n lb(c >> 4, a, b);\n }\n function Af(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32];\n lb(c >> 3, a, b);\n }\n function zf(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b - 1 + 32 * d];\n lb(c >> 3, a, b);\n }\n function Bf(a, b) {\n lb(128, a, b);\n }\n function ab(a, b, c) {\n var d = a[b - c],\n e = a[b + 0],\n f = 3 * (e - d) + Qb[1020 + a[b - 2 * c] - a[b + c]],\n g = mb[112 + ((f + 4) >> 3)];\n a[b - c] = R[255 + d + mb[112 + ((f + 3) >> 3)]];\n a[b + 0] = R[255 + e - g];\n }\n function jd(a, b, c, d) {\n var e = a[b + 0],\n f = a[b + c];\n return U[255 + a[b - 2 * c] - a[b - c]] > d || U[255 + f - e] > d;\n }\n function kd(a, b, c, d) {\n return (\n 4 * U[255 + a[b - c] - a[b + 0]] + U[255 + a[b - 2 * c] - a[b + c]] <= d\n );\n }\n function ld(a, b, c, d, e) {\n var f = a[b - 3 * c],\n g = a[b - 2 * c],\n h = a[b - c],\n k = a[b + 0],\n l = a[b + c],\n m = a[b + 2 * c],\n n = a[b + 3 * c];\n return 4 * U[255 + h - k] + U[255 + g - l] > d\n ? 0\n : U[255 + a[b - 4 * c] - f] <= e &&\n U[255 + f - g] <= e &&\n U[255 + g - h] <= e &&\n U[255 + n - m] <= e &&\n U[255 + m - l] <= e &&\n U[255 + l - k] <= e;\n }\n function gd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d, c, e) && ab(a, b + d, c);\n }\n function hd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d * c, 1, e) && ab(a, b + d * c, 1);\n }\n function bf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4 * c), gd(a, b, c, d);\n }\n function cf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4), hd(a, b, c, d);\n }\n function ea(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - 2 * m],\n r = k[l - m],\n q = k[l + 0],\n t = k[l + m],\n v = k[l + 2 * m],\n p = Qb[1020 + 3 * (q - r) + Qb[1020 + n - t]],\n u = (27 * p + 63) >> 7,\n w = (18 * p + 63) >> 7,\n p = (9 * p + 63) >> 7;\n k[l - 3 * m] = R[255 + k[l - 3 * m] + p];\n k[l - 2 * m] = R[255 + n + w];\n k[l - m] = R[255 + r + u];\n k[l + 0] = R[255 + q - u];\n k[l + m] = R[255 + t - w];\n k[l + 2 * m] = R[255 + v - p];\n }\n b += d;\n }\n }\n function Fa(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - m],\n r = k[l + 0],\n q = k[l + m],\n t = 3 * (r - n),\n v = mb[112 + ((t + 4) >> 3)],\n t = mb[112 + ((t + 3) >> 3)],\n p = (v + 1) >> 1;\n k[l - 2 * m] = R[255 + k[l - 2 * m] + p];\n k[l - m] = R[255 + n + t];\n k[l + 0] = R[255 + r - v];\n k[l + m] = R[255 + q - p];\n }\n b += d;\n }\n }\n function Ue(a, b, c, d, e, f) {\n ea(a, b, c, 1, 16, d, e, f);\n }\n function Ve(a, b, c, d, e, f) {\n ea(a, b, 1, c, 16, d, e, f);\n }\n function Ye(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4 * c), Fa(a, b, c, 1, 16, d, e, f);\n }\n function Ze(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4), Fa(a, b, 1, c, 16, d, e, f);\n }\n function We(a, b, c, d, e, f, g, h) {\n ea(a, b, e, 1, 8, f, g, h);\n ea(c, d, e, 1, 8, f, g, h);\n }\n function Xe(a, b, c, d, e, f, g, h) {\n ea(a, b, 1, e, 8, f, g, h);\n ea(c, d, 1, e, 8, f, g, h);\n }\n function $e(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4 * e, e, 1, 8, f, g, h);\n Fa(c, d + 4 * e, e, 1, 8, f, g, h);\n }\n function af(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4, 1, e, 8, f, g, h);\n Fa(c, d + 4, 1, e, 8, f, g, h);\n }\n function Cf() {\n this.ba = new Cb();\n this.ec = [];\n this.cc = [];\n this.Mc = [];\n this.Dc = this.Nc = this.dc = this.fc = 0;\n this.Oa = new Ud();\n this.memory = 0;\n this.Ib = \"OutputFunc\";\n this.Jb = \"OutputAlphaFunc\";\n this.Nd = \"OutputRowFunc\";\n }\n function md() {\n this.data = [];\n this.offset = this.kd = this.ha = this.w = 0;\n this.na = [];\n this.xa = this.gb = this.Ja = this.Sa = this.P = 0;\n }\n function Df() {\n this.nc = this.Ea = this.b = this.hc = 0;\n this.K = [];\n this.w = 0;\n }\n function Ef() {\n this.ua = 0;\n this.Wa = new ac();\n this.vb = new ac();\n this.md = this.xc = this.wc = 0;\n this.vc = [];\n this.Wb = 0;\n this.Ya = new Ub();\n this.yc = new O();\n }\n function je() {\n this.xb = this.a = 0;\n this.l = new Oa();\n this.ca = new Cb();\n this.V = [];\n this.Ba = 0;\n this.Ta = [];\n this.Ua = 0;\n this.m = new Ra();\n this.Pb = 0;\n this.wd = new Ra();\n this.Ma = this.$ = this.C = this.i = this.c = this.xd = 0;\n this.s = new Ef();\n this.ab = 0;\n this.gc = wa(4, Df);\n this.Oc = 0;\n }\n function Ff() {\n this.Lc = this.Z = this.$a = this.i = this.c = 0;\n this.l = new Oa();\n this.ic = 0;\n this.ca = [];\n this.tb = 0;\n this.qd = null;\n this.rd = 0;\n }\n function Rb(a, b, c, d, e, f, g) {\n a = null == a ? 0 : a[b + 0];\n for (b = 0; b < g; ++b) (e[f + b] = (a + c[d + b]) & 255), (a = e[f + b]);\n }\n function Gf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h;\n for (h = 0; h < g; ++h) e[f + h] = (a[b + h] + c[d + h]) & 255;\n }\n }\n function Hf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h = a[b + 0],\n k = h,\n l = h,\n m;\n for (m = 0; m < g; ++m)\n (h = a[b + m]),\n (k = l + h - k),\n (l = (c[d + m] + (k & -256 ? (0 > k ? 0 : 255) : k)) & 255),\n (k = h),\n (e[f + m] = l);\n }\n }\n function Le(a, b, c, d) {\n var e = b.width,\n f = b.o;\n x(null != a && null != b);\n if (0 > c || 0 >= d || c + d > f) return null;\n if (!a.Cc) {\n if (null == a.ga) {\n a.ga = new Ff();\n var g;\n (g = null == a.ga) ||\n ((g = b.width * b.o),\n x(0 == a.Gb.length),\n (a.Gb = V(g)),\n (a.Uc = 0),\n null == a.Gb\n ? (g = 0)\n : ((a.mb = a.Gb), (a.nb = a.Uc), (a.rc = null), (g = 1)),\n (g = !g));\n if (!g) {\n g = a.ga;\n var h = a.Fa,\n k = a.P,\n l = a.qc,\n m = a.mb,\n n = a.nb,\n r = k + 1,\n q = l - 1,\n t = g.l;\n x(null != h && null != m && null != b);\n ia[0] = null;\n ia[1] = Rb;\n ia[2] = Gf;\n ia[3] = Hf;\n g.ca = m;\n g.tb = n;\n g.c = b.width;\n g.i = b.height;\n x(0 < g.c && 0 < g.i);\n if (1 >= l) b = 0;\n else if (\n ((g.$a = (h[k + 0] >> 0) & 3),\n (g.Z = (h[k + 0] >> 2) & 3),\n (g.Lc = (h[k + 0] >> 4) & 3),\n (k = (h[k + 0] >> 6) & 3),\n 0 > g.$a || 1 < g.$a || 4 <= g.Z || 1 < g.Lc || k)\n )\n b = 0;\n else if (\n ((t.put = kc),\n (t.ac = gc),\n (t.bc = lc),\n (t.ma = g),\n (t.width = b.width),\n (t.height = b.height),\n (t.Da = b.Da),\n (t.v = b.v),\n (t.va = b.va),\n (t.j = b.j),\n (t.o = b.o),\n g.$a)\n )\n b: {\n x(1 == g.$a), (b = Bc());\n c: for (;;) {\n if (null == b) {\n b = 0;\n break b;\n }\n x(null != g);\n g.mc = b;\n b.c = g.c;\n b.i = g.i;\n b.l = g.l;\n b.l.ma = g;\n b.l.width = g.c;\n b.l.height = g.i;\n b.a = 0;\n cb(b.m, h, r, q);\n if (!rb(g.c, g.i, 1, b, null)) break c;\n 1 == b.ab && 3 == b.gc[0].hc && yc(b.s)\n ? ((g.ic = 1),\n (h = b.c * b.i),\n (b.Ta = null),\n (b.Ua = 0),\n (b.V = V(h)),\n (b.Ba = 0),\n null == b.V ? ((b.a = 1), (b = 0)) : (b = 1))\n : ((g.ic = 0), (b = Ec(b, g.c)));\n if (!b) break c;\n b = 1;\n break b;\n }\n g.mc = null;\n b = 0;\n }\n else b = q >= g.c * g.i;\n g = !b;\n }\n if (g) return null;\n 1 != a.ga.Lc ? (a.Ga = 0) : (d = f - c);\n }\n x(null != a.ga);\n x(c + d <= f);\n a: {\n h = a.ga;\n b = h.c;\n f = h.l.o;\n if (0 == h.$a) {\n r = a.rc;\n q = a.Vc;\n t = a.Fa;\n k = a.P + 1 + c * b;\n l = a.mb;\n m = a.nb + c * b;\n x(k <= a.P + a.qc);\n if (0 != h.Z)\n for (x(null != ia[h.Z]), g = 0; g < d; ++g)\n ia[h.Z](r, q, t, k, l, m, b),\n (r = l),\n (q = m),\n (m += b),\n (k += b);\n else\n for (g = 0; g < d; ++g)\n I(l, m, t, k, b), (r = l), (q = m), (m += b), (k += b);\n a.rc = r;\n a.Vc = q;\n } else {\n x(null != h.mc);\n b = c + d;\n g = h.mc;\n x(null != g);\n x(b <= g.i);\n if (g.C >= b) b = 1;\n else if ((h.ic || Aa(), h.ic)) {\n var h = g.V,\n r = g.Ba,\n q = g.c,\n v = g.i,\n t = 1,\n k = g.$ / q,\n l = g.$ % q,\n m = g.m,\n n = g.s,\n p = g.$,\n u = q * v,\n w = q * b,\n y = n.wc,\n A = p < w ? ha(n, l, k) : null;\n x(p <= u);\n x(b <= v);\n x(yc(n));\n c: for (;;) {\n for (; !m.h && p < w; ) {\n l & y || (A = ha(n, l, k));\n x(null != A);\n Sa(m);\n v = ua(A.G[0], A.H[0], m);\n if (256 > v)\n (h[r + p] = v),\n ++p,\n ++l,\n l >= q && ((l = 0), ++k, k <= b && !(k % 16) && Ib(g, k));\n else if (280 > v) {\n var v = ib(v - 256, m);\n var E = ua(A.G[4], A.H[4], m);\n Sa(m);\n E = ib(E, m);\n E = nc(q, E);\n if (p >= E && u - p >= v) {\n var B;\n for (B = 0; B < v; ++B) h[r + p + B] = h[r + p + B - E];\n } else {\n t = 0;\n break c;\n }\n p += v;\n for (l += v; l >= q; )\n (l -= q), ++k, k <= b && !(k % 16) && Ib(g, k);\n p < w && l & y && (A = ha(n, l, k));\n } else {\n t = 0;\n break c;\n }\n x(m.h == db(m));\n }\n Ib(g, k > b ? b : k);\n break c;\n }\n !t || (m.h && p < u) ? ((t = 0), (g.a = m.h ? 5 : 3)) : (g.$ = p);\n b = t;\n } else b = Jb(g, g.V, g.Ba, g.c, g.i, b, se);\n if (!b) {\n d = 0;\n break a;\n }\n }\n c + d >= f && (a.Cc = 1);\n d = 1;\n }\n if (!d) return null;\n if (\n a.Cc &&\n ((d = a.ga), null != d && (d.mc = null), (a.ga = null), 0 < a.Ga)\n )\n return alert(\"todo:WebPDequantizeLevels\"), null;\n }\n return a.nb + c * e;\n }\n function If(a, b, c, d, e, f) {\n for (; 0 < e--; ) {\n var g = a,\n h = b + (c ? 1 : 0),\n k = a,\n l = b + (c ? 0 : 3),\n m;\n for (m = 0; m < d; ++m) {\n var n = k[l + 4 * m];\n 255 != n &&\n ((n *= 32897),\n (g[h + 4 * m + 0] = (g[h + 4 * m + 0] * n) >> 23),\n (g[h + 4 * m + 1] = (g[h + 4 * m + 1] * n) >> 23),\n (g[h + 4 * m + 2] = (g[h + 4 * m + 2] * n) >> 23));\n }\n b += f;\n }\n }\n function Jf(a, b, c, d, e) {\n for (; 0 < d--; ) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + 2 * f + 0],\n h = a[b + 2 * f + 1],\n k = h & 15,\n l = 4369 * k,\n h = (((h & 240) | (h >> 4)) * l) >> 16;\n a[b + 2 * f + 0] =\n (((((g & 240) | (g >> 4)) * l) >> 16) & 240) |\n ((((((g & 15) | (g << 4)) * l) >> 16) >> 4) & 15);\n a[b + 2 * f + 1] = (h & 240) | k;\n }\n b += e;\n }\n }\n function Kf(a, b, c, d, e, f, g, h) {\n var k = 255,\n l,\n m;\n for (m = 0; m < e; ++m) {\n for (l = 0; l < d; ++l) {\n var n = a[b + l];\n f[g + 4 * l] = n;\n k &= n;\n }\n b += c;\n g += h;\n }\n return 255 != k;\n }\n function Lf(a, b, c, d, e) {\n var f;\n for (f = 0; f < e; ++f) c[d + f] = a[b + f] >> 8;\n }\n function Aa() {\n za = If;\n vc = Jf;\n fc = Kf;\n Fc = Lf;\n }\n function va(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n, r, q, t, v, p, u, w, y) {\n var d,\n E = (y - 1) >> 1;\n var B = h[k + 0] | (l[m + 0] << 16);\n var C = n[r + 0] | (q[t + 0] << 16);\n x(null != a);\n var z = (3 * B + C + 131074) >> 2;\n b(a[e + 0], z & 255, z >> 16, v, p);\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + 0], z & 255, z >> 16, u, w));\n for (d = 1; d <= E; ++d) {\n var D = h[k + d] | (l[m + d] << 16);\n var G = n[r + d] | (q[t + d] << 16);\n var F = B + D + C + G + 524296;\n var H = (F + 2 * (D + C)) >> 3;\n F = (F + 2 * (B + G)) >> 3;\n z = (H + B) >> 1;\n B = (F + D) >> 1;\n b(a[e + 2 * d - 1], z & 255, z >> 16, v, p + (2 * d - 1) * c);\n b(a[e + 2 * d - 0], B & 255, B >> 16, v, p + (2 * d - 0) * c);\n null != f &&\n ((z = (F + C) >> 1),\n (B = (H + G) >> 1),\n b(f[g + 2 * d - 1], z & 255, z >> 16, u, w + (2 * d - 1) * c),\n b(f[g + 2 * d + 0], B & 255, B >> 16, u, w + (2 * d + 0) * c));\n B = D;\n C = G;\n }\n y & 1 ||\n ((z = (3 * B + C + 131074) >> 2),\n b(a[e + y - 1], z & 255, z >> 16, v, p + (y - 1) * c),\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + y - 1], z & 255, z >> 16, u, w + (y - 1) * c)));\n };\n }\n function ic() {\n P[Ca] = Mf;\n P[Ua] = nd;\n P[tc] = Nf;\n P[Va] = od;\n P[ya] = pd;\n P[Db] = qd;\n P[wc] = Of;\n P[zb] = nd;\n P[Ab] = od;\n P[Ja] = pd;\n P[Bb] = qd;\n }\n function Sb(a) {\n return a & ~Pf ? (0 > a ? 0 : 255) : a >> rd;\n }\n function bb(a, b) {\n return Sb(((19077 * a) >> 8) + ((26149 * b) >> 8) - 14234);\n }\n function nb(a, b, c) {\n return Sb(\n ((19077 * a) >> 8) - ((6419 * b) >> 8) - ((13320 * c) >> 8) + 8708\n );\n }\n function Pa(a, b) {\n return Sb(((19077 * a) >> 8) + ((33050 * b) >> 8) - 17685);\n }\n function Ga(a, b, c, d, e) {\n d[e + 0] = bb(a, c);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = Pa(a, b);\n }\n function Tb(a, b, c, d, e) {\n d[e + 0] = Pa(a, b);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = bb(a, c);\n }\n function sd(a, b, c, d, e) {\n var f = nb(a, b, c);\n b = ((f << 3) & 224) | (Pa(a, b) >> 3);\n d[e + 0] = (bb(a, c) & 248) | (f >> 5);\n d[e + 1] = b;\n }\n function td(a, b, c, d, e) {\n var f = (Pa(a, b) & 240) | 15;\n d[e + 0] = (bb(a, c) & 240) | (nb(a, b, c) >> 4);\n d[e + 1] = f;\n }\n function ud(a, b, c, d, e) {\n d[e + 0] = 255;\n Ga(a, b, c, d, e + 1);\n }\n function vd(a, b, c, d, e) {\n Tb(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function wd(a, b, c, d, e) {\n Ga(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function la(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n) {\n for (var d = m + (n & -2) * c; m != d; )\n b(a[e + 0], f[g + 0], h[k + 0], l, m),\n b(a[e + 1], f[g + 0], h[k + 0], l, m + c),\n (e += 2),\n ++g,\n ++k,\n (m += 2 * c);\n n & 1 && b(a[e + 0], f[g + 0], h[k + 0], l, m);\n };\n }\n function xd(a, b, c) {\n return 0 == c ? (0 == a ? (0 == b ? 6 : 5) : 0 == b ? 4 : 0) : c;\n }\n function yd(a, b, c, d, e) {\n switch (a >>> 30) {\n case 3:\n Za(b, c, d, e, 0);\n break;\n case 2:\n fd(b, c, d, e);\n break;\n case 1:\n pa(b, c, d, e);\n }\n }\n function Oc(a, b) {\n var c,\n d,\n e = b.M,\n f = b.Nb,\n g = a.oc,\n h = a.pc + 40,\n k = a.oc,\n l = a.pc + 584,\n m = a.oc,\n n = a.pc + 600;\n for (c = 0; 16 > c; ++c) g[h + 32 * c - 1] = 129;\n for (c = 0; 8 > c; ++c)\n (k[l + 32 * c - 1] = 129), (m[n + 32 * c - 1] = 129);\n 0 < e\n ? (g[h - 1 - 32] = k[l - 1 - 32] = m[n - 1 - 32] = 129)\n : (M(g, h - 32 - 1, 127, 21),\n M(k, l - 32 - 1, 127, 9),\n M(m, n - 32 - 1, 127, 9));\n for (d = 0; d < a.za; ++d) {\n var r = b.ya[b.aa + d];\n if (0 < d) {\n for (c = -1; 16 > c; ++c) I(g, h + 32 * c - 4, g, h + 32 * c + 12, 4);\n for (c = -1; 8 > c; ++c)\n I(k, l + 32 * c - 4, k, l + 32 * c + 4, 4),\n I(m, n + 32 * c - 4, m, n + 32 * c + 4, 4);\n }\n var q = a.Gd,\n t = a.Hd + d,\n v = r.ad,\n p = r.Hc;\n 0 < e &&\n (I(g, h - 32, q[t].y, 0, 16),\n I(k, l - 32, q[t].f, 0, 8),\n I(m, n - 32, q[t].ea, 0, 8));\n if (r.Za) {\n var u = g;\n var w = h - 32 + 16;\n 0 < e &&\n (d >= a.za - 1\n ? M(u, w, q[t].y[15], 4)\n : I(u, w, q[t + 1].y, 0, 4));\n for (c = 0; 4 > c; c++)\n u[w + 128 + c] = u[w + 256 + c] = u[w + 384 + c] = u[w + 0 + c];\n for (c = 0; 16 > c; ++c, p <<= 2)\n (u = g), (w = h + zd[c]), W[r.Ob[c]](u, w), yd(p, v, 16 * +c, u, w);\n } else if (((u = xd(d, e, r.Ob[0])), Y[u](g, h), 0 != p))\n for (c = 0; 16 > c; ++c, p <<= 2) yd(p, v, 16 * +c, g, h + zd[c]);\n c = r.Gc;\n u = xd(d, e, r.Dd);\n ka[u](k, l);\n ka[u](m, n);\n r = c >> 0;\n p = v;\n u = k;\n w = l;\n r & 255 && (r & 170 ? Nb(p, 256, u, w) : Ob(p, 256, u, w));\n c >>= 8;\n r = m;\n p = n;\n c & 255 && (c & 170 ? Nb(v, 320, r, p) : Ob(v, 320, r, p));\n e < a.Ub - 1 &&\n (I(q[t].y, 0, g, h + 480, 16),\n I(q[t].f, 0, k, l + 224, 8),\n I(q[t].ea, 0, m, n + 224, 8));\n c = 8 * f * a.B;\n q = a.sa;\n t = a.ta + 16 * d + 16 * f * a.R;\n v = a.qa;\n r = a.ra + 8 * d + c;\n p = a.Ha;\n u = a.Ia + 8 * d + c;\n for (c = 0; 16 > c; ++c) I(q, t + c * a.R, g, h + 32 * c, 16);\n for (c = 0; 8 > c; ++c)\n I(v, r + c * a.B, k, l + 32 * c, 8),\n I(p, u + c * a.B, m, n + 32 * c, 8);\n }\n }\n function Ad(a, b, c, d, e, f, g, h, k) {\n var l = [0],\n m = [0],\n n = 0,\n r = null != k ? k.kd : 0,\n q = null != k ? k : new md();\n if (null == a || 12 > c) return 7;\n q.data = a;\n q.w = b;\n q.ha = c;\n b = [b];\n c = [c];\n q.gb = [q.gb];\n a: {\n var t = b;\n var v = c;\n var p = q.gb;\n x(null != a);\n x(null != v);\n x(null != p);\n p[0] = 0;\n if (12 <= v[0] && !fa(a, t[0], \"RIFF\")) {\n if (fa(a, t[0] + 8, \"WEBP\")) {\n p = 3;\n break a;\n }\n var u = Ha(a, t[0] + 4);\n if (12 > u || 4294967286 < u) {\n p = 3;\n break a;\n }\n if (r && u > v[0] - 8) {\n p = 7;\n break a;\n }\n p[0] = u;\n t[0] += 12;\n v[0] -= 12;\n }\n p = 0;\n }\n if (0 != p) return p;\n u = 0 < q.gb[0];\n for (c = c[0]; ; ) {\n t = [0];\n n = [n];\n a: {\n var w = a;\n v = b;\n p = c;\n var y = n,\n A = l,\n z = m,\n B = t;\n y[0] = 0;\n if (8 > p[0]) p = 7;\n else {\n if (!fa(w, v[0], \"VP8X\")) {\n if (10 != Ha(w, v[0] + 4)) {\n p = 3;\n break a;\n }\n if (18 > p[0]) {\n p = 7;\n break a;\n }\n var C = Ha(w, v[0] + 8);\n var D = 1 + Yb(w, v[0] + 12);\n w = 1 + Yb(w, v[0] + 15);\n if (2147483648 <= D * w) {\n p = 3;\n break a;\n }\n null != B && (B[0] = C);\n null != A && (A[0] = D);\n null != z && (z[0] = w);\n v[0] += 18;\n p[0] -= 18;\n y[0] = 1;\n }\n p = 0;\n }\n }\n n = n[0];\n t = t[0];\n if (0 != p) return p;\n v = !!(t & 2);\n if (!u && n) return 3;\n null != f && (f[0] = !!(t & 16));\n null != g && (g[0] = v);\n null != h && (h[0] = 0);\n g = l[0];\n t = m[0];\n if (n && v && null == k) {\n p = 0;\n break;\n }\n if (4 > c) {\n p = 7;\n break;\n }\n if ((u && n) || (!u && !n && !fa(a, b[0], \"ALPH\"))) {\n c = [c];\n q.na = [q.na];\n q.P = [q.P];\n q.Sa = [q.Sa];\n a: {\n C = a;\n p = b;\n u = c;\n var y = q.gb,\n A = q.na,\n z = q.P,\n B = q.Sa;\n D = 22;\n x(null != C);\n x(null != u);\n w = p[0];\n var F = u[0];\n x(null != A);\n x(null != B);\n A[0] = null;\n z[0] = null;\n for (B[0] = 0; ; ) {\n p[0] = w;\n u[0] = F;\n if (8 > F) {\n p = 7;\n break a;\n }\n var G = Ha(C, w + 4);\n if (4294967286 < G) {\n p = 3;\n break a;\n }\n var H = (8 + G + 1) & -2;\n D += H;\n if (0 < y && D > y) {\n p = 3;\n break a;\n }\n if (!fa(C, w, \"VP8 \") || !fa(C, w, \"VP8L\")) {\n p = 0;\n break a;\n }\n if (F[0] < H) {\n p = 7;\n break a;\n }\n fa(C, w, \"ALPH\") || ((A[0] = C), (z[0] = w + 8), (B[0] = G));\n w += H;\n F -= H;\n }\n }\n c = c[0];\n q.na = q.na[0];\n q.P = q.P[0];\n q.Sa = q.Sa[0];\n if (0 != p) break;\n }\n c = [c];\n q.Ja = [q.Ja];\n q.xa = [q.xa];\n a: if (\n ((y = a),\n (p = b),\n (u = c),\n (A = q.gb[0]),\n (z = q.Ja),\n (B = q.xa),\n (C = p[0]),\n (w = !fa(y, C, \"VP8 \")),\n (D = !fa(y, C, \"VP8L\")),\n x(null != y),\n x(null != u),\n x(null != z),\n x(null != B),\n 8 > u[0])\n )\n p = 7;\n else {\n if (w || D) {\n y = Ha(y, C + 4);\n if (12 <= A && y > A - 12) {\n p = 3;\n break a;\n }\n if (r && y > u[0] - 8) {\n p = 7;\n break a;\n }\n z[0] = y;\n p[0] += 8;\n u[0] -= 8;\n B[0] = D;\n } else\n (B[0] = 5 <= u[0] && 47 == y[C + 0] && !(y[C + 4] >> 5)),\n (z[0] = u[0]);\n p = 0;\n }\n c = c[0];\n q.Ja = q.Ja[0];\n q.xa = q.xa[0];\n b = b[0];\n if (0 != p) break;\n if (4294967286 < q.Ja) return 3;\n null == h || v || (h[0] = q.xa ? 2 : 1);\n g = [g];\n t = [t];\n if (q.xa) {\n if (5 > c) {\n p = 7;\n break;\n }\n h = g;\n r = t;\n v = f;\n null == a || 5 > c\n ? (a = 0)\n : 5 <= c && 47 == a[b + 0] && !(a[b + 4] >> 5)\n ? ((u = [0]),\n (y = [0]),\n (A = [0]),\n (z = new Ra()),\n cb(z, a, b, c),\n mc(z, u, y, A)\n ? (null != h && (h[0] = u[0]),\n null != r && (r[0] = y[0]),\n null != v && (v[0] = A[0]),\n (a = 1))\n : (a = 0))\n : (a = 0);\n } else {\n if (10 > c) {\n p = 7;\n break;\n }\n h = t;\n null == a || 10 > c || !Jc(a, b + 3, c - 3)\n ? (a = 0)\n : ((r = a[b + 0] | (a[b + 1] << 8) | (a[b + 2] << 16)),\n (v = ((a[b + 7] << 8) | a[b + 6]) & 16383),\n (a = ((a[b + 9] << 8) | a[b + 8]) & 16383),\n r & 1 ||\n 3 < ((r >> 1) & 7) ||\n !((r >> 4) & 1) ||\n r >> 5 >= q.Ja ||\n !v ||\n !a\n ? (a = 0)\n : (g && (g[0] = v), h && (h[0] = a), (a = 1)));\n }\n if (!a) return 3;\n g = g[0];\n t = t[0];\n if (n && (l[0] != g || m[0] != t)) return 3;\n null != k &&\n ((k[0] = q),\n (k.offset = b - k.w),\n x(4294967286 > b - k.w),\n x(k.offset == k.ha - c));\n break;\n }\n return 0 == p || (7 == p && n && null == k)\n ? (null != f && (f[0] |= null != q.na && 0 < q.na.length),\n null != d && (d[0] = g),\n null != e && (e[0] = t),\n 0)\n : p;\n }\n function hc(a, b, c) {\n var d = b.width,\n e = b.height,\n f = 0,\n g = 0,\n h = d,\n k = e;\n b.Da = null != a && 0 < a.Da;\n if (\n b.Da &&\n ((h = a.cd),\n (k = a.bd),\n (f = a.v),\n (g = a.j),\n 11 > c || ((f &= -2), (g &= -2)),\n 0 > f || 0 > g || 0 >= h || 0 >= k || f + h > d || g + k > e)\n )\n return 0;\n b.v = f;\n b.j = g;\n b.va = f + h;\n b.o = g + k;\n b.U = h;\n b.T = k;\n b.da = null != a && 0 < a.da;\n if (b.da) {\n c = [a.ib];\n f = [a.hb];\n if (!bc(h, k, c, f)) return 0;\n b.ib = c[0];\n b.hb = f[0];\n }\n b.ob = null != a && a.ob;\n b.Kb = null == a || !a.Sd;\n b.da && ((b.ob = b.ib < (3 * d) / 4 && b.hb < (3 * e) / 4), (b.Kb = 0));\n return 1;\n }\n function Bd(a) {\n if (null == a) return 2;\n if (11 > a.S) {\n var b = a.f.RGBA;\n b.fb += (a.height - 1) * b.A;\n b.A = -b.A;\n } else\n (b = a.f.kb),\n (a = a.height),\n (b.O += (a - 1) * b.fa),\n (b.fa = -b.fa),\n (b.N += ((a - 1) >> 1) * b.Ab),\n (b.Ab = -b.Ab),\n (b.W += ((a - 1) >> 1) * b.Db),\n (b.Db = -b.Db),\n null != b.F && ((b.J += (a - 1) * b.lb), (b.lb = -b.lb));\n return 0;\n }\n function Cd(a, b, c, d) {\n if (null == d || 0 >= a || 0 >= b) return 2;\n if (null != c) {\n if (c.Da) {\n var e = c.cd,\n f = c.bd,\n g = c.v & -2,\n h = c.j & -2;\n if (0 > g || 0 > h || 0 >= e || 0 >= f || g + e > a || h + f > b)\n return 2;\n a = e;\n b = f;\n }\n if (c.da) {\n e = [c.ib];\n f = [c.hb];\n if (!bc(a, b, e, f)) return 2;\n a = e[0];\n b = f[0];\n }\n }\n d.width = a;\n d.height = b;\n a: {\n var k = d.width;\n var l = d.height;\n a = d.S;\n if (0 >= k || 0 >= l || !(a >= Ca && 13 > a)) a = 2;\n else {\n if (0 >= d.Rd && null == d.sd) {\n var g = (f = e = b = 0),\n h = k * Dd[a],\n m = h * l;\n 11 > a ||\n ((b = (k + 1) / 2),\n (f = ((l + 1) / 2) * b),\n 12 == a && ((e = k), (g = e * l)));\n l = V(m + 2 * f + g);\n if (null == l) {\n a = 1;\n break a;\n }\n d.sd = l;\n 11 > a\n ? ((k = d.f.RGBA),\n (k.eb = l),\n (k.fb = 0),\n (k.A = h),\n (k.size = m))\n : ((k = d.f.kb),\n (k.y = l),\n (k.O = 0),\n (k.fa = h),\n (k.Fd = m),\n (k.f = l),\n (k.N = 0 + m),\n (k.Ab = b),\n (k.Cd = f),\n (k.ea = l),\n (k.W = 0 + m + f),\n (k.Db = b),\n (k.Ed = f),\n 12 == a && ((k.F = l), (k.J = 0 + m + 2 * f)),\n (k.Tc = g),\n (k.lb = e));\n }\n b = 1;\n e = d.S;\n f = d.width;\n g = d.height;\n if (e >= Ca && 13 > e)\n if (11 > e)\n (a = d.f.RGBA),\n (h = Math.abs(a.A)),\n (b &= h * (g - 1) + f <= a.size),\n (b &= h >= f * Dd[e]),\n (b &= null != a.eb);\n else {\n a = d.f.kb;\n h = (f + 1) / 2;\n m = (g + 1) / 2;\n k = Math.abs(a.fa);\n var l = Math.abs(a.Ab),\n n = Math.abs(a.Db),\n r = Math.abs(a.lb),\n q = r * (g - 1) + f;\n b &= k * (g - 1) + f <= a.Fd;\n b &= l * (m - 1) + h <= a.Cd;\n b &= n * (m - 1) + h <= a.Ed;\n b = b & (k >= f) & (l >= h) & (n >= h);\n b &= null != a.y;\n b &= null != a.f;\n b &= null != a.ea;\n 12 == e && ((b &= r >= f), (b &= q <= a.Tc), (b &= null != a.F));\n }\n else b = 0;\n a = b ? 0 : 2;\n }\n }\n if (0 != a) return a;\n null != c && c.fd && (a = Bd(d));\n return a;\n }\n var xb = 64,\n Hd = [\n 0,\n 1,\n 3,\n 7,\n 15,\n 31,\n 63,\n 127,\n 255,\n 511,\n 1023,\n 2047,\n 4095,\n 8191,\n 16383,\n 32767,\n 65535,\n 131071,\n 262143,\n 524287,\n 1048575,\n 2097151,\n 4194303,\n 8388607,\n 16777215\n ],\n Gd = 24,\n ob = 32,\n Xb = 8,\n Id = [\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7\n ];\n X(\"Predictor0\", \"PredictorAdd0\");\n self.Predictor0 = function() {\n return 4278190080;\n };\n self.Predictor1 = function(a) {\n return a;\n };\n self.Predictor2 = function(a, b, c) {\n return b[c + 0];\n };\n self.Predictor3 = function(a, b, c) {\n return b[c + 1];\n };\n self.Predictor4 = function(a, b, c) {\n return b[c - 1];\n };\n self.Predictor5 = function(a, b, c) {\n return aa(aa(a, b[c + 1]), b[c + 0]);\n };\n self.Predictor6 = function(a, b, c) {\n return aa(a, b[c - 1]);\n };\n self.Predictor7 = function(a, b, c) {\n return aa(a, b[c + 0]);\n };\n self.Predictor8 = function(a, b, c) {\n return aa(b[c - 1], b[c + 0]);\n };\n self.Predictor9 = function(a, b, c) {\n return aa(b[c + 0], b[c + 1]);\n };\n self.Predictor10 = function(a, b, c) {\n return aa(aa(a, b[c - 1]), aa(b[c + 0], b[c + 1]));\n };\n self.Predictor11 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return 0 >=\n Ia((d >> 24) & 255, (a >> 24) & 255, (b >> 24) & 255) +\n Ia((d >> 16) & 255, (a >> 16) & 255, (b >> 16) & 255) +\n Ia((d >> 8) & 255, (a >> 8) & 255, (b >> 8) & 255) +\n Ia(d & 255, a & 255, b & 255)\n ? d\n : a;\n };\n self.Predictor12 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return (\n ((sa(((a >> 24) & 255) + ((d >> 24) & 255) - ((b >> 24) & 255)) << 24) |\n (sa(((a >> 16) & 255) + ((d >> 16) & 255) - ((b >> 16) & 255)) <<\n 16) |\n (sa(((a >> 8) & 255) + ((d >> 8) & 255) - ((b >> 8) & 255)) << 8) |\n sa((a & 255) + (d & 255) - (b & 255))) >>>\n 0\n );\n };\n self.Predictor13 = function(a, b, c) {\n var d = b[c - 1];\n a = aa(a, b[c + 0]);\n return (\n ((eb((a >> 24) & 255, (d >> 24) & 255) << 24) |\n (eb((a >> 16) & 255, (d >> 16) & 255) << 16) |\n (eb((a >> 8) & 255, (d >> 8) & 255) << 8) |\n eb((a >> 0) & 255, (d >> 0) & 255)) >>>\n 0\n );\n };\n var ee = self.PredictorAdd0;\n self.PredictorAdd1 = cc;\n X(\"Predictor2\", \"PredictorAdd2\");\n X(\"Predictor3\", \"PredictorAdd3\");\n X(\"Predictor4\", \"PredictorAdd4\");\n X(\"Predictor5\", \"PredictorAdd5\");\n X(\"Predictor6\", \"PredictorAdd6\");\n X(\"Predictor7\", \"PredictorAdd7\");\n X(\"Predictor8\", \"PredictorAdd8\");\n X(\"Predictor9\", \"PredictorAdd9\");\n X(\"Predictor10\", \"PredictorAdd10\");\n X(\"Predictor11\", \"PredictorAdd11\");\n X(\"Predictor12\", \"PredictorAdd12\");\n X(\"Predictor13\", \"PredictorAdd13\");\n var fe = self.PredictorAdd2;\n ec(\n \"ColorIndexInverseTransform\",\n \"MapARGB\",\n \"32b\",\n function(a) {\n return (a >> 8) & 255;\n },\n function(a) {\n return a;\n }\n );\n ec(\n \"VP8LColorIndexInverseTransformAlpha\",\n \"MapAlpha\",\n \"8b\",\n function(a) {\n return a;\n },\n function(a) {\n return (a >> 8) & 255;\n }\n );\n var rc = self.ColorIndexInverseTransform,\n ke = self.MapARGB,\n he = self.VP8LColorIndexInverseTransformAlpha,\n le = self.MapAlpha,\n pc,\n qc = (self.VP8LPredictorsAdd = []);\n qc.length = 16;\n (self.VP8LPredictors = []).length = 16;\n (self.VP8LPredictorsAdd_C = []).length = 16;\n (self.VP8LPredictors_C = []).length = 16;\n var Fb,\n sc,\n Gb,\n Hb,\n xc,\n uc,\n bd = V(511),\n cd = V(2041),\n dd = V(225),\n ed = V(767),\n ad = 0,\n Qb = cd,\n mb = dd,\n R = ed,\n U = bd,\n Ca = 0,\n Ua = 1,\n tc = 2,\n Va = 3,\n ya = 4,\n Db = 5,\n wc = 6,\n zb = 7,\n Ab = 8,\n Ja = 9,\n Bb = 10,\n pe = [2, 3, 7],\n oe = [3, 3, 11],\n Dc = [280, 256, 256, 256, 40],\n qe = [0, 1, 1, 1, 0],\n ne = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n de = [\n 24,\n 7,\n 23,\n 25,\n 40,\n 6,\n 39,\n 41,\n 22,\n 26,\n 38,\n 42,\n 56,\n 5,\n 55,\n 57,\n 21,\n 27,\n 54,\n 58,\n 37,\n 43,\n 72,\n 4,\n 71,\n 73,\n 20,\n 28,\n 53,\n 59,\n 70,\n 74,\n 36,\n 44,\n 88,\n 69,\n 75,\n 52,\n 60,\n 3,\n 87,\n 89,\n 19,\n 29,\n 86,\n 90,\n 35,\n 45,\n 68,\n 76,\n 85,\n 91,\n 51,\n 61,\n 104,\n 2,\n 103,\n 105,\n 18,\n 30,\n 102,\n 106,\n 34,\n 46,\n 84,\n 92,\n 67,\n 77,\n 101,\n 107,\n 50,\n 62,\n 120,\n 1,\n 119,\n 121,\n 83,\n 93,\n 17,\n 31,\n 100,\n 108,\n 66,\n 78,\n 118,\n 122,\n 33,\n 47,\n 117,\n 123,\n 49,\n 63,\n 99,\n 109,\n 82,\n 94,\n 0,\n 116,\n 124,\n 65,\n 79,\n 16,\n 32,\n 98,\n 110,\n 48,\n 115,\n 125,\n 81,\n 95,\n 64,\n 114,\n 126,\n 97,\n 111,\n 80,\n 113,\n 127,\n 96,\n 112\n ],\n me = [\n 2954,\n 2956,\n 2958,\n 2962,\n 2970,\n 2986,\n 3018,\n 3082,\n 3212,\n 3468,\n 3980,\n 5004\n ],\n ie = 8,\n Lb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 17,\n 18,\n 19,\n 20,\n 20,\n 21,\n 21,\n 22,\n 22,\n 23,\n 23,\n 24,\n 25,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 59,\n 60,\n 61,\n 62,\n 63,\n 64,\n 65,\n 66,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 75,\n 76,\n 76,\n 77,\n 78,\n 79,\n 80,\n 81,\n 82,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 91,\n 93,\n 95,\n 96,\n 98,\n 100,\n 101,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 118,\n 122,\n 124,\n 126,\n 128,\n 130,\n 132,\n 134,\n 136,\n 138,\n 140,\n 143,\n 145,\n 148,\n 151,\n 154,\n 157\n ],\n Mb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 60,\n 62,\n 64,\n 66,\n 68,\n 70,\n 72,\n 74,\n 76,\n 78,\n 80,\n 82,\n 84,\n 86,\n 88,\n 90,\n 92,\n 94,\n 96,\n 98,\n 100,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 119,\n 122,\n 125,\n 128,\n 131,\n 134,\n 137,\n 140,\n 143,\n 146,\n 149,\n 152,\n 155,\n 158,\n 161,\n 164,\n 167,\n 170,\n 173,\n 177,\n 181,\n 185,\n 189,\n 193,\n 197,\n 201,\n 205,\n 209,\n 213,\n 217,\n 221,\n 225,\n 229,\n 234,\n 239,\n 245,\n 249,\n 254,\n 259,\n 264,\n 269,\n 274,\n 279,\n 284\n ],\n oa = null,\n He = [\n [173, 148, 140, 0],\n [176, 155, 140, 135, 0],\n [180, 157, 141, 134, 130, 0],\n [254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0]\n ],\n Ie = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15],\n Mc = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9],\n Fe = [\n [\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128],\n [189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128],\n [106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]\n ],\n [\n [1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128],\n [181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128],\n [78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]\n ],\n [\n [1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128],\n [184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128],\n [77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]\n ],\n [\n [1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128],\n [170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128],\n [37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]\n ],\n [\n [1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128],\n [207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128],\n [102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]\n ],\n [\n [1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128],\n [177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128],\n [80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62],\n [131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1],\n [68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]\n ],\n [\n [1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128],\n [184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128],\n [81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]\n ],\n [\n [1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128],\n [99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128],\n [23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]\n ],\n [\n [1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128],\n [109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128],\n [44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]\n ],\n [\n [1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128],\n [94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128],\n [22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]\n ],\n [\n [1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128],\n [124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128],\n [35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]\n ],\n [\n [1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128],\n [121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128],\n [45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]\n ],\n [\n [1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128],\n [203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128],\n [175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128],\n [73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]\n ],\n [\n [1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128],\n [239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128],\n [155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]\n ],\n [\n [1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128],\n [201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128],\n [69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]\n ],\n [\n [1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128],\n [223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128],\n [141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128],\n [149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128],\n [213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128],\n [55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255],\n [126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128],\n [61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]\n ],\n [\n [1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128],\n [166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128],\n [39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]\n ],\n [\n [1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128],\n [124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128],\n [24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]\n ],\n [\n [1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128],\n [149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128],\n [28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]\n ],\n [\n [1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128],\n [123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128],\n [20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]\n ],\n [\n [1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128],\n [168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128],\n [47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]\n ],\n [\n [1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128],\n [141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128],\n [42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ]\n ],\n Ke = [\n [\n [231, 120, 48, 89, 115, 113, 120, 152, 112],\n [152, 179, 64, 126, 170, 118, 46, 70, 95],\n [175, 69, 143, 80, 85, 82, 72, 155, 103],\n [56, 58, 10, 171, 218, 189, 17, 13, 152],\n [114, 26, 17, 163, 44, 195, 21, 10, 173],\n [121, 24, 80, 195, 26, 62, 44, 64, 85],\n [144, 71, 10, 38, 171, 213, 144, 34, 26],\n [170, 46, 55, 19, 136, 160, 33, 206, 71],\n [63, 20, 8, 114, 114, 208, 12, 9, 226],\n [81, 40, 11, 96, 182, 84, 29, 16, 36]\n ],\n [\n [134, 183, 89, 137, 98, 101, 106, 165, 148],\n [72, 187, 100, 130, 157, 111, 32, 75, 80],\n [66, 102, 167, 99, 74, 62, 40, 234, 128],\n [41, 53, 9, 178, 241, 141, 26, 8, 107],\n [74, 43, 26, 146, 73, 166, 49, 23, 157],\n [65, 38, 105, 160, 51, 52, 31, 115, 128],\n [104, 79, 12, 27, 217, 255, 87, 17, 7],\n [87, 68, 71, 44, 114, 51, 15, 186, 23],\n [47, 41, 14, 110, 182, 183, 21, 17, 194],\n [66, 45, 25, 102, 197, 189, 23, 18, 22]\n ],\n [\n [88, 88, 147, 150, 42, 46, 45, 196, 205],\n [43, 97, 183, 117, 85, 38, 35, 179, 61],\n [39, 53, 200, 87, 26, 21, 43, 232, 171],\n [56, 34, 51, 104, 114, 102, 29, 93, 77],\n [39, 28, 85, 171, 58, 165, 90, 98, 64],\n [34, 22, 116, 206, 23, 34, 43, 166, 73],\n [107, 54, 32, 26, 51, 1, 81, 43, 31],\n [68, 25, 106, 22, 64, 171, 36, 225, 114],\n [34, 19, 21, 102, 132, 188, 16, 76, 124],\n [62, 18, 78, 95, 85, 57, 50, 48, 51]\n ],\n [\n [193, 101, 35, 159, 215, 111, 89, 46, 111],\n [60, 148, 31, 172, 219, 228, 21, 18, 111],\n [112, 113, 77, 85, 179, 255, 38, 120, 114],\n [40, 42, 1, 196, 245, 209, 10, 25, 109],\n [88, 43, 29, 140, 166, 213, 37, 43, 154],\n [61, 63, 30, 155, 67, 45, 68, 1, 209],\n [100, 80, 8, 43, 154, 1, 51, 26, 71],\n [142, 78, 78, 16, 255, 128, 34, 197, 171],\n [41, 40, 5, 102, 211, 183, 4, 1, 221],\n [51, 50, 17, 168, 209, 192, 23, 25, 82]\n ],\n [\n [138, 31, 36, 171, 27, 166, 38, 44, 229],\n [67, 87, 58, 169, 82, 115, 26, 59, 179],\n [63, 59, 90, 180, 59, 166, 93, 73, 154],\n [40, 40, 21, 116, 143, 209, 34, 39, 175],\n [47, 15, 16, 183, 34, 223, 49, 45, 183],\n [46, 17, 33, 183, 6, 98, 15, 32, 183],\n [57, 46, 22, 24, 128, 1, 54, 17, 37],\n [65, 32, 73, 115, 28, 128, 23, 128, 205],\n [40, 3, 9, 115, 51, 192, 18, 6, 223],\n [87, 37, 9, 115, 59, 77, 64, 21, 47]\n ],\n [\n [104, 55, 44, 218, 9, 54, 53, 130, 226],\n [64, 90, 70, 205, 40, 41, 23, 26, 57],\n [54, 57, 112, 184, 5, 41, 38, 166, 213],\n [30, 34, 26, 133, 152, 116, 10, 32, 134],\n [39, 19, 53, 221, 26, 114, 32, 73, 255],\n [31, 9, 65, 234, 2, 15, 1, 118, 73],\n [75, 32, 12, 51, 192, 255, 160, 43, 51],\n [88, 31, 35, 67, 102, 85, 55, 186, 85],\n [56, 21, 23, 111, 59, 205, 45, 37, 192],\n [55, 38, 70, 124, 73, 102, 1, 34, 98]\n ],\n [\n [125, 98, 42, 88, 104, 85, 117, 175, 82],\n [95, 84, 53, 89, 128, 100, 113, 101, 45],\n [75, 79, 123, 47, 51, 128, 81, 171, 1],\n [57, 17, 5, 71, 102, 57, 53, 41, 49],\n [38, 33, 13, 121, 57, 73, 26, 1, 85],\n [41, 10, 67, 138, 77, 110, 90, 47, 114],\n [115, 21, 2, 10, 102, 255, 166, 23, 6],\n [101, 29, 16, 10, 85, 128, 101, 196, 26],\n [57, 18, 10, 102, 102, 213, 34, 20, 43],\n [117, 20, 15, 36, 163, 128, 68, 1, 26]\n ],\n [\n [102, 61, 71, 37, 34, 53, 31, 243, 192],\n [69, 60, 71, 38, 73, 119, 28, 222, 37],\n [68, 45, 128, 34, 1, 47, 11, 245, 171],\n [62, 17, 19, 70, 146, 85, 55, 62, 70],\n [37, 43, 37, 154, 100, 163, 85, 160, 1],\n [63, 9, 92, 136, 28, 64, 32, 201, 85],\n [75, 15, 9, 9, 64, 255, 184, 119, 16],\n [86, 6, 28, 5, 64, 255, 25, 248, 1],\n [56, 8, 17, 132, 137, 255, 55, 116, 128],\n [58, 15, 20, 82, 135, 57, 26, 121, 40]\n ],\n [\n [164, 50, 31, 137, 154, 133, 25, 35, 218],\n [51, 103, 44, 131, 131, 123, 31, 6, 158],\n [86, 40, 64, 135, 148, 224, 45, 183, 128],\n [22, 26, 17, 131, 240, 154, 14, 1, 209],\n [45, 16, 21, 91, 64, 222, 7, 1, 197],\n [56, 21, 39, 155, 60, 138, 23, 102, 213],\n [83, 12, 13, 54, 192, 255, 68, 47, 28],\n [85, 26, 85, 85, 128, 128, 32, 146, 171],\n [18, 11, 7, 63, 144, 171, 4, 4, 246],\n [35, 27, 10, 146, 174, 171, 12, 26, 128]\n ],\n [\n [190, 80, 35, 99, 180, 80, 126, 54, 45],\n [85, 126, 47, 87, 176, 51, 41, 20, 32],\n [101, 75, 128, 139, 118, 146, 116, 128, 85],\n [56, 41, 15, 176, 236, 85, 37, 9, 62],\n [71, 30, 17, 119, 118, 255, 17, 18, 138],\n [101, 38, 60, 138, 55, 70, 43, 26, 142],\n [146, 36, 19, 30, 171, 255, 97, 27, 20],\n [138, 45, 61, 62, 219, 1, 81, 188, 64],\n [32, 41, 20, 117, 151, 142, 20, 21, 163],\n [112, 19, 12, 61, 195, 128, 48, 4, 24]\n ]\n ],\n Ee = [\n [\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255],\n [250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255],\n [234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255],\n [251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ]\n ],\n Ge = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0],\n Nc,\n Y = [],\n W = [],\n ka = [],\n Za,\n fd,\n Nb,\n pa,\n Ob,\n Xc,\n Tc,\n Yc,\n Uc,\n Zc,\n Vc,\n $c,\n Wc,\n Rc,\n Pc,\n Sc,\n Qc,\n re = 1,\n Cc = 2,\n ia = [],\n za,\n vc,\n fc,\n Fc,\n P = [];\n va(\"UpsampleRgbLinePair\", Ga, 3);\n va(\"UpsampleBgrLinePair\", Tb, 3);\n va(\"UpsampleRgbaLinePair\", wd, 4);\n va(\"UpsampleBgraLinePair\", vd, 4);\n va(\"UpsampleArgbLinePair\", ud, 4);\n va(\"UpsampleRgba4444LinePair\", td, 2);\n va(\"UpsampleRgb565LinePair\", sd, 2);\n var Mf = self.UpsampleRgbLinePair,\n Nf = self.UpsampleBgrLinePair,\n nd = self.UpsampleRgbaLinePair,\n od = self.UpsampleBgraLinePair,\n pd = self.UpsampleArgbLinePair,\n qd = self.UpsampleRgba4444LinePair,\n Of = self.UpsampleRgb565LinePair,\n Wa = 16,\n Ba = 1 << (Wa - 1),\n ta = -227,\n Eb = 482,\n rd = 6,\n Pf = (256 << rd) - 1,\n jc = 0,\n Yd = V(256),\n ae = V(256),\n $d = V(256),\n Zd = V(256),\n be = V(Eb - ta),\n ce = V(Eb - ta);\n la(\"YuvToRgbRow\", Ga, 3);\n la(\"YuvToBgrRow\", Tb, 3);\n la(\"YuvToRgbaRow\", wd, 4);\n la(\"YuvToBgraRow\", vd, 4);\n la(\"YuvToArgbRow\", ud, 4);\n la(\"YuvToRgba4444Row\", td, 2);\n la(\"YuvToRgb565Row\", sd, 2);\n var zd = [\n 0,\n 4,\n 8,\n 12,\n 128,\n 132,\n 136,\n 140,\n 256,\n 260,\n 264,\n 268,\n 384,\n 388,\n 392,\n 396\n ],\n Ya = [0, 2, 8],\n Qf = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1],\n Ne = 1;\n this.WebPDecodeRGBA = function(a, b, c, d, e) {\n var f = Ua;\n var g = new Cf(),\n h = new Cb();\n g.ba = h;\n h.S = f;\n h.width = [h.width];\n h.height = [h.height];\n var k = h.width;\n var l = h.height,\n m = new Td();\n if (null == m || null == a) var n = 2;\n else\n x(null != m),\n (n = Ad(a, b, c, m.width, m.height, m.Pd, m.Qd, m.format, null));\n 0 != n\n ? (k = 0)\n : (null != k && (k[0] = m.width[0]),\n null != l && (l[0] = m.height[0]),\n (k = 1));\n if (k) {\n h.width = h.width[0];\n h.height = h.height[0];\n null != d && (d[0] = h.width);\n null != e && (e[0] = h.height);\n b: {\n d = new Oa();\n e = new md();\n e.data = a;\n e.w = b;\n e.ha = c;\n e.kd = 1;\n b = [0];\n x(null != e);\n a = Ad(e.data, e.w, e.ha, null, null, null, b, null, e);\n (0 == a || 7 == a) && b[0] && (a = 4);\n b = a;\n if (0 == b) {\n x(null != g);\n d.data = e.data;\n d.w = e.w + e.offset;\n d.ha = e.ha - e.offset;\n d.put = kc;\n d.ac = gc;\n d.bc = lc;\n d.ma = g;\n if (e.xa) {\n a = Bc();\n if (null == a) {\n g = 1;\n break b;\n }\n if (te(a, d)) {\n b = Cd(d.width, d.height, g.Oa, g.ba);\n if ((d = 0 == b)) {\n c: {\n d = a;\n d: for (;;) {\n if (null == d) {\n d = 0;\n break c;\n }\n x(null != d.s.yc);\n x(null != d.s.Ya);\n x(0 < d.s.Wb);\n c = d.l;\n x(null != c);\n e = c.ma;\n x(null != e);\n if (0 != d.xb) {\n d.ca = e.ba;\n d.tb = e.tb;\n x(null != d.ca);\n if (!hc(e.Oa, c, Va)) {\n d.a = 2;\n break d;\n }\n if (!Ec(d, c.width)) break d;\n if (c.da) break d;\n (c.da || hb(d.ca.S)) && Aa();\n 11 > d.ca.S ||\n (alert(\"todo:WebPInitConvertARGBToYUV\"),\n null != d.ca.f.kb.F && Aa());\n if (\n d.Pb &&\n 0 < d.s.ua &&\n null == d.s.vb.X &&\n !Zb(d.s.vb, d.s.Wa.Xa)\n ) {\n d.a = 1;\n break d;\n }\n d.xb = 0;\n }\n if (!Jb(d, d.V, d.Ba, d.c, d.i, c.o, ge)) break d;\n e.Dc = d.Ma;\n d = 1;\n break c;\n }\n x(0 != d.a);\n d = 0;\n }\n d = !d;\n }\n d && (b = a.a);\n } else b = a.a;\n } else {\n a = new Ce();\n if (null == a) {\n g = 1;\n break b;\n }\n a.Fa = e.na;\n a.P = e.P;\n a.qc = e.Sa;\n if (Kc(a, d)) {\n if (((b = Cd(d.width, d.height, g.Oa, g.ba)), 0 == b)) {\n a.Aa = 0;\n c = g.Oa;\n e = a;\n x(null != e);\n if (null != c) {\n k = c.Md;\n k = 0 > k ? 0 : 100 < k ? 255 : (255 * k) / 100;\n if (0 < k) {\n for (l = m = 0; 4 > l; ++l)\n (n = e.pb[l]),\n 12 > n.lc &&\n (n.ia = (k * Qf[0 > n.lc ? 0 : n.lc]) >> 3),\n (m |= n.ia);\n m && (alert(\"todo:VP8InitRandom\"), (e.ia = 1));\n }\n e.Ga = c.Id;\n 100 < e.Ga ? (e.Ga = 100) : 0 > e.Ga && (e.Ga = 0);\n }\n Me(a, d) || (b = a.a);\n }\n } else b = a.a;\n }\n 0 == b && null != g.Oa && g.Oa.fd && (b = Bd(g.ba));\n }\n g = b;\n }\n f = 0 != g ? null : 11 > f ? h.f.RGBA.eb : h.f.kb.y;\n } else f = null;\n return f;\n };\n var Dd = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];\n };\n new _WebPDecoder();\n\n /** @license\n * Copyright (c) 2017 Dominik Homberger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nhttps://webpjs.appspot.com\nWebPRiffParser dominikhlbg@gmail.com\n*/\n\n function memcmp(data, data_off, str, size) {\n for (var i = 0; i < size; i++)\n if (data[data_off + i] != str.charCodeAt(i)) return true;\n return false;\n }\n\n function GetTag(data, data_off) {\n var str = \"\";\n for (var i = 0; i < 4; i++) str += String.fromCharCode(data[data_off++]);\n return str;\n }\n\n function GetLE16(data, data_off) {\n return (data[data_off + 0] << 0) | (data[data_off + 1] << 8);\n }\n\n function GetLE24(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16)) >>>\n 0\n );\n }\n\n function GetLE32(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16) |\n (data[data_off + 3] << 24)) >>>\n 0\n );\n }\n\n function WebPRiffParser(src, src_off) {\n var imagearray = {};\n var i = 0;\n var alpha_chunk = false;\n var alpha_size = 0;\n var alpha_offset = 0;\n imagearray[\"frames\"] = [];\n if (memcmp(src, src_off, \"RIFF\", 4)) return;\n src_off += 4;\n var riff_size = GetLE32(src, src_off) + 8;\n src_off += 8;\n\n while (src_off < src.length) {\n var fourcc = GetTag(src, src_off);\n src_off += 4;\n\n var payload_size = GetLE32(src, src_off);\n src_off += 4;\n var payload_size_padded = payload_size + (payload_size & 1);\n\n switch (fourcc) {\n case \"VP8 \":\n case \"VP8L\":\n if (typeof imagearray[\"frames\"][i] === \"undefined\")\n imagearray[\"frames\"][i] = {};\n var obj = imagearray[\"frames\"][i];\n var height = [0];\n var width = [0];\n obj[\"src_off\"] = alpha_chunk ? alpha_offset : src_off - 8;\n obj[\"src_size\"] = alpha_size + payload_size + 8;\n //var rgba = webpdecoder.WebPDecodeRGBA(src,(alpha_chunk?alpha_offset:src_off-8),alpha_size+payload_size+8,width,height);\n //imagearray[i]={'rgba':rgba,'width':width[0],'height':height[0]};\n i++;\n if (alpha_chunk) {\n alpha_chunk = false;\n alpha_size = 0;\n alpha_offset = 0;\n }\n break;\n case \"VP8X\":\n var obj = (imagearray[\"header\"] = {});\n var feature_flags = (obj[\"feature_flags\"] = src[src_off]);\n var src_off_ = src_off + 4;\n var canvas_width = (obj[\"canvas_width\"] = 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n var canvas_height = (obj[\"canvas_height\"] =\n 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n break;\n case \"ALPH\":\n alpha_chunk = true;\n alpha_size = payload_size_padded + 8;\n alpha_offset = src_off - 8;\n break;\n\n case \"ANIM\":\n var obj = imagearray[\"header\"];\n var bgcolor = (obj[\"bgcolor\"] = GetLE32(src, src_off));\n src_off_ = src_off + 4;\n\n var loop_count = (obj[\"loop_count\"] = GetLE16(src, src_off_));\n src_off_ += 2;\n break;\n case \"ANMF\":\n var offset_x = 0,\n offset_y = 0,\n width = 0,\n height = 0,\n duration = 0,\n blend = 0,\n dispose = 0,\n temp = 0;\n var obj = (imagearray[\"frames\"][i] = {});\n obj[\"offset_x\"] = offset_x = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"offset_y\"] = offset_y = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"width\"] = width = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"height\"] = height = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"duration\"] = duration = GetLE24(src, src_off);\n src_off += 3;\n temp = src[src_off++];\n obj[\"dispose\"] = dispose = temp & 1;\n obj[\"blend\"] = blend = (temp >> 1) & 1;\n break;\n default:\n }\n if (fourcc != \"ANMF\") src_off += payload_size_padded;\n }\n return imagearray;\n }\n\n var height = [0];\n var width = [0];\n var pixels = [];\n var webpdecoder = new _WebPDecoder();\n\n var response = imageData;\n var imagearray = WebPRiffParser(response, 0);\n imagearray[\"response\"] = response;\n imagearray[\"rgbaoutput\"] = true;\n imagearray[\"dataurl\"] = false;\n\n var header = imagearray[\"header\"] ? imagearray[\"header\"] : null;\n var frames = imagearray[\"frames\"] ? imagearray[\"frames\"] : null;\n\n if (header) {\n header[\"loop_counter\"] = header[\"loop_count\"];\n height = [header[\"canvas_height\"]];\n width = [header[\"canvas_width\"]];\n\n var blend = false;\n for (var f = 0; f < frames.length; f++)\n if (frames[f][\"blend\"] == 0) {\n blend = true;\n break;\n }\n }\n\n var frame = frames[0];\n var rgba = webpdecoder.WebPDecodeRGBA(\n response,\n frame[\"src_off\"],\n frame[\"src_size\"],\n width,\n height\n );\n frame[\"rgba\"] = rgba;\n frame[\"imgwidth\"] = width[0];\n frame[\"imgheight\"] = height[0];\n\n for (var i = 0; i < width[0] * height[0] * 4; i++) {\n pixels[i] = rgba[i];\n }\n\n this.width = width;\n this.height = height;\n this.data = pixels;\n return this;\n}\n\nWebPDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { WebPDecoder };\n","/**\n * @license\n *\n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\nimport { PNG } from \"../libs/png.js\";\n\n/**\n * jsPDF PNG PlugIn\n * @name png_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /*\n * @see http://www.w3.org/TR/PNG-Chunks.html\n *\n Color Allowed Interpretation\n Type Bit Depths\n\n 0 1,2,4,8,16 Each pixel is a grayscale sample.\n\n 2 8,16 Each pixel is an R,G,B triple.\n\n 3 1,2,4,8 Each pixel is a palette index;\n a PLTE chunk must appear.\n\n 4 8,16 Each pixel is a grayscale sample,\n followed by an alpha sample.\n\n 6 8,16 Each pixel is an R,G,B triple,\n followed by an alpha sample.\n */\n\n /*\n * PNG filter method types\n *\n * @see http://www.w3.org/TR/PNG-Filters.html\n * @see http://www.libpng.org/pub/png/book/chapter09.html\n *\n * This is what the value 'Predictor' in decode params relates to\n *\n * 15 is \"optimal prediction\", which means the prediction algorithm can change from line to line.\n * In that case, you actually have to read the first byte off each line for the prediction algorthim (which should be 0-4, corresponding to PDF 10-14) and select the appropriate unprediction algorithm based on that byte.\n *\n 0 None\n 1 Sub\n 2 Up\n 3 Average\n 4 Paeth\n */\n\n var canCompress = function(value) {\n return value !== jsPDFAPI.image_compression.NONE && hasCompressionJS();\n };\n\n var hasCompressionJS = function() {\n return typeof zlibSync === \"function\";\n };\n var compressBytes = function(bytes, lineLength, colorsPerPixel, compression) {\n var level = 4;\n var filter_method = filterUp;\n\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n level = 1;\n filter_method = filterSub;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n level = 6;\n filter_method = filterAverage;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n level = 9;\n filter_method = filterPaeth;\n break;\n }\n\n bytes = applyPngFilterMethod(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n );\n var dat = zlibSync(bytes, { level: level });\n return jsPDFAPI.__addimage__.arrayBufferToBinaryString(dat);\n };\n\n var applyPngFilterMethod = function(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n ) {\n var lines = bytes.length / lineLength,\n result = new Uint8Array(bytes.length + lines),\n filter_methods = getFilterMethods(),\n line,\n prevLine,\n offset;\n\n for (var i = 0; i < lines; i += 1) {\n offset = i * lineLength;\n line = bytes.subarray(offset, offset + lineLength);\n\n if (filter_method) {\n result.set(filter_method(line, colorsPerPixel, prevLine), offset + i);\n } else {\n var len = filter_methods.length,\n results = [];\n\n for (var j; j < len; j += 1) {\n results[j] = filter_methods[j](line, colorsPerPixel, prevLine);\n }\n\n var ind = getIndexOfSmallestSum(results.concat());\n\n result.set(results[ind], offset + i);\n }\n\n prevLine = line;\n }\n\n return result;\n };\n\n var filterNone = function(line) {\n /*var result = new Uint8Array(line.length + 1);\n result[0] = 0;\n result.set(line, 1);*/\n\n var result = Array.apply([], line);\n result.unshift(0);\n\n return result;\n };\n\n var filterSub = function(line, colorsPerPixel) {\n var result = [],\n len = line.length,\n left;\n\n result[0] = 1;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n result[i + 1] = (line[i] - left + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterUp = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n up;\n\n result[0] = 2;\n\n for (var i = 0; i < len; i += 1) {\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] - up + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterAverage = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up;\n\n result[0] = 3;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] + 0x0100 - ((left + up) >>> 1)) & 0xff;\n }\n\n return result;\n };\n\n var filterPaeth = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up,\n upLeft,\n paeth;\n\n result[0] = 4;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n upLeft = (prevLine && prevLine[i - colorsPerPixel]) || 0;\n paeth = paethPredictor(left, up, upLeft);\n result[i + 1] = (line[i] - paeth + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var paethPredictor = function(left, up, upLeft) {\n if (left === up && up === upLeft) {\n return left;\n }\n var pLeft = Math.abs(up - upLeft),\n pUp = Math.abs(left - upLeft),\n pUpLeft = Math.abs(left + up - upLeft - upLeft);\n return pLeft <= pUp && pLeft <= pUpLeft\n ? left\n : pUp <= pUpLeft\n ? up\n : upLeft;\n };\n\n var getFilterMethods = function() {\n return [filterNone, filterSub, filterUp, filterAverage, filterPaeth];\n };\n\n var getIndexOfSmallestSum = function(arrays) {\n var sum = arrays.map(function(value) {\n return value.reduce(function(pv, cv) {\n return pv + Math.abs(cv);\n }, 0);\n });\n return sum.indexOf(Math.min.apply(null, sum));\n };\n\n var getPredictorFromCompression = function(compression) {\n var predictor;\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n predictor = 11;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n predictor = 13;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n predictor = 14;\n break;\n\n default:\n predictor = 12;\n break;\n }\n return predictor;\n };\n\n /**\n * @name processPNG\n * @function\n * @ignore\n */\n jsPDFAPI.processPNG = function(imageData, index, alias, compression) {\n \"use strict\";\n\n var colorSpace,\n filter = this.decode.FLATE_DECODE,\n bitsPerComponent,\n image,\n decodeParameters = \"\",\n trns,\n colors,\n pal,\n smask,\n pixels,\n len,\n alphaData,\n imgData,\n hasColors,\n pixel,\n i,\n n;\n\n if (this.__addimage__.isArrayBuffer(imageData))\n imageData = new Uint8Array(imageData);\n\n if (this.__addimage__.isArrayBufferView(imageData)) {\n image = new PNG(imageData);\n imageData = image.imgData;\n bitsPerComponent = image.bits;\n colorSpace = image.colorSpace;\n colors = image.colors;\n\n /*\n * colorType 6 - Each pixel is an R,G,B triple, followed by an alpha sample.\n *\n * colorType 4 - Each pixel is a grayscale sample, followed by an alpha sample.\n *\n * Extract alpha to create two separate images, using the alpha as a sMask\n */\n if ([4, 6].indexOf(image.colorType) !== -1) {\n /*\n * processes 8 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 8) {\n pixels =\n image.pixelBitlength == 32\n ? new Uint32Array(image.decodePixels().buffer)\n : image.pixelBitlength == 16\n ? new Uint16Array(image.decodePixels().buffer)\n : new Uint8Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(len * image.colors);\n alphaData = new Uint8Array(len);\n var pDiff = image.pixelBitlength - image.bits;\n i = 0;\n n = 0;\n var pbl;\n\n for (; i < len; i++) {\n pixel = pixels[i];\n pbl = 0;\n\n while (pbl < pDiff) {\n imgData[n++] = (pixel >>> pbl) & 0xff;\n pbl = pbl + image.bits;\n }\n\n alphaData[i] = (pixel >>> pbl) & 0xff;\n }\n }\n\n /*\n * processes 16 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 16) {\n pixels = new Uint32Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(\n len * (32 / image.pixelBitlength) * image.colors\n );\n alphaData = new Uint8Array(len * (32 / image.pixelBitlength));\n hasColors = image.colors > 1;\n i = 0;\n n = 0;\n var a = 0;\n\n while (i < len) {\n pixel = pixels[i++];\n\n imgData[n++] = (pixel >>> 0) & 0xff;\n\n if (hasColors) {\n imgData[n++] = (pixel >>> 16) & 0xff;\n\n pixel = pixels[i++];\n imgData[n++] = (pixel >>> 0) & 0xff;\n }\n\n alphaData[a++] = (pixel >>> 16) & 0xff;\n }\n bitsPerComponent = 8;\n }\n\n if (canCompress(compression)) {\n imageData = compressBytes(\n imgData,\n image.width * image.colors,\n image.colors,\n compression\n );\n smask = compressBytes(alphaData, image.width, 1, compression);\n } else {\n imageData = imgData;\n smask = alphaData;\n filter = undefined;\n }\n }\n\n /*\n * Indexed png. Each pixel is a palette index.\n */\n if (image.colorType === 3) {\n colorSpace = this.color_spaces.INDEXED;\n pal = image.palette;\n\n if (image.transparency.indexed) {\n var trans = image.transparency.indexed;\n var total = 0;\n i = 0;\n len = trans.length;\n\n for (; i < len; ++i) {\n total += trans[i];\n }\n\n total = total / 255;\n\n /*\n * a single color is specified as 100% transparent (0),\n * so we set trns to use a /Mask with that index\n */\n if (total === len - 1 && trans.indexOf(0) !== -1) {\n trns = [trans.indexOf(0)];\n\n /*\n * there's more than one colour within the palette that specifies\n * a transparency value less than 255, so we unroll the pixels to create an image sMask\n */\n } else if (total !== len) {\n pixels = image.decodePixels();\n alphaData = new Uint8Array(pixels.length);\n i = 0;\n len = pixels.length;\n\n for (; i < len; i++) {\n alphaData[i] = trans[pixels[i]];\n }\n\n smask = compressBytes(alphaData, image.width, 1);\n }\n }\n }\n\n var predictor = getPredictorFromCompression(compression);\n\n if (filter === this.decode.FLATE_DECODE) {\n decodeParameters = \"/Predictor \" + predictor + \" \";\n }\n decodeParameters +=\n \"/Colors \" +\n colors +\n \" /BitsPerComponent \" +\n bitsPerComponent +\n \" /Columns \" +\n image.width;\n\n if (\n this.__addimage__.isArrayBuffer(imageData) ||\n this.__addimage__.isArrayBufferView(imageData)\n ) {\n imageData = this.__addimage__.arrayBufferToBinaryString(imageData);\n }\n\n if (\n (smask && this.__addimage__.isArrayBuffer(smask)) ||\n this.__addimage__.isArrayBufferView(smask)\n ) {\n smask = this.__addimage__.arrayBufferToBinaryString(smask);\n }\n\n return {\n alias: alias,\n data: imageData,\n index: index,\n filter: filter,\n decodeParameters: decodeParameters,\n transparency: trns,\n palette: pal,\n sMask: smask,\n predictor: predictor,\n width: image.width,\n height: image.height,\n bitsPerComponent: bitsPerComponent,\n colorSpace: colorSpace\n };\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { GifReader } from \"../libs/omggif.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\n\n/**\n * jsPDF Gif Support PlugIn\n *\n * @name gif_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processGIF89A = function(imageData, index, alias, compression) {\n var reader = new GifReader(imageData);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = [];\n\n reader.decodeAndBlitFrameRGBA(0, pixels);\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n\n jsPDFAPI.processGIF87A = jsPDFAPI.processGIF89A;\n})(jsPDF.API);\n","import { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { BmpDecoder } from \"../libs/BMPDecoder.js\";\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @license\n * Copyright (c) 2018 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF bmp Support PlugIn\n * @name bmp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processBMP = function(imageData, index, alias, compression) {\n var reader = new BmpDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2019 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { WebPDecoder } from \"../libs/WebPDecoder.js\";\n\n/**\n * jsPDF webp Support PlugIn\n *\n * @name webp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processWEBP = function(imageData, index, alias, compression) {\n var reader = new WebPDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n *\n * Copyright (c) 2021 Antti Palola, https://github.com/Pantura\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF RGBA array PlugIn\n * @name rgba_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name processRGBA\n * @function\n *\n * Process RGBA Array. This is a one-dimension array with pixel data [red, green, blue, alpha, red, green, ...].\n * RGBA array data can be obtained from DOM canvas getImageData.\n * @ignore\n */\n jsPDFAPI.processRGBA = function(imageData, index, alias) {\n \"use strict\";\n\n var imagePixels = imageData.data;\n var length = imagePixels.length;\n // jsPDF takes alpha data separately so extract that.\n var rgbOut = new Uint8Array((length / 4) * 3);\n var alphaOut = new Uint8Array(length / 4);\n var outIndex = 0;\n var alphaIndex = 0;\n\n for (var i = 0; i < length; i += 4) {\n var r = imagePixels[i];\n var g = imagePixels[i + 1];\n var b = imagePixels[i + 2];\n var alpha = imagePixels[i + 3];\n rgbOut[outIndex++] = r;\n rgbOut[outIndex++] = g;\n rgbOut[outIndex++] = b;\n alphaOut[alphaIndex++] = alpha;\n }\n\n var rgbData = this.__addimage__.arrayBufferToBinaryString(rgbOut);\n var alphaData = this.__addimage__.arrayBufferToBinaryString(alphaOut);\n\n return {\n alpha: alphaData,\n data: rgbData,\n index: index,\n alias: alias,\n colorSpace: \"DeviceRGB\",\n bitsPerComponent: 8,\n width: imageData.width,\n height: imageData.height\n };\n };\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF setLanguage Plugin\n *\n * @name setLanguage\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Add Language Tag to the generated PDF\n *\n * @name setLanguage\n * @function\n * @param {string} langCode The Language code as ISO-639-1 (e.g. 'en') or as country language code (e.g. 'en-GB').\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF()\n * doc.text(10, 10, 'This is a test')\n * doc.setLanguage(\"en-US\")\n * doc.save('english.pdf')\n */\n jsPDFAPI.setLanguage = function(langCode) {\n \"use strict\";\n\n var langCodes = {\n af: \"Afrikaans\",\n sq: \"Albanian\",\n ar: \"Arabic (Standard)\",\n \"ar-DZ\": \"Arabic (Algeria)\",\n \"ar-BH\": \"Arabic (Bahrain)\",\n \"ar-EG\": \"Arabic (Egypt)\",\n \"ar-IQ\": \"Arabic (Iraq)\",\n \"ar-JO\": \"Arabic (Jordan)\",\n \"ar-KW\": \"Arabic (Kuwait)\",\n \"ar-LB\": \"Arabic (Lebanon)\",\n \"ar-LY\": \"Arabic (Libya)\",\n \"ar-MA\": \"Arabic (Morocco)\",\n \"ar-OM\": \"Arabic (Oman)\",\n \"ar-QA\": \"Arabic (Qatar)\",\n \"ar-SA\": \"Arabic (Saudi Arabia)\",\n \"ar-SY\": \"Arabic (Syria)\",\n \"ar-TN\": \"Arabic (Tunisia)\",\n \"ar-AE\": \"Arabic (U.A.E.)\",\n \"ar-YE\": \"Arabic (Yemen)\",\n an: \"Aragonese\",\n hy: \"Armenian\",\n as: \"Assamese\",\n ast: \"Asturian\",\n az: \"Azerbaijani\",\n eu: \"Basque\",\n be: \"Belarusian\",\n bn: \"Bengali\",\n bs: \"Bosnian\",\n br: \"Breton\",\n bg: \"Bulgarian\",\n my: \"Burmese\",\n ca: \"Catalan\",\n ch: \"Chamorro\",\n ce: \"Chechen\",\n zh: \"Chinese\",\n \"zh-HK\": \"Chinese (Hong Kong)\",\n \"zh-CN\": \"Chinese (PRC)\",\n \"zh-SG\": \"Chinese (Singapore)\",\n \"zh-TW\": \"Chinese (Taiwan)\",\n cv: \"Chuvash\",\n co: \"Corsican\",\n cr: \"Cree\",\n hr: \"Croatian\",\n cs: \"Czech\",\n da: \"Danish\",\n nl: \"Dutch (Standard)\",\n \"nl-BE\": \"Dutch (Belgian)\",\n en: \"English\",\n \"en-AU\": \"English (Australia)\",\n \"en-BZ\": \"English (Belize)\",\n \"en-CA\": \"English (Canada)\",\n \"en-IE\": \"English (Ireland)\",\n \"en-JM\": \"English (Jamaica)\",\n \"en-NZ\": \"English (New Zealand)\",\n \"en-PH\": \"English (Philippines)\",\n \"en-ZA\": \"English (South Africa)\",\n \"en-TT\": \"English (Trinidad & Tobago)\",\n \"en-GB\": \"English (United Kingdom)\",\n \"en-US\": \"English (United States)\",\n \"en-ZW\": \"English (Zimbabwe)\",\n eo: \"Esperanto\",\n et: \"Estonian\",\n fo: \"Faeroese\",\n fj: \"Fijian\",\n fi: \"Finnish\",\n fr: \"French (Standard)\",\n \"fr-BE\": \"French (Belgium)\",\n \"fr-CA\": \"French (Canada)\",\n \"fr-FR\": \"French (France)\",\n \"fr-LU\": \"French (Luxembourg)\",\n \"fr-MC\": \"French (Monaco)\",\n \"fr-CH\": \"French (Switzerland)\",\n fy: \"Frisian\",\n fur: \"Friulian\",\n gd: \"Gaelic (Scots)\",\n \"gd-IE\": \"Gaelic (Irish)\",\n gl: \"Galacian\",\n ka: \"Georgian\",\n de: \"German (Standard)\",\n \"de-AT\": \"German (Austria)\",\n \"de-DE\": \"German (Germany)\",\n \"de-LI\": \"German (Liechtenstein)\",\n \"de-LU\": \"German (Luxembourg)\",\n \"de-CH\": \"German (Switzerland)\",\n el: \"Greek\",\n gu: \"Gujurati\",\n ht: \"Haitian\",\n he: \"Hebrew\",\n hi: \"Hindi\",\n hu: \"Hungarian\",\n is: \"Icelandic\",\n id: \"Indonesian\",\n iu: \"Inuktitut\",\n ga: \"Irish\",\n it: \"Italian (Standard)\",\n \"it-CH\": \"Italian (Switzerland)\",\n ja: \"Japanese\",\n kn: \"Kannada\",\n ks: \"Kashmiri\",\n kk: \"Kazakh\",\n km: \"Khmer\",\n ky: \"Kirghiz\",\n tlh: \"Klingon\",\n ko: \"Korean\",\n \"ko-KP\": \"Korean (North Korea)\",\n \"ko-KR\": \"Korean (South Korea)\",\n la: \"Latin\",\n lv: \"Latvian\",\n lt: \"Lithuanian\",\n lb: \"Luxembourgish\",\n mk: \"North Macedonia\",\n ms: \"Malay\",\n ml: \"Malayalam\",\n mt: \"Maltese\",\n mi: \"Maori\",\n mr: \"Marathi\",\n mo: \"Moldavian\",\n nv: \"Navajo\",\n ng: \"Ndonga\",\n ne: \"Nepali\",\n no: \"Norwegian\",\n nb: \"Norwegian (Bokmal)\",\n nn: \"Norwegian (Nynorsk)\",\n oc: \"Occitan\",\n or: \"Oriya\",\n om: \"Oromo\",\n fa: \"Persian\",\n \"fa-IR\": \"Persian/Iran\",\n pl: \"Polish\",\n pt: \"Portuguese\",\n \"pt-BR\": \"Portuguese (Brazil)\",\n pa: \"Punjabi\",\n \"pa-IN\": \"Punjabi (India)\",\n \"pa-PK\": \"Punjabi (Pakistan)\",\n qu: \"Quechua\",\n rm: \"Rhaeto-Romanic\",\n ro: \"Romanian\",\n \"ro-MO\": \"Romanian (Moldavia)\",\n ru: \"Russian\",\n \"ru-MO\": \"Russian (Moldavia)\",\n sz: \"Sami (Lappish)\",\n sg: \"Sango\",\n sa: \"Sanskrit\",\n sc: \"Sardinian\",\n sd: \"Sindhi\",\n si: \"Singhalese\",\n sr: \"Serbian\",\n sk: \"Slovak\",\n sl: \"Slovenian\",\n so: \"Somani\",\n sb: \"Sorbian\",\n es: \"Spanish\",\n \"es-AR\": \"Spanish (Argentina)\",\n \"es-BO\": \"Spanish (Bolivia)\",\n \"es-CL\": \"Spanish (Chile)\",\n \"es-CO\": \"Spanish (Colombia)\",\n \"es-CR\": \"Spanish (Costa Rica)\",\n \"es-DO\": \"Spanish (Dominican Republic)\",\n \"es-EC\": \"Spanish (Ecuador)\",\n \"es-SV\": \"Spanish (El Salvador)\",\n \"es-GT\": \"Spanish (Guatemala)\",\n \"es-HN\": \"Spanish (Honduras)\",\n \"es-MX\": \"Spanish (Mexico)\",\n \"es-NI\": \"Spanish (Nicaragua)\",\n \"es-PA\": \"Spanish (Panama)\",\n \"es-PY\": \"Spanish (Paraguay)\",\n \"es-PE\": \"Spanish (Peru)\",\n \"es-PR\": \"Spanish (Puerto Rico)\",\n \"es-ES\": \"Spanish (Spain)\",\n \"es-UY\": \"Spanish (Uruguay)\",\n \"es-VE\": \"Spanish (Venezuela)\",\n sx: \"Sutu\",\n sw: \"Swahili\",\n sv: \"Swedish\",\n \"sv-FI\": \"Swedish (Finland)\",\n \"sv-SV\": \"Swedish (Sweden)\",\n ta: \"Tamil\",\n tt: \"Tatar\",\n te: \"Teluga\",\n th: \"Thai\",\n tig: \"Tigre\",\n ts: \"Tsonga\",\n tn: \"Tswana\",\n tr: \"Turkish\",\n tk: \"Turkmen\",\n uk: \"Ukrainian\",\n hsb: \"Upper Sorbian\",\n ur: \"Urdu\",\n ve: \"Venda\",\n vi: \"Vietnamese\",\n vo: \"Volapuk\",\n wa: \"Walloon\",\n cy: \"Welsh\",\n xh: \"Xhosa\",\n ji: \"Yiddish\",\n zu: \"Zulu\"\n };\n\n if (this.internal.languageSettings === undefined) {\n this.internal.languageSettings = {};\n this.internal.languageSettings.isSubscribed = false;\n }\n\n if (langCodes[langCode] !== undefined) {\n this.internal.languageSettings.languageCode = langCode;\n if (this.internal.languageSettings.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.write(\n \"/Lang (\" + this.internal.languageSettings.languageCode + \")\"\n );\n });\n this.internal.languageSettings.isSubscribed = true;\n }\n }\n return this;\n };\n})(jsPDF.API);\n","/** @license\n jsPDF standard_fonts_metrics plugin\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * MIT license.\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * This file adds the standard font metrics to jsPDF.\n *\n * Font metrics data is reprocessed derivative of contents of\n * \"Font Metrics for PDF Core 14 Fonts\" package, which exhibits the following copyright and license:\n *\n * Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\n *\n * This file and the 14 PostScript(R) AFM files it accompanies may be used,\n * copied, and distributed for any purpose and without charge, with or without\n * modification, provided that all copyright notices are retained; that the AFM\n * files are not distributed without this file; that all modifications to this\n * file or any of the AFM files are prominently noted in the modified file(s);\n * and that this paragraph is not modified. Adobe Systems has no responsibility\n * or obligation to support the use of the AFM files.\n *\n * @name standard_fonts_metrics\n * @module\n */\n\n(function(API) {\n \"use strict\";\n API.__fontmetrics__ = API.__fontmetrics__ || {};\n\n var decoded = \"0123456789abcdef\",\n encoded = \"klmnopqrstuvwxyz\",\n mappingUncompress = {},\n mappingCompress = {};\n\n for (var i = 0; i < encoded.length; i++) {\n mappingUncompress[encoded[i]] = decoded[i];\n mappingCompress[decoded[i]] = encoded[i];\n }\n\n var hex = function(value) {\n return \"0x\" + parseInt(value, 10).toString(16);\n };\n\n var compress = (API.__fontmetrics__.compress = function(data) {\n var vals = [\"{\"];\n var value, keystring, valuestring, numberprefix;\n\n for (var key in data) {\n value = data[key];\n\n if (!isNaN(parseInt(key, 10))) {\n key = parseInt(key, 10);\n keystring = hex(key).slice(2);\n keystring =\n keystring.slice(0, -1) + mappingCompress[keystring.slice(-1)];\n } else {\n keystring = \"'\" + key + \"'\";\n }\n\n if (typeof value == \"number\") {\n if (value < 0) {\n valuestring = hex(value).slice(3);\n numberprefix = \"-\";\n } else {\n valuestring = hex(value).slice(2);\n numberprefix = \"\";\n }\n valuestring =\n numberprefix +\n valuestring.slice(0, -1) +\n mappingCompress[valuestring.slice(-1)];\n } else {\n if (typeof value === \"object\") {\n valuestring = compress(value);\n } else {\n throw new Error(\n \"Don't know what to do with value type \" + typeof value + \".\"\n );\n }\n }\n vals.push(keystring + valuestring);\n }\n vals.push(\"}\");\n return vals.join(\"\");\n });\n\n /**\n * Uncompresses data compressed into custom, base16-like format.\n *\n * @public\n * @function\n * @param\n * @returns {Type}\n */\n var uncompress = (API.__fontmetrics__.uncompress = function(data) {\n if (typeof data !== \"string\") {\n throw new Error(\"Invalid argument passed to uncompress.\");\n }\n\n var output = {},\n sign = 1,\n stringparts, // undef. will be [] in string mode\n activeobject = output,\n parentchain = [],\n parent_key_pair,\n keyparts = \"\",\n valueparts = \"\",\n key, // undef. will be Truthy when Key is resolved.\n datalen = data.length - 1, // stripping ending }\n ch;\n\n for (var i = 1; i < datalen; i += 1) {\n // - { } ' are special.\n\n ch = data[i];\n\n if (ch == \"'\") {\n if (stringparts) {\n // end of string mode\n key = stringparts.join(\"\");\n stringparts = undefined;\n } else {\n // start of string mode\n stringparts = [];\n }\n } else if (stringparts) {\n stringparts.push(ch);\n } else if (ch == \"{\") {\n // start of object\n parentchain.push([activeobject, key]);\n activeobject = {};\n key = undefined;\n } else if (ch == \"}\") {\n // end of object\n parent_key_pair = parentchain.pop();\n parent_key_pair[0][parent_key_pair[1]] = activeobject;\n key = undefined;\n activeobject = parent_key_pair[0];\n } else if (ch == \"-\") {\n sign = -1;\n } else {\n // must be number\n if (key === undefined) {\n if (mappingUncompress.hasOwnProperty(ch)) {\n keyparts += mappingUncompress[ch];\n key = parseInt(keyparts, 16) * sign;\n sign = +1;\n keyparts = \"\";\n } else {\n keyparts += ch;\n }\n } else {\n if (mappingUncompress.hasOwnProperty(ch)) {\n valueparts += mappingUncompress[ch];\n activeobject[key] = parseInt(valueparts, 16) * sign;\n sign = +1;\n key = undefined;\n valueparts = \"\";\n } else {\n valueparts += ch;\n }\n }\n }\n }\n return output;\n });\n\n // encoding = 'Unicode'\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE. NO clever BOM behavior\n // Actual 16bit char codes used.\n // no multi-byte logic here\n\n // Unicode characters to WinAnsiEncoding:\n // {402: 131, 8211: 150, 8212: 151, 8216: 145, 8217: 146, 8218: 130, 8220: 147, 8221: 148, 8222: 132, 8224: 134, 8225: 135, 8226: 149, 8230: 133, 8364: 128, 8240:137, 8249: 139, 8250: 155, 710: 136, 8482: 153, 338: 140, 339: 156, 732: 152, 352: 138, 353: 154, 376: 159, 381: 142, 382: 158}\n // as you can see, all Unicode chars are outside of 0-255 range. No char code conflicts.\n // this means that you can give Win cp1252 encoded strings to jsPDF for rendering directly\n // as well as give strings with some (supported by these fonts) Unicode characters and\n // these will be mapped to win cp1252\n // for example, you can send char code (cp1252) 0x80 or (unicode) 0x20AC, getting \"Euro\" glyph displayed in both cases.\n\n var encodingBlock = {\n codePages: [\"WinAnsiEncoding\"],\n WinAnsiEncoding: uncompress(\n \"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\"\n )\n };\n var encodings = {\n Unicode: {\n Courier: encodingBlock,\n \"Courier-Bold\": encodingBlock,\n \"Courier-BoldOblique\": encodingBlock,\n \"Courier-Oblique\": encodingBlock,\n Helvetica: encodingBlock,\n \"Helvetica-Bold\": encodingBlock,\n \"Helvetica-BoldOblique\": encodingBlock,\n \"Helvetica-Oblique\": encodingBlock,\n \"Times-Roman\": encodingBlock,\n \"Times-Bold\": encodingBlock,\n \"Times-BoldItalic\": encodingBlock,\n \"Times-Italic\": encodingBlock\n //\t, 'Symbol'\n //\t, 'ZapfDingbats'\n }\n };\n\n var fontMetrics = {\n Unicode: {\n // all sizing numbers are n/fontMetricsFractionOf = one font size unit\n // this means that if fontMetricsFractionOf = 1000, and letter A's width is 476, it's\n // width is 476/1000 or 47.6% of its height (regardless of font size)\n // At this time this value applies to \"widths\" and \"kerning\" numbers.\n\n // char code 0 represents \"default\" (average) width - use it for chars missing in this table.\n // key 'fof' represents the \"fontMetricsFractionOf\" value\n\n \"Courier-Oblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-BoldItalic\": uncompress(\n \"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n \"Helvetica-Bold\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n Courier: uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-BoldOblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-Bold\": uncompress(\n \"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n Symbol: uncompress(\n \"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"\n ),\n Helvetica: uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n ),\n \"Helvetica-BoldOblique\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n ZapfDingbats: uncompress(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-Bold\": uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Times-Italic\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"\n ),\n \"Times-Roman\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"\n ),\n \"Helvetica-Oblique\": uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n )\n }\n };\n\n /*\n\tThis event handler is fired when a new jsPDF object is initialized\n\tThis event handler appends metrics data to standard fonts within\n\tthat jsPDF instance. The metrics are mapped over Unicode character\n\tcodes, NOT CIDs or other codes matching the StandardEncoding table of the\n\tstandard PDF fonts.\n\tFuture:\n\tAlso included is the encoding maping table, converting Unicode (UCS-2, UTF-16)\n\tchar codes to StandardEncoding character codes. The encoding table is to be used\n\tsomewhere around \"pdfEscape\" call.\n\t*/\n API.events.push([\n \"addFont\",\n function(data) {\n var font = data.font;\n\n var metrics = fontMetrics[\"Unicode\"][font.postScriptName];\n if (metrics) {\n font.metadata[\"Unicode\"] = {};\n font.metadata[\"Unicode\"].widths = metrics.widths;\n font.metadata[\"Unicode\"].kerning = metrics.kerning;\n }\n\n var encodingBlock = encodings[\"Unicode\"][font.postScriptName];\n if (encodingBlock) {\n font.metadata[\"Unicode\"].encoding = encodingBlock;\n font.encoding = encodingBlock.codePages[0];\n }\n }\n ]); // end of adding event handler\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob } from \"../libs/AtobBtoa.js\";\n\n/**\n * @name ttfsupport\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n\n var binaryStringToUint8Array = function(binary_string) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n };\n\n var addFont = function(font, file) {\n // eslint-disable-next-line no-control-regex\n if (/^\\x00\\x01\\x00\\x00/.test(file)) {\n file = binaryStringToUint8Array(file);\n } else {\n file = binaryStringToUint8Array(atob(file));\n }\n font.metadata = jsPDF.API.TTFFont.open(file);\n font.metadata.Unicode = font.metadata.Unicode || {\n encoding: {},\n kerning: {},\n widths: []\n };\n font.metadata.glyIdsUsed = [0];\n };\n\n jsPDF.API.events.push([\n \"addFont\",\n function(data) {\n var file = undefined;\n var font = data.font;\n var instance = data.instance;\n if (font.isStandardFont) {\n return;\n }\n if (typeof instance !== \"undefined\") {\n if (instance.existsFileInVFS(font.postScriptName) === false) {\n file = instance.loadFile(font.postScriptName);\n } else {\n file = instance.getFileFromVFS(font.postScriptName);\n }\n if (typeof file !== \"string\") {\n throw new Error(\n \"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n addFont(font, file);\n } else {\n throw new Error(\n \"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n }\n ]); // end of adding event handler\n})(jsPDF);\n","/** @license\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { console } from \"../libs/console.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF SVG plugin\n *\n * @name svg\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadCanvg() {\n return (function() {\n if (globalObject[\"canvg\"]) {\n return Promise.resolve(globalObject[\"canvg\"]);\n }\n\n return import(\"canvg\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load canvg: \" + e));\n })\n .then(function(canvg) {\n return canvg.default ? canvg.default : canvg;\n });\n }\n\n /**\n * Parses SVG XML and saves it as image into the PDF.\n *\n * Depends on canvas-element and canvg\n *\n * @name addSvgAsImage\n * @public\n * @function\n * @param {string} SVG-Data as Text\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width of SVG-Image (in units declared at inception of PDF document)\n * @param {number} height of SVG-Image (in units declared at inception of PDF document)\n * @param {string} alias of SVG-Image (if used multiple times)\n * @param {string} compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation of the image in degrees (0-359)\n *\n * @returns jsPDF jsPDF-instance\n */\n jsPDFAPI.addSvgAsImage = function(\n svg,\n x,\n y,\n w,\n h,\n alias,\n compression,\n rotation\n ) {\n if (isNaN(x) || isNaN(y)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid coordinates\", arguments);\n throw new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");\n }\n\n if (isNaN(w) || isNaN(h)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid measurements\", arguments);\n throw new Error(\n \"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\"\n );\n }\n\n var canvas = document.createElement(\"canvas\");\n canvas.width = w;\n canvas.height = h;\n var ctx = canvas.getContext(\"2d\");\n ctx.fillStyle = \"#fff\"; /// set white fill style\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n var options = {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true\n };\n var doc = this;\n return loadCanvg()\n .then(\n function(canvg) {\n return canvg.fromString(ctx, svg, options);\n },\n function() {\n return Promise.reject(new Error(\"Could not load canvg.\"));\n }\n )\n .then(function(instance) {\n return instance.render(options);\n })\n .then(function() {\n doc.addImage(\n canvas.toDataURL(\"image/jpeg\", 1.0),\n x,\n y,\n w,\n h,\n compression,\n rotation\n );\n });\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF total_pages plugin\n * @name total_pages\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * @name putTotalPages\n * @function\n * @param {string} pageExpression Regular Expression\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.putTotalPages = function(pageExpression) {\n \"use strict\";\n\n var replaceExpression;\n var totalNumberOfPages = 0;\n if (parseInt(this.internal.getFont().id.substr(1), 10) < 15) {\n replaceExpression = new RegExp(pageExpression, \"g\");\n totalNumberOfPages = this.internal.getNumberOfPages();\n } else {\n replaceExpression = new RegExp(\n this.pdfEscape16(pageExpression, this.internal.getFont()),\n \"g\"\n );\n totalNumberOfPages = this.pdfEscape16(\n this.internal.getNumberOfPages() + \"\",\n this.internal.getFont()\n );\n }\n\n for (var n = 1; n <= this.internal.getNumberOfPages(); n++) {\n for (var i = 0; i < this.internal.pages[n].length; i++) {\n this.internal.pages[n][i] = this.internal.pages[n][i].replace(\n replaceExpression,\n totalNumberOfPages\n );\n }\n }\n\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF viewerPreferences Plugin\n * @author Aras Abbasi (github.com/arasabbasi)\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Adds the ability to set ViewerPreferences and by thus\n * controlling the way the document is to be presented on the\n * screen or in print.\n * @name viewerpreferences\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * Set the ViewerPreferences of the generated PDF\n *\n * @name viewerPreferences\n * @function\n * @public\n * @param {Object} options Array with the ViewerPreferences
    \n * Example: doc.viewerPreferences({\"FitWindow\":true});
    \n *
    \n * You can set following preferences:
    \n *
    \n * HideToolbar (boolean)
    \n * Default value: false
    \n *
    \n * HideMenubar (boolean)
    \n * Default value: false.
    \n *
    \n * HideWindowUI (boolean)
    \n * Default value: false.
    \n *
    \n * FitWindow (boolean)
    \n * Default value: false.
    \n *
    \n * CenterWindow (boolean)
    \n * Default value: false
    \n *
    \n * DisplayDocTitle (boolean)
    \n * Default value: false.
    \n *
    \n * NonFullScreenPageMode (string)
    \n * Possible values: UseNone, UseOutlines, UseThumbs, UseOC
    \n * Default value: UseNone
    \n *
    \n * Direction (string)
    \n * Possible values: L2R, R2L
    \n * Default value: L2R.
    \n *
    \n * ViewArea (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox.
    \n *
    \n * ViewClip (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox
    \n *
    \n * PrintArea (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox
    \n *
    \n * PrintClip (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox.
    \n *
    \n * PrintScaling (string)
    \n * Possible values: AppDefault, None
    \n * Default value: AppDefault.
    \n *
    \n * Duplex (string)
    \n * Possible values: Simplex, DuplexFlipLongEdge, DuplexFlipShortEdge\n * Default value: none
    \n *
    \n * PickTrayByPDFSize (boolean)
    \n * Default value: false
    \n *
    \n * PrintPageRange (Array)
    \n * Example: [[1,5], [7,9]]
    \n * Default value: as defined by PDF viewer application
    \n *
    \n * NumCopies (Number)
    \n * Possible values: 1, 2, 3, 4, 5
    \n * Default value: 1
    \n *
    \n * For more information see the PDF Reference, sixth edition on Page 577\n * @param {boolean} doReset True to reset the settings\n * @function\n * @returns jsPDF jsPDF-instance\n * @example\n * var doc = new jsPDF()\n * doc.text('This is a test', 10, 10)\n * doc.viewerPreferences({'FitWindow': true}, true)\n * doc.save(\"viewerPreferences.pdf\")\n *\n * // Example printing 10 copies, using cropbox, and hiding UI.\n * doc.viewerPreferences({\n * 'HideWindowUI': true,\n * 'PrintArea': 'CropBox',\n * 'NumCopies': 10\n * })\n */\n jsPDFAPI.viewerPreferences = function(options, doReset) {\n options = options || {};\n doReset = doReset || false;\n\n var configuration;\n var configurationTemplate = {\n HideToolbar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideMenubar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideWindowUI: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n FitWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n CenterWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n DisplayDocTitle: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.4\n },\n NonFullScreenPageMode: {\n defaultValue: \"UseNone\",\n value: \"UseNone\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"UseNone\", \"UseOutlines\", \"UseThumbs\", \"UseOC\"],\n pdfVersion: 1.3\n },\n Direction: {\n defaultValue: \"L2R\",\n value: \"L2R\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"L2R\", \"R2L\"],\n pdfVersion: 1.3\n },\n ViewArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n ViewClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintScaling: {\n defaultValue: \"AppDefault\",\n value: \"AppDefault\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"AppDefault\", \"None\"],\n pdfVersion: 1.6\n },\n Duplex: {\n defaultValue: \"\",\n value: \"none\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\n \"Simplex\",\n \"DuplexFlipShortEdge\",\n \"DuplexFlipLongEdge\",\n \"none\"\n ],\n pdfVersion: 1.7\n },\n PickTrayByPDFSize: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.7\n },\n PrintPageRange: {\n defaultValue: \"\",\n value: \"\",\n type: \"array\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n },\n NumCopies: {\n defaultValue: 1,\n value: 1,\n type: \"integer\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n }\n };\n\n var configurationKeys = Object.keys(configurationTemplate);\n\n var rangeArray = [];\n var i = 0;\n var j = 0;\n var k = 0;\n var isValid;\n\n var method;\n var value;\n\n function arrayContainsElement(array, element) {\n var iterator;\n var result = false;\n\n for (iterator = 0; iterator < array.length; iterator += 1) {\n if (array[iterator] === element) {\n result = true;\n }\n }\n return result;\n }\n\n if (this.internal.viewerpreferences === undefined) {\n this.internal.viewerpreferences = {};\n this.internal.viewerpreferences.configuration = JSON.parse(\n JSON.stringify(configurationTemplate)\n );\n this.internal.viewerpreferences.isSubscribed = false;\n }\n configuration = this.internal.viewerpreferences.configuration;\n\n if (options === \"reset\" || doReset === true) {\n var len = configurationKeys.length;\n\n for (k = 0; k < len; k += 1) {\n configuration[configurationKeys[k]].value =\n configuration[configurationKeys[k]].defaultValue;\n configuration[configurationKeys[k]].explicitSet = false;\n }\n }\n\n if (typeof options === \"object\") {\n for (method in options) {\n value = options[method];\n if (\n arrayContainsElement(configurationKeys, method) &&\n value !== undefined\n ) {\n if (\n configuration[method].type === \"boolean\" &&\n typeof value === \"boolean\"\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"name\" &&\n arrayContainsElement(configuration[method].valueSet, value)\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"integer\" &&\n Number.isInteger(value)\n ) {\n configuration[method].value = value;\n } else if (configuration[method].type === \"array\") {\n for (i = 0; i < value.length; i += 1) {\n isValid = true;\n if (value[i].length === 1 && typeof value[i][0] === \"number\") {\n rangeArray.push(String(value[i] - 1));\n } else if (value[i].length > 1) {\n for (j = 0; j < value[i].length; j += 1) {\n if (typeof value[i][j] !== \"number\") {\n isValid = false;\n }\n }\n if (isValid === true) {\n rangeArray.push([value[i][0] - 1, value[i][1] - 1].join(\" \"));\n }\n }\n }\n configuration[method].value = \"[\" + rangeArray.join(\" \") + \"]\";\n } else {\n configuration[method].value = configuration[method].defaultValue;\n }\n\n configuration[method].explicitSet = true;\n }\n }\n }\n\n if (this.internal.viewerpreferences.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n var pdfDict = [];\n var vPref;\n for (vPref in configuration) {\n if (configuration[vPref].explicitSet === true) {\n if (configuration[vPref].type === \"name\") {\n pdfDict.push(\"/\" + vPref + \" /\" + configuration[vPref].value);\n } else {\n pdfDict.push(\"/\" + vPref + \" \" + configuration[vPref].value);\n }\n }\n }\n if (pdfDict.length !== 0) {\n this.internal.write(\n \"/ViewerPreferences\\n<<\\n\" + pdfDict.join(\"\\n\") + \"\\n>>\"\n );\n }\n });\n this.internal.viewerpreferences.isSubscribed = true;\n }\n\n this.internal.viewerpreferences.configuration = configuration;\n return this;\n };\n})(jsPDF.API);\n","/** ====================================================================\n * @license\n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name xmp_metadata\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var postPutResources = function() {\n var xmpmeta_beginning = '';\n var rdf_beginning =\n '';\n var rdf_ending = \"\";\n var xmpmeta_ending = \"\";\n var utf8_xmpmeta_beginning = unescape(\n encodeURIComponent(xmpmeta_beginning)\n );\n var utf8_rdf_beginning = unescape(encodeURIComponent(rdf_beginning));\n var utf8_metadata = unescape(\n encodeURIComponent(this.internal.__metadata__.metadata)\n );\n var utf8_rdf_ending = unescape(encodeURIComponent(rdf_ending));\n var utf8_xmpmeta_ending = unescape(encodeURIComponent(xmpmeta_ending));\n\n var total_len =\n utf8_rdf_beginning.length +\n utf8_metadata.length +\n utf8_rdf_ending.length +\n utf8_xmpmeta_beginning.length +\n utf8_xmpmeta_ending.length;\n\n this.internal.__metadata__.metadata_object_number = this.internal.newObject();\n this.internal.write(\n \"<< /Type /Metadata /Subtype /XML /Length \" + total_len + \" >>\"\n );\n this.internal.write(\"stream\");\n this.internal.write(\n utf8_xmpmeta_beginning +\n utf8_rdf_beginning +\n utf8_metadata +\n utf8_rdf_ending +\n utf8_xmpmeta_ending\n );\n this.internal.write(\"endstream\");\n this.internal.write(\"endobj\");\n };\n\n var putCatalog = function() {\n if (this.internal.__metadata__.metadata_object_number) {\n this.internal.write(\n \"/Metadata \" +\n this.internal.__metadata__.metadata_object_number +\n \" 0 R\"\n );\n }\n };\n\n /**\n * Adds XMP formatted metadata to PDF\n *\n * @name addMetadata\n * @function\n * @param {String} metadata The actual metadata to be added. The metadata shall be stored as XMP simple value. Note that if the metadata string contains XML markup characters \"<\", \">\" or \"&\", those characters should be written using XML entities.\n * @param {String} namespaceuri Sets the namespace URI for the metadata. Last character should be slash or hash.\n * @returns {jsPDF} jsPDF-instance\n */\n jsPDFAPI.addMetadata = function(metadata, namespaceuri) {\n if (typeof this.internal.__metadata__ === \"undefined\") {\n this.internal.__metadata__ = {\n metadata: metadata,\n namespaceuri: namespaceuri || \"http://jspdf.default.namespaceuri/\"\n };\n this.internal.events.subscribe(\"putCatalog\", putCatalog);\n\n this.internal.events.subscribe(\"postPutResources\", postPutResources);\n }\n return this;\n };\n})(jsPDF.API);\n","import { jsPDF } from \"../jspdf.js\";\nimport { toPDFName } from \"../libs/pdfname.js\";\n\n/**\n * @name utf8\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n var jsPDFAPI = jsPDF.API;\n\n /***************************************************************************************************/\n /* function : pdfEscape16 */\n /* comment : The character id of a 2-byte string is converted to a hexadecimal number by obtaining */\n /* the corresponding glyph id and width, and then adding padding to the string. */\n /***************************************************************************************************/\n var pdfEscape16 = (jsPDFAPI.pdfEscape16 = function(text, font) {\n var widths = font.metadata.Unicode.widths;\n var padz = [\"\", \"0\", \"00\", \"000\", \"0000\"];\n var ar = [\"\"];\n for (var i = 0, l = text.length, t; i < l; ++i) {\n t = font.metadata.characterToGlyph(text.charCodeAt(i));\n font.metadata.glyIdsUsed.push(t);\n font.metadata.toUnicode[t] = text.charCodeAt(i);\n if (widths.indexOf(t) == -1) {\n widths.push(t);\n widths.push([parseInt(font.metadata.widthOfGlyph(t), 10)]);\n }\n if (t == \"0\") {\n //Spaces are not allowed in cmap.\n return ar.join(\"\");\n } else {\n t = t.toString(16);\n ar.push(padz[4 - t.length], t);\n }\n }\n return ar.join(\"\");\n });\n\n var toUnicodeCmap = function(map) {\n var code, codes, range, unicode, unicodeMap, _i, _len;\n unicodeMap =\n \"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n /Registry (Adobe)\\n /Ordering (UCS)\\n /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000>\\nendcodespacerange\";\n codes = Object.keys(map).sort(function(a, b) {\n return a - b;\n });\n\n range = [];\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (range.length >= 100) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\";\n range = [];\n }\n\n if (\n map[code] !== undefined &&\n map[code] !== null &&\n typeof map[code].toString === \"function\"\n ) {\n unicode = (\"0000\" + map[code].toString(16)).slice(-4);\n code = (\"0000\" + (+code).toString(16)).slice(-4);\n range.push(\"<\" + code + \"><\" + unicode + \">\");\n }\n }\n\n if (range.length) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\\n\";\n }\n unicodeMap +=\n \"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\";\n return unicodeMap;\n };\n\n var identityHFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"Identity-H\"\n ) {\n //Tag with Identity-H\n var widths = font.metadata.Unicode.widths;\n var data = font.metadata.subset.encode(font.metadata.glyIdsUsed, 1);\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Type /FontDescriptor\");\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/Flags \" + font.metadata.flags);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\">>\");\n out(\"endobj\");\n\n var DescendantFont = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/FontDescriptor \" + fontDescriptor + \" 0 R\");\n out(\"/W \" + jsPDF.API.PDFObject.convert(widths));\n out(\"/CIDToGIDMap /Identity\");\n out(\"/DW 1000\");\n out(\"/Subtype /CIDFontType2\");\n out(\"/CIDSystemInfo\");\n out(\"<<\");\n out(\"/Supplement 0\");\n out(\"/Registry (Adobe)\");\n out(\"/Ordering (\" + font.encoding + \")\");\n out(\">>\");\n out(\">>\");\n out(\"endobj\");\n\n font.objectNumber = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/Subtype /Type0\");\n out(\"/ToUnicode \" + cmap + \" 0 R\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/Encoding /\" + font.encoding);\n out(\"/DescendantFonts [\" + DescendantFont + \" 0 R]\");\n out(\">>\");\n out(\"endobj\");\n\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n identityHFunction(args);\n }\n ]);\n\n var winAnsiEncodingFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"WinAnsiEncoding\"\n ) {\n //Tag with WinAnsi encoding\n var data = font.metadata.rawData;\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/Type /FontDescriptor\");\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/Flags 96\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\">>\");\n out(\"endobj\");\n font.objectNumber = newObject();\n for (var j = 0; j < font.metadata.hmtx.widths.length; j++) {\n font.metadata.hmtx.widths[j] = parseInt(\n font.metadata.hmtx.widths[j] * (1000 / font.metadata.head.unitsPerEm)\n ); //Change the width of Em units to Point units.\n }\n out(\n \"<>\"\n );\n out(\"endobj\");\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n winAnsiEncodingFunction(args);\n }\n ]);\n\n var utf8TextFunction = function(args) {\n var text = args.text || \"\";\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n\n var pdfEscape = mutex.pdfEscape;\n var activeFontKey = mutex.activeFontKey;\n var fonts = mutex.fonts;\n var key = activeFontKey;\n\n var str = \"\",\n s = 0,\n cmapConfirm;\n var strText = \"\";\n var encoding = fonts[key].encoding;\n\n if (fonts[key].encoding !== \"Identity-H\") {\n return {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n }\n strText = text;\n\n key = activeFontKey;\n if (Array.isArray(text)) {\n strText = text[0];\n }\n for (s = 0; s < strText.length; s += 1) {\n if (fonts[key].metadata.hasOwnProperty(\"cmap\")) {\n cmapConfirm =\n fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)];\n /*\n if (Object.prototype.toString.call(text) === '[object Array]') {\n var i = 0;\n // for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[s]) === '[object Array]') {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s][0].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n } else {\n\n }\n //}\n\n } else {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n }*/\n }\n if (!cmapConfirm) {\n if (\n strText[s].charCodeAt(0) < 256 &&\n fonts[key].metadata.hasOwnProperty(\"Unicode\")\n ) {\n str += strText[s];\n } else {\n str += \"\";\n }\n } else {\n str += strText[s];\n }\n }\n var result = \"\";\n if (parseInt(key.slice(1)) < 14 || encoding === \"WinAnsiEncoding\") {\n //For the default 13 font\n result = pdfEscape(str, key)\n .split(\"\")\n .map(function(cv) {\n return cv.charCodeAt(0).toString(16);\n })\n .join(\"\");\n } else if (encoding === \"Identity-H\") {\n result = pdfEscape16(str, fonts[key]);\n }\n mutex.isHex = true;\n\n return {\n text: result,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n };\n\n var utf8EscapeFunction = function(parms) {\n var text = parms.text || \"\",\n x = parms.x,\n y = parms.y,\n options = parms.options,\n mutex = parms.mutex;\n var tmpText = [];\n var args = {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n\n if (Array.isArray(text)) {\n var i = 0;\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n if (text[i].length === 3) {\n tmpText.push([\n utf8TextFunction(Object.assign({}, args, { text: text[i][0] }))\n .text,\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n }\n parms.text = tmpText;\n } else {\n parms.text = utf8TextFunction(\n Object.assign({}, args, { text: text })\n ).text;\n }\n };\n\n jsPDFAPI.events.push([\"postProcessText\", utf8EscapeFunction]);\n})(jsPDF);\n","/**\n * @license\n * jsPDF virtual FileSystem functionality\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Use the vFS to handle files\n *\n * @name vFS\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var _initializeVFS = function() {\n if (typeof this.internal.vFS === \"undefined\") {\n this.internal.vFS = {};\n }\n return true;\n };\n\n /**\n * Check if the file exists in the vFS\n *\n * @name existsFileInVFS\n * @function\n * @param {string} Possible filename in the vFS.\n * @returns {boolean}\n * @example\n * doc.existsFileInVFS(\"someFile.txt\");\n */\n jsPDFAPI.existsFileInVFS = function(filename) {\n _initializeVFS.call(this);\n return typeof this.internal.vFS[filename] !== \"undefined\";\n };\n\n /**\n * Add a file to the vFS\n *\n * @name addFileToVFS\n * @function\n * @param {string} filename The name of the file which should be added.\n * @param {string} filecontent The content of the file.\n * @returns {jsPDF}\n * @example\n * doc.addFileToVFS(\"someFile.txt\", \"BADFACE1\");\n */\n jsPDFAPI.addFileToVFS = function(filename, filecontent) {\n _initializeVFS.call(this);\n this.internal.vFS[filename] = filecontent;\n return this;\n };\n\n /**\n * Get the file from the vFS\n *\n * @name getFileFromVFS\n * @function\n * @param {string} The name of the file which gets requested.\n * @returns {string}\n * @example\n * doc.getFileFromVFS(\"someFile.txt\");\n */\n jsPDFAPI.getFileFromVFS = function(filename) {\n _initializeVFS.call(this);\n\n if (typeof this.internal.vFS[filename] !== \"undefined\") {\n return this.internal.vFS[filename];\n }\n return null;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)\n * MIT License\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDF) {\n \"use strict\";\n /**\n * Table of Unicode types.\n *\n * Generated by:\n *\n * var bidi = require(\"./bidi/index\");\n * var bidi_accumulate = bidi.slice(0, 256).concat(bidi.slice(0x0500, 0x0500 + 256 * 3)).\n * concat(bidi.slice(0x2000, 0x2000 + 256)).concat(bidi.slice(0xFB00, 0xFB00 + 256)).\n * concat(bidi.slice(0xFE00, 0xFE00 + 2 * 256));\n *\n * for( var i = 0; i < bidi_accumulate.length; i++) {\n * \tif(bidi_accumulate[i] === undefined || bidi_accumulate[i] === 'ON')\n * \t\tbidi_accumulate[i] = 'N'; //mark as neutral to conserve space and substitute undefined\n * }\n * var bidiAccumulateStr = 'return [ \"' + bidi_accumulate.toString().replace(/,/g, '\", \"') + '\" ];';\n * require(\"fs\").writeFile('unicode-types.js', bidiAccumulateStr);\n *\n * Based on:\n * https://github.com/mathiasbynens/unicode-8.0.0\n */\n var bidiUnicodeTypes = [\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"S\",\n \"B\",\n \"S\",\n \"WS\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"B\",\n \"B\",\n \"S\",\n \"WS\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"CS\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"EN\",\n \"EN\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"N\",\n \"N\",\n \"AL\",\n \"ET\",\n \"ET\",\n \"AL\",\n \"CS\",\n \"AL\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"ET\",\n \"AN\",\n \"AN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"L\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"B\",\n \"LRE\",\n \"RLE\",\n \"PDF\",\n \"LRO\",\n \"RLO\",\n \"CS\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"N\",\n \"LRI\",\n \"RLI\",\n \"FSI\",\n \"PDI\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"NSM\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"ES\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"N\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\"\n ];\n\n /**\n * Unicode Bidi algorithm compliant Bidi engine.\n * For reference see http://unicode.org/reports/tr9/\n */\n\n /**\n * constructor ( options )\n *\n * Initializes Bidi engine\n *\n * @param {Object} See 'setOptions' below for detailed description.\n * options are cashed between invocation of 'doBidiReorder' method\n *\n * sample usage pattern of BidiEngine:\n * var opt = {\n * \tisInputVisual: true,\n * \tisInputRtl: false,\n * \tisOutputVisual: false,\n * \tisOutputRtl: false,\n * \tisSymmetricSwapping: true\n * }\n * var sourceToTarget = [], levels = [];\n * var bidiEng = Globalize.bidiEngine(opt);\n * var src = \"text string to be reordered\";\n * var ret = bidiEng.doBidiReorder(src, sourceToTarget, levels);\n */\n\n jsPDF.__bidiEngine__ = jsPDF.prototype.__bidiEngine__ = function(options) {\n var _UNICODE_TYPES = _bidiUnicodeTypes;\n\n var _STATE_TABLE_LTR = [\n [0, 3, 0, 1, 0, 0, 0],\n [0, 3, 0, 1, 2, 2, 0],\n [0, 3, 0, 0x11, 2, 0, 1],\n [0, 3, 5, 5, 4, 1, 0],\n [0, 3, 0x15, 0x15, 4, 0, 1],\n [0, 3, 5, 5, 4, 2, 0]\n ];\n\n var _STATE_TABLE_RTL = [\n [2, 0, 1, 1, 0, 1, 0],\n [2, 0, 1, 1, 0, 2, 0],\n [2, 0, 2, 1, 3, 2, 0],\n [2, 0, 2, 0x21, 3, 1, 1]\n ];\n\n var _TYPE_NAMES_MAP = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 };\n\n var _UNICODE_RANGES_MAP = {\n 0: 0,\n 5: 1,\n 6: 2,\n 7: 3,\n 0x20: 4,\n 0xfb: 5,\n 0xfe: 6,\n 0xff: 7\n };\n\n var _SWAP_TABLE = [\n \"\\u0028\",\n \"\\u0029\",\n \"\\u0028\",\n \"\\u003C\",\n \"\\u003E\",\n \"\\u003C\",\n \"\\u005B\",\n \"\\u005D\",\n \"\\u005B\",\n \"\\u007B\",\n \"\\u007D\",\n \"\\u007B\",\n \"\\u00AB\",\n \"\\u00BB\",\n \"\\u00AB\",\n \"\\u2039\",\n \"\\u203A\",\n \"\\u2039\",\n \"\\u2045\",\n \"\\u2046\",\n \"\\u2045\",\n \"\\u207D\",\n \"\\u207E\",\n \"\\u207D\",\n \"\\u208D\",\n \"\\u208E\",\n \"\\u208D\",\n \"\\u2264\",\n \"\\u2265\",\n \"\\u2264\",\n \"\\u2329\",\n \"\\u232A\",\n \"\\u2329\",\n \"\\uFE59\",\n \"\\uFE5A\",\n \"\\uFE59\",\n \"\\uFE5B\",\n \"\\uFE5C\",\n \"\\uFE5B\",\n \"\\uFE5D\",\n \"\\uFE5E\",\n \"\\uFE5D\",\n \"\\uFE64\",\n \"\\uFE65\",\n \"\\uFE64\"\n ];\n\n var _LTR_RANGES_REG_EXPR = new RegExp(\n /^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/\n );\n\n var _lastArabic = false,\n _hasUbatAl,\n _hasUbatB,\n _hasUbatS,\n DIR_LTR = 0,\n DIR_RTL = 1,\n _isInVisual,\n _isInRtl,\n _isOutVisual,\n _isOutRtl,\n _isSymmetricSwapping,\n _dir = DIR_LTR;\n\n this.__bidiEngine__ = {};\n\n var _init = function(text, sourceToTargetMap) {\n if (sourceToTargetMap) {\n for (var i = 0; i < text.length; i++) {\n sourceToTargetMap[i] = i;\n }\n }\n if (_isInRtl === undefined) {\n _isInRtl = _isContextualDirRtl(text);\n }\n if (_isOutRtl === undefined) {\n _isOutRtl = _isContextualDirRtl(text);\n }\n };\n\n // for reference see 3.2 in http://unicode.org/reports/tr9/\n //\n var _getCharType = function(ch) {\n var charCode = ch.charCodeAt(),\n range = charCode >> 8,\n rangeIdx = _UNICODE_RANGES_MAP[range];\n\n if (rangeIdx !== undefined) {\n return _UNICODE_TYPES[rangeIdx * 256 + (charCode & 0xff)];\n } else if (range === 0xfc || range === 0xfd) {\n return \"AL\";\n } else if (_LTR_RANGES_REG_EXPR.test(range)) {\n //unlikely case\n return \"L\";\n } else if (range === 8) {\n // even less likely\n return \"R\";\n }\n return \"N\"; //undefined type, mark as neutral\n };\n\n var _isContextualDirRtl = function(text) {\n for (var i = 0, charType; i < text.length; i++) {\n charType = _getCharType(text.charAt(i));\n if (charType === \"L\") {\n return false;\n } else if (charType === \"R\") {\n return true;\n }\n }\n return false;\n };\n\n // for reference see 3.3.4 & 3.3.5 in http://unicode.org/reports/tr9/\n //\n var _resolveCharType = function(chars, types, resolvedTypes, index) {\n var cType = types[index],\n wType,\n nType,\n i,\n len;\n switch (cType) {\n case \"L\":\n case \"R\":\n _lastArabic = false;\n break;\n case \"N\":\n case \"AN\":\n break;\n\n case \"EN\":\n if (_lastArabic) {\n cType = \"AN\";\n }\n break;\n\n case \"AL\":\n _lastArabic = true;\n _hasUbatAl = true;\n cType = \"R\";\n break;\n\n case \"WS\":\n cType = \"N\";\n break;\n\n case \"CS\":\n if (\n index < 1 ||\n index + 1 >= types.length ||\n ((wType = resolvedTypes[index - 1]) !== \"EN\" && wType !== \"AN\") ||\n ((nType = types[index + 1]) !== \"EN\" && nType !== \"AN\")\n ) {\n cType = \"N\";\n } else if (_lastArabic) {\n nType = \"AN\";\n }\n cType = nType === wType ? nType : \"N\";\n break;\n\n case \"ES\":\n wType = index > 0 ? resolvedTypes[index - 1] : \"B\";\n cType =\n wType === \"EN\" &&\n index + 1 < types.length &&\n types[index + 1] === \"EN\"\n ? \"EN\"\n : \"N\";\n break;\n\n case \"ET\":\n if (index > 0 && resolvedTypes[index - 1] === \"EN\") {\n cType = \"EN\";\n break;\n } else if (_lastArabic) {\n cType = \"N\";\n break;\n }\n i = index + 1;\n len = types.length;\n while (i < len && types[i] === \"ET\") {\n i++;\n }\n if (i < len && types[i] === \"EN\") {\n cType = \"EN\";\n } else {\n cType = \"N\";\n }\n break;\n\n case \"NSM\":\n if (_isInVisual && !_isInRtl) {\n //V->L\n len = types.length;\n i = index + 1;\n while (i < len && types[i] === \"NSM\") {\n i++;\n }\n if (i < len) {\n var c = chars[index];\n var rtlCandidate = (c >= 0x0591 && c <= 0x08ff) || c === 0xfb1e;\n wType = types[i];\n if (rtlCandidate && (wType === \"R\" || wType === \"AL\")) {\n cType = \"R\";\n break;\n }\n }\n }\n if (index < 1 || (wType = types[index - 1]) === \"B\") {\n cType = \"N\";\n } else {\n cType = resolvedTypes[index - 1];\n }\n break;\n\n case \"B\":\n _lastArabic = false;\n _hasUbatB = true;\n cType = _dir;\n break;\n\n case \"S\":\n _hasUbatS = true;\n cType = \"N\";\n break;\n\n case \"LRE\":\n case \"RLE\":\n case \"LRO\":\n case \"RLO\":\n case \"PDF\":\n _lastArabic = false;\n break;\n case \"BN\":\n cType = \"N\";\n break;\n }\n return cType;\n };\n\n var _handleUbatS = function(types, levels, length) {\n for (var i = 0; i < length; i++) {\n if (types[i] === \"S\") {\n levels[i] = _dir;\n for (var j = i - 1; j >= 0; j--) {\n if (types[j] === \"WS\") {\n levels[j] = _dir;\n } else {\n break;\n }\n }\n }\n }\n };\n\n var _invertString = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\");\n if (levels) {\n _computeLevels(charArray, levels, { hiLevel: _dir });\n }\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return charArray.join(\"\");\n };\n\n // For reference see 3.3 in http://unicode.org/reports/tr9/\n //\n var _computeLevels = function(chars, levels, params) {\n var action,\n condition,\n i,\n index,\n newLevel,\n prevState,\n condPos = -1,\n len = chars.length,\n newState = 0,\n resolvedTypes = [],\n stateTable = _dir ? _STATE_TABLE_RTL : _STATE_TABLE_LTR,\n types = [];\n\n _lastArabic = false;\n _hasUbatAl = false;\n _hasUbatB = false;\n _hasUbatS = false;\n for (i = 0; i < len; i++) {\n types[i] = _getCharType(chars[i]);\n }\n for (index = 0; index < len; index++) {\n prevState = newState;\n resolvedTypes[index] = _resolveCharType(\n chars,\n types,\n resolvedTypes,\n index\n );\n newState = stateTable[prevState][_TYPE_NAMES_MAP[resolvedTypes[index]]];\n action = newState & 0xf0;\n newState &= 0x0f;\n levels[index] = newLevel = stateTable[newState][5];\n if (action > 0) {\n if (action === 0x10) {\n for (i = condPos; i < index; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n } else {\n condPos = -1;\n }\n }\n condition = stateTable[newState][6];\n if (condition) {\n if (condPos === -1) {\n condPos = index;\n }\n } else {\n if (condPos > -1) {\n for (i = condPos; i < index; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (types[index] === \"B\") {\n levels[index] = 0;\n }\n params.hiLevel |= newLevel;\n }\n if (_hasUbatS) {\n _handleUbatS(types, levels, len);\n }\n };\n\n // for reference see 3.4 in http://unicode.org/reports/tr9/\n //\n var _invertByLevel = function(\n level,\n charArray,\n sourceToTargetMap,\n levels,\n params\n ) {\n if (params.hiLevel < level) {\n return;\n }\n if (level === 1 && _dir === DIR_RTL && !_hasUbatB) {\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return;\n }\n var ch,\n high,\n end,\n low,\n len = charArray.length,\n start = 0;\n\n while (start < len) {\n if (levels[start] >= level) {\n end = start + 1;\n while (end < len && levels[end] >= level) {\n end++;\n }\n for (low = start, high = end - 1; low < high; low++, high--) {\n ch = charArray[low];\n charArray[low] = charArray[high];\n charArray[high] = ch;\n if (sourceToTargetMap) {\n ch = sourceToTargetMap[low];\n sourceToTargetMap[low] = sourceToTargetMap[high];\n sourceToTargetMap[high] = ch;\n }\n }\n start = end;\n }\n start++;\n }\n };\n\n // for reference see 7 & BD16 in http://unicode.org/reports/tr9/\n //\n var _symmetricSwap = function(charArray, levels, params) {\n if (params.hiLevel !== 0 && _isSymmetricSwapping) {\n for (var i = 0, index; i < charArray.length; i++) {\n if (levels[i] === 1) {\n index = _SWAP_TABLE.indexOf(charArray[i]);\n if (index >= 0) {\n charArray[i] = _SWAP_TABLE[index + 1];\n }\n }\n }\n }\n };\n\n var _reorder = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\"),\n params = { hiLevel: _dir };\n\n if (!levels) {\n levels = [];\n }\n _computeLevels(charArray, levels, params);\n _symmetricSwap(charArray, levels, params);\n _invertByLevel(DIR_RTL + 1, charArray, sourceToTargetMap, levels, params);\n _invertByLevel(DIR_RTL, charArray, sourceToTargetMap, levels, params);\n return charArray.join(\"\");\n };\n\n // doBidiReorder( text, sourceToTargetMap, levels )\n // Performs Bidi reordering by implementing Unicode Bidi algorithm.\n // Returns reordered string\n // @text [String]:\n // - input string to be reordered, this is input parameter\n // $sourceToTargetMap [Array] (optional)\n // - resultant mapping between input and output strings, this is output parameter\n // $levels [Array] (optional)\n // - array of calculated Bidi levels, , this is output parameter\n this.__bidiEngine__.doBidiReorder = function(\n text,\n sourceToTargetMap,\n levels\n ) {\n _init(text, sourceToTargetMap);\n if (!_isInVisual && _isOutVisual && !_isOutRtl) {\n // LLTR->VLTR, LRTL->VLTR\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && _isOutVisual && _isInRtl ^ _isOutRtl) {\n // VRTL->VLTR, VLTR->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _invertString(text, sourceToTargetMap, levels);\n } else if (!_isInVisual && _isOutVisual && _isOutRtl) {\n // LLTR->VRTL, LRTL->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (_isInVisual && !_isInRtl && !_isOutVisual && !_isOutRtl) {\n // VLTR->LLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // VLTR->LRTL, VRTL->LLTR\n text = _invertString(text, sourceToTargetMap);\n if (_isInRtl) {\n //LLTR -> VLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else {\n //LRTL -> VRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n }\n } else if (_isInVisual && _isInRtl && !_isOutVisual && _isOutRtl) {\n // VRTL->LRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (!_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // LRTL->LLTR, LLTR->LRTL\n var isSymmetricSwappingOrig = _isSymmetricSwapping;\n if (_isInRtl) {\n //LRTL->LLTR\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n _dir = DIR_LTR;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n } else {\n //LLTR->LRTL\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n _dir = DIR_RTL;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n text = _invertString(text, sourceToTargetMap);\n }\n }\n return text;\n };\n\n /**\n * @name setOptions( options )\n * @function\n * Sets options for Bidi conversion\n * @param {Object}:\n * - isInputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isInputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong character of input string)\n * - isOutputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isOutputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong characterof input string)\n * - isSymmetricSwapping {boolean} (defaults to false): allowed values true(needs symmetric swapping), false (no need in symmetric swapping),\n */\n this.__bidiEngine__.setOptions = function(options) {\n if (options) {\n _isInVisual = options.isInputVisual;\n _isOutVisual = options.isOutputVisual;\n _isInRtl = options.isInputRtl;\n _isOutRtl = options.isOutputRtl;\n _isSymmetricSwapping = options.isSymmetricSwapping;\n }\n };\n\n this.__bidiEngine__.setOptions(options);\n return this.__bidiEngine__;\n };\n\n var _bidiUnicodeTypes = bidiUnicodeTypes;\n\n var bidiEngine = new jsPDF.__bidiEngine__({ isInputVisual: true });\n\n var bidiEngineFunction = function(args) {\n var text = args.text;\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n var lang = options.lang;\n var tmpText = [];\n\n options.isInputVisual =\n typeof options.isInputVisual === \"boolean\" ? options.isInputVisual : true;\n bidiEngine.setOptions(options);\n\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[i]) === \"[object Array]\") {\n tmpText.push([\n bidiEngine.doBidiReorder(text[i][0]),\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push([bidiEngine.doBidiReorder(text[i])]);\n }\n }\n args.text = tmpText;\n } else {\n args.text = bidiEngine.doBidiReorder(text);\n }\n bidiEngine.setOptions({ isInputVisual: true });\n };\n\n jsPDF.API.events.push([\"postProcessText\", bidiEngineFunction]);\n})(jsPDF);\n","/* eslint-disable no-control-regex */\n/************************************************\n * Title : custom font *\n * Start Data : 2017. 01. 22. *\n * Comment : TEXT API *\n ************************************************/\n\n/******************************\n * jsPDF extension API Design *\n * ****************************/\n\nimport { jsPDF } from \"../jspdf.js\";\n\njsPDF.API.TTFFont = (function() {\n /************************************************************************/\n /* function : open */\n /* comment : Decode the encoded ttf content and create a TTFFont object. */\n /************************************************************************/\n TTFFont.open = function(file) {\n return new TTFFont(file);\n };\n /***************************************************************/\n /* function : TTFFont gernerator */\n /* comment : Decode TTF contents are parsed, Data, */\n /* Subset object is created, and registerTTF function is called.*/\n /***************************************************************/\n function TTFFont(rawData) {\n var data;\n this.rawData = rawData;\n data = this.contents = new Data(rawData);\n this.contents.pos = 4;\n if (data.readString(4) === \"ttcf\") {\n throw new Error(\"TTCF not supported.\");\n } else {\n data.pos = 0;\n this.parse();\n this.subset = new Subset(this);\n this.registerTTF();\n }\n }\n /********************************************************/\n /* function : parse */\n /* comment : TTF Parses the file contents by each table.*/\n /********************************************************/\n TTFFont.prototype.parse = function() {\n this.directory = new Directory(this.contents);\n this.head = new HeadTable(this);\n this.name = new NameTable(this);\n this.cmap = new CmapTable(this);\n this.toUnicode = {};\n this.hhea = new HheaTable(this);\n this.maxp = new MaxpTable(this);\n this.hmtx = new HmtxTable(this);\n this.post = new PostTable(this);\n this.os2 = new OS2Table(this);\n this.loca = new LocaTable(this);\n this.glyf = new GlyfTable(this);\n this.ascender =\n (this.os2.exists && this.os2.ascender) || this.hhea.ascender;\n this.decender =\n (this.os2.exists && this.os2.decender) || this.hhea.decender;\n this.lineGap = (this.os2.exists && this.os2.lineGap) || this.hhea.lineGap;\n return (this.bbox = [\n this.head.xMin,\n this.head.yMin,\n this.head.xMax,\n this.head.yMax\n ]);\n };\n /***************************************************************/\n /* function : registerTTF */\n /* comment : Get the value to assign pdf font descriptors. */\n /***************************************************************/\n TTFFont.prototype.registerTTF = function() {\n var e, hi, low, raw, _ref;\n this.scaleFactor = 1000.0 / this.head.unitsPerEm;\n this.bbox = function() {\n var _i, _len, _ref, _results;\n _ref = this.bbox;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n e = _ref[_i];\n _results.push(Math.round(e * this.scaleFactor));\n }\n return _results;\n }.call(this);\n this.stemV = 0;\n if (this.post.exists) {\n raw = this.post.italic_angle;\n hi = raw >> 16;\n low = raw & 0xff;\n if ((hi & 0x8000) !== 0) {\n hi = -((hi ^ 0xffff) + 1);\n }\n this.italicAngle = +(\"\" + hi + \".\" + low);\n } else {\n this.italicAngle = 0;\n }\n this.ascender = Math.round(this.ascender * this.scaleFactor);\n this.decender = Math.round(this.decender * this.scaleFactor);\n this.lineGap = Math.round(this.lineGap * this.scaleFactor);\n this.capHeight = (this.os2.exists && this.os2.capHeight) || this.ascender;\n this.xHeight = (this.os2.exists && this.os2.xHeight) || 0;\n this.familyClass = ((this.os2.exists && this.os2.familyClass) || 0) >> 8;\n this.isSerif =\n (_ref = this.familyClass) === 1 ||\n _ref === 2 ||\n _ref === 3 ||\n _ref === 4 ||\n _ref === 5 ||\n _ref === 7;\n this.isScript = this.familyClass === 10;\n this.flags = 0;\n if (this.post.isFixedPitch) {\n this.flags |= 1 << 0;\n }\n if (this.isSerif) {\n this.flags |= 1 << 1;\n }\n if (this.isScript) {\n this.flags |= 1 << 3;\n }\n if (this.italicAngle !== 0) {\n this.flags |= 1 << 6;\n }\n this.flags |= 1 << 5;\n if (!this.cmap.unicode) {\n throw new Error(\"No unicode cmap for font\");\n }\n };\n TTFFont.prototype.characterToGlyph = function(character) {\n var _ref;\n return (\n ((_ref = this.cmap.unicode) != null ? _ref.codeMap[character] : void 0) ||\n 0\n );\n };\n TTFFont.prototype.widthOfGlyph = function(glyph) {\n var scale;\n scale = 1000.0 / this.head.unitsPerEm;\n return this.hmtx.forGlyph(glyph).advance * scale;\n };\n TTFFont.prototype.widthOfString = function(string, size, charSpace) {\n var charCode, i, scale, width, _ref;\n string = \"\" + string;\n width = 0;\n for (\n i = 0, _ref = string.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n charCode = string.charCodeAt(i);\n width +=\n this.widthOfGlyph(this.characterToGlyph(charCode)) +\n charSpace * (1000 / size) || 0;\n }\n scale = size / 1000;\n return width * scale;\n };\n TTFFont.prototype.lineHeight = function(size, includeGap) {\n var gap;\n if (includeGap == null) {\n includeGap = false;\n }\n gap = includeGap ? this.lineGap : 0;\n return ((this.ascender + gap - this.decender) / 1000) * size;\n };\n return TTFFont;\n})();\n\n/************************************************************************************************/\n/* function : Data */\n/* comment : The ttf data decoded and stored in an array is read and written to the Data object.*/\n/************************************************************************************************/\nvar Data = (function() {\n function Data(data) {\n this.data = data != null ? data : [];\n this.pos = 0;\n this.length = this.data.length;\n }\n Data.prototype.readByte = function() {\n return this.data[this.pos++];\n };\n Data.prototype.writeByte = function(byte) {\n return (this.data[this.pos++] = byte);\n };\n Data.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.readByte() * 0x1000000;\n b2 = this.readByte() << 16;\n b3 = this.readByte() << 8;\n b4 = this.readByte();\n return b1 + b2 + b3 + b4;\n };\n Data.prototype.writeUInt32 = function(val) {\n this.writeByte((val >>> 24) & 0xff);\n this.writeByte((val >> 16) & 0xff);\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt32 = function() {\n var int;\n int = this.readUInt32();\n if (int >= 0x80000000) {\n return int - 0x100000000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt32 = function(val) {\n if (val < 0) {\n val += 0x100000000;\n }\n return this.writeUInt32(val);\n };\n Data.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.readByte() << 8;\n b2 = this.readByte();\n return b1 | b2;\n };\n Data.prototype.writeUInt16 = function(val) {\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt16 = function() {\n var int;\n int = this.readUInt16();\n if (int >= 0x8000) {\n return int - 0x10000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt16 = function(val) {\n if (val < 0) {\n val += 0x10000;\n }\n return this.writeUInt16(val);\n };\n Data.prototype.readString = function(length) {\n var i, ret;\n ret = [];\n for (\n i = 0;\n 0 <= length ? i < length : i > length;\n i = 0 <= length ? ++i : --i\n ) {\n ret[i] = String.fromCharCode(this.readByte());\n }\n return ret.join(\"\");\n };\n Data.prototype.writeString = function(val) {\n var i, _ref, _results;\n _results = [];\n for (\n i = 0, _ref = val.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n _results.push(this.writeByte(val.charCodeAt(i)));\n }\n return _results;\n };\n /*Data.prototype.stringAt = function (pos, length) {\n this.pos = pos;\n return this.readString(length);\n };*/\n Data.prototype.readShort = function() {\n return this.readInt16();\n };\n Data.prototype.writeShort = function(val) {\n return this.writeInt16(val);\n };\n Data.prototype.readLongLong = function() {\n var b1, b2, b3, b4, b5, b6, b7, b8;\n b1 = this.readByte();\n b2 = this.readByte();\n b3 = this.readByte();\n b4 = this.readByte();\n b5 = this.readByte();\n b6 = this.readByte();\n b7 = this.readByte();\n b8 = this.readByte();\n if (b1 & 0x80) {\n return (\n ((b1 ^ 0xff) * 0x100000000000000 +\n (b2 ^ 0xff) * 0x1000000000000 +\n (b3 ^ 0xff) * 0x10000000000 +\n (b4 ^ 0xff) * 0x100000000 +\n (b5 ^ 0xff) * 0x1000000 +\n (b6 ^ 0xff) * 0x10000 +\n (b7 ^ 0xff) * 0x100 +\n (b8 ^ 0xff) +\n 1) *\n -1\n );\n }\n return (\n b1 * 0x100000000000000 +\n b2 * 0x1000000000000 +\n b3 * 0x10000000000 +\n b4 * 0x100000000 +\n b5 * 0x1000000 +\n b6 * 0x10000 +\n b7 * 0x100 +\n b8\n );\n };\n Data.prototype.writeLongLong = function(val) {\n var high, low;\n high = Math.floor(val / 0x100000000);\n low = val & 0xffffffff;\n this.writeByte((high >> 24) & 0xff);\n this.writeByte((high >> 16) & 0xff);\n this.writeByte((high >> 8) & 0xff);\n this.writeByte(high & 0xff);\n this.writeByte((low >> 24) & 0xff);\n this.writeByte((low >> 16) & 0xff);\n this.writeByte((low >> 8) & 0xff);\n return this.writeByte(low & 0xff);\n };\n Data.prototype.readInt = function() {\n return this.readInt32();\n };\n Data.prototype.writeInt = function(val) {\n return this.writeInt32(val);\n };\n /*Data.prototype.slice = function (start, end) {\n return this.data.slice(start, end);\n };*/\n Data.prototype.read = function(bytes) {\n var buf, i;\n buf = [];\n for (\n i = 0;\n 0 <= bytes ? i < bytes : i > bytes;\n i = 0 <= bytes ? ++i : --i\n ) {\n buf.push(this.readByte());\n }\n return buf;\n };\n Data.prototype.write = function(bytes) {\n var byte, i, _len, _results;\n _results = [];\n for (i = 0, _len = bytes.length; i < _len; i++) {\n byte = bytes[i];\n _results.push(this.writeByte(byte));\n }\n return _results;\n };\n return Data;\n})();\n\nvar Directory = (function() {\n var checksum;\n\n /*****************************************************************************************************/\n /* function : Directory generator */\n /* comment : Initialize the offset, tag, length, and checksum for each table for the font to be used.*/\n /*****************************************************************************************************/\n function Directory(data) {\n var entry, i, _ref;\n this.scalarType = data.readInt();\n this.tableCount = data.readShort();\n this.searchRange = data.readShort();\n this.entrySelector = data.readShort();\n this.rangeShift = data.readShort();\n this.tables = {};\n for (\n i = 0, _ref = this.tableCount;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n entry = {\n tag: data.readString(4),\n checksum: data.readInt(),\n offset: data.readInt(),\n length: data.readInt()\n };\n this.tables[entry.tag] = entry;\n }\n }\n /********************************************************************************************************/\n /* function : encode */\n /* comment : It encodes and stores the font table object and information used for the directory object. */\n /********************************************************************************************************/\n Directory.prototype.encode = function(tables) {\n var adjustment,\n directory,\n directoryLength,\n entrySelector,\n headOffset,\n log2,\n offset,\n rangeShift,\n searchRange,\n sum,\n table,\n tableCount,\n tableData,\n tag;\n tableCount = Object.keys(tables).length;\n log2 = Math.log(2);\n searchRange = Math.floor(Math.log(tableCount) / log2) * 16;\n entrySelector = Math.floor(searchRange / log2);\n rangeShift = tableCount * 16 - searchRange;\n directory = new Data();\n directory.writeInt(this.scalarType);\n directory.writeShort(tableCount);\n directory.writeShort(searchRange);\n directory.writeShort(entrySelector);\n directory.writeShort(rangeShift);\n directoryLength = tableCount * 16;\n offset = directory.pos + directoryLength;\n headOffset = null;\n tableData = [];\n for (tag in tables) {\n table = tables[tag];\n directory.writeString(tag);\n directory.writeInt(checksum(table));\n directory.writeInt(offset);\n directory.writeInt(table.length);\n tableData = tableData.concat(table);\n if (tag === \"head\") {\n headOffset = offset;\n }\n offset += table.length;\n while (offset % 4) {\n tableData.push(0);\n offset++;\n }\n }\n directory.write(tableData);\n sum = checksum(directory.data);\n adjustment = 0xb1b0afba - sum;\n directory.pos = headOffset + 8;\n directory.writeUInt32(adjustment);\n return directory.data;\n };\n /***************************************************************/\n /* function : checksum */\n /* comment : Duplicate the table for the tag. */\n /***************************************************************/\n checksum = function(data) {\n var i, sum, tmp, _ref;\n data = __slice.call(data);\n while (data.length % 4) {\n data.push(0);\n }\n tmp = new Data(data);\n sum = 0;\n for (i = 0, _ref = data.length; i < _ref; i = i += 4) {\n sum += tmp.readUInt32();\n }\n return sum & 0xffffffff;\n };\n return Directory;\n})();\n\nvar Table,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) {\n for (var key in parent) {\n if (__hasProp.call(parent, key)) child[key] = parent[key];\n }\n\n function ctor() {\n this.constructor = child;\n }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n child.__super__ = parent.prototype;\n return child;\n };\n\n/***************************************************************/\n/* function : Table */\n/* comment : Save info for each table, and parse the table. */\n/***************************************************************/\nTable = (function() {\n function Table(file) {\n var info;\n this.file = file;\n info = this.file.directory.tables[this.tag];\n this.exists = !!info;\n if (info) {\n (this.offset = info.offset), (this.length = info.length);\n this.parse(this.file.contents);\n }\n }\n Table.prototype.parse = function() {};\n Table.prototype.encode = function() {};\n Table.prototype.raw = function() {\n if (!this.exists) {\n return null;\n }\n this.file.contents.pos = this.offset;\n return this.file.contents.read(this.length);\n };\n return Table;\n})();\n\nvar HeadTable = (function(_super) {\n __extends(HeadTable, _super);\n\n function HeadTable() {\n return HeadTable.__super__.constructor.apply(this, arguments);\n }\n HeadTable.prototype.tag = \"head\";\n HeadTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.revision = data.readInt();\n this.checkSumAdjustment = data.readInt();\n this.magicNumber = data.readInt();\n this.flags = data.readShort();\n this.unitsPerEm = data.readShort();\n this.created = data.readLongLong();\n this.modified = data.readLongLong();\n this.xMin = data.readShort();\n this.yMin = data.readShort();\n this.xMax = data.readShort();\n this.yMax = data.readShort();\n this.macStyle = data.readShort();\n this.lowestRecPPEM = data.readShort();\n this.fontDirectionHint = data.readShort();\n this.indexToLocFormat = data.readShort();\n return (this.glyphDataFormat = data.readShort());\n };\n HeadTable.prototype.encode = function(indexToLocFormat) {\n var table;\n table = new Data();\n table.writeInt(this.version);\n table.writeInt(this.revision);\n table.writeInt(this.checkSumAdjustment);\n table.writeInt(this.magicNumber);\n table.writeShort(this.flags);\n table.writeShort(this.unitsPerEm);\n table.writeLongLong(this.created);\n table.writeLongLong(this.modified);\n table.writeShort(this.xMin);\n table.writeShort(this.yMin);\n table.writeShort(this.xMax);\n table.writeShort(this.yMax);\n table.writeShort(this.macStyle);\n table.writeShort(this.lowestRecPPEM);\n table.writeShort(this.fontDirectionHint);\n table.writeShort(indexToLocFormat);\n table.writeShort(this.glyphDataFormat);\n return table.data;\n };\n return HeadTable;\n})(Table);\n\n/************************************************************************************/\n/* function : CmapEntry */\n/* comment : Cmap Initializes and encodes object information (required by pdf spec).*/\n/************************************************************************************/\nvar CmapEntry = (function() {\n function CmapEntry(data, offset) {\n var code,\n count,\n endCode,\n glyphId,\n glyphIds,\n i,\n idDelta,\n idRangeOffset,\n index,\n saveOffset,\n segCount,\n segCountX2,\n start,\n startCode,\n tail,\n _j,\n _k,\n _len;\n this.platformID = data.readUInt16();\n this.encodingID = data.readShort();\n this.offset = offset + data.readInt();\n saveOffset = data.pos;\n data.pos = this.offset;\n this.format = data.readUInt16();\n this.length = data.readUInt16();\n this.language = data.readUInt16();\n this.isUnicode =\n (this.platformID === 3 && this.encodingID === 1 && this.format === 4) ||\n (this.platformID === 0 && this.format === 4);\n this.codeMap = {};\n switch (this.format) {\n case 0:\n for (i = 0; i < 256; ++i) {\n this.codeMap[i] = data.readByte();\n }\n break;\n case 4:\n segCountX2 = data.readUInt16();\n segCount = segCountX2 / 2;\n data.pos += 6;\n endCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n data.pos += 2;\n startCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idDelta = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idRangeOffset = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n count = (this.length - data.pos + this.offset) / 2;\n glyphIds = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= count ? _j < count : _j > count;\n i = 0 <= count ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n for (i = _j = 0, _len = endCode.length; _j < _len; i = ++_j) {\n tail = endCode[i];\n start = startCode[i];\n for (\n code = _k = start;\n start <= tail ? _k <= tail : _k >= tail;\n code = start <= tail ? ++_k : --_k\n ) {\n if (idRangeOffset[i] === 0) {\n glyphId = code + idDelta[i];\n } else {\n index = idRangeOffset[i] / 2 + (code - start) - (segCount - i);\n glyphId = glyphIds[index] || 0;\n if (glyphId !== 0) {\n glyphId += idDelta[i];\n }\n }\n this.codeMap[code] = glyphId & 0xffff;\n }\n }\n }\n data.pos = saveOffset;\n }\n CmapEntry.encode = function(charmap, encoding) {\n var charMap,\n code,\n codeMap,\n codes,\n delta,\n deltas,\n diff,\n endCode,\n endCodes,\n entrySelector,\n glyphIDs,\n i,\n id,\n indexes,\n last,\n map,\n nextID,\n offset,\n old,\n rangeOffsets,\n rangeShift,\n searchRange,\n segCount,\n segCountX2,\n startCode,\n startCodes,\n startGlyph,\n subtable,\n _i,\n _j,\n _k,\n _l,\n _len,\n _len1,\n _len2,\n _len3,\n _len4,\n _len5,\n _len6,\n _len7,\n _m,\n _n,\n _name,\n _o,\n _p,\n _q;\n subtable = new Data();\n codes = Object.keys(charmap).sort(function(a, b) {\n return a - b;\n });\n switch (encoding) {\n case \"macroman\":\n id = 0;\n indexes = (function() {\n var _results = [];\n for (i = 0; i < 256; ++i) {\n _results.push(0);\n }\n return _results;\n })();\n map = {\n 0: 0\n };\n codeMap = {};\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (map[(_name = charmap[code])] == null) {\n map[_name] = ++id;\n }\n codeMap[code] = {\n old: charmap[code],\n new: map[charmap[code]]\n };\n indexes[code] = map[charmap[code]];\n }\n subtable.writeUInt16(1);\n subtable.writeUInt16(0);\n subtable.writeUInt32(12);\n subtable.writeUInt16(0);\n subtable.writeUInt16(262);\n subtable.writeUInt16(0);\n subtable.write(indexes);\n return {\n charMap: codeMap,\n subtable: subtable.data,\n maxGlyphID: id + 1\n };\n case \"unicode\":\n startCodes = [];\n endCodes = [];\n nextID = 0;\n map = {};\n charMap = {};\n last = diff = null;\n for (_j = 0, _len1 = codes.length; _j < _len1; _j++) {\n code = codes[_j];\n old = charmap[code];\n if (map[old] == null) {\n map[old] = ++nextID;\n }\n charMap[code] = {\n old: old,\n new: map[old]\n };\n delta = map[old] - code;\n if (last == null || delta !== diff) {\n if (last) {\n endCodes.push(last);\n }\n startCodes.push(code);\n diff = delta;\n }\n last = code;\n }\n if (last) {\n endCodes.push(last);\n }\n endCodes.push(0xffff);\n startCodes.push(0xffff);\n segCount = startCodes.length;\n segCountX2 = segCount * 2;\n searchRange = 2 * Math.pow(Math.log(segCount) / Math.LN2, 2);\n entrySelector = Math.log(searchRange / 2) / Math.LN2;\n rangeShift = 2 * segCount - searchRange;\n deltas = [];\n rangeOffsets = [];\n glyphIDs = [];\n for (i = _k = 0, _len2 = startCodes.length; _k < _len2; i = ++_k) {\n startCode = startCodes[i];\n endCode = endCodes[i];\n if (startCode === 0xffff) {\n deltas.push(0);\n rangeOffsets.push(0);\n break;\n }\n startGlyph = charMap[startCode][\"new\"];\n if (startCode - startGlyph >= 0x8000) {\n deltas.push(0);\n rangeOffsets.push(2 * (glyphIDs.length + segCount - i));\n for (\n code = _l = startCode;\n startCode <= endCode ? _l <= endCode : _l >= endCode;\n code = startCode <= endCode ? ++_l : --_l\n ) {\n glyphIDs.push(charMap[code][\"new\"]);\n }\n } else {\n deltas.push(startGlyph - startCode);\n rangeOffsets.push(0);\n }\n }\n subtable.writeUInt16(3);\n subtable.writeUInt16(1);\n subtable.writeUInt32(12);\n subtable.writeUInt16(4);\n subtable.writeUInt16(16 + segCount * 8 + glyphIDs.length * 2);\n subtable.writeUInt16(0);\n subtable.writeUInt16(segCountX2);\n subtable.writeUInt16(searchRange);\n subtable.writeUInt16(entrySelector);\n subtable.writeUInt16(rangeShift);\n for (_m = 0, _len3 = endCodes.length; _m < _len3; _m++) {\n code = endCodes[_m];\n subtable.writeUInt16(code);\n }\n subtable.writeUInt16(0);\n for (_n = 0, _len4 = startCodes.length; _n < _len4; _n++) {\n code = startCodes[_n];\n subtable.writeUInt16(code);\n }\n for (_o = 0, _len5 = deltas.length; _o < _len5; _o++) {\n delta = deltas[_o];\n subtable.writeUInt16(delta);\n }\n for (_p = 0, _len6 = rangeOffsets.length; _p < _len6; _p++) {\n offset = rangeOffsets[_p];\n subtable.writeUInt16(offset);\n }\n for (_q = 0, _len7 = glyphIDs.length; _q < _len7; _q++) {\n id = glyphIDs[_q];\n subtable.writeUInt16(id);\n }\n return {\n charMap: charMap,\n subtable: subtable.data,\n maxGlyphID: nextID + 1\n };\n }\n };\n return CmapEntry;\n})();\n\nvar CmapTable = (function(_super) {\n __extends(CmapTable, _super);\n\n function CmapTable() {\n return CmapTable.__super__.constructor.apply(this, arguments);\n }\n CmapTable.prototype.tag = \"cmap\";\n CmapTable.prototype.parse = function(data) {\n var entry, i, tableCount;\n data.pos = this.offset;\n this.version = data.readUInt16();\n tableCount = data.readUInt16();\n this.tables = [];\n this.unicode = null;\n for (\n i = 0;\n 0 <= tableCount ? i < tableCount : i > tableCount;\n i = 0 <= tableCount ? ++i : --i\n ) {\n entry = new CmapEntry(data, this.offset);\n this.tables.push(entry);\n if (entry.isUnicode) {\n if (this.unicode == null) {\n this.unicode = entry;\n }\n }\n }\n return true;\n };\n /*************************************************************************/\n /* function : encode */\n /* comment : Encode the cmap table corresponding to the input character. */\n /*************************************************************************/\n CmapTable.encode = function(charmap, encoding) {\n var result, table;\n if (encoding == null) {\n encoding = \"macroman\";\n }\n result = CmapEntry.encode(charmap, encoding);\n table = new Data();\n table.writeUInt16(0);\n table.writeUInt16(1);\n result.table = table.data.concat(result.subtable);\n return result;\n };\n return CmapTable;\n})(Table);\n\nvar HheaTable = (function(_super) {\n __extends(HheaTable, _super);\n\n function HheaTable() {\n return HheaTable.__super__.constructor.apply(this, arguments);\n }\n HheaTable.prototype.tag = \"hhea\";\n HheaTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.ascender = data.readShort();\n this.decender = data.readShort();\n this.lineGap = data.readShort();\n this.advanceWidthMax = data.readShort();\n this.minLeftSideBearing = data.readShort();\n this.minRightSideBearing = data.readShort();\n this.xMaxExtent = data.readShort();\n this.caretSlopeRise = data.readShort();\n this.caretSlopeRun = data.readShort();\n this.caretOffset = data.readShort();\n data.pos += 4 * 2;\n this.metricDataFormat = data.readShort();\n return (this.numberOfMetrics = data.readUInt16());\n };\n /*HheaTable.prototype.encode = function (ids) {\n var i, table, _i, _ref;\n table = new Data;\n table.writeInt(this.version);\n table.writeShort(this.ascender);\n table.writeShort(this.decender);\n table.writeShort(this.lineGap);\n table.writeShort(this.advanceWidthMax);\n table.writeShort(this.minLeftSideBearing);\n table.writeShort(this.minRightSideBearing);\n table.writeShort(this.xMaxExtent);\n table.writeShort(this.caretSlopeRise);\n table.writeShort(this.caretSlopeRun);\n table.writeShort(this.caretOffset);\n for (i = _i = 0, _ref = 4 * 2; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n table.writeByte(0);\n }\n table.writeShort(this.metricDataFormat);\n table.writeUInt16(ids.length);\n return table.data;\n };*/\n return HheaTable;\n})(Table);\n\nvar OS2Table = (function(_super) {\n __extends(OS2Table, _super);\n\n function OS2Table() {\n return OS2Table.__super__.constructor.apply(this, arguments);\n }\n OS2Table.prototype.tag = \"OS/2\";\n OS2Table.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readUInt16();\n this.averageCharWidth = data.readShort();\n this.weightClass = data.readUInt16();\n this.widthClass = data.readUInt16();\n this.type = data.readShort();\n this.ySubscriptXSize = data.readShort();\n this.ySubscriptYSize = data.readShort();\n this.ySubscriptXOffset = data.readShort();\n this.ySubscriptYOffset = data.readShort();\n this.ySuperscriptXSize = data.readShort();\n this.ySuperscriptYSize = data.readShort();\n this.ySuperscriptXOffset = data.readShort();\n this.ySuperscriptYOffset = data.readShort();\n this.yStrikeoutSize = data.readShort();\n this.yStrikeoutPosition = data.readShort();\n this.familyClass = data.readShort();\n this.panose = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 10; ++i) {\n _results.push(data.readByte());\n }\n return _results;\n })();\n this.charRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 4; ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n this.vendorID = data.readString(4);\n this.selection = data.readShort();\n this.firstCharIndex = data.readShort();\n this.lastCharIndex = data.readShort();\n if (this.version > 0) {\n this.ascent = data.readShort();\n this.descent = data.readShort();\n this.lineGap = data.readShort();\n this.winAscent = data.readShort();\n this.winDescent = data.readShort();\n this.codePageRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 2; i = ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n if (this.version > 1) {\n this.xHeight = data.readShort();\n this.capHeight = data.readShort();\n this.defaultChar = data.readShort();\n this.breakChar = data.readShort();\n return (this.maxContext = data.readShort());\n }\n }\n };\n /*OS2Table.prototype.encode = function () {\n return this.raw();\n };*/\n return OS2Table;\n})(Table);\n\nvar PostTable = (function(_super) {\n var POSTSCRIPT_GLYPHS;\n __extends(PostTable, _super);\n\n function PostTable() {\n return PostTable.__super__.constructor.apply(this, arguments);\n }\n PostTable.prototype.tag = \"post\";\n PostTable.prototype.parse = function(data) {\n var length, numberOfGlyphs, _results;\n data.pos = this.offset;\n this.format = data.readInt();\n this.italicAngle = data.readInt();\n this.underlinePosition = data.readShort();\n this.underlineThickness = data.readShort();\n this.isFixedPitch = data.readInt();\n this.minMemType42 = data.readInt();\n this.maxMemType42 = data.readInt();\n this.minMemType1 = data.readInt();\n this.maxMemType1 = data.readInt();\n switch (this.format) {\n case 0x00010000:\n break;\n case 0x00020000:\n numberOfGlyphs = data.readUInt16();\n this.glyphNameIndex = [];\n var i;\n for (\n i = 0;\n 0 <= numberOfGlyphs ? i < numberOfGlyphs : i > numberOfGlyphs;\n i = 0 <= numberOfGlyphs ? ++i : --i\n ) {\n this.glyphNameIndex.push(data.readUInt16());\n }\n this.names = [];\n _results = [];\n while (data.pos < this.offset + this.length) {\n length = data.readByte();\n _results.push(this.names.push(data.readString(length)));\n }\n return _results;\n case 0x00025000:\n numberOfGlyphs = data.readUInt16();\n return (this.offsets = data.read(numberOfGlyphs));\n case 0x00030000:\n break;\n case 0x00040000:\n return (this.map = function() {\n var _j, _ref, _results1;\n _results1 = [];\n for (\n i = _j = 0, _ref = this.file.maxp.numGlyphs;\n 0 <= _ref ? _j < _ref : _j > _ref;\n i = 0 <= _ref ? ++_j : --_j\n ) {\n _results1.push(data.readUInt32());\n }\n return _results1;\n }.call(this));\n }\n };\n /*PostTable.prototype.glyphFor = function (code) {\n var index;\n switch (this.format) {\n case 0x00010000:\n return POSTSCRIPT_GLYPHS[code] || '.notdef';\n case 0x00020000:\n index = this.glyphNameIndex[code];\n if (index <= 257) {\n return POSTSCRIPT_GLYPHS[index];\n }\n else {\n return this.names[index - 258] || '.notdef';\n }\n break;\n case 0x00025000:\n return POSTSCRIPT_GLYPHS[code + this.offsets[code]] || '.notdef';\n case 0x00030000:\n return '.notdef';\n case 0x00040000:\n return this.map[code] || 0xFFFF;\n }\n };*/\n /*PostTable.prototype.encode = function (mapping) {\n var id, index, indexes, position, post, raw, string, strings, table, _i, _j, _k, _len, _len1, _len2;\n if (!this.exists) {\n return null;\n }\n raw = this.raw();\n if (this.format === 0x00030000) {\n return raw;\n }\n table = new Data(raw.slice(0, 32));\n table.writeUInt32(0x00020000);\n table.pos = 32;\n indexes = [];\n strings = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n post = this.glyphFor(id);\n position = POSTSCRIPT_GLYPHS.indexOf(post);\n if (position !== -1) {\n indexes.push(position);\n }\n else {\n indexes.push(257 + strings.length);\n strings.push(post);\n }\n }\n table.writeUInt16(Object.keys(mapping).length);\n for (_j = 0, _len1 = indexes.length; _j < _len1; _j++) {\n index = indexes[_j];\n table.writeUInt16(index);\n }\n for (_k = 0, _len2 = strings.length; _k < _len2; _k++) {\n string = strings[_k];\n table.writeByte(string.length);\n table.writeString(string);\n }\n return table.data;\n };*/\n POSTSCRIPT_GLYPHS = \".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent\\nampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash\\nzero one two three four five six seven eight nine colon semicolon less equal greater\\nquestion at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\\nbracketleft backslash bracketright asciicircum underscore grave\\na b c d e f g h i j k l m n o p q r s t u v w x y z\\nbraceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis\\nUdieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave\\necircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve\\nocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent\\nsterling section bullet paragraph germandbls registered copyright trademark acute\\ndieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu\\npartialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash\\nquestiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft\\nguillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash\\nquotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis\\nfraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered\\nquotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis\\nEgrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute\\nUcircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla\\nhungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth\\neth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior\\nonehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla\\nCacute cacute Ccaron ccaron dcroat\".split(\n /\\s+/g\n );\n return PostTable;\n})(Table);\n\n/*********************************************************************************************************/\n/* function : NameEntry */\n/* comment : Store copyright information, platformID, encodingID, and languageID in the NameEntry object.*/\n/*********************************************************************************************************/\nvar NameEntry = (function() {\n function NameEntry(raw, entry) {\n this.raw = raw;\n this.length = raw.length;\n this.platformID = entry.platformID;\n this.encodingID = entry.encodingID;\n this.languageID = entry.languageID;\n }\n return NameEntry;\n})();\n\nvar NameTable = (function(_super) {\n var subsetTag;\n __extends(NameTable, _super);\n\n function NameTable() {\n return NameTable.__super__.constructor.apply(this, arguments);\n }\n NameTable.prototype.tag = \"name\";\n NameTable.prototype.parse = function(data) {\n var count,\n entries,\n entry,\n i,\n name,\n stringOffset,\n strings,\n text,\n _j,\n _len,\n _name;\n data.pos = this.offset;\n data.readShort(); //format\n count = data.readShort();\n stringOffset = data.readShort();\n entries = [];\n for (\n i = 0;\n 0 <= count ? i < count : i > count;\n i = 0 <= count ? ++i : --i\n ) {\n entries.push({\n platformID: data.readShort(),\n encodingID: data.readShort(),\n languageID: data.readShort(),\n nameID: data.readShort(),\n length: data.readShort(),\n offset: this.offset + stringOffset + data.readShort()\n });\n }\n strings = {};\n for (i = _j = 0, _len = entries.length; _j < _len; i = ++_j) {\n entry = entries[i];\n data.pos = entry.offset;\n text = data.readString(entry.length);\n name = new NameEntry(text, entry);\n if (strings[(_name = entry.nameID)] == null) {\n strings[_name] = [];\n }\n strings[entry.nameID].push(name);\n }\n this.strings = strings;\n this.copyright = strings[0];\n this.fontFamily = strings[1];\n this.fontSubfamily = strings[2];\n this.uniqueSubfamily = strings[3];\n this.fontName = strings[4];\n this.version = strings[5];\n try {\n this.postscriptName = strings[6][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n } catch (e) {\n this.postscriptName = strings[4][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n }\n this.trademark = strings[7];\n this.manufacturer = strings[8];\n this.designer = strings[9];\n this.description = strings[10];\n this.vendorUrl = strings[11];\n this.designerUrl = strings[12];\n this.license = strings[13];\n this.licenseUrl = strings[14];\n this.preferredFamily = strings[15];\n this.preferredSubfamily = strings[17];\n this.compatibleFull = strings[18];\n return (this.sampleText = strings[19]);\n };\n subsetTag = \"AAAAAA\";\n /*NameTable.prototype.encode = function () {\n var id, list, nameID, nameTable, postscriptName, strCount, strTable, string, strings, table, val, _i, _len, _ref;\n strings = {};\n _ref = this.strings;\n for (id in _ref) {\n val = _ref[id];\n strings[id] = val;\n }\n postscriptName = new NameEntry(\"\" + subsetTag + \"+\" + this.postscriptName, {\n platformID: 1\n , encodingID: 0\n , languageID: 0\n });\n strings[6] = [postscriptName];\n subsetTag = successorOf(subsetTag);\n strCount = 0;\n for (id in strings) {\n list = strings[id];\n if (list != null) {\n strCount += list.length;\n }\n }\n table = new Data;\n strTable = new Data;\n table.writeShort(0);\n table.writeShort(strCount);\n table.writeShort(6 + 12 * strCount);\n for (nameID in strings) {\n list = strings[nameID];\n if (list != null) {\n for (_i = 0, _len = list.length; _i < _len; _i++) {\n string = list[_i];\n table.writeShort(string.platformID);\n table.writeShort(string.encodingID);\n table.writeShort(string.languageID);\n table.writeShort(nameID);\n table.writeShort(string.length);\n table.writeShort(strTable.pos);\n strTable.writeString(string.raw);\n }\n }\n }\n return nameTable = {\n postscriptName: postscriptName.raw\n , table: table.data.concat(strTable.data)\n };\n };*/\n return NameTable;\n})(Table);\n\nvar MaxpTable = (function(_super) {\n __extends(MaxpTable, _super);\n\n function MaxpTable() {\n return MaxpTable.__super__.constructor.apply(this, arguments);\n }\n MaxpTable.prototype.tag = \"maxp\";\n MaxpTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.numGlyphs = data.readUInt16();\n this.maxPoints = data.readUInt16();\n this.maxContours = data.readUInt16();\n this.maxCompositePoints = data.readUInt16();\n this.maxComponentContours = data.readUInt16();\n this.maxZones = data.readUInt16();\n this.maxTwilightPoints = data.readUInt16();\n this.maxStorage = data.readUInt16();\n this.maxFunctionDefs = data.readUInt16();\n this.maxInstructionDefs = data.readUInt16();\n this.maxStackElements = data.readUInt16();\n this.maxSizeOfInstructions = data.readUInt16();\n this.maxComponentElements = data.readUInt16();\n return (this.maxComponentDepth = data.readUInt16());\n };\n /*MaxpTable.prototype.encode = function (ids) {\n var table;\n table = new Data;\n table.writeInt(this.version);\n table.writeUInt16(ids.length);\n table.writeUInt16(this.maxPoints);\n table.writeUInt16(this.maxContours);\n table.writeUInt16(this.maxCompositePoints);\n table.writeUInt16(this.maxComponentContours);\n table.writeUInt16(this.maxZones);\n table.writeUInt16(this.maxTwilightPoints);\n table.writeUInt16(this.maxStorage);\n table.writeUInt16(this.maxFunctionDefs);\n table.writeUInt16(this.maxInstructionDefs);\n table.writeUInt16(this.maxStackElements);\n table.writeUInt16(this.maxSizeOfInstructions);\n table.writeUInt16(this.maxComponentElements);\n table.writeUInt16(this.maxComponentDepth);\n return table.data;\n };*/\n return MaxpTable;\n})(Table);\n\nvar HmtxTable = (function(_super) {\n __extends(HmtxTable, _super);\n\n function HmtxTable() {\n return HmtxTable.__super__.constructor.apply(this, arguments);\n }\n HmtxTable.prototype.tag = \"hmtx\";\n HmtxTable.prototype.parse = function(data) {\n var i, last, lsbCount, m, _j, _ref, _results;\n data.pos = this.offset;\n this.metrics = [];\n for (\n i = 0, _ref = this.file.hhea.numberOfMetrics;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n this.metrics.push({\n advance: data.readUInt16(),\n lsb: data.readInt16()\n });\n }\n lsbCount = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics;\n this.leftSideBearings = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(data.readInt16());\n }\n return _results;\n })();\n this.widths = function() {\n var _j, _len, _ref1, _results;\n _ref1 = this.metrics;\n _results = [];\n for (_j = 0, _len = _ref1.length; _j < _len; _j++) {\n m = _ref1[_j];\n _results.push(m.advance);\n }\n return _results;\n }.call(this);\n last = this.widths[this.widths.length - 1];\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(this.widths.push(last));\n }\n return _results;\n };\n /***************************************************************/\n /* function : forGlyph */\n /* comment : Returns the advance width and lsb for this glyph. */\n /***************************************************************/\n HmtxTable.prototype.forGlyph = function(id) {\n if (id in this.metrics) {\n return this.metrics[id];\n }\n return {\n advance: this.metrics[this.metrics.length - 1].advance,\n lsb: this.leftSideBearings[id - this.metrics.length]\n };\n };\n /*HmtxTable.prototype.encode = function (mapping) {\n var id, metric, table, _i, _len;\n table = new Data;\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n metric = this.forGlyph(id);\n table.writeUInt16(metric.advance);\n table.writeUInt16(metric.lsb);\n }\n return table.data;\n };*/\n return HmtxTable;\n})(Table);\n\nvar __slice = [].slice;\n\nvar GlyfTable = (function(_super) {\n __extends(GlyfTable, _super);\n\n function GlyfTable() {\n return GlyfTable.__super__.constructor.apply(this, arguments);\n }\n GlyfTable.prototype.tag = \"glyf\";\n GlyfTable.prototype.parse = function() {\n return (this.cache = {});\n };\n GlyfTable.prototype.glyphFor = function(id) {\n var data,\n index,\n length,\n loca,\n numberOfContours,\n raw,\n xMax,\n xMin,\n yMax,\n yMin;\n if (id in this.cache) {\n return this.cache[id];\n }\n loca = this.file.loca;\n data = this.file.contents;\n index = loca.indexOf(id);\n length = loca.lengthOf(id);\n if (length === 0) {\n return (this.cache[id] = null);\n }\n data.pos = this.offset + index;\n raw = new Data(data.read(length));\n numberOfContours = raw.readShort();\n xMin = raw.readShort();\n yMin = raw.readShort();\n xMax = raw.readShort();\n yMax = raw.readShort();\n if (numberOfContours === -1) {\n this.cache[id] = new CompoundGlyph(raw, xMin, yMin, xMax, yMax);\n } else {\n this.cache[id] = new SimpleGlyph(\n raw,\n numberOfContours,\n xMin,\n yMin,\n xMax,\n yMax\n );\n }\n return this.cache[id];\n };\n GlyfTable.prototype.encode = function(glyphs, mapping, old2new) {\n var glyph, id, offsets, table, _i, _len;\n table = [];\n offsets = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n glyph = glyphs[id];\n offsets.push(table.length);\n if (glyph) {\n table = table.concat(glyph.encode(old2new));\n }\n }\n offsets.push(table.length);\n return {\n table: table,\n offsets: offsets\n };\n };\n return GlyfTable;\n})(Table);\n\nvar SimpleGlyph = (function() {\n /**************************************************************************/\n /* function : SimpleGlyph */\n /* comment : Stores raw, xMin, yMin, xMax, and yMax values for this glyph.*/\n /**************************************************************************/\n function SimpleGlyph(raw, numberOfContours, xMin, yMin, xMax, yMax) {\n this.raw = raw;\n this.numberOfContours = numberOfContours;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = false;\n }\n SimpleGlyph.prototype.encode = function() {\n return this.raw.data;\n };\n return SimpleGlyph;\n})();\n\nvar CompoundGlyph = (function() {\n var ARG_1_AND_2_ARE_WORDS,\n MORE_COMPONENTS,\n WE_HAVE_AN_X_AND_Y_SCALE,\n WE_HAVE_A_SCALE,\n WE_HAVE_A_TWO_BY_TWO,\n WE_HAVE_INSTRUCTIONS;\n ARG_1_AND_2_ARE_WORDS = 0x0001;\n WE_HAVE_A_SCALE = 0x0008;\n MORE_COMPONENTS = 0x0020;\n WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;\n WE_HAVE_A_TWO_BY_TWO = 0x0080;\n WE_HAVE_INSTRUCTIONS = 0x0100;\n\n /********************************************************************************************************************/\n /* function : CompoundGlypg generator */\n /* comment : It stores raw, xMin, yMin, xMax, yMax, glyph id, and glyph offset for the corresponding compound glyph.*/\n /********************************************************************************************************************/\n function CompoundGlyph(raw, xMin, yMin, xMax, yMax) {\n var data, flags;\n this.raw = raw;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = true;\n this.glyphIDs = [];\n this.glyphOffsets = [];\n data = this.raw;\n while (true) {\n flags = data.readShort();\n this.glyphOffsets.push(data.pos);\n this.glyphIDs.push(data.readUInt16());\n if (!(flags & MORE_COMPONENTS)) {\n break;\n }\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n data.pos += 4;\n } else {\n data.pos += 2;\n }\n if (flags & WE_HAVE_A_TWO_BY_TWO) {\n data.pos += 8;\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n data.pos += 4;\n } else if (flags & WE_HAVE_A_SCALE) {\n data.pos += 2;\n }\n }\n }\n /****************************************************************************************************************/\n /* function : CompoundGlypg encode */\n /* comment : After creating a table for the characters you typed, you call directory.encode to encode the table.*/\n /****************************************************************************************************************/\n CompoundGlyph.prototype.encode = function() {\n var i, result, _len, _ref;\n result = new Data(__slice.call(this.raw.data));\n _ref = this.glyphIDs;\n for (i = 0, _len = _ref.length; i < _len; ++i) {\n result.pos = this.glyphOffsets[i];\n }\n return result.data;\n };\n return CompoundGlyph;\n})();\n\nvar LocaTable = (function(_super) {\n __extends(LocaTable, _super);\n\n function LocaTable() {\n return LocaTable.__super__.constructor.apply(this, arguments);\n }\n LocaTable.prototype.tag = \"loca\";\n LocaTable.prototype.parse = function(data) {\n var format, i;\n data.pos = this.offset;\n format = this.file.head.indexToLocFormat;\n if (format === 0) {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 2) {\n _results.push(data.readUInt16() * 2);\n }\n return _results;\n }.call(this));\n } else {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 4) {\n _results.push(data.readUInt32());\n }\n return _results;\n }.call(this));\n }\n };\n LocaTable.prototype.indexOf = function(id) {\n return this.offsets[id];\n };\n LocaTable.prototype.lengthOf = function(id) {\n return this.offsets[id + 1] - this.offsets[id];\n };\n LocaTable.prototype.encode = function(offsets, activeGlyphs) {\n var LocaTable = new Uint32Array(this.offsets.length);\n var glyfPtr = 0;\n var listGlyf = 0;\n for (var k = 0; k < LocaTable.length; ++k) {\n LocaTable[k] = glyfPtr;\n if (listGlyf < activeGlyphs.length && activeGlyphs[listGlyf] == k) {\n ++listGlyf;\n LocaTable[k] = glyfPtr;\n var start = this.offsets[k];\n var len = this.offsets[k + 1] - start;\n if (len > 0) {\n glyfPtr += len;\n }\n }\n }\n var newLocaTable = new Array(LocaTable.length * 4);\n for (var j = 0; j < LocaTable.length; ++j) {\n newLocaTable[4 * j + 3] = LocaTable[j] & 0x000000ff;\n newLocaTable[4 * j + 2] = (LocaTable[j] & 0x0000ff00) >> 8;\n newLocaTable[4 * j + 1] = (LocaTable[j] & 0x00ff0000) >> 16;\n newLocaTable[4 * j] = (LocaTable[j] & 0xff000000) >> 24;\n }\n return newLocaTable;\n };\n return LocaTable;\n})(Table);\n\n/************************************************************************************/\n/* function : invert */\n/* comment : Change the object's (key: value) to create an object with (value: key).*/\n/************************************************************************************/\nvar invert = function(object) {\n var key, ret, val;\n ret = {};\n for (key in object) {\n val = object[key];\n ret[val] = key;\n }\n return ret;\n};\n\n/*var successorOf = function (input) {\n var added, alphabet, carry, i, index, isUpperCase, last, length, next, result;\n alphabet = 'abcdefghijklmnopqrstuvwxyz';\n length = alphabet.length;\n result = input;\n i = input.length;\n while (i >= 0) {\n last = input.charAt(--i);\n if (isNaN(last)) {\n index = alphabet.indexOf(last.toLowerCase());\n if (index === -1) {\n next = last;\n carry = true;\n }\n else {\n next = alphabet.charAt((index + 1) % length);\n isUpperCase = last === last.toUpperCase();\n if (isUpperCase) {\n next = next.toUpperCase();\n }\n carry = index + 1 >= length;\n if (carry && i === 0) {\n added = isUpperCase ? 'A' : 'a';\n result = added + next + result.slice(1);\n break;\n }\n }\n }\n else {\n next = +last + 1;\n carry = next > 9;\n if (carry) {\n next = 0;\n }\n if (carry && i === 0) {\n result = '1' + next + result.slice(1);\n break;\n }\n }\n result = result.slice(0, i) + next + result.slice(i + 1);\n if (!carry) {\n break;\n }\n }\n return result;\n };*/\n\nvar Subset = (function() {\n function Subset(font) {\n this.font = font;\n this.subset = {};\n this.unicodes = {};\n this.next = 33;\n }\n /*Subset.prototype.use = function (character) {\n var i, _i, _ref;\n if (typeof character === 'string') {\n for (i = _i = 0, _ref = character.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n this.use(character.charCodeAt(i));\n }\n return;\n }\n if (!this.unicodes[character]) {\n this.subset[this.next] = character;\n return this.unicodes[character] = this.next++;\n }\n };*/\n /*Subset.prototype.encodeText = function (text) {\n var char, i, string, _i, _ref;\n string = '';\n for (i = _i = 0, _ref = text.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n char = this.unicodes[text.charCodeAt(i)];\n string += String.fromCharCode(char);\n }\n return string;\n };*/\n /***************************************************************/\n /* function : generateCmap */\n /* comment : Returns the unicode cmap for this font. */\n /***************************************************************/\n Subset.prototype.generateCmap = function() {\n var mapping, roman, unicode, unicodeCmap, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n mapping = {};\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n mapping[roman] = unicodeCmap[unicode];\n }\n return mapping;\n };\n /*Subset.prototype.glyphIDs = function () {\n var ret, roman, unicode, unicodeCmap, val, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n ret = [0];\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n val = unicodeCmap[unicode];\n if ((val != null) && __indexOf.call(ret, val) < 0) {\n ret.push(val);\n }\n }\n return ret.sort();\n };*/\n /******************************************************************/\n /* function : glyphsFor */\n /* comment : Returns simple glyph objects for the input character.*/\n /******************************************************************/\n Subset.prototype.glyphsFor = function(glyphIDs) {\n var additionalIDs, glyph, glyphs, id, _i, _len, _ref;\n glyphs = {};\n for (_i = 0, _len = glyphIDs.length; _i < _len; _i++) {\n id = glyphIDs[_i];\n glyphs[id] = this.font.glyf.glyphFor(id);\n }\n additionalIDs = [];\n for (id in glyphs) {\n glyph = glyphs[id];\n if (glyph != null ? glyph.compound : void 0) {\n additionalIDs.push.apply(additionalIDs, glyph.glyphIDs);\n }\n }\n if (additionalIDs.length > 0) {\n _ref = this.glyphsFor(additionalIDs);\n for (id in _ref) {\n glyph = _ref[id];\n glyphs[id] = glyph;\n }\n }\n return glyphs;\n };\n /***************************************************************/\n /* function : encode */\n /* comment : Encode various tables for the characters you use. */\n /***************************************************************/\n Subset.prototype.encode = function(glyID, indexToLocFormat) {\n var cmap,\n code,\n glyf,\n glyphs,\n id,\n ids,\n loca,\n new2old,\n newIDs,\n nextGlyphID,\n old2new,\n oldID,\n oldIDs,\n tables,\n _ref;\n cmap = CmapTable.encode(this.generateCmap(), \"unicode\");\n glyphs = this.glyphsFor(glyID);\n old2new = {\n 0: 0\n };\n _ref = cmap.charMap;\n for (code in _ref) {\n ids = _ref[code];\n old2new[ids.old] = ids[\"new\"];\n }\n nextGlyphID = cmap.maxGlyphID;\n for (oldID in glyphs) {\n if (!(oldID in old2new)) {\n old2new[oldID] = nextGlyphID++;\n }\n }\n new2old = invert(old2new);\n newIDs = Object.keys(new2old).sort(function(a, b) {\n return a - b;\n });\n oldIDs = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = newIDs.length; _i < _len; _i++) {\n id = newIDs[_i];\n _results.push(new2old[id]);\n }\n return _results;\n })();\n glyf = this.font.glyf.encode(glyphs, oldIDs, old2new);\n loca = this.font.loca.encode(glyf.offsets, oldIDs);\n tables = {\n cmap: this.font.cmap.raw(),\n glyf: glyf.table,\n loca: loca,\n hmtx: this.font.hmtx.raw(),\n hhea: this.font.hhea.raw(),\n maxp: this.font.maxp.raw(),\n post: this.font.post.raw(),\n name: this.font.name.raw(),\n head: this.font.head.encode(indexToLocFormat)\n };\n if (this.font.os2.exists) {\n tables[\"OS/2\"] = this.font.os2.raw();\n }\n return this.font.directory.encode(tables);\n };\n return Subset;\n})();\n\njsPDF.API.PDFObject = (function() {\n var pad;\n\n function PDFObject() {}\n pad = function(str, length) {\n return (Array(length + 1).join(\"0\") + str).slice(-length);\n };\n /*****************************************************************************/\n /* function : convert */\n /* comment :Converts pdf tag's / FontBBox and array values in / W to strings */\n /*****************************************************************************/\n PDFObject.convert = function(object) {\n var e, items, key, out, val;\n if (Array.isArray(object)) {\n items = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = object.length; _i < _len; _i++) {\n e = object[_i];\n _results.push(PDFObject.convert(e));\n }\n return _results;\n })().join(\" \");\n return \"[\" + items + \"]\";\n } else if (typeof object === \"string\") {\n return \"/\" + object;\n } else if (object != null ? object.isString : void 0) {\n return \"(\" + object + \")\";\n } else if (object instanceof Date) {\n return (\n \"(D:\" +\n pad(object.getUTCFullYear(), 4) +\n pad(object.getUTCMonth(), 2) +\n pad(object.getUTCDate(), 2) +\n pad(object.getUTCHours(), 2) +\n pad(object.getUTCMinutes(), 2) +\n pad(object.getUTCSeconds(), 2) +\n \"Z)\"\n );\n } else if ({}.toString.call(object) === \"[object Object]\") {\n out = [\"<<\"];\n for (key in object) {\n val = object[key];\n out.push(\"/\" + key + \" \" + PDFObject.convert(val));\n }\n out.push(\">>\");\n return out.join(\"\\n\");\n } else {\n return \"\" + object;\n }\n };\n return PDFObject;\n})();\n","import parseTag from './parse-tag'\n\nconst tagRE = /<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g\nconst whitespaceRE = /^\\s*$/\n\n// re-used obj for quick lookups of components\nconst empty = Object.create(null)\n\nexport default function parse(html, options) {\n options || (options = {})\n options.components || (options.components = empty)\n const result = []\n const arr = []\n let current\n let level = -1\n let inComponent = false\n\n // handle text at top level\n if (html.indexOf('<') !== 0) {\n var end = html.indexOf('<')\n result.push({\n type: 'text',\n content: end === -1 ? html : html.substring(0, end),\n })\n }\n\n html.replace(tagRE, function (tag, index) {\n if (inComponent) {\n if (tag !== '') {\n return\n } else {\n inComponent = false\n }\n }\n const isOpen = tag.charAt(1) !== '/'\n const isComment = tag.startsWith('