troika-3d-text
Advanced tools
Comparing version 0.15.2 to 0.15.3
@@ -6,47 +6,47 @@ 'use strict';(function(C,z){"object"===typeof exports&&"undefined"!==typeof module?z(exports,require("three"),require("troika-worker-utils"),require("troika-three-utils")):"function"===typeof define&&define.amd?define(["exports","three","troika-worker-utils","troika-three-utils"],z):(C=C||self,z(C.troika_3d_text={},C.THREE,C.troika_worker_utils,C.troika_three_utils))})(this,function(C,z,F,R){function S(r,g){r=J({},r);K.href=r.font||H.defaultFontURL;r.font=K.href;r.text=""+r.text;var b=H.sdfGlyphSize, | ||
fragmentDefs:"\nuniform sampler2D uTroikaSDFTexture;\nuniform float uTroikaSDFMinDistancePct;\nuniform bool uTroikaSDFDebug;\nuniform float uTroikaGlyphVSize;\nuniform vec4 uTroikaClipRect;\nvarying vec2 vTroikaGlyphUV;\nvarying vec3 vTroikaLocalPos;\n\nvoid troikaApplyClipping() {\n vec4 rect = uTroikaClipRect;\n vec3 pos = vTroikaLocalPos;\n if (rect != vec4(.0,.0,.0,.0) && (\n pos.x < min(rect.x, rect.z) || \n pos.y < min(rect.y, rect.w) ||\n pos.x > max(rect.x, rect.z) ||\n pos.y > max(rect.y, rect.w)\n )) {\n discard;\n }\n}\n", | ||
fragmentColorTransform:"\ntroikaApplyClipping();\n\nfloat troikaSDFValue = texture2D(uTroikaSDFTexture, vTroikaGlyphUV).r;\n\n\n#if defined(GL_OES_standard_derivatives) || __VERSION__ >= 300\n float troikaAntiAliasDist = min(\n 0.5,\n 0.5 * min(\n fwidth(vTroikaGlyphUV.x), \n fwidth(vTroikaGlyphUV.y / uTroikaGlyphVSize)\n )\n ) / uTroikaSDFMinDistancePct;\n#else\n float troikaAntiAliasDist = 0.01;\n#endif\n\nfloat textAlphaMult = uTroikaSDFDebug ? troikaSDFValue : smoothstep(\n 0.5 - troikaAntiAliasDist,\n 0.5 + troikaAntiAliasDist,\n troikaSDFValue\n);\nif (textAlphaMult == 0.0) {\n if (uTroikaSDFDebug) {\n gl_FragColor *= 0.5;\n } else {\n discard;\n }\n} else {\n gl_FragColor.a *= textAlphaMult;\n}\n"}); | ||
r.transparent=!0;return r}var G=F.defineWorkerModule({dependencies:[function(){var r=self,g={parse:function(b){var a=g._bin;b=new Uint8Array(b);if("ttcf"==a.readASCII(b,0,4)){var c=4;a.readUshort(b,c);c+=2;a.readUshort(b,c);c+=2;var d=a.readUint(b,c);c+=4;for(var e=[],f=0;f<d;f++){var h=a.readUint(b,c);c+=4;e.push(g._readFont(b,h))}return e}return[g._readFont(b,0)]},_readFont:function(b,a){var c=g._bin,d=a;c.readFixed(b,a);a+=4;var e=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;c.readUshort(b,a); | ||
a+=2;c.readUshort(b,a);a+=2;var f="cmap;head;hhea;maxp;hmtx;name;OS/2;post;loca;glyf;kern;CFF ;GPOS;GSUB;SVG ".split(";");d={_data:b,_offset:d};for(var h={},k=0;k<e;k++){var l=c.readASCII(b,a,4);a+=4;c.readUint(b,a);a+=4;var q=c.readUint(b,a);a+=4;var u=c.readUint(b,a);a+=4;h[l]={offset:q,length:u}}for(k=0;k<f.length;k++)a=f[k],h[a]&&(d[a.trim()]=g[a.trim()].parse(b,h[a].offset,h[a].length,d));return d},_tabOffset:function(b,a,c){var d=g._bin,e=d.readUshort(b,c+4);c+=12;for(var f=0;f<e;f++){var h= | ||
d.readASCII(b,c,4);c+=4;d.readUint(b,c);c+=4;var k=d.readUint(b,c);c+=4;d.readUint(b,c);c+=4;if(h==a)return k}return 0}};g._bin={readFixed:function(b,a){return(b[a]<<8|b[a+1])+(b[a+2]<<8|b[a+3])/65540},readF2dot14:function(b,a){return g._bin.readShort(b,a)/16384},readInt:function(b,a){var c=g._bin.t.uint8;c[0]=b[a+3];c[1]=b[a+2];c[2]=b[a+1];c[3]=b[a];return g._bin.t.int32[0]},readInt8:function(b,a){g._bin.t.uint8[0]=b[a];return g._bin.t.int8[0]},readShort:function(b,a){var c=g._bin.t.uint8;c[1]=b[a]; | ||
c[0]=b[a+1];return g._bin.t.int16[0]},readUshort:function(b,a){return b[a]<<8|b[a+1]},readUshorts:function(b,a,c){for(var d=[],e=0;e<c;e++)d.push(g._bin.readUshort(b,a+2*e));return d},readUint:function(b,a){var c=g._bin.t.uint8;c[3]=b[a];c[2]=b[a+1];c[1]=b[a+2];c[0]=b[a+3];return g._bin.t.uint32[0]},readUint64:function(b,a){return 4294967296*g._bin.readUint(b,a)+g._bin.readUint(b,a+4)},readASCII:function(b,a,c){for(var d="",e=0;e<c;e++)d+=String.fromCharCode(b[a+e]);return d},readUnicode:function(b, | ||
a,c){for(var d="",e=0;e<c;e++){var f=b[a++]<<8|b[a++];d+=String.fromCharCode(f)}return d},_tdec:r.TextDecoder?new r.TextDecoder:null,readUTF8:function(b,a,c){var d=g._bin._tdec;return d&&0==a&&c==b.length?d.decode(b):g._bin.readASCII(b,a,c)},readBytes:function(b,a,c){for(var d=[],e=0;e<c;e++)d.push(b[a+e]);return d},readASCIIArray:function(b,a,c){for(var d=[],e=0;e<c;e++)d.push(String.fromCharCode(b[a+e]));return d}};g._bin.t={buff:new ArrayBuffer(8)};g._bin.t.int8=new Int8Array(g._bin.t.buff);g._bin.t.uint8= | ||
new Uint8Array(g._bin.t.buff);g._bin.t.int16=new Int16Array(g._bin.t.buff);g._bin.t.uint16=new Uint16Array(g._bin.t.buff);g._bin.t.int32=new Int32Array(g._bin.t.buff);g._bin.t.uint32=new Uint32Array(g._bin.t.buff);g._lctf={};g._lctf.parse=function(b,a,c,d,e){var f=g._bin;c={};d=a;f.readFixed(b,a);a+=4;var h=f.readUshort(b,a);a+=2;var k=f.readUshort(b,a);a=f.readUshort(b,a+2);c.scriptList=g._lctf.readScriptList(b,d+h);c.featureList=g._lctf.readFeatureList(b,d+k);c.lookupList=g._lctf.readLookupList(b, | ||
d+a,e);return c};g._lctf.readLookupList=function(b,a,c){var d=g._bin,e=a,f=[],h=d.readUshort(b,a);a+=2;for(var k=0;k<h;k++){var l=d.readUshort(b,a);a+=2;l=g._lctf.readLookupTable(b,e+l,c);f.push(l)}return f};g._lctf.readLookupTable=function(b,a,c){var d=g._bin,e=a,f={tabs:[]};f.ltype=d.readUshort(b,a);a+=2;f.flag=d.readUshort(b,a);a+=2;var h=d.readUshort(b,a);a+=2;for(var k=0;k<h;k++){var l=d.readUshort(b,a);a+=2;l=c(b,f.ltype,e+l);f.tabs.push(l)}return f};g._lctf.numOfOnes=function(b){for(var a= | ||
0,c=0;32>c;c++)0!=(b>>>c&1)&&a++;return a};g._lctf.readClassDef=function(b,a){var c=g._bin,d=[],e=c.readUshort(b,a);a+=2;if(1==e){var f=c.readUshort(b,a);a+=2;var h=c.readUshort(b,a);a+=2;for(var k=0;k<h;k++)d.push(f+k),d.push(f+k),d.push(c.readUshort(b,a)),a+=2}if(2==e)for(e=c.readUshort(b,a),a+=2,k=0;k<e;k++)d.push(c.readUshort(b,a)),a+=2,d.push(c.readUshort(b,a)),a+=2,d.push(c.readUshort(b,a)),a+=2;return d};g._lctf.getInterval=function(b,a){for(var c=0;c<b.length;c+=3){var d=b[c+1];if(b[c]<=a&& | ||
a<=d)return c}return-1};g._lctf.readCoverage=function(b,a){var c=g._bin,d={};d.fmt=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;1==d.fmt&&(d.tab=c.readUshorts(b,a,e));2==d.fmt&&(d.tab=c.readUshorts(b,a,3*e));return d};g._lctf.coverageIndex=function(b,a){var c=b.tab;return 1==b.fmt?c.indexOf(a):2==b.fmt&&(b=g._lctf.getInterval(c,a),-1!=b)?c[b+2]+(a-c[b]):-1};g._lctf.readFeatureList=function(b,a){var c=g._bin,d=a,e=[],f=c.readUshort(b,a);a+=2;for(var h=0;h<f;h++){var k=c.readASCII(b,a,4);a+= | ||
4;var l=c.readUshort(b,a);a+=2;e.push({tag:k.trim(),tab:g._lctf.readFeatureTable(b,d+l)})}return e};g._lctf.readFeatureTable=function(b,a){var c=g._bin;c.readUshort(b,a);a+=2;var d=c.readUshort(b,a);a+=2;for(var e=[],f=0;f<d;f++)e.push(c.readUshort(b,a+2*f));return e};g._lctf.readScriptList=function(b,a){var c=g._bin,d=a,e={},f=c.readUshort(b,a);a+=2;for(var h=0;h<f;h++){var k=c.readASCII(b,a,4);a+=4;var l=c.readUshort(b,a);a+=2;e[k.trim()]=g._lctf.readScriptTable(b,d+l)}return e};g._lctf.readScriptTable= | ||
function(b,a){var c=g._bin,d=a,e={},f=c.readUshort(b,a);a+=2;e.default=g._lctf.readLangSysTable(b,d+f);f=c.readUshort(b,a);a+=2;for(var h=0;h<f;h++){var k=c.readASCII(b,a,4);a+=4;var l=c.readUshort(b,a);a+=2;e[k.trim()]=g._lctf.readLangSysTable(b,d+l)}return e};g._lctf.readLangSysTable=function(b,a){var c=g._bin,d={};c.readUshort(b,a);a+=2;d.reqFeature=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);d.features=c.readUshorts(b,a+2,e);return d};g.CFF={};g.CFF.parse=function(b,a,c){var d=g._bin;b=new Uint8Array(b.buffer, | ||
a,c);a=0;a++;a++;a++;a++;var e=[];a=g.CFF.readIndex(b,a,e);var f=[];for(c=0;c<e.length-1;c++)f.push(d.readASCII(b,a+e[c],e[c+1]-e[c]));a+=e[e.length-1];e=[];a=g.CFF.readIndex(b,a,e);f=[];for(c=0;c<e.length-1;c++)f.push(g.CFF.readDict(b,a+e[c],a+e[c+1]));a+=e[e.length-1];e=f[0];var h=[];a=g.CFF.readIndex(b,a,h);f=[];for(c=0;c<h.length-1;c++)f.push(d.readASCII(b,a+h[c],h[c+1]-h[c]));a+=h[h.length-1];g.CFF.readSubrs(b,a,e);if(e.CharStrings){a=e.CharStrings;h=[];a=g.CFF.readIndex(b,a,h);var k=[];for(c= | ||
0;c<h.length-1;c++)k.push(d.readBytes(b,a+h[c],h[c+1]-h[c]));e.CharStrings=k}if(e.ROS){a=e.FDArray;h=[];a=g.CFF.readIndex(b,a,h);e.FDArray=[];for(c=0;c<h.length-1;c++)k=g.CFF.readDict(b,a+h[c],a+h[c+1]),g.CFF._readFDict(b,k,f),e.FDArray.push(k);a=e.FDSelect;e.FDSelect=[];c=b[a];a++;if(3==c)for(h=d.readUshort(b,a),a+=2,c=0;c<h+1;c++)e.FDSelect.push(d.readUshort(b,a),b[a+2]),a+=3;else throw c;}e.Encoding&&(e.Encoding=g.CFF.readEncoding(b,e.Encoding,e.CharStrings.length));e.charset&&(e.charset=g.CFF.readCharset(b, | ||
e.charset,e.CharStrings.length));g.CFF._readFDict(b,e,f);return e};g.CFF._readFDict=function(b,a,c){if(a.Private){var d=a.Private[1];a.Private=g.CFF.readDict(b,d,d+a.Private[0]);a.Private.Subrs&&g.CFF.readSubrs(b,d+a.Private.Subrs,a.Private)}for(var e in a)-1!="FamilyName FontName FullName Notice version Copyright".split(" ").indexOf(e)&&(a[e]=c[a[e]-426+35])};g.CFF.readSubrs=function(b,a,c){var d=g._bin,e=[];a=g.CFF.readIndex(b,a,e);var f=e.length;c.Bias=1240>f?107:33900>f?1131:32768;c.Subrs=[]; | ||
for(f=0;f<e.length-1;f++)c.Subrs.push(d.readBytes(b,a+e[f],e[f+1]-e[f]))};g.CFF.tableSE=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,97, | ||
98,99,100,101,102,103,104,105,106,107,108,109,110,0,111,112,113,114,0,115,116,117,118,119,120,121,122,0,123,0,124,125,126,127,128,129,130,131,0,132,133,0,134,135,136,137,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,0,139,0,0,0,0,140,141,142,143,0,0,0,0,0,144,0,0,0,145,0,0,146,147,148,149,0,0,0,0];g.CFF.glyphByUnicode=function(b,a){for(var c=0;c<b.charset.length;c++)if(b.charset[c]==a)return c;return-1};g.CFF.glyphBySE=function(b,a){return 0>a||255<a?-1:g.CFF.glyphByUnicode(b,g.CFF.tableSE[a])};g.CFF.readEncoding= | ||
function(b,a,c){c=[".notdef"];var d=b[a];a++;if(0==d){d=b[a];a++;for(var e=0;e<d;e++)c.push(b[a+e])}else throw"error: unknown encoding format: "+d;return c};g.CFF.readCharset=function(b,a,c){var d=g._bin,e=[".notdef"],f=b[a];a++;if(0==f)for(var h=0;h<c;h++){var k=d.readUshort(b,a);a+=2;e.push(k)}else if(1==f||2==f)for(;e.length<c;){k=d.readUshort(b,a);a+=2;if(1==f){var l=b[a];a++}else l=d.readUshort(b,a),a+=2;for(h=0;h<=l;h++)e.push(k),k++}else throw"error: format: "+f;return e};g.CFF.readIndex=function(b, | ||
a,c){var d=g._bin,e=d.readUshort(b,a)+1;a+=2;var f=b[a];a++;if(1==f)for(var h=0;h<e;h++)c.push(b[a+h]);else if(2==f)for(h=0;h<e;h++)c.push(d.readUshort(b,a+2*h));else if(3==f)for(h=0;h<e;h++)c.push(d.readUint(b,a+3*h-1)&16777215);else if(1!=e)throw"unsupported offset size: "+f+", count: "+e;return a+e*f-1};g.CFF.getCharString=function(b,a,c){var d=g._bin,e=b[a],f=b[a+1],h=1,k=null,l=null;20>=e&&(k=e,h=1);12==e&&(k=100*e+f,h=2);21<=e&&27>=e&&(k=e,h=1);28==e&&(l=d.readShort(b,a+1),h=3);29<=e&&31>=e&& | ||
(k=e,h=1);32<=e&&246>=e&&(l=e-139,h=1);247<=e&&250>=e&&(l=256*(e-247)+f+108,h=2);251<=e&&254>=e&&(l=256*-(e-251)-f-108,h=2);255==e&&(l=d.readInt(b,a+1)/65535,h=5);c.val=null!=l?l:"o"+k;c.size=h};g.CFF.readCharString=function(b,a,c){c=a+c;for(var d=g._bin,e=[];a<c;){var f=b[a],h=b[a+1],k=1,l=null,q=null;20>=f&&(l=f,k=1);12==f&&(l=100*f+h,k=2);if(19==f||20==f)l=f,k=2;21<=f&&27>=f&&(l=f,k=1);28==f&&(q=d.readShort(b,a+1),k=3);29<=f&&31>=f&&(l=f,k=1);32<=f&&246>=f&&(q=f-139,k=1);247<=f&&250>=f&&(q=256* | ||
(f-247)+h+108,k=2);251<=f&&254>=f&&(q=256*-(f-251)-h-108,k=2);255==f&&(q=d.readInt(b,a+1)/65535,k=5);e.push(null!=q?q:"o"+l);a+=k}return e};g.CFF.readDict=function(b,a,c){for(var d=g._bin,e={},f=[];a<c;){var h=b[a],k=b[a+1],l=1,q=null,u=null;28==h&&(u=d.readShort(b,a+1),l=3);29==h&&(u=d.readInt(b,a+1),l=5);32<=h&&246>=h&&(u=h-139,l=1);247<=h&&250>=h&&(u=256*(h-247)+k+108,l=2);251<=h&&254>=h&&(u=256*-(h-251)-k-108,l=2);if(255==h)throw d.readInt(b,a+1),"unknown number";if(30==h){u=[];for(l=1;;){var m= | ||
b[a+l];l++;var p=m>>4;m&=15;15!=p&&u.push(p);15!=m&&u.push(m);if(15==m)break}p="";m=[0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"];for(var n=0;n<u.length;n++)p+=m[u[n]];u=parseFloat(p)}21>=h&&(l="version Notice FullName FamilyName Weight FontBBox BlueValues OtherBlues FamilyBlues FamilyOtherBlues StdHW StdVW escape UniqueID XUID charset Encoding CharStrings Private Subrs defaultWidthX nominalWidthX".split(" "),q=l[h],l=1,12==h&&(l=["Copyright","isFixedPitch","ItalicAngle","UnderlinePosition", | ||
"UnderlineThickness","PaintType","CharstringType","FontMatrix","StrokeWidth","BlueScale","BlueShift","BlueFuzz","StemSnapH","StemSnapV","ForceBold",0,0,"LanguageGroup","ExpansionFactor","initialRandomSeed","SyntheticBase","PostScript","BaseFontName","BaseFontBlend",0,0,0,0,0,0,"ROS","CIDFontVersion","CIDFontRevision","CIDFontType","CIDCount","UIDBase","FDArray","FDSelect","FontName"],q=l[k],l=2));null!=q?(e[q]=1==f.length?f[0]:f,f=[]):f.push(u);a+=l}return e};g.cmap={};g.cmap.parse=function(b,a,c){b= | ||
new Uint8Array(b.buffer,a,c);a=0;c=g._bin;var d={};c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;var f=[];d.tables=[];for(var h=0;h<e;h++){var k=c.readUshort(b,a);a+=2;var l=c.readUshort(b,a);a+=2;var q=c.readUint(b,a);a+=4;var u="p"+k+"e"+l,m=f.indexOf(q);if(-1==m){m=d.tables.length;var p;f.push(q);var n=c.readUshort(b,q);0==n?p=g.cmap.parse0(b,q):4==n?p=g.cmap.parse4(b,q):6==n?p=g.cmap.parse6(b,q):12==n?p=g.cmap.parse12(b,q):console.log("unknown format: "+n,k,l,q);d.tables.push(p)}if(null!= | ||
d[u])throw"multiple tables for one platform+encoding";d[u]=m}return d};g.cmap.parse0=function(b,a){var c=g._bin,d={};d.format=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;d.map=[];for(c=0;c<e-6;c++)d.map.push(b[a+c]);return d};g.cmap.parse4=function(b,a){var c=g._bin,d=a,e={};e.format=c.readUshort(b,a);a+=2;var f=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;var h=c.readUshort(b,a);a+=2;h/=2;e.searchRange=c.readUshort(b,a);a+=2;e.entrySelector=c.readUshort(b,a);a+=2; | ||
e.rangeShift=c.readUshort(b,a);a+=2;e.endCount=c.readUshorts(b,a,h);a=a+2*h+2;e.startCount=c.readUshorts(b,a,h);a+=2*h;e.idDelta=[];for(var k=0;k<h;k++)e.idDelta.push(c.readShort(b,a)),a+=2;e.idRangeOffset=c.readUshorts(b,a,h);a+=2*h;for(e.glyphIdArray=[];a<d+f;)e.glyphIdArray.push(c.readUshort(b,a)),a+=2;return e};g.cmap.parse6=function(b,a){var c=g._bin,d={};d.format=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;d.firstCode=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+= | ||
2;d.glyphIdArray=[];for(var f=0;f<e;f++)d.glyphIdArray.push(c.readUshort(b,a)),a+=2;return d};g.cmap.parse12=function(b,a){var c=g._bin,d={};d.format=c.readUshort(b,a);a=a+2+2;c.readUint(b,a);a+=4;c.readUint(b,a);a+=4;var e=c.readUint(b,a);a+=4;d.groups=[];for(var f=0;f<e;f++){var h=a+12*f,k=c.readUint(b,h+0),l=c.readUint(b,h+4);h=c.readUint(b,h+8);d.groups.push([k,l,h])}return d};g.glyf={};g.glyf.parse=function(b,a,c,d){b=[];for(a=0;a<d.maxp.numGlyphs;a++)b.push(null);return b};g.glyf._parseGlyf= | ||
function(b,a){var c=g._bin,d=b._data,e=g._tabOffset(d,"glyf",b._offset)+b.loca[a];if(b.loca[a]==b.loca[a+1])return null;b={};b.noc=c.readShort(d,e);e+=2;b.xMin=c.readShort(d,e);e+=2;b.yMin=c.readShort(d,e);e+=2;b.xMax=c.readShort(d,e);e+=2;b.yMax=c.readShort(d,e);e+=2;if(b.xMin>=b.xMax||b.yMin>=b.yMax)return null;if(0<b.noc){b.endPts=[];for(a=0;a<b.noc;a++)b.endPts.push(c.readUshort(d,e)),e+=2;a=c.readUshort(d,e);e+=2;if(d.length-e<a)return null;b.instructions=c.readBytes(d,e,a);e+=a;var f=b.endPts[b.noc- | ||
1]+1;b.flags=[];for(a=0;a<f;a++){var h=d[e];e++;b.flags.push(h);if(0!=(h&8)){var k=d[e];e++;for(var l=0;l<k;l++)b.flags.push(h),a++}}b.xs=[];for(a=0;a<f;a++)h=0!=(b.flags[a]&2),k=0!=(b.flags[a]&16),h?(b.xs.push(k?d[e]:-d[e]),e++):k?b.xs.push(0):(b.xs.push(c.readShort(d,e)),e+=2);b.ys=[];for(a=0;a<f;a++)h=0!=(b.flags[a]&4),k=0!=(b.flags[a]&32),h?(b.ys.push(k?d[e]:-d[e]),e++):k?b.ys.push(0):(b.ys.push(c.readShort(d,e)),e+=2);for(a=e=d=0;a<f;a++)d+=b.xs[a],e+=b.ys[a],b.xs[a]=d,b.ys[a]=e}else{b.parts= | ||
[];do a=c.readUshort(d,e),e+=2,f={m:{a:1,b:0,c:0,d:1,tx:0,ty:0},p1:-1,p2:-1},b.parts.push(f),f.glyphIndex=c.readUshort(d,e),e+=2,a&1?(h=c.readShort(d,e),e+=2,k=c.readShort(d,e),e+=2):(h=c.readInt8(d,e),e++,k=c.readInt8(d,e),e++),a&2?(f.m.tx=h,f.m.ty=k):(f.p1=h,f.p2=k),a&8?(f.m.a=f.m.d=c.readF2dot14(d,e),e+=2):a&64?(f.m.a=c.readF2dot14(d,e),e+=2,f.m.d=c.readF2dot14(d,e),e+=2):a&128&&(f.m.a=c.readF2dot14(d,e),e+=2,f.m.b=c.readF2dot14(d,e),e+=2,f.m.c=c.readF2dot14(d,e),e+=2,f.m.d=c.readF2dot14(d,e), | ||
e+=2);while(a&32);if(a&256)for(c=c.readUshort(d,e),e+=2,b.instr=[],a=0;a<c;a++)b.instr.push(d[e]),e++}return b};g.GPOS={};g.GPOS.parse=function(b,a,c,d){return g._lctf.parse(b,a,c,d,g.GPOS.subt)};g.GPOS.subt=function(b,a,c){var d=g._bin,e=c,f={};f.fmt=d.readUshort(b,c);c+=2;if(1==a||2==a||3==a||7==a||8==a&&2>=f.fmt){var h=d.readUshort(b,c);c+=2;f.coverage=g._lctf.readCoverage(b,h+e)}if(1==a&&1==f.fmt){var k=d.readUshort(b,c);c+=2;g._lctf.numOfOnes(k);0!=k&&(f.pos=g.GPOS.readValueRecord(b,c,k))}else if(2== | ||
a){k=d.readUshort(b,c);c+=2;var l=d.readUshort(b,c);c+=2;a=g._lctf.numOfOnes(k);h=g._lctf.numOfOnes(l);if(1==f.fmt){f.pairsets=[];var q=d.readUshort(b,c);c+=2;for(var u=0;u<q;u++){var m=e+d.readUshort(b,c);c+=2;var p=d.readUshort(b,m);m+=2;for(var n=[],t=0;t<p;t++){var w=d.readUshort(b,m);m+=2;if(0!=k){var v=g.GPOS.readValueRecord(b,m,k);m+=2*a}if(0!=l){var y=g.GPOS.readValueRecord(b,m,l);m+=2*h}n.push({gid2:w,val1:v,val2:y})}f.pairsets.push(n)}}if(2==f.fmt)for(v=d.readUshort(b,c),c+=2,y=d.readUshort(b, | ||
c),c+=2,k=d.readUshort(b,c),c+=2,d=d.readUshort(b,c),c+=2,f.classDef1=g._lctf.readClassDef(b,e+v),f.classDef2=g._lctf.readClassDef(b,e+y),f.matrix=[],u=0;u<k;u++){e=[];for(t=0;t<d;t++)y=v=null,0!=f.valFmt1&&(v=g.GPOS.readValueRecord(b,c,f.valFmt1),c+=2*a),0!=f.valFmt2&&(y=g.GPOS.readValueRecord(b,c,f.valFmt2),c+=2*h),e.push({val1:v,val2:y});f.matrix.push(e)}}return f};g.GPOS.readValueRecord=function(b,a,c){var d=g._bin,e=[];e.push(c&1?d.readShort(b,a):0);a+=c&1?2:0;e.push(c&2?d.readShort(b,a):0); | ||
a+=c&2?2:0;e.push(c&4?d.readShort(b,a):0);e.push(c&8?d.readShort(b,a+(c&4?2:0)):0);return e};g.GSUB={};g.GSUB.parse=function(b,a,c,d){return g._lctf.parse(b,a,c,d,g.GSUB.subt)};g.GSUB.subt=function(b,a,c){var d=g._bin,e=c,f={};f.fmt=d.readUshort(b,c);c+=2;if(1!=a&&4!=a&&5!=a&&6!=a)return null;if(1==a||4==a||5==a&&2>=f.fmt||6==a&&2>=f.fmt){var h=d.readUshort(b,c);c+=2;f.coverage=g._lctf.readCoverage(b,e+h)}if(1==a)1==f.fmt?f.delta=d.readShort(b,c):2==f.fmt&&(h=d.readUshort(b,c),f.newg=d.readUshorts(b, | ||
c+2,h));else if(4==a)for(f.vals=[],h=d.readUshort(b,c),c+=2,a=0;a<h;a++){var k=d.readUshort(b,c);c+=2;f.vals.push(g.GSUB.readLigatureSet(b,e+k))}else if(5==a){if(2==f.fmt)for(a=d.readUshort(b,c),c+=2,f.cDef=g._lctf.readClassDef(b,e+a),f.scset=[],h=d.readUshort(b,c),c+=2,a=0;a<h;a++)k=d.readUshort(b,c),c+=2,f.scset.push(0==k?null:g.GSUB.readSubClassSet(b,e+k))}else if(6==a&&3==f.fmt){for(a=0;3>a;a++){h=d.readUshort(b,c);c+=2;k=[];for(var l=0;l<h;l++)k.push(g._lctf.readCoverage(b,e+d.readUshort(b,c+ | ||
2*l)));c+=2*h;0==a&&(f.backCvg=k);1==a&&(f.inptCvg=k);2==a&&(f.ahedCvg=k)}h=d.readUshort(b,c);f.lookupRec=g.GSUB.readSubstLookupRecords(b,c+2,h)}return f};g.GSUB.readSubClassSet=function(b,a){var c=g._bin.readUshort,d=a,e=[],f=c(b,a);a+=2;for(var h=0;h<f;h++){var k=c(b,a);a+=2;e.push(g.GSUB.readSubClassRule(b,d+k))}return e};g.GSUB.readSubClassRule=function(b,a){var c=g._bin.readUshort,d={},e=c(b,a);a+=2;var f=c(b,a);a+=2;d.input=[];for(var h=0;h<e-1;h++)d.input.push(c(b,a)),a+=2;d.substLookupRecords= | ||
g.GSUB.readSubstLookupRecords(b,a,f);return d};g.GSUB.readSubstLookupRecords=function(b,a,c){for(var d=g._bin.readUshort,e=[],f=0;f<c;f++)e.push(d(b,a),d(b,a+2)),a+=4;return e};g.GSUB.readChainSubClassSet=function(b,a){var c=g._bin,d=a,e=[],f=c.readUshort(b,a);a+=2;for(var h=0;h<f;h++){var k=c.readUshort(b,a);a+=2;e.push(g.GSUB.readChainSubClassRule(b,d+k))}return e};g.GSUB.readChainSubClassRule=function(b,a){for(var c=g._bin,d={},e=["backtrack","input","lookahead"],f=0;f<e.length;f++){var h=c.readUshort(b, | ||
a);a+=2;1==f&&h--;d[e[f]]=c.readUshorts(b,a,h);a+=2*d[e[f]].length}h=c.readUshort(b,a);d.subst=c.readUshorts(b,a+2,2*h);return d};g.GSUB.readLigatureSet=function(b,a){var c=g._bin,d=a,e=[],f=c.readUshort(b,a);a+=2;for(var h=0;h<f;h++){var k=c.readUshort(b,a);a+=2;e.push(g.GSUB.readLigature(b,d+k))}return e};g.GSUB.readLigature=function(b,a){var c=g._bin,d={chain:[]};d.nglyph=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;for(var f=0;f<e-1;f++)d.chain.push(c.readUshort(b,a)),a+=2;return d};g.head= | ||
{};g.head.parse=function(b,a,c){c=g._bin;var d={};c.readFixed(b,a);a+=4;d.fontRevision=c.readFixed(b,a);a+=4;c.readUint(b,a);a+=4;c.readUint(b,a);a+=4;d.flags=c.readUshort(b,a);a+=2;d.unitsPerEm=c.readUshort(b,a);a+=2;d.created=c.readUint64(b,a);a+=8;d.modified=c.readUint64(b,a);a+=8;d.xMin=c.readShort(b,a);a+=2;d.yMin=c.readShort(b,a);a+=2;d.xMax=c.readShort(b,a);a+=2;d.yMax=c.readShort(b,a);a+=2;d.macStyle=c.readUshort(b,a);a+=2;d.lowestRecPPEM=c.readUshort(b,a);a+=2;d.fontDirectionHint=c.readShort(b, | ||
a);a+=2;d.indexToLocFormat=c.readShort(b,a);d.glyphDataFormat=c.readShort(b,a+2);return d};g.hhea={};g.hhea.parse=function(b,a,c){c=g._bin;var d={};c.readFixed(b,a);a+=4;d.ascender=c.readShort(b,a);a+=2;d.descender=c.readShort(b,a);a+=2;d.lineGap=c.readShort(b,a);a+=2;d.advanceWidthMax=c.readUshort(b,a);a+=2;d.minLeftSideBearing=c.readShort(b,a);a+=2;d.minRightSideBearing=c.readShort(b,a);a+=2;d.xMaxExtent=c.readShort(b,a);a+=2;d.caretSlopeRise=c.readShort(b,a);a+=2;d.caretSlopeRun=c.readShort(b, | ||
a);a+=2;d.caretOffset=c.readShort(b,a);a=a+2+8;d.metricDataFormat=c.readShort(b,a);d.numberOfHMetrics=c.readUshort(b,a+2);return d};g.hmtx={};g.hmtx.parse=function(b,a,c,d){c=g._bin;for(var e={aWidth:[],lsBearing:[]},f=0,h=0,k=0;k<d.maxp.numGlyphs;k++)k<d.hhea.numberOfHMetrics&&(f=c.readUshort(b,a),a+=2,h=c.readShort(b,a),a+=2),e.aWidth.push(f),e.lsBearing.push(h);return e};g.kern={};g.kern.parse=function(b,a,c,d){var e=g._bin,f=e.readUshort(b,a);a+=2;if(1==f)return g.kern.parseV1(b,a-2,c,d);c=e.readUshort(b, | ||
a);a+=2;d={glyph1:[],rval:[]};for(f=0;f<c;f++){a+=2;e.readUshort(b,a);a+=2;var h=e.readUshort(b,a);a+=2;h>>>=8;h&=15;if(0==h)a=g.kern.readFormat0(b,a,d);else throw"unknown kern table format: "+h;}return d};g.kern.parseV1=function(b,a,c,d){c=g._bin;c.readFixed(b,a);a+=4;d=c.readUint(b,a);a+=4;for(var e={glyph1:[],rval:[]},f=0;f<d;f++){c.readUint(b,a);a+=4;var h=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;h>>>=8;h&=15;if(0==h)a=g.kern.readFormat0(b,a,e);else throw"unknown kern table format: "+h;}return e}; | ||
g.kern.readFormat0=function(b,a,c){var d=g._bin,e=-1,f=d.readUshort(b,a);a+=2;d.readUshort(b,a);a+=2;d.readUshort(b,a);a+=2;d.readUshort(b,a);a+=2;for(var h=0;h<f;h++){var k=d.readUshort(b,a);a+=2;var l=d.readUshort(b,a);a+=2;var q=d.readShort(b,a);a+=2;k!=e&&(c.glyph1.push(k),c.rval.push({glyph2:[],vals:[]}));e=c.rval[c.rval.length-1];e.glyph2.push(l);e.vals.push(q);e=k}return a};g.loca={};g.loca.parse=function(b,a,c,d){c=g._bin;var e=[],f=d.head.indexToLocFormat;d=d.maxp.numGlyphs+1;if(0==f)for(var h= | ||
0;h<d;h++)e.push(c.readUshort(b,a+(h<<1))<<1);if(1==f)for(h=0;h<d;h++)e.push(c.readUint(b,a+(h<<2)));return e};g.maxp={};g.maxp.parse=function(b,a,c){c=g._bin;var d={},e=c.readUint(b,a);a+=4;d.numGlyphs=c.readUshort(b,a);a+=2;65536==e&&(d.maxPoints=c.readUshort(b,a),a+=2,d.maxContours=c.readUshort(b,a),a+=2,d.maxCompositePoints=c.readUshort(b,a),a+=2,d.maxCompositeContours=c.readUshort(b,a),a+=2,d.maxZones=c.readUshort(b,a),a+=2,d.maxTwilightPoints=c.readUshort(b,a),a+=2,d.maxStorage=c.readUshort(b, | ||
a),a+=2,d.maxFunctionDefs=c.readUshort(b,a),a+=2,d.maxInstructionDefs=c.readUshort(b,a),a+=2,d.maxStackElements=c.readUshort(b,a),a+=2,d.maxSizeOfInstructions=c.readUshort(b,a),a+=2,d.maxComponentElements=c.readUshort(b,a),d.maxComponentDepth=c.readUshort(b,a+2));return d};g.name={};g.name.parse=function(b,a,c){c=g._bin;var d={};c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;for(var f="copyright fontFamily fontSubfamily ID fullName version postScriptName trademark manufacturer designer description urlVendor urlDesigner licence licenceURL --- typoFamilyName typoSubfamilyName compatibleFull sampleText postScriptCID wwsFamilyName wwsSubfamilyName lightPalette darkPalette".split(" "), | ||
fragmentColorTransform:"\ntroikaApplyClipping();\n\nfloat troikaSDFValue = texture2D(uTroikaSDFTexture, vTroikaGlyphUV).r;\n\n#if defined(IS_DEPTH_MATERIAL) || defined(IS_DISTANCE_MATERIAL)\nif (troikaSDFValue < 0.5) discard;\n#else\n\n\n#if defined(GL_OES_standard_derivatives) || __VERSION__ >= 300\n float troikaAntiAliasDist = min(\n 0.5,\n 0.5 * min(\n fwidth(vTroikaGlyphUV.x), \n fwidth(vTroikaGlyphUV.y / uTroikaGlyphVSize)\n )\n ) / uTroikaSDFMinDistancePct;\n#else\n float troikaAntiAliasDist = 0.01;\n#endif\n\nfloat textAlphaMult = uTroikaSDFDebug ? troikaSDFValue : smoothstep(\n 0.5 - troikaAntiAliasDist,\n 0.5 + troikaAntiAliasDist,\n troikaSDFValue\n);\nif (textAlphaMult == 0.0) {\n if (uTroikaSDFDebug) {\n gl_FragColor *= 0.5;\n } else {\n discard;\n }\n} else {\n gl_FragColor.a *= textAlphaMult;\n}\n\n#endif\n"}); | ||
r.transparent=!0;Object.defineProperty(r,"shadowSide",{get:function(){return this.side}});return r}var G=F.defineWorkerModule({dependencies:[function(){var r=self,g={parse:function(b){var a=g._bin;b=new Uint8Array(b);if("ttcf"==a.readASCII(b,0,4)){var c=4;a.readUshort(b,c);c+=2;a.readUshort(b,c);c+=2;var d=a.readUint(b,c);c+=4;for(var e=[],f=0;f<d;f++){var h=a.readUint(b,c);c+=4;e.push(g._readFont(b,h))}return e}return[g._readFont(b,0)]},_readFont:function(b,a){var c=g._bin,d=a;c.readFixed(b,a);a+= | ||
4;var e=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;var f="cmap;head;hhea;maxp;hmtx;name;OS/2;post;loca;glyf;kern;CFF ;GPOS;GSUB;SVG ".split(";");d={_data:b,_offset:d};for(var h={},k=0;k<e;k++){var l=c.readASCII(b,a,4);a+=4;c.readUint(b,a);a+=4;var q=c.readUint(b,a);a+=4;var u=c.readUint(b,a);a+=4;h[l]={offset:q,length:u}}for(k=0;k<f.length;k++)a=f[k],h[a]&&(d[a.trim()]=g[a.trim()].parse(b,h[a].offset,h[a].length,d));return d},_tabOffset:function(b, | ||
a,c){var d=g._bin,e=d.readUshort(b,c+4);c+=12;for(var f=0;f<e;f++){var h=d.readASCII(b,c,4);c+=4;d.readUint(b,c);c+=4;var k=d.readUint(b,c);c+=4;d.readUint(b,c);c+=4;if(h==a)return k}return 0}};g._bin={readFixed:function(b,a){return(b[a]<<8|b[a+1])+(b[a+2]<<8|b[a+3])/65540},readF2dot14:function(b,a){return g._bin.readShort(b,a)/16384},readInt:function(b,a){var c=g._bin.t.uint8;c[0]=b[a+3];c[1]=b[a+2];c[2]=b[a+1];c[3]=b[a];return g._bin.t.int32[0]},readInt8:function(b,a){g._bin.t.uint8[0]=b[a];return g._bin.t.int8[0]}, | ||
readShort:function(b,a){var c=g._bin.t.uint8;c[1]=b[a];c[0]=b[a+1];return g._bin.t.int16[0]},readUshort:function(b,a){return b[a]<<8|b[a+1]},readUshorts:function(b,a,c){for(var d=[],e=0;e<c;e++)d.push(g._bin.readUshort(b,a+2*e));return d},readUint:function(b,a){var c=g._bin.t.uint8;c[3]=b[a];c[2]=b[a+1];c[1]=b[a+2];c[0]=b[a+3];return g._bin.t.uint32[0]},readUint64:function(b,a){return 4294967296*g._bin.readUint(b,a)+g._bin.readUint(b,a+4)},readASCII:function(b,a,c){for(var d="",e=0;e<c;e++)d+=String.fromCharCode(b[a+ | ||
e]);return d},readUnicode:function(b,a,c){for(var d="",e=0;e<c;e++){var f=b[a++]<<8|b[a++];d+=String.fromCharCode(f)}return d},_tdec:r.TextDecoder?new r.TextDecoder:null,readUTF8:function(b,a,c){var d=g._bin._tdec;return d&&0==a&&c==b.length?d.decode(b):g._bin.readASCII(b,a,c)},readBytes:function(b,a,c){for(var d=[],e=0;e<c;e++)d.push(b[a+e]);return d},readASCIIArray:function(b,a,c){for(var d=[],e=0;e<c;e++)d.push(String.fromCharCode(b[a+e]));return d}};g._bin.t={buff:new ArrayBuffer(8)};g._bin.t.int8= | ||
new Int8Array(g._bin.t.buff);g._bin.t.uint8=new Uint8Array(g._bin.t.buff);g._bin.t.int16=new Int16Array(g._bin.t.buff);g._bin.t.uint16=new Uint16Array(g._bin.t.buff);g._bin.t.int32=new Int32Array(g._bin.t.buff);g._bin.t.uint32=new Uint32Array(g._bin.t.buff);g._lctf={};g._lctf.parse=function(b,a,c,d,e){var f=g._bin;c={};d=a;f.readFixed(b,a);a+=4;var h=f.readUshort(b,a);a+=2;var k=f.readUshort(b,a);a=f.readUshort(b,a+2);c.scriptList=g._lctf.readScriptList(b,d+h);c.featureList=g._lctf.readFeatureList(b, | ||
d+k);c.lookupList=g._lctf.readLookupList(b,d+a,e);return c};g._lctf.readLookupList=function(b,a,c){var d=g._bin,e=a,f=[],h=d.readUshort(b,a);a+=2;for(var k=0;k<h;k++){var l=d.readUshort(b,a);a+=2;l=g._lctf.readLookupTable(b,e+l,c);f.push(l)}return f};g._lctf.readLookupTable=function(b,a,c){var d=g._bin,e=a,f={tabs:[]};f.ltype=d.readUshort(b,a);a+=2;f.flag=d.readUshort(b,a);a+=2;var h=d.readUshort(b,a);a+=2;for(var k=0;k<h;k++){var l=d.readUshort(b,a);a+=2;l=c(b,f.ltype,e+l);f.tabs.push(l)}return f}; | ||
g._lctf.numOfOnes=function(b){for(var a=0,c=0;32>c;c++)0!=(b>>>c&1)&&a++;return a};g._lctf.readClassDef=function(b,a){var c=g._bin,d=[],e=c.readUshort(b,a);a+=2;if(1==e){var f=c.readUshort(b,a);a+=2;var h=c.readUshort(b,a);a+=2;for(var k=0;k<h;k++)d.push(f+k),d.push(f+k),d.push(c.readUshort(b,a)),a+=2}if(2==e)for(e=c.readUshort(b,a),a+=2,k=0;k<e;k++)d.push(c.readUshort(b,a)),a+=2,d.push(c.readUshort(b,a)),a+=2,d.push(c.readUshort(b,a)),a+=2;return d};g._lctf.getInterval=function(b,a){for(var c=0;c< | ||
b.length;c+=3){var d=b[c+1];if(b[c]<=a&&a<=d)return c}return-1};g._lctf.readCoverage=function(b,a){var c=g._bin,d={};d.fmt=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;1==d.fmt&&(d.tab=c.readUshorts(b,a,e));2==d.fmt&&(d.tab=c.readUshorts(b,a,3*e));return d};g._lctf.coverageIndex=function(b,a){var c=b.tab;return 1==b.fmt?c.indexOf(a):2==b.fmt&&(b=g._lctf.getInterval(c,a),-1!=b)?c[b+2]+(a-c[b]):-1};g._lctf.readFeatureList=function(b,a){var c=g._bin,d=a,e=[],f=c.readUshort(b,a);a+=2;for(var h= | ||
0;h<f;h++){var k=c.readASCII(b,a,4);a+=4;var l=c.readUshort(b,a);a+=2;e.push({tag:k.trim(),tab:g._lctf.readFeatureTable(b,d+l)})}return e};g._lctf.readFeatureTable=function(b,a){var c=g._bin;c.readUshort(b,a);a+=2;var d=c.readUshort(b,a);a+=2;for(var e=[],f=0;f<d;f++)e.push(c.readUshort(b,a+2*f));return e};g._lctf.readScriptList=function(b,a){var c=g._bin,d=a,e={},f=c.readUshort(b,a);a+=2;for(var h=0;h<f;h++){var k=c.readASCII(b,a,4);a+=4;var l=c.readUshort(b,a);a+=2;e[k.trim()]=g._lctf.readScriptTable(b, | ||
d+l)}return e};g._lctf.readScriptTable=function(b,a){var c=g._bin,d=a,e={},f=c.readUshort(b,a);a+=2;e.default=g._lctf.readLangSysTable(b,d+f);f=c.readUshort(b,a);a+=2;for(var h=0;h<f;h++){var k=c.readASCII(b,a,4);a+=4;var l=c.readUshort(b,a);a+=2;e[k.trim()]=g._lctf.readLangSysTable(b,d+l)}return e};g._lctf.readLangSysTable=function(b,a){var c=g._bin,d={};c.readUshort(b,a);a+=2;d.reqFeature=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);d.features=c.readUshorts(b,a+2,e);return d};g.CFF={};g.CFF.parse= | ||
function(b,a,c){var d=g._bin;b=new Uint8Array(b.buffer,a,c);a=0;a++;a++;a++;a++;var e=[];a=g.CFF.readIndex(b,a,e);var f=[];for(c=0;c<e.length-1;c++)f.push(d.readASCII(b,a+e[c],e[c+1]-e[c]));a+=e[e.length-1];e=[];a=g.CFF.readIndex(b,a,e);f=[];for(c=0;c<e.length-1;c++)f.push(g.CFF.readDict(b,a+e[c],a+e[c+1]));a+=e[e.length-1];e=f[0];var h=[];a=g.CFF.readIndex(b,a,h);f=[];for(c=0;c<h.length-1;c++)f.push(d.readASCII(b,a+h[c],h[c+1]-h[c]));a+=h[h.length-1];g.CFF.readSubrs(b,a,e);if(e.CharStrings){a=e.CharStrings; | ||
h=[];a=g.CFF.readIndex(b,a,h);var k=[];for(c=0;c<h.length-1;c++)k.push(d.readBytes(b,a+h[c],h[c+1]-h[c]));e.CharStrings=k}if(e.ROS){a=e.FDArray;h=[];a=g.CFF.readIndex(b,a,h);e.FDArray=[];for(c=0;c<h.length-1;c++)k=g.CFF.readDict(b,a+h[c],a+h[c+1]),g.CFF._readFDict(b,k,f),e.FDArray.push(k);a=e.FDSelect;e.FDSelect=[];c=b[a];a++;if(3==c)for(h=d.readUshort(b,a),a+=2,c=0;c<h+1;c++)e.FDSelect.push(d.readUshort(b,a),b[a+2]),a+=3;else throw c;}e.Encoding&&(e.Encoding=g.CFF.readEncoding(b,e.Encoding,e.CharStrings.length)); | ||
e.charset&&(e.charset=g.CFF.readCharset(b,e.charset,e.CharStrings.length));g.CFF._readFDict(b,e,f);return e};g.CFF._readFDict=function(b,a,c){if(a.Private){var d=a.Private[1];a.Private=g.CFF.readDict(b,d,d+a.Private[0]);a.Private.Subrs&&g.CFF.readSubrs(b,d+a.Private.Subrs,a.Private)}for(var e in a)-1!="FamilyName FontName FullName Notice version Copyright".split(" ").indexOf(e)&&(a[e]=c[a[e]-426+35])};g.CFF.readSubrs=function(b,a,c){var d=g._bin,e=[];a=g.CFF.readIndex(b,a,e);var f=e.length;c.Bias= | ||
1240>f?107:33900>f?1131:32768;c.Subrs=[];for(f=0;f<e.length-1;f++)c.Subrs.push(d.readBytes(b,a+e[f],e[f+1]-e[f]))};g.CFF.tableSE=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | ||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,0,111,112,113,114,0,115,116,117,118,119,120,121,122,0,123,0,124,125,126,127,128,129,130,131,0,132,133,0,134,135,136,137,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,0,139,0,0,0,0,140,141,142,143,0,0,0,0,0,144,0,0,0,145,0,0,146,147,148,149,0,0,0,0];g.CFF.glyphByUnicode=function(b,a){for(var c=0;c<b.charset.length;c++)if(b.charset[c]==a)return c;return-1};g.CFF.glyphBySE=function(b,a){return 0>a||255<a?-1:g.CFF.glyphByUnicode(b, | ||
g.CFF.tableSE[a])};g.CFF.readEncoding=function(b,a,c){c=[".notdef"];var d=b[a];a++;if(0==d){d=b[a];a++;for(var e=0;e<d;e++)c.push(b[a+e])}else throw"error: unknown encoding format: "+d;return c};g.CFF.readCharset=function(b,a,c){var d=g._bin,e=[".notdef"],f=b[a];a++;if(0==f)for(var h=0;h<c;h++){var k=d.readUshort(b,a);a+=2;e.push(k)}else if(1==f||2==f)for(;e.length<c;){k=d.readUshort(b,a);a+=2;if(1==f){var l=b[a];a++}else l=d.readUshort(b,a),a+=2;for(h=0;h<=l;h++)e.push(k),k++}else throw"error: format: "+ | ||
f;return e};g.CFF.readIndex=function(b,a,c){var d=g._bin,e=d.readUshort(b,a)+1;a+=2;var f=b[a];a++;if(1==f)for(var h=0;h<e;h++)c.push(b[a+h]);else if(2==f)for(h=0;h<e;h++)c.push(d.readUshort(b,a+2*h));else if(3==f)for(h=0;h<e;h++)c.push(d.readUint(b,a+3*h-1)&16777215);else if(1!=e)throw"unsupported offset size: "+f+", count: "+e;return a+e*f-1};g.CFF.getCharString=function(b,a,c){var d=g._bin,e=b[a],f=b[a+1],h=1,k=null,l=null;20>=e&&(k=e,h=1);12==e&&(k=100*e+f,h=2);21<=e&&27>=e&&(k=e,h=1);28==e&& | ||
(l=d.readShort(b,a+1),h=3);29<=e&&31>=e&&(k=e,h=1);32<=e&&246>=e&&(l=e-139,h=1);247<=e&&250>=e&&(l=256*(e-247)+f+108,h=2);251<=e&&254>=e&&(l=256*-(e-251)-f-108,h=2);255==e&&(l=d.readInt(b,a+1)/65535,h=5);c.val=null!=l?l:"o"+k;c.size=h};g.CFF.readCharString=function(b,a,c){c=a+c;for(var d=g._bin,e=[];a<c;){var f=b[a],h=b[a+1],k=1,l=null,q=null;20>=f&&(l=f,k=1);12==f&&(l=100*f+h,k=2);if(19==f||20==f)l=f,k=2;21<=f&&27>=f&&(l=f,k=1);28==f&&(q=d.readShort(b,a+1),k=3);29<=f&&31>=f&&(l=f,k=1);32<=f&&246>= | ||
f&&(q=f-139,k=1);247<=f&&250>=f&&(q=256*(f-247)+h+108,k=2);251<=f&&254>=f&&(q=256*-(f-251)-h-108,k=2);255==f&&(q=d.readInt(b,a+1)/65535,k=5);e.push(null!=q?q:"o"+l);a+=k}return e};g.CFF.readDict=function(b,a,c){for(var d=g._bin,e={},f=[];a<c;){var h=b[a],k=b[a+1],l=1,q=null,u=null;28==h&&(u=d.readShort(b,a+1),l=3);29==h&&(u=d.readInt(b,a+1),l=5);32<=h&&246>=h&&(u=h-139,l=1);247<=h&&250>=h&&(u=256*(h-247)+k+108,l=2);251<=h&&254>=h&&(u=256*-(h-251)-k-108,l=2);if(255==h)throw d.readInt(b,a+1),"unknown number"; | ||
if(30==h){u=[];for(l=1;;){var m=b[a+l];l++;var p=m>>4;m&=15;15!=p&&u.push(p);15!=m&&u.push(m);if(15==m)break}p="";m=[0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"];for(var n=0;n<u.length;n++)p+=m[u[n]];u=parseFloat(p)}21>=h&&(l="version Notice FullName FamilyName Weight FontBBox BlueValues OtherBlues FamilyBlues FamilyOtherBlues StdHW StdVW escape UniqueID XUID charset Encoding CharStrings Private Subrs defaultWidthX nominalWidthX".split(" "),q=l[h],l=1,12==h&&(l=["Copyright","isFixedPitch", | ||
"ItalicAngle","UnderlinePosition","UnderlineThickness","PaintType","CharstringType","FontMatrix","StrokeWidth","BlueScale","BlueShift","BlueFuzz","StemSnapH","StemSnapV","ForceBold",0,0,"LanguageGroup","ExpansionFactor","initialRandomSeed","SyntheticBase","PostScript","BaseFontName","BaseFontBlend",0,0,0,0,0,0,"ROS","CIDFontVersion","CIDFontRevision","CIDFontType","CIDCount","UIDBase","FDArray","FDSelect","FontName"],q=l[k],l=2));null!=q?(e[q]=1==f.length?f[0]:f,f=[]):f.push(u);a+=l}return e};g.cmap= | ||
{};g.cmap.parse=function(b,a,c){b=new Uint8Array(b.buffer,a,c);a=0;c=g._bin;var d={};c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;var f=[];d.tables=[];for(var h=0;h<e;h++){var k=c.readUshort(b,a);a+=2;var l=c.readUshort(b,a);a+=2;var q=c.readUint(b,a);a+=4;var u="p"+k+"e"+l,m=f.indexOf(q);if(-1==m){m=d.tables.length;var p;f.push(q);var n=c.readUshort(b,q);0==n?p=g.cmap.parse0(b,q):4==n?p=g.cmap.parse4(b,q):6==n?p=g.cmap.parse6(b,q):12==n?p=g.cmap.parse12(b,q):console.log("unknown format: "+ | ||
n,k,l,q);d.tables.push(p)}if(null!=d[u])throw"multiple tables for one platform+encoding";d[u]=m}return d};g.cmap.parse0=function(b,a){var c=g._bin,d={};d.format=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;d.map=[];for(c=0;c<e-6;c++)d.map.push(b[a+c]);return d};g.cmap.parse4=function(b,a){var c=g._bin,d=a,e={};e.format=c.readUshort(b,a);a+=2;var f=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;var h=c.readUshort(b,a);a+=2;h/=2;e.searchRange=c.readUshort(b,a);a+=2;e.entrySelector= | ||
c.readUshort(b,a);a+=2;e.rangeShift=c.readUshort(b,a);a+=2;e.endCount=c.readUshorts(b,a,h);a=a+2*h+2;e.startCount=c.readUshorts(b,a,h);a+=2*h;e.idDelta=[];for(var k=0;k<h;k++)e.idDelta.push(c.readShort(b,a)),a+=2;e.idRangeOffset=c.readUshorts(b,a,h);a+=2*h;for(e.glyphIdArray=[];a<d+f;)e.glyphIdArray.push(c.readUshort(b,a)),a+=2;return e};g.cmap.parse6=function(b,a){var c=g._bin,d={};d.format=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;d.firstCode=c.readUshort(b,a);a+=2;var e= | ||
c.readUshort(b,a);a+=2;d.glyphIdArray=[];for(var f=0;f<e;f++)d.glyphIdArray.push(c.readUshort(b,a)),a+=2;return d};g.cmap.parse12=function(b,a){var c=g._bin,d={};d.format=c.readUshort(b,a);a=a+2+2;c.readUint(b,a);a+=4;c.readUint(b,a);a+=4;var e=c.readUint(b,a);a+=4;d.groups=[];for(var f=0;f<e;f++){var h=a+12*f,k=c.readUint(b,h+0),l=c.readUint(b,h+4);h=c.readUint(b,h+8);d.groups.push([k,l,h])}return d};g.glyf={};g.glyf.parse=function(b,a,c,d){b=[];for(a=0;a<d.maxp.numGlyphs;a++)b.push(null);return b}; | ||
g.glyf._parseGlyf=function(b,a){var c=g._bin,d=b._data,e=g._tabOffset(d,"glyf",b._offset)+b.loca[a];if(b.loca[a]==b.loca[a+1])return null;b={};b.noc=c.readShort(d,e);e+=2;b.xMin=c.readShort(d,e);e+=2;b.yMin=c.readShort(d,e);e+=2;b.xMax=c.readShort(d,e);e+=2;b.yMax=c.readShort(d,e);e+=2;if(b.xMin>=b.xMax||b.yMin>=b.yMax)return null;if(0<b.noc){b.endPts=[];for(a=0;a<b.noc;a++)b.endPts.push(c.readUshort(d,e)),e+=2;a=c.readUshort(d,e);e+=2;if(d.length-e<a)return null;b.instructions=c.readBytes(d,e,a); | ||
e+=a;var f=b.endPts[b.noc-1]+1;b.flags=[];for(a=0;a<f;a++){var h=d[e];e++;b.flags.push(h);if(0!=(h&8)){var k=d[e];e++;for(var l=0;l<k;l++)b.flags.push(h),a++}}b.xs=[];for(a=0;a<f;a++)h=0!=(b.flags[a]&2),k=0!=(b.flags[a]&16),h?(b.xs.push(k?d[e]:-d[e]),e++):k?b.xs.push(0):(b.xs.push(c.readShort(d,e)),e+=2);b.ys=[];for(a=0;a<f;a++)h=0!=(b.flags[a]&4),k=0!=(b.flags[a]&32),h?(b.ys.push(k?d[e]:-d[e]),e++):k?b.ys.push(0):(b.ys.push(c.readShort(d,e)),e+=2);for(a=e=d=0;a<f;a++)d+=b.xs[a],e+=b.ys[a],b.xs[a]= | ||
d,b.ys[a]=e}else{b.parts=[];do a=c.readUshort(d,e),e+=2,f={m:{a:1,b:0,c:0,d:1,tx:0,ty:0},p1:-1,p2:-1},b.parts.push(f),f.glyphIndex=c.readUshort(d,e),e+=2,a&1?(h=c.readShort(d,e),e+=2,k=c.readShort(d,e),e+=2):(h=c.readInt8(d,e),e++,k=c.readInt8(d,e),e++),a&2?(f.m.tx=h,f.m.ty=k):(f.p1=h,f.p2=k),a&8?(f.m.a=f.m.d=c.readF2dot14(d,e),e+=2):a&64?(f.m.a=c.readF2dot14(d,e),e+=2,f.m.d=c.readF2dot14(d,e),e+=2):a&128&&(f.m.a=c.readF2dot14(d,e),e+=2,f.m.b=c.readF2dot14(d,e),e+=2,f.m.c=c.readF2dot14(d,e),e+=2, | ||
f.m.d=c.readF2dot14(d,e),e+=2);while(a&32);if(a&256)for(c=c.readUshort(d,e),e+=2,b.instr=[],a=0;a<c;a++)b.instr.push(d[e]),e++}return b};g.GPOS={};g.GPOS.parse=function(b,a,c,d){return g._lctf.parse(b,a,c,d,g.GPOS.subt)};g.GPOS.subt=function(b,a,c){var d=g._bin,e=c,f={};f.fmt=d.readUshort(b,c);c+=2;if(1==a||2==a||3==a||7==a||8==a&&2>=f.fmt){var h=d.readUshort(b,c);c+=2;f.coverage=g._lctf.readCoverage(b,h+e)}if(1==a&&1==f.fmt){var k=d.readUshort(b,c);c+=2;g._lctf.numOfOnes(k);0!=k&&(f.pos=g.GPOS.readValueRecord(b, | ||
c,k))}else if(2==a){k=d.readUshort(b,c);c+=2;var l=d.readUshort(b,c);c+=2;a=g._lctf.numOfOnes(k);h=g._lctf.numOfOnes(l);if(1==f.fmt){f.pairsets=[];var q=d.readUshort(b,c);c+=2;for(var u=0;u<q;u++){var m=e+d.readUshort(b,c);c+=2;var p=d.readUshort(b,m);m+=2;for(var n=[],t=0;t<p;t++){var w=d.readUshort(b,m);m+=2;if(0!=k){var v=g.GPOS.readValueRecord(b,m,k);m+=2*a}if(0!=l){var y=g.GPOS.readValueRecord(b,m,l);m+=2*h}n.push({gid2:w,val1:v,val2:y})}f.pairsets.push(n)}}if(2==f.fmt)for(v=d.readUshort(b,c), | ||
c+=2,y=d.readUshort(b,c),c+=2,k=d.readUshort(b,c),c+=2,d=d.readUshort(b,c),c+=2,f.classDef1=g._lctf.readClassDef(b,e+v),f.classDef2=g._lctf.readClassDef(b,e+y),f.matrix=[],u=0;u<k;u++){e=[];for(t=0;t<d;t++)y=v=null,0!=f.valFmt1&&(v=g.GPOS.readValueRecord(b,c,f.valFmt1),c+=2*a),0!=f.valFmt2&&(y=g.GPOS.readValueRecord(b,c,f.valFmt2),c+=2*h),e.push({val1:v,val2:y});f.matrix.push(e)}}return f};g.GPOS.readValueRecord=function(b,a,c){var d=g._bin,e=[];e.push(c&1?d.readShort(b,a):0);a+=c&1?2:0;e.push(c& | ||
2?d.readShort(b,a):0);a+=c&2?2:0;e.push(c&4?d.readShort(b,a):0);e.push(c&8?d.readShort(b,a+(c&4?2:0)):0);return e};g.GSUB={};g.GSUB.parse=function(b,a,c,d){return g._lctf.parse(b,a,c,d,g.GSUB.subt)};g.GSUB.subt=function(b,a,c){var d=g._bin,e=c,f={};f.fmt=d.readUshort(b,c);c+=2;if(1!=a&&4!=a&&5!=a&&6!=a)return null;if(1==a||4==a||5==a&&2>=f.fmt||6==a&&2>=f.fmt){var h=d.readUshort(b,c);c+=2;f.coverage=g._lctf.readCoverage(b,e+h)}if(1==a)1==f.fmt?f.delta=d.readShort(b,c):2==f.fmt&&(h=d.readUshort(b, | ||
c),f.newg=d.readUshorts(b,c+2,h));else if(4==a)for(f.vals=[],h=d.readUshort(b,c),c+=2,a=0;a<h;a++){var k=d.readUshort(b,c);c+=2;f.vals.push(g.GSUB.readLigatureSet(b,e+k))}else if(5==a){if(2==f.fmt)for(a=d.readUshort(b,c),c+=2,f.cDef=g._lctf.readClassDef(b,e+a),f.scset=[],h=d.readUshort(b,c),c+=2,a=0;a<h;a++)k=d.readUshort(b,c),c+=2,f.scset.push(0==k?null:g.GSUB.readSubClassSet(b,e+k))}else if(6==a&&3==f.fmt){for(a=0;3>a;a++){h=d.readUshort(b,c);c+=2;k=[];for(var l=0;l<h;l++)k.push(g._lctf.readCoverage(b, | ||
e+d.readUshort(b,c+2*l)));c+=2*h;0==a&&(f.backCvg=k);1==a&&(f.inptCvg=k);2==a&&(f.ahedCvg=k)}h=d.readUshort(b,c);f.lookupRec=g.GSUB.readSubstLookupRecords(b,c+2,h)}return f};g.GSUB.readSubClassSet=function(b,a){var c=g._bin.readUshort,d=a,e=[],f=c(b,a);a+=2;for(var h=0;h<f;h++){var k=c(b,a);a+=2;e.push(g.GSUB.readSubClassRule(b,d+k))}return e};g.GSUB.readSubClassRule=function(b,a){var c=g._bin.readUshort,d={},e=c(b,a);a+=2;var f=c(b,a);a+=2;d.input=[];for(var h=0;h<e-1;h++)d.input.push(c(b,a)),a+= | ||
2;d.substLookupRecords=g.GSUB.readSubstLookupRecords(b,a,f);return d};g.GSUB.readSubstLookupRecords=function(b,a,c){for(var d=g._bin.readUshort,e=[],f=0;f<c;f++)e.push(d(b,a),d(b,a+2)),a+=4;return e};g.GSUB.readChainSubClassSet=function(b,a){var c=g._bin,d=a,e=[],f=c.readUshort(b,a);a+=2;for(var h=0;h<f;h++){var k=c.readUshort(b,a);a+=2;e.push(g.GSUB.readChainSubClassRule(b,d+k))}return e};g.GSUB.readChainSubClassRule=function(b,a){for(var c=g._bin,d={},e=["backtrack","input","lookahead"],f=0;f<e.length;f++){var h= | ||
c.readUshort(b,a);a+=2;1==f&&h--;d[e[f]]=c.readUshorts(b,a,h);a+=2*d[e[f]].length}h=c.readUshort(b,a);d.subst=c.readUshorts(b,a+2,2*h);return d};g.GSUB.readLigatureSet=function(b,a){var c=g._bin,d=a,e=[],f=c.readUshort(b,a);a+=2;for(var h=0;h<f;h++){var k=c.readUshort(b,a);a+=2;e.push(g.GSUB.readLigature(b,d+k))}return e};g.GSUB.readLigature=function(b,a){var c=g._bin,d={chain:[]};d.nglyph=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;for(var f=0;f<e-1;f++)d.chain.push(c.readUshort(b,a)),a+= | ||
2;return d};g.head={};g.head.parse=function(b,a,c){c=g._bin;var d={};c.readFixed(b,a);a+=4;d.fontRevision=c.readFixed(b,a);a+=4;c.readUint(b,a);a+=4;c.readUint(b,a);a+=4;d.flags=c.readUshort(b,a);a+=2;d.unitsPerEm=c.readUshort(b,a);a+=2;d.created=c.readUint64(b,a);a+=8;d.modified=c.readUint64(b,a);a+=8;d.xMin=c.readShort(b,a);a+=2;d.yMin=c.readShort(b,a);a+=2;d.xMax=c.readShort(b,a);a+=2;d.yMax=c.readShort(b,a);a+=2;d.macStyle=c.readUshort(b,a);a+=2;d.lowestRecPPEM=c.readUshort(b,a);a+=2;d.fontDirectionHint= | ||
c.readShort(b,a);a+=2;d.indexToLocFormat=c.readShort(b,a);d.glyphDataFormat=c.readShort(b,a+2);return d};g.hhea={};g.hhea.parse=function(b,a,c){c=g._bin;var d={};c.readFixed(b,a);a+=4;d.ascender=c.readShort(b,a);a+=2;d.descender=c.readShort(b,a);a+=2;d.lineGap=c.readShort(b,a);a+=2;d.advanceWidthMax=c.readUshort(b,a);a+=2;d.minLeftSideBearing=c.readShort(b,a);a+=2;d.minRightSideBearing=c.readShort(b,a);a+=2;d.xMaxExtent=c.readShort(b,a);a+=2;d.caretSlopeRise=c.readShort(b,a);a+=2;d.caretSlopeRun= | ||
c.readShort(b,a);a+=2;d.caretOffset=c.readShort(b,a);a=a+2+8;d.metricDataFormat=c.readShort(b,a);d.numberOfHMetrics=c.readUshort(b,a+2);return d};g.hmtx={};g.hmtx.parse=function(b,a,c,d){c=g._bin;for(var e={aWidth:[],lsBearing:[]},f=0,h=0,k=0;k<d.maxp.numGlyphs;k++)k<d.hhea.numberOfHMetrics&&(f=c.readUshort(b,a),a+=2,h=c.readShort(b,a),a+=2),e.aWidth.push(f),e.lsBearing.push(h);return e};g.kern={};g.kern.parse=function(b,a,c,d){var e=g._bin,f=e.readUshort(b,a);a+=2;if(1==f)return g.kern.parseV1(b, | ||
a-2,c,d);c=e.readUshort(b,a);a+=2;d={glyph1:[],rval:[]};for(f=0;f<c;f++){a+=2;e.readUshort(b,a);a+=2;var h=e.readUshort(b,a);a+=2;h>>>=8;h&=15;if(0==h)a=g.kern.readFormat0(b,a,d);else throw"unknown kern table format: "+h;}return d};g.kern.parseV1=function(b,a,c,d){c=g._bin;c.readFixed(b,a);a+=4;d=c.readUint(b,a);a+=4;for(var e={glyph1:[],rval:[]},f=0;f<d;f++){c.readUint(b,a);a+=4;var h=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;h>>>=8;h&=15;if(0==h)a=g.kern.readFormat0(b,a,e);else throw"unknown kern table format: "+ | ||
h;}return e};g.kern.readFormat0=function(b,a,c){var d=g._bin,e=-1,f=d.readUshort(b,a);a+=2;d.readUshort(b,a);a+=2;d.readUshort(b,a);a+=2;d.readUshort(b,a);a+=2;for(var h=0;h<f;h++){var k=d.readUshort(b,a);a+=2;var l=d.readUshort(b,a);a+=2;var q=d.readShort(b,a);a+=2;k!=e&&(c.glyph1.push(k),c.rval.push({glyph2:[],vals:[]}));e=c.rval[c.rval.length-1];e.glyph2.push(l);e.vals.push(q);e=k}return a};g.loca={};g.loca.parse=function(b,a,c,d){c=g._bin;var e=[],f=d.head.indexToLocFormat;d=d.maxp.numGlyphs+ | ||
1;if(0==f)for(var h=0;h<d;h++)e.push(c.readUshort(b,a+(h<<1))<<1);if(1==f)for(h=0;h<d;h++)e.push(c.readUint(b,a+(h<<2)));return e};g.maxp={};g.maxp.parse=function(b,a,c){c=g._bin;var d={},e=c.readUint(b,a);a+=4;d.numGlyphs=c.readUshort(b,a);a+=2;65536==e&&(d.maxPoints=c.readUshort(b,a),a+=2,d.maxContours=c.readUshort(b,a),a+=2,d.maxCompositePoints=c.readUshort(b,a),a+=2,d.maxCompositeContours=c.readUshort(b,a),a+=2,d.maxZones=c.readUshort(b,a),a+=2,d.maxTwilightPoints=c.readUshort(b,a),a+=2,d.maxStorage= | ||
c.readUshort(b,a),a+=2,d.maxFunctionDefs=c.readUshort(b,a),a+=2,d.maxInstructionDefs=c.readUshort(b,a),a+=2,d.maxStackElements=c.readUshort(b,a),a+=2,d.maxSizeOfInstructions=c.readUshort(b,a),a+=2,d.maxComponentElements=c.readUshort(b,a),d.maxComponentDepth=c.readUshort(b,a+2));return d};g.name={};g.name.parse=function(b,a,c){c=g._bin;var d={};c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;for(var f="copyright fontFamily fontSubfamily ID fullName version postScriptName trademark manufacturer designer description urlVendor urlDesigner licence licenceURL --- typoFamilyName typoSubfamilyName compatibleFull sampleText postScriptCID wwsFamilyName wwsSubfamilyName lightPalette darkPalette".split(" "), | ||
h=a,k=0;k<e;k++){var l=c.readUshort(b,a);a+=2;var q=c.readUshort(b,a);a+=2;var u=c.readUshort(b,a);a+=2;var m=c.readUshort(b,a);a+=2;var p=c.readUshort(b,a);a+=2;var n=c.readUshort(b,a);a+=2;m=f[m];n=h+12*e+n;if(0==l)p=c.readUnicode(b,n,p/2);else if(3==l&&0==q)p=c.readUnicode(b,n,p/2);else if(0==q)p=c.readASCII(b,n,p);else if(1==q)p=c.readUnicode(b,n,p/2);else if(3==q)p=c.readUnicode(b,n,p/2);else if(1==l)p=c.readASCII(b,n,p),console.log("reading unknown MAC encoding "+q+" as ASCII");else throw"unknown encoding "+ | ||
@@ -102,17 +102,17 @@ q+", platformID: "+l;l="p"+l+","+u.toString(16);null==d[l]&&(d[l]={});d[l][m]=p;d[l]._lang=u}for(var t in d)if(null!=d[t].postScriptName&&1033==d[t]._lang)return d[t];for(t in d)if(null!=d[t].postScriptName&&0==d[t]._lang)return d[t];for(t in d)if(null!=d[t].postScriptName&&3084==d[t]._lang)return d[t];for(t in d)if(null!=d[t].postScriptName)return d[t];for(t in d){var w=t;break}console.log("returning name table with languageID "+d[w]._lang);return d[w]};g["OS/2"]={};g["OS/2"].parse=function(b,a, | ||
f.y,a.x,a.y);f=a}n=d;t=e;break;case "C":a={x:n,y:t};for(h=1;16>h;h++){var k=h/15;var l=1-k;k={x:l*l*l*n+3*l*l*k*b+3*l*k*k*d+k*k*k*f,y:l*l*l*t+3*l*l*k*c+3*l*k*k*e+k*k*k*g};u.addLineSegment(a.x,a.y,k.x,k.y);a=k}n=f;t=g;break;case "Z":n===m&&t===p||u.addLineSegment(n,t,m,p)}});for(d=0;d<b;d++)for(var r=0;r<b;r++){var v=u.findNearestSignedDistance(g+(l-g)*(d+.5)/b,f+(q-f)*(r+.5)/b,k);v=isFinite(v)?Math.round(127.5*(1+v/k)):v;v=Math.max(0,Math.min(255,v));e[r*b+d]=v}}return{textureData:e,renderingBounds:[g, | ||
f,l,q]}}},function(r,g,b){function a(a,b){function c(){var d=function(b){console.error("Failure loading font "+a+(a===f?"":"; trying fallback"),b);a!==f&&(a=f,c())};try{var e=new XMLHttpRequest;e.open("get",a,!0);e.responseType="arraybuffer";e.onload=function(){try{var a=r(e.response);b(a)}catch(n){d(n)}};e.onerror=d;e.send()}catch(p){d(p)}}c()}function c(b,c){b||(b=f);var d=h[b];if(d)d.onload?d.onload.push(c):c();else{var e=h[b]={onload:[c]};a(b,function(a){d=h[b]={fontObj:a,glyphs:{},glyphCount:0}; | ||
e.onload.forEach(function(a){return a()})})}}function d(a,b){a||(a=f);c(a,function(){b(h[a])})}function e(a,b,c){var e=a.text;void 0===e&&(e="");var h=a.font;void 0===h&&(h=f);var k=a.fontSize;void 0===k&&(k=1);var l=a.letterSpacing;void 0===l&&(l=0);var q=a.lineHeight;void 0===q&&(q="normal");var r=a.maxWidth;void 0===r&&(r=Infinity);var v=a.textAlign;void 0===v&&(v="left");var y=a.whiteSpace;void 0===y&&(y="normal");var A=a.overflowWrap;void 0===A&&(A="normal");var z=a.anchor;void 0===c&&(c=!1); | ||
d(h,function(a){var d=a.fontObj,f=isFinite(r),h=null,m=null,n=null,p=null,t=0,u=0,w="nowrap"!==y,B=k/d.unitsPerEm;"normal"===q&&(q=(d.ascender-d.descender)/d.unitsPerEm);q*=k;var C=(q-(d.ascender-d.descender)*B)/2,D=e.split(/\r?\n/).map(function(a){var b=0,c=[],e=[c];d.forEachGlyph(a,k,l,function(a,d){var g=a.unicode;g="number"===typeof g&&String.fromCharCode(g);var h=a.advanceWidth*B,k=!!g&&/\s/.test(g);if(w&&f&&!k&&d+h+b>r&&c.length){if(c[c.length-1].isWhitespace){var l=[];b=-d}else for(var m=c.length;m--;)if(0=== | ||
m&&"break-word"===A){l=[];b=-d;break}else if(c[m].isWhitespace){l=c.splice(m+1);m=l[0].x;b-=m;for(var n=0;n<l.length;n++)l[n].x-=m;break}if(l){for(;c[c.length-1].isWhitespace;)c.pop();e.push(c=l);u=r}}c.push({glyphObj:a,x:d+b,y:0,width:h,char:g,isWhitespace:k,isEmpty:a.xMin===a.xMax||a.yMin===a.yMax,atlasInfo:null})});for(a=0;a<e.length&&u<r;a++){var g=e[a];g.length&&(g=g[g.length-1],u=Math.max(u,g.x+g.width))}t+=e.length;return e});if(!c){var F=[],H=-(k+C);D.forEach(function(b){for(var c=0;c<b.length;c++){var d= | ||
b[c];if(d.length){var e=0,f=d[d.length-1];f=f.x+f.width;var k=0;if("center"===v)e=(u-f)/2;else if("right"===v)e=u-f;else if("justify"===v)for(var l=0,m=d.length;l<m;l++)d[l].isWhitespace&&k++;l=0;for(m=d.length;l<m;l++){var n=d[l];n.isWhitespace&&"justify"===v&&c!==b.length-1&&(e+=(u-f)/k);if(!n.isWhitespace&&!n.isEmpty){var p=n.glyphObj,r=a.glyphs[p.index];r||(r=g(p),r.atlasIndex=a.glyphCount++,h||(h=[]),h.push(r),r=a.glyphs[p.index]={atlasIndex:r.atlasIndex,glyphObj:p,renderingBounds:r.renderingBounds}); | ||
n.atlasInfo=r;e&&(n.x+=e);n.y=H;F.push(n)}}}H-=q}});var G=0,I=0;z&&(z[0]&&(G=-u*z[0]),z[1]&&(I=t*q*z[1]));m=new Float32Array(4*F.length);n=new Float32Array(F.length);p=[Infinity,Infinity,-Infinity,-Infinity];F.forEach(function(a,b){var c=a.atlasInfo,d=c.renderingBounds;c=c.atlasIndex;var e=m[4*b]=a.x+d[0]*B+G,f=m[4*b+1]=a.y+d[1]*B+I,g=m[4*b+2]=a.x+d[2]*B+G;a=m[4*b+3]=a.y+d[3]*B+I;e<p[0]&&(p[0]=e);f<p[1]&&(p[1]=f);g>p[2]&&(p[2]=g);a>p[3]&&(p[3]=a);n[b]=c})}b({glyphBounds:m,glyphIndices:n,totalBounds:p, | ||
totalBlockSize:[u,t*q],newGlyphSDFs:h})})}var f=b.defaultFontUrl,h=Object.create(null);return{process:e,measure:function(a,b){e(a,function(a){b({width:a.totalBlockSize[0],height:a.totalBlockSize[1]})},!0)},loadFont:c}}],init:function(r,g,b,a,c){g=a({sdfTextureSize:r.sdfGlyphSize,sdfDistancePercent:g});return c(b,g,{defaultFontUrl:r.defaultFontURL})}});var T=F.defineWorkerModule({dependencies:[G,F.ThenableWorkerModule],init:function(r,g){return function(b){var a=new g;r.process(b,a.resolve);return a}}, | ||
getTransferables:function(r){var g=[r.glyphBounds.buffer,r.glyphIndices.buffer];r.newGlyphSDFs&&r.newGlyphSDFs.forEach(function(b){g.push(b.textureData.buffer)});return g}}),V=(new z.PlaneBufferGeometry(1,1)).translate(.5,.5,0),W=new z.Vector3,N=function(r){function g(){r.call(this);this.copy(V);this.addAttribute("aTroikaGlyphBounds",new z.InstancedBufferAttribute(new Float32Array(0),4));this.addAttribute("aTroikaGlyphIndex",new z.InstancedBufferAttribute(new Float32Array(0),1));this.boundingSphere= | ||
new z.Sphere}r&&(g.__proto__=r);g.prototype=Object.create(r&&r.prototype);g.prototype.constructor=g;g.prototype.computeBoundingSphere=function(){};g.prototype.updateGlyphs=function(b,a,c){M(this.attributes.aTroikaGlyphBounds,b);M(this.attributes.aTroikaGlyphIndex,a);this.maxInstancedCount=a.length;b=this.boundingSphere;b.center.set((c[0]+c[2])/2,(c[1]+c[3])/2,0);b.radius=b.center.distanceTo(W.set(c[0],c[1],0))};return g}(z.InstancedBufferGeometry),O=new z.MeshBasicMaterial({color:16777215,side:z.DoubleSide, | ||
transparent:!0}),X=Object.freeze([0,0,0,0]),Y=new z.Matrix4,P=new z.Mesh((new z.PlaneBufferGeometry(1,1)).translate(.5,.5,0),O),Q=function(r){function g(a){a=new N;r.call(this,a,null);this.text="";this.font=this.anchor=null;this.fontSize=.1;this.letterSpacing=0;this.lineHeight="normal";this.maxWidth=Infinity;this.overflowWrap="normal";this.textAlign="left";this.whiteSpace="normal";this.color=this.material=null;this.depthOffset=0;this.clipRect=null;this.debugSDF=!1}r&&(g.__proto__=r);g.prototype=Object.create(r&& | ||
r.prototype);g.prototype.constructor=g;var b={material:{configurable:!0}};g.prototype.sync=function(a){var b=this;this._needsSync&&(this._needsSync=!1,this._isSyncing?(this._queuedSyncs||(this._queuedSyncs=[])).push(a):(this._isSyncing=!0,S({text:this.text,font:this.font,fontSize:this.fontSize,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,maxWidth:this.maxWidth,textAlign:this.textAlign,whiteSpace:this.whiteSpace,overflowWrap:this.overflowWrap,anchor:this.anchor},function(c){b._isSyncing= | ||
!1;b._textRenderInfo=c;b.geometry.updateGlyphs(c.glyphBounds,c.glyphIndices,c.totalBounds);var d=b._queuedSyncs;d&&(b._queuedSyncs=null,b._needsSync=!0,b.sync(function(){d.forEach(function(a){return a&&a()})}));a&&a()})))};g.prototype.onBeforeRender=function(){this.sync();this._prepareMaterial()};g.prototype.dispose=function(){this.geometry.dispose()};b.material.get=function(){var a=this._derivedMaterial,b=this._baseMaterial||O;a&&a.baseMaterial===b||(a&&a.dispose(),a=this._derivedMaterial=U(b),b.addEventListener("dispose", | ||
function e(){b.removeEventListener("dispose",e);a.dispose()}));return a};b.material.set=function(a){this._baseMaterial=a};g.prototype._prepareMaterial=function(){var a=this._derivedMaterial,b=this._textRenderInfo,d=a.uniforms;if(b){var e=b.sdfTexture;d.uTroikaSDFTexture.value=e;d.uTroikaSDFMinDistancePct.value=b.sdfMinDistancePercent;d.uTroikaGlyphVSize.value=e.image.width/e.image.height;d.uTroikaTotalBounds.value.fromArray(b.totalBounds)}d.uTroikaSDFDebug.value=!!this.debugSDF;(b=this.clipRect)&& | ||
Array.isArray(b)&&4===b.length||(b=X);d.uTroikaClipRect.value.fromArray(b);a.polygonOffset=!!this.depthOffset;a.polygonOffsetFactor=a.polygonOffsetUnits=this.depthOffset||0;d=this.color;null!=d&&a.color&&a.color.isColor&&d!==a._troikaColor&&a.color.set(a._troikaColor=d)};g.prototype.raycast=function(a,b){var c=this._textRenderInfo;c&&(c=c.totalBounds,P.matrixWorld.multiplyMatrices(this.matrixWorld,Y.set(c[2]-c[0],0,0,c[0],0,c[3]-c[1],0,c[1],0,0,1,0,0,0,0,1)),P.raycast(a,b))};Object.defineProperties(g.prototype, | ||
b);return g}(z.Mesh);"font fontSize letterSpacing lineHeight maxWidth overflowWrap text textAlign whiteSpace anchor".split(" ").forEach(function(r){var g="_private_"+r;Object.defineProperty(Q.prototype,r,{get:function(){return this[g]},set:"anchor"===r?function(b){JSON.stringify(b)!==JSON.stringify(this[g])&&(this[g]=b,this._needsSync=!0)}:function(b){b!==this[g]&&(this[g]=b,this._needsSync=!0)}})});C.GlyphsGeometry=N;C.TextMesh=Q;C.configureTextBuilder=function(r){J(H,r)};C.fontProcessorWorkerModule= | ||
G;Object.defineProperty(C,"__esModule",{value:!0})}); | ||
f,l,q]}}},function(r,g,b){function a(a,b){function c(){var d=function(b){console.error("Failure loading font "+a+(a===f?"":"; trying fallback"),b);a!==f&&(a=f,c())};try{var e=new XMLHttpRequest;e.open("get",a,!0);e.responseType="arraybuffer";e.onload=function(){if(400<=e.status)d(Error(e.statusText));else if(0<e.status)try{var a=r(e.response);b(a)}catch(n){d(n)}};e.onerror=d;e.send()}catch(p){d(p)}}c()}function c(b,c){b||(b=f);var d=h[b];if(d)d.onload?d.onload.push(c):c();else{var e=h[b]={onload:[c]}; | ||
a(b,function(a){d=h[b]={fontObj:a,glyphs:{},glyphCount:0};e.onload.forEach(function(a){return a()})})}}function d(a,b){a||(a=f);c(a,function(){b(h[a])})}function e(a,b,c){var e=a.text;void 0===e&&(e="");var h=a.font;void 0===h&&(h=f);var k=a.fontSize;void 0===k&&(k=1);var l=a.letterSpacing;void 0===l&&(l=0);var q=a.lineHeight;void 0===q&&(q="normal");var r=a.maxWidth;void 0===r&&(r=Infinity);var v=a.textAlign;void 0===v&&(v="left");var y=a.whiteSpace;void 0===y&&(y="normal");var A=a.overflowWrap; | ||
void 0===A&&(A="normal");var z=a.anchor;void 0===c&&(c=!1);d(h,function(a){var d=a.fontObj,f=isFinite(r),h=null,m=null,n=null,p=null,t=0,u=0,w="nowrap"!==y,B=k/d.unitsPerEm;"normal"===q&&(q=(d.ascender-d.descender)/d.unitsPerEm);q*=k;var C=(q-(d.ascender-d.descender)*B)/2,D=e.split(/\r?\n/).map(function(a){var b=0,c=[],e=[c];d.forEachGlyph(a,k,l,function(a,d){var g=a.unicode;g="number"===typeof g&&String.fromCharCode(g);var h=a.advanceWidth*B,k=!!g&&/\s/.test(g);if(w&&f&&!k&&d+h+b>r&&c.length){if(c[c.length- | ||
1].isWhitespace){var l=[];b=-d}else for(var m=c.length;m--;)if(0===m&&"break-word"===A){l=[];b=-d;break}else if(c[m].isWhitespace){l=c.splice(m+1);m=l[0].x;b-=m;for(var n=0;n<l.length;n++)l[n].x-=m;break}if(l){for(;c[c.length-1].isWhitespace;)c.pop();e.push(c=l);u=r}}c.push({glyphObj:a,x:d+b,y:0,width:h,char:g,isWhitespace:k,isEmpty:a.xMin===a.xMax||a.yMin===a.yMax,atlasInfo:null})});for(a=0;a<e.length&&u<r;a++){var g=e[a];g.length&&(g=g[g.length-1],u=Math.max(u,g.x+g.width))}t+=e.length;return e}); | ||
if(!c){var F=[],H=-(k+C);D.forEach(function(b){for(var c=0;c<b.length;c++){var d=b[c];if(d.length){var e=0,f=d[d.length-1];f=f.x+f.width;var k=0;if("center"===v)e=(u-f)/2;else if("right"===v)e=u-f;else if("justify"===v)for(var l=0,m=d.length;l<m;l++)d[l].isWhitespace&&k++;l=0;for(m=d.length;l<m;l++){var n=d[l];n.isWhitespace&&"justify"===v&&c!==b.length-1&&(e+=(u-f)/k);if(!n.isWhitespace&&!n.isEmpty){var p=n.glyphObj,r=a.glyphs[p.index];r||(r=g(p),r.atlasIndex=a.glyphCount++,h||(h=[]),h.push(r),r= | ||
a.glyphs[p.index]={atlasIndex:r.atlasIndex,glyphObj:p,renderingBounds:r.renderingBounds});n.atlasInfo=r;e&&(n.x+=e);n.y=H;F.push(n)}}}H-=q}});var G=0,I=0;z&&(z[0]&&(G=-u*z[0]),z[1]&&(I=t*q*z[1]));m=new Float32Array(4*F.length);n=new Float32Array(F.length);p=[Infinity,Infinity,-Infinity,-Infinity];F.forEach(function(a,b){var c=a.atlasInfo,d=c.renderingBounds;c=c.atlasIndex;var e=m[4*b]=a.x+d[0]*B+G,f=m[4*b+1]=a.y+d[1]*B+I,g=m[4*b+2]=a.x+d[2]*B+G;a=m[4*b+3]=a.y+d[3]*B+I;e<p[0]&&(p[0]=e);f<p[1]&&(p[1]= | ||
f);g>p[2]&&(p[2]=g);a>p[3]&&(p[3]=a);n[b]=c})}b({glyphBounds:m,glyphIndices:n,totalBounds:p,totalBlockSize:[u,t*q],newGlyphSDFs:h})})}var f=b.defaultFontUrl,h=Object.create(null);return{process:e,measure:function(a,b){e(a,function(a){b({width:a.totalBlockSize[0],height:a.totalBlockSize[1]})},!0)},loadFont:c}}],init:function(r,g,b,a,c){g=a({sdfTextureSize:r.sdfGlyphSize,sdfDistancePercent:g});return c(b,g,{defaultFontUrl:r.defaultFontURL})}});var T=F.defineWorkerModule({dependencies:[G,F.ThenableWorkerModule], | ||
init:function(r,g){return function(b){var a=new g;r.process(b,a.resolve);return a}},getTransferables:function(r){var g=[r.glyphBounds.buffer,r.glyphIndices.buffer];r.newGlyphSDFs&&r.newGlyphSDFs.forEach(function(b){g.push(b.textureData.buffer)});return g}}),V=(new z.PlaneBufferGeometry(1,1)).translate(.5,.5,0),W=new z.Vector3,N=function(r){function g(){r.call(this);this.copy(V);this.addAttribute("aTroikaGlyphBounds",new z.InstancedBufferAttribute(new Float32Array(0),4));this.addAttribute("aTroikaGlyphIndex", | ||
new z.InstancedBufferAttribute(new Float32Array(0),1));this.boundingSphere=new z.Sphere}r&&(g.__proto__=r);g.prototype=Object.create(r&&r.prototype);g.prototype.constructor=g;g.prototype.computeBoundingSphere=function(){};g.prototype.updateGlyphs=function(b,a,c){M(this.attributes.aTroikaGlyphBounds,b);M(this.attributes.aTroikaGlyphIndex,a);this.maxInstancedCount=a.length;b=this.boundingSphere;b.center.set((c[0]+c[2])/2,(c[1]+c[3])/2,0);b.radius=b.center.distanceTo(W.set(c[0],c[1],0))};return g}(z.InstancedBufferGeometry), | ||
O=new z.MeshBasicMaterial({color:16777215,side:z.DoubleSide,transparent:!0}),X=Object.freeze([0,0,0,0]),Y=new z.Matrix4,P=new z.Mesh((new z.PlaneBufferGeometry(1,1)).translate(.5,.5,0),O),Q=function(r){function g(a){a=new N;r.call(this,a,null);this.text="";this.font=this.anchor=null;this.fontSize=.1;this.letterSpacing=0;this.lineHeight="normal";this.maxWidth=Infinity;this.overflowWrap="normal";this.textAlign="left";this.whiteSpace="normal";this.color=this.material=null;this.depthOffset=0;this.clipRect= | ||
null;this.debugSDF=!1}r&&(g.__proto__=r);g.prototype=Object.create(r&&r.prototype);g.prototype.constructor=g;var b={material:{configurable:!0},customDepthMaterial:{configurable:!0},customDistanceMaterial:{configurable:!0}};g.prototype.sync=function(a){var b=this;this._needsSync&&(this._needsSync=!1,this._isSyncing?(this._queuedSyncs||(this._queuedSyncs=[])).push(a):(this._isSyncing=!0,S({text:this.text,font:this.font,fontSize:this.fontSize,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight, | ||
maxWidth:this.maxWidth,textAlign:this.textAlign,whiteSpace:this.whiteSpace,overflowWrap:this.overflowWrap,anchor:this.anchor},function(c){b._isSyncing=!1;b._textRenderInfo=c;b.geometry.updateGlyphs(c.glyphBounds,c.glyphIndices,c.totalBounds);var d=b._queuedSyncs;d&&(b._queuedSyncs=null,b._needsSync=!0,b.sync(function(){d.forEach(function(a){return a&&a()})}));a&&a()})))};g.prototype.onBeforeRender=function(){this.sync();this._prepareMaterial()};g.prototype.dispose=function(){this.geometry.dispose()}; | ||
b.material.get=function(){var a=this._derivedMaterial,b=this._baseMaterial||O;a&&a.baseMaterial===b||(a&&a.dispose(),a=this._derivedMaterial=U(b),b.addEventListener("dispose",function e(){b.removeEventListener("dispose",e);a.dispose()}));return a};b.material.set=function(a){this._baseMaterial=a};b.customDepthMaterial.get=function(){return this._updateLayoutUniforms(this.material.getDepthMaterial())};b.customDistanceMaterial.get=function(){return this._updateLayoutUniforms(this.material.getDistanceMaterial())}; | ||
g.prototype._prepareMaterial=function(){var a=this._derivedMaterial;this._updateLayoutUniforms(a);a.uniforms.uTroikaSDFDebug.value=!!this.debugSDF;a.polygonOffset=!!this.depthOffset;a.polygonOffsetFactor=a.polygonOffsetUnits=this.depthOffset||0;var b=this.color;null!=b&&a.color&&a.color.isColor&&b!==a._troikaColor&&a.color.set(a._troikaColor=b)};g.prototype._updateLayoutUniforms=function(a){var b=this._textRenderInfo,d=a.uniforms;if(b){var e=b.sdfTexture;d.uTroikaSDFTexture.value=e;d.uTroikaSDFMinDistancePct.value= | ||
b.sdfMinDistancePercent;d.uTroikaGlyphVSize.value=e.image.width/e.image.height;d.uTroikaTotalBounds.value.fromArray(b.totalBounds)}(b=this.clipRect)&&Array.isArray(b)&&4===b.length||(b=X);d.uTroikaClipRect.value.fromArray(b);return a};g.prototype.raycast=function(a,b){var c=this._textRenderInfo;c&&(c=c.totalBounds,P.matrixWorld.multiplyMatrices(this.matrixWorld,Y.set(c[2]-c[0],0,0,c[0],0,c[3]-c[1],0,c[1],0,0,1,0,0,0,0,1)),P.raycast(a,b))};Object.defineProperties(g.prototype,b);return g}(z.Mesh);"font fontSize letterSpacing lineHeight maxWidth overflowWrap text textAlign whiteSpace anchor".split(" ").forEach(function(r){var g= | ||
"_private_"+r;Object.defineProperty(Q.prototype,r,{get:function(){return this[g]},set:"anchor"===r?function(b){JSON.stringify(b)!==JSON.stringify(this[g])&&(this[g]=b,this._needsSync=!0)}:function(b){b!==this[g]&&(this[g]=b,this._needsSync=!0)}})});C.GlyphsGeometry=N;C.TextMesh=Q;C.configureTextBuilder=function(r){J(H,r)};C.fontProcessorWorkerModule=G;Object.defineProperty(C,"__esModule",{value:!0})}); |
@@ -6,47 +6,47 @@ 'use strict';(function(C,y){"object"===typeof exports&&"undefined"!==typeof module?y(exports,require("three"),require("troika-worker-utils"),require("troika-three-utils"),require("troika-3d")):"function"===typeof define&&define.amd?define(["exports","three","troika-worker-utils","troika-three-utils","troika-3d"],y):(C=C||self,y(C.troika_3d_text={},C.THREE,C.troika_worker_utils,C.troika_three_utils,C.troika_3d))})(this,function(C,y,F,R,S){function T(l,f){l=K({},l);L.href=l.font||I.defaultFontURL;l.font= | ||
fragmentDefs:"\nuniform sampler2D uTroikaSDFTexture;\nuniform float uTroikaSDFMinDistancePct;\nuniform bool uTroikaSDFDebug;\nuniform float uTroikaGlyphVSize;\nuniform vec4 uTroikaClipRect;\nvarying vec2 vTroikaGlyphUV;\nvarying vec3 vTroikaLocalPos;\n\nvoid troikaApplyClipping() {\n vec4 rect = uTroikaClipRect;\n vec3 pos = vTroikaLocalPos;\n if (rect != vec4(.0,.0,.0,.0) && (\n pos.x < min(rect.x, rect.z) || \n pos.y < min(rect.y, rect.w) ||\n pos.x > max(rect.x, rect.z) ||\n pos.y > max(rect.y, rect.w)\n )) {\n discard;\n }\n}\n", | ||
fragmentColorTransform:"\ntroikaApplyClipping();\n\nfloat troikaSDFValue = texture2D(uTroikaSDFTexture, vTroikaGlyphUV).r;\n\n\n#if defined(GL_OES_standard_derivatives) || __VERSION__ >= 300\n float troikaAntiAliasDist = min(\n 0.5,\n 0.5 * min(\n fwidth(vTroikaGlyphUV.x), \n fwidth(vTroikaGlyphUV.y / uTroikaGlyphVSize)\n )\n ) / uTroikaSDFMinDistancePct;\n#else\n float troikaAntiAliasDist = 0.01;\n#endif\n\nfloat textAlphaMult = uTroikaSDFDebug ? troikaSDFValue : smoothstep(\n 0.5 - troikaAntiAliasDist,\n 0.5 + troikaAntiAliasDist,\n troikaSDFValue\n);\nif (textAlphaMult == 0.0) {\n if (uTroikaSDFDebug) {\n gl_FragColor *= 0.5;\n } else {\n discard;\n }\n} else {\n gl_FragColor.a *= textAlphaMult;\n}\n"}); | ||
l.transparent=!0;return l}var H=F.defineWorkerModule({dependencies:[function(){var l=self,f={parse:function(b){var a=f._bin;b=new Uint8Array(b);if("ttcf"==a.readASCII(b,0,4)){var c=4;a.readUshort(b,c);c+=2;a.readUshort(b,c);c+=2;var d=a.readUint(b,c);c+=4;for(var e=[],g=0;g<d;g++){var h=a.readUint(b,c);c+=4;e.push(f._readFont(b,h))}return e}return[f._readFont(b,0)]},_readFont:function(b,a){var c=f._bin,d=a;c.readFixed(b,a);a+=4;var e=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;c.readUshort(b,a); | ||
a+=2;c.readUshort(b,a);a+=2;var g="cmap;head;hhea;maxp;hmtx;name;OS/2;post;loca;glyf;kern;CFF ;GPOS;GSUB;SVG ".split(";");d={_data:b,_offset:d};for(var h={},k=0;k<e;k++){var n=c.readASCII(b,a,4);a+=4;c.readUint(b,a);a+=4;var t=c.readUint(b,a);a+=4;var u=c.readUint(b,a);a+=4;h[n]={offset:t,length:u}}for(k=0;k<g.length;k++)a=g[k],h[a]&&(d[a.trim()]=f[a.trim()].parse(b,h[a].offset,h[a].length,d));return d},_tabOffset:function(b,a,c){var d=f._bin,e=d.readUshort(b,c+4);c+=12;for(var g=0;g<e;g++){var h= | ||
d.readASCII(b,c,4);c+=4;d.readUint(b,c);c+=4;var k=d.readUint(b,c);c+=4;d.readUint(b,c);c+=4;if(h==a)return k}return 0}};f._bin={readFixed:function(b,a){return(b[a]<<8|b[a+1])+(b[a+2]<<8|b[a+3])/65540},readF2dot14:function(b,a){return f._bin.readShort(b,a)/16384},readInt:function(b,a){var c=f._bin.t.uint8;c[0]=b[a+3];c[1]=b[a+2];c[2]=b[a+1];c[3]=b[a];return f._bin.t.int32[0]},readInt8:function(b,a){f._bin.t.uint8[0]=b[a];return f._bin.t.int8[0]},readShort:function(b,a){var c=f._bin.t.uint8;c[1]=b[a]; | ||
c[0]=b[a+1];return f._bin.t.int16[0]},readUshort:function(b,a){return b[a]<<8|b[a+1]},readUshorts:function(b,a,c){for(var d=[],e=0;e<c;e++)d.push(f._bin.readUshort(b,a+2*e));return d},readUint:function(b,a){var c=f._bin.t.uint8;c[3]=b[a];c[2]=b[a+1];c[1]=b[a+2];c[0]=b[a+3];return f._bin.t.uint32[0]},readUint64:function(b,a){return 4294967296*f._bin.readUint(b,a)+f._bin.readUint(b,a+4)},readASCII:function(b,a,c){for(var d="",e=0;e<c;e++)d+=String.fromCharCode(b[a+e]);return d},readUnicode:function(b, | ||
a,c){for(var d="",e=0;e<c;e++){var g=b[a++]<<8|b[a++];d+=String.fromCharCode(g)}return d},_tdec:l.TextDecoder?new l.TextDecoder:null,readUTF8:function(b,a,c){var d=f._bin._tdec;return d&&0==a&&c==b.length?d.decode(b):f._bin.readASCII(b,a,c)},readBytes:function(b,a,c){for(var d=[],e=0;e<c;e++)d.push(b[a+e]);return d},readASCIIArray:function(b,a,c){for(var d=[],e=0;e<c;e++)d.push(String.fromCharCode(b[a+e]));return d}};f._bin.t={buff:new ArrayBuffer(8)};f._bin.t.int8=new Int8Array(f._bin.t.buff);f._bin.t.uint8= | ||
new Uint8Array(f._bin.t.buff);f._bin.t.int16=new Int16Array(f._bin.t.buff);f._bin.t.uint16=new Uint16Array(f._bin.t.buff);f._bin.t.int32=new Int32Array(f._bin.t.buff);f._bin.t.uint32=new Uint32Array(f._bin.t.buff);f._lctf={};f._lctf.parse=function(b,a,c,d,e){var g=f._bin;c={};d=a;g.readFixed(b,a);a+=4;var h=g.readUshort(b,a);a+=2;var k=g.readUshort(b,a);a=g.readUshort(b,a+2);c.scriptList=f._lctf.readScriptList(b,d+h);c.featureList=f._lctf.readFeatureList(b,d+k);c.lookupList=f._lctf.readLookupList(b, | ||
d+a,e);return c};f._lctf.readLookupList=function(b,a,c){var d=f._bin,e=a,g=[],h=d.readUshort(b,a);a+=2;for(var k=0;k<h;k++){var n=d.readUshort(b,a);a+=2;n=f._lctf.readLookupTable(b,e+n,c);g.push(n)}return g};f._lctf.readLookupTable=function(b,a,c){var d=f._bin,e=a,g={tabs:[]};g.ltype=d.readUshort(b,a);a+=2;g.flag=d.readUshort(b,a);a+=2;var h=d.readUshort(b,a);a+=2;for(var k=0;k<h;k++){var n=d.readUshort(b,a);a+=2;n=c(b,g.ltype,e+n);g.tabs.push(n)}return g};f._lctf.numOfOnes=function(b){for(var a= | ||
0,c=0;32>c;c++)0!=(b>>>c&1)&&a++;return a};f._lctf.readClassDef=function(b,a){var c=f._bin,d=[],e=c.readUshort(b,a);a+=2;if(1==e){var g=c.readUshort(b,a);a+=2;var h=c.readUshort(b,a);a+=2;for(var k=0;k<h;k++)d.push(g+k),d.push(g+k),d.push(c.readUshort(b,a)),a+=2}if(2==e)for(e=c.readUshort(b,a),a+=2,k=0;k<e;k++)d.push(c.readUshort(b,a)),a+=2,d.push(c.readUshort(b,a)),a+=2,d.push(c.readUshort(b,a)),a+=2;return d};f._lctf.getInterval=function(b,a){for(var c=0;c<b.length;c+=3){var d=b[c+1];if(b[c]<=a&& | ||
a<=d)return c}return-1};f._lctf.readCoverage=function(b,a){var c=f._bin,d={};d.fmt=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;1==d.fmt&&(d.tab=c.readUshorts(b,a,e));2==d.fmt&&(d.tab=c.readUshorts(b,a,3*e));return d};f._lctf.coverageIndex=function(b,a){var c=b.tab;return 1==b.fmt?c.indexOf(a):2==b.fmt&&(b=f._lctf.getInterval(c,a),-1!=b)?c[b+2]+(a-c[b]):-1};f._lctf.readFeatureList=function(b,a){var c=f._bin,d=a,e=[],g=c.readUshort(b,a);a+=2;for(var h=0;h<g;h++){var k=c.readASCII(b,a,4);a+= | ||
4;var n=c.readUshort(b,a);a+=2;e.push({tag:k.trim(),tab:f._lctf.readFeatureTable(b,d+n)})}return e};f._lctf.readFeatureTable=function(b,a){var c=f._bin;c.readUshort(b,a);a+=2;var d=c.readUshort(b,a);a+=2;for(var e=[],g=0;g<d;g++)e.push(c.readUshort(b,a+2*g));return e};f._lctf.readScriptList=function(b,a){var c=f._bin,d=a,e={},g=c.readUshort(b,a);a+=2;for(var h=0;h<g;h++){var k=c.readASCII(b,a,4);a+=4;var n=c.readUshort(b,a);a+=2;e[k.trim()]=f._lctf.readScriptTable(b,d+n)}return e};f._lctf.readScriptTable= | ||
function(b,a){var c=f._bin,d=a,e={},g=c.readUshort(b,a);a+=2;e.default=f._lctf.readLangSysTable(b,d+g);g=c.readUshort(b,a);a+=2;for(var h=0;h<g;h++){var k=c.readASCII(b,a,4);a+=4;var n=c.readUshort(b,a);a+=2;e[k.trim()]=f._lctf.readLangSysTable(b,d+n)}return e};f._lctf.readLangSysTable=function(b,a){var c=f._bin,d={};c.readUshort(b,a);a+=2;d.reqFeature=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);d.features=c.readUshorts(b,a+2,e);return d};f.CFF={};f.CFF.parse=function(b,a,c){var d=f._bin;b=new Uint8Array(b.buffer, | ||
a,c);a=0;a++;a++;a++;a++;var e=[];a=f.CFF.readIndex(b,a,e);var g=[];for(c=0;c<e.length-1;c++)g.push(d.readASCII(b,a+e[c],e[c+1]-e[c]));a+=e[e.length-1];e=[];a=f.CFF.readIndex(b,a,e);g=[];for(c=0;c<e.length-1;c++)g.push(f.CFF.readDict(b,a+e[c],a+e[c+1]));a+=e[e.length-1];e=g[0];var h=[];a=f.CFF.readIndex(b,a,h);g=[];for(c=0;c<h.length-1;c++)g.push(d.readASCII(b,a+h[c],h[c+1]-h[c]));a+=h[h.length-1];f.CFF.readSubrs(b,a,e);if(e.CharStrings){a=e.CharStrings;h=[];a=f.CFF.readIndex(b,a,h);var k=[];for(c= | ||
0;c<h.length-1;c++)k.push(d.readBytes(b,a+h[c],h[c+1]-h[c]));e.CharStrings=k}if(e.ROS){a=e.FDArray;h=[];a=f.CFF.readIndex(b,a,h);e.FDArray=[];for(c=0;c<h.length-1;c++)k=f.CFF.readDict(b,a+h[c],a+h[c+1]),f.CFF._readFDict(b,k,g),e.FDArray.push(k);a=e.FDSelect;e.FDSelect=[];c=b[a];a++;if(3==c)for(h=d.readUshort(b,a),a+=2,c=0;c<h+1;c++)e.FDSelect.push(d.readUshort(b,a),b[a+2]),a+=3;else throw c;}e.Encoding&&(e.Encoding=f.CFF.readEncoding(b,e.Encoding,e.CharStrings.length));e.charset&&(e.charset=f.CFF.readCharset(b, | ||
e.charset,e.CharStrings.length));f.CFF._readFDict(b,e,g);return e};f.CFF._readFDict=function(b,a,c){if(a.Private){var d=a.Private[1];a.Private=f.CFF.readDict(b,d,d+a.Private[0]);a.Private.Subrs&&f.CFF.readSubrs(b,d+a.Private.Subrs,a.Private)}for(var e in a)-1!="FamilyName FontName FullName Notice version Copyright".split(" ").indexOf(e)&&(a[e]=c[a[e]-426+35])};f.CFF.readSubrs=function(b,a,c){var d=f._bin,e=[];a=f.CFF.readIndex(b,a,e);var g=e.length;c.Bias=1240>g?107:33900>g?1131:32768;c.Subrs=[]; | ||
for(g=0;g<e.length-1;g++)c.Subrs.push(d.readBytes(b,a+e[g],e[g+1]-e[g]))};f.CFF.tableSE=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,97, | ||
98,99,100,101,102,103,104,105,106,107,108,109,110,0,111,112,113,114,0,115,116,117,118,119,120,121,122,0,123,0,124,125,126,127,128,129,130,131,0,132,133,0,134,135,136,137,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,0,139,0,0,0,0,140,141,142,143,0,0,0,0,0,144,0,0,0,145,0,0,146,147,148,149,0,0,0,0];f.CFF.glyphByUnicode=function(b,a){for(var c=0;c<b.charset.length;c++)if(b.charset[c]==a)return c;return-1};f.CFF.glyphBySE=function(b,a){return 0>a||255<a?-1:f.CFF.glyphByUnicode(b,f.CFF.tableSE[a])};f.CFF.readEncoding= | ||
function(b,a,c){c=[".notdef"];var d=b[a];a++;if(0==d){d=b[a];a++;for(var e=0;e<d;e++)c.push(b[a+e])}else throw"error: unknown encoding format: "+d;return c};f.CFF.readCharset=function(b,a,c){var d=f._bin,e=[".notdef"],g=b[a];a++;if(0==g)for(var h=0;h<c;h++){var k=d.readUshort(b,a);a+=2;e.push(k)}else if(1==g||2==g)for(;e.length<c;){k=d.readUshort(b,a);a+=2;if(1==g){var n=b[a];a++}else n=d.readUshort(b,a),a+=2;for(h=0;h<=n;h++)e.push(k),k++}else throw"error: format: "+g;return e};f.CFF.readIndex=function(b, | ||
a,c){var d=f._bin,e=d.readUshort(b,a)+1;a+=2;var g=b[a];a++;if(1==g)for(var h=0;h<e;h++)c.push(b[a+h]);else if(2==g)for(h=0;h<e;h++)c.push(d.readUshort(b,a+2*h));else if(3==g)for(h=0;h<e;h++)c.push(d.readUint(b,a+3*h-1)&16777215);else if(1!=e)throw"unsupported offset size: "+g+", count: "+e;return a+e*g-1};f.CFF.getCharString=function(b,a,c){var d=f._bin,e=b[a],g=b[a+1],h=1,k=null,n=null;20>=e&&(k=e,h=1);12==e&&(k=100*e+g,h=2);21<=e&&27>=e&&(k=e,h=1);28==e&&(n=d.readShort(b,a+1),h=3);29<=e&&31>=e&& | ||
(k=e,h=1);32<=e&&246>=e&&(n=e-139,h=1);247<=e&&250>=e&&(n=256*(e-247)+g+108,h=2);251<=e&&254>=e&&(n=256*-(e-251)-g-108,h=2);255==e&&(n=d.readInt(b,a+1)/65535,h=5);c.val=null!=n?n:"o"+k;c.size=h};f.CFF.readCharString=function(b,a,c){c=a+c;for(var d=f._bin,e=[];a<c;){var g=b[a],h=b[a+1],k=1,n=null,t=null;20>=g&&(n=g,k=1);12==g&&(n=100*g+h,k=2);if(19==g||20==g)n=g,k=2;21<=g&&27>=g&&(n=g,k=1);28==g&&(t=d.readShort(b,a+1),k=3);29<=g&&31>=g&&(n=g,k=1);32<=g&&246>=g&&(t=g-139,k=1);247<=g&&250>=g&&(t=256* | ||
(g-247)+h+108,k=2);251<=g&&254>=g&&(t=256*-(g-251)-h-108,k=2);255==g&&(t=d.readInt(b,a+1)/65535,k=5);e.push(null!=t?t:"o"+n);a+=k}return e};f.CFF.readDict=function(b,a,c){for(var d=f._bin,e={},g=[];a<c;){var h=b[a],k=b[a+1],n=1,t=null,u=null;28==h&&(u=d.readShort(b,a+1),n=3);29==h&&(u=d.readInt(b,a+1),n=5);32<=h&&246>=h&&(u=h-139,n=1);247<=h&&250>=h&&(u=256*(h-247)+k+108,n=2);251<=h&&254>=h&&(u=256*-(h-251)-k-108,n=2);if(255==h)throw d.readInt(b,a+1),"unknown number";if(30==h){u=[];for(n=1;;){var m= | ||
b[a+n];n++;var q=m>>4;m&=15;15!=q&&u.push(q);15!=m&&u.push(m);if(15==m)break}q="";m=[0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"];for(var p=0;p<u.length;p++)q+=m[u[p]];u=parseFloat(q)}21>=h&&(n="version Notice FullName FamilyName Weight FontBBox BlueValues OtherBlues FamilyBlues FamilyOtherBlues StdHW StdVW escape UniqueID XUID charset Encoding CharStrings Private Subrs defaultWidthX nominalWidthX".split(" "),t=n[h],n=1,12==h&&(n=["Copyright","isFixedPitch","ItalicAngle","UnderlinePosition", | ||
"UnderlineThickness","PaintType","CharstringType","FontMatrix","StrokeWidth","BlueScale","BlueShift","BlueFuzz","StemSnapH","StemSnapV","ForceBold",0,0,"LanguageGroup","ExpansionFactor","initialRandomSeed","SyntheticBase","PostScript","BaseFontName","BaseFontBlend",0,0,0,0,0,0,"ROS","CIDFontVersion","CIDFontRevision","CIDFontType","CIDCount","UIDBase","FDArray","FDSelect","FontName"],t=n[k],n=2));null!=t?(e[t]=1==g.length?g[0]:g,g=[]):g.push(u);a+=n}return e};f.cmap={};f.cmap.parse=function(b,a,c){b= | ||
new Uint8Array(b.buffer,a,c);a=0;c=f._bin;var d={};c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;var g=[];d.tables=[];for(var h=0;h<e;h++){var k=c.readUshort(b,a);a+=2;var n=c.readUshort(b,a);a+=2;var t=c.readUint(b,a);a+=4;var u="p"+k+"e"+n,m=g.indexOf(t);if(-1==m){m=d.tables.length;var q;g.push(t);var p=c.readUshort(b,t);0==p?q=f.cmap.parse0(b,t):4==p?q=f.cmap.parse4(b,t):6==p?q=f.cmap.parse6(b,t):12==p?q=f.cmap.parse12(b,t):console.log("unknown format: "+p,k,n,t);d.tables.push(q)}if(null!= | ||
d[u])throw"multiple tables for one platform+encoding";d[u]=m}return d};f.cmap.parse0=function(b,a){var c=f._bin,d={};d.format=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;d.map=[];for(c=0;c<e-6;c++)d.map.push(b[a+c]);return d};f.cmap.parse4=function(b,a){var c=f._bin,d=a,e={};e.format=c.readUshort(b,a);a+=2;var g=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;var h=c.readUshort(b,a);a+=2;h/=2;e.searchRange=c.readUshort(b,a);a+=2;e.entrySelector=c.readUshort(b,a);a+=2; | ||
e.rangeShift=c.readUshort(b,a);a+=2;e.endCount=c.readUshorts(b,a,h);a=a+2*h+2;e.startCount=c.readUshorts(b,a,h);a+=2*h;e.idDelta=[];for(var k=0;k<h;k++)e.idDelta.push(c.readShort(b,a)),a+=2;e.idRangeOffset=c.readUshorts(b,a,h);a+=2*h;for(e.glyphIdArray=[];a<d+g;)e.glyphIdArray.push(c.readUshort(b,a)),a+=2;return e};f.cmap.parse6=function(b,a){var c=f._bin,d={};d.format=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;d.firstCode=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+= | ||
2;d.glyphIdArray=[];for(var g=0;g<e;g++)d.glyphIdArray.push(c.readUshort(b,a)),a+=2;return d};f.cmap.parse12=function(b,a){var c=f._bin,d={};d.format=c.readUshort(b,a);a=a+2+2;c.readUint(b,a);a+=4;c.readUint(b,a);a+=4;var e=c.readUint(b,a);a+=4;d.groups=[];for(var g=0;g<e;g++){var h=a+12*g,k=c.readUint(b,h+0),n=c.readUint(b,h+4);h=c.readUint(b,h+8);d.groups.push([k,n,h])}return d};f.glyf={};f.glyf.parse=function(b,a,c,d){b=[];for(a=0;a<d.maxp.numGlyphs;a++)b.push(null);return b};f.glyf._parseGlyf= | ||
function(b,a){var c=f._bin,d=b._data,e=f._tabOffset(d,"glyf",b._offset)+b.loca[a];if(b.loca[a]==b.loca[a+1])return null;b={};b.noc=c.readShort(d,e);e+=2;b.xMin=c.readShort(d,e);e+=2;b.yMin=c.readShort(d,e);e+=2;b.xMax=c.readShort(d,e);e+=2;b.yMax=c.readShort(d,e);e+=2;if(b.xMin>=b.xMax||b.yMin>=b.yMax)return null;if(0<b.noc){b.endPts=[];for(a=0;a<b.noc;a++)b.endPts.push(c.readUshort(d,e)),e+=2;a=c.readUshort(d,e);e+=2;if(d.length-e<a)return null;b.instructions=c.readBytes(d,e,a);e+=a;var g=b.endPts[b.noc- | ||
1]+1;b.flags=[];for(a=0;a<g;a++){var h=d[e];e++;b.flags.push(h);if(0!=(h&8)){var k=d[e];e++;for(var n=0;n<k;n++)b.flags.push(h),a++}}b.xs=[];for(a=0;a<g;a++)h=0!=(b.flags[a]&2),k=0!=(b.flags[a]&16),h?(b.xs.push(k?d[e]:-d[e]),e++):k?b.xs.push(0):(b.xs.push(c.readShort(d,e)),e+=2);b.ys=[];for(a=0;a<g;a++)h=0!=(b.flags[a]&4),k=0!=(b.flags[a]&32),h?(b.ys.push(k?d[e]:-d[e]),e++):k?b.ys.push(0):(b.ys.push(c.readShort(d,e)),e+=2);for(a=e=d=0;a<g;a++)d+=b.xs[a],e+=b.ys[a],b.xs[a]=d,b.ys[a]=e}else{b.parts= | ||
[];do a=c.readUshort(d,e),e+=2,g={m:{a:1,b:0,c:0,d:1,tx:0,ty:0},p1:-1,p2:-1},b.parts.push(g),g.glyphIndex=c.readUshort(d,e),e+=2,a&1?(h=c.readShort(d,e),e+=2,k=c.readShort(d,e),e+=2):(h=c.readInt8(d,e),e++,k=c.readInt8(d,e),e++),a&2?(g.m.tx=h,g.m.ty=k):(g.p1=h,g.p2=k),a&8?(g.m.a=g.m.d=c.readF2dot14(d,e),e+=2):a&64?(g.m.a=c.readF2dot14(d,e),e+=2,g.m.d=c.readF2dot14(d,e),e+=2):a&128&&(g.m.a=c.readF2dot14(d,e),e+=2,g.m.b=c.readF2dot14(d,e),e+=2,g.m.c=c.readF2dot14(d,e),e+=2,g.m.d=c.readF2dot14(d,e), | ||
e+=2);while(a&32);if(a&256)for(c=c.readUshort(d,e),e+=2,b.instr=[],a=0;a<c;a++)b.instr.push(d[e]),e++}return b};f.GPOS={};f.GPOS.parse=function(b,a,c,d){return f._lctf.parse(b,a,c,d,f.GPOS.subt)};f.GPOS.subt=function(b,a,c){var d=f._bin,e=c,g={};g.fmt=d.readUshort(b,c);c+=2;if(1==a||2==a||3==a||7==a||8==a&&2>=g.fmt){var h=d.readUshort(b,c);c+=2;g.coverage=f._lctf.readCoverage(b,h+e)}if(1==a&&1==g.fmt){var k=d.readUshort(b,c);c+=2;f._lctf.numOfOnes(k);0!=k&&(g.pos=f.GPOS.readValueRecord(b,c,k))}else if(2== | ||
a){k=d.readUshort(b,c);c+=2;var n=d.readUshort(b,c);c+=2;a=f._lctf.numOfOnes(k);h=f._lctf.numOfOnes(n);if(1==g.fmt){g.pairsets=[];var t=d.readUshort(b,c);c+=2;for(var u=0;u<t;u++){var m=e+d.readUshort(b,c);c+=2;var q=d.readUshort(b,m);m+=2;for(var p=[],r=0;r<q;r++){var A=d.readUshort(b,m);m+=2;if(0!=k){var l=f.GPOS.readValueRecord(b,m,k);m+=2*a}if(0!=n){var x=f.GPOS.readValueRecord(b,m,n);m+=2*h}p.push({gid2:A,val1:l,val2:x})}g.pairsets.push(p)}}if(2==g.fmt)for(l=d.readUshort(b,c),c+=2,x=d.readUshort(b, | ||
c),c+=2,k=d.readUshort(b,c),c+=2,d=d.readUshort(b,c),c+=2,g.classDef1=f._lctf.readClassDef(b,e+l),g.classDef2=f._lctf.readClassDef(b,e+x),g.matrix=[],u=0;u<k;u++){e=[];for(r=0;r<d;r++)x=l=null,0!=g.valFmt1&&(l=f.GPOS.readValueRecord(b,c,g.valFmt1),c+=2*a),0!=g.valFmt2&&(x=f.GPOS.readValueRecord(b,c,g.valFmt2),c+=2*h),e.push({val1:l,val2:x});g.matrix.push(e)}}return g};f.GPOS.readValueRecord=function(b,a,c){var d=f._bin,e=[];e.push(c&1?d.readShort(b,a):0);a+=c&1?2:0;e.push(c&2?d.readShort(b,a):0); | ||
a+=c&2?2:0;e.push(c&4?d.readShort(b,a):0);e.push(c&8?d.readShort(b,a+(c&4?2:0)):0);return e};f.GSUB={};f.GSUB.parse=function(b,a,c,d){return f._lctf.parse(b,a,c,d,f.GSUB.subt)};f.GSUB.subt=function(b,a,c){var d=f._bin,e=c,g={};g.fmt=d.readUshort(b,c);c+=2;if(1!=a&&4!=a&&5!=a&&6!=a)return null;if(1==a||4==a||5==a&&2>=g.fmt||6==a&&2>=g.fmt){var h=d.readUshort(b,c);c+=2;g.coverage=f._lctf.readCoverage(b,e+h)}if(1==a)1==g.fmt?g.delta=d.readShort(b,c):2==g.fmt&&(h=d.readUshort(b,c),g.newg=d.readUshorts(b, | ||
c+2,h));else if(4==a)for(g.vals=[],h=d.readUshort(b,c),c+=2,a=0;a<h;a++){var k=d.readUshort(b,c);c+=2;g.vals.push(f.GSUB.readLigatureSet(b,e+k))}else if(5==a){if(2==g.fmt)for(a=d.readUshort(b,c),c+=2,g.cDef=f._lctf.readClassDef(b,e+a),g.scset=[],h=d.readUshort(b,c),c+=2,a=0;a<h;a++)k=d.readUshort(b,c),c+=2,g.scset.push(0==k?null:f.GSUB.readSubClassSet(b,e+k))}else if(6==a&&3==g.fmt){for(a=0;3>a;a++){h=d.readUshort(b,c);c+=2;k=[];for(var n=0;n<h;n++)k.push(f._lctf.readCoverage(b,e+d.readUshort(b,c+ | ||
2*n)));c+=2*h;0==a&&(g.backCvg=k);1==a&&(g.inptCvg=k);2==a&&(g.ahedCvg=k)}h=d.readUshort(b,c);g.lookupRec=f.GSUB.readSubstLookupRecords(b,c+2,h)}return g};f.GSUB.readSubClassSet=function(b,a){var c=f._bin.readUshort,d=a,e=[],g=c(b,a);a+=2;for(var h=0;h<g;h++){var k=c(b,a);a+=2;e.push(f.GSUB.readSubClassRule(b,d+k))}return e};f.GSUB.readSubClassRule=function(b,a){var c=f._bin.readUshort,d={},e=c(b,a);a+=2;var g=c(b,a);a+=2;d.input=[];for(var h=0;h<e-1;h++)d.input.push(c(b,a)),a+=2;d.substLookupRecords= | ||
f.GSUB.readSubstLookupRecords(b,a,g);return d};f.GSUB.readSubstLookupRecords=function(b,a,c){for(var d=f._bin.readUshort,e=[],g=0;g<c;g++)e.push(d(b,a),d(b,a+2)),a+=4;return e};f.GSUB.readChainSubClassSet=function(b,a){var c=f._bin,d=a,e=[],g=c.readUshort(b,a);a+=2;for(var h=0;h<g;h++){var k=c.readUshort(b,a);a+=2;e.push(f.GSUB.readChainSubClassRule(b,d+k))}return e};f.GSUB.readChainSubClassRule=function(b,a){for(var c=f._bin,d={},e=["backtrack","input","lookahead"],g=0;g<e.length;g++){var h=c.readUshort(b, | ||
a);a+=2;1==g&&h--;d[e[g]]=c.readUshorts(b,a,h);a+=2*d[e[g]].length}h=c.readUshort(b,a);d.subst=c.readUshorts(b,a+2,2*h);return d};f.GSUB.readLigatureSet=function(b,a){var c=f._bin,d=a,e=[],g=c.readUshort(b,a);a+=2;for(var h=0;h<g;h++){var k=c.readUshort(b,a);a+=2;e.push(f.GSUB.readLigature(b,d+k))}return e};f.GSUB.readLigature=function(b,a){var c=f._bin,d={chain:[]};d.nglyph=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;for(var g=0;g<e-1;g++)d.chain.push(c.readUshort(b,a)),a+=2;return d};f.head= | ||
{};f.head.parse=function(b,a,c){c=f._bin;var d={};c.readFixed(b,a);a+=4;d.fontRevision=c.readFixed(b,a);a+=4;c.readUint(b,a);a+=4;c.readUint(b,a);a+=4;d.flags=c.readUshort(b,a);a+=2;d.unitsPerEm=c.readUshort(b,a);a+=2;d.created=c.readUint64(b,a);a+=8;d.modified=c.readUint64(b,a);a+=8;d.xMin=c.readShort(b,a);a+=2;d.yMin=c.readShort(b,a);a+=2;d.xMax=c.readShort(b,a);a+=2;d.yMax=c.readShort(b,a);a+=2;d.macStyle=c.readUshort(b,a);a+=2;d.lowestRecPPEM=c.readUshort(b,a);a+=2;d.fontDirectionHint=c.readShort(b, | ||
a);a+=2;d.indexToLocFormat=c.readShort(b,a);d.glyphDataFormat=c.readShort(b,a+2);return d};f.hhea={};f.hhea.parse=function(b,a,c){c=f._bin;var d={};c.readFixed(b,a);a+=4;d.ascender=c.readShort(b,a);a+=2;d.descender=c.readShort(b,a);a+=2;d.lineGap=c.readShort(b,a);a+=2;d.advanceWidthMax=c.readUshort(b,a);a+=2;d.minLeftSideBearing=c.readShort(b,a);a+=2;d.minRightSideBearing=c.readShort(b,a);a+=2;d.xMaxExtent=c.readShort(b,a);a+=2;d.caretSlopeRise=c.readShort(b,a);a+=2;d.caretSlopeRun=c.readShort(b, | ||
a);a+=2;d.caretOffset=c.readShort(b,a);a=a+2+8;d.metricDataFormat=c.readShort(b,a);d.numberOfHMetrics=c.readUshort(b,a+2);return d};f.hmtx={};f.hmtx.parse=function(b,a,c,d){c=f._bin;for(var e={aWidth:[],lsBearing:[]},g=0,h=0,k=0;k<d.maxp.numGlyphs;k++)k<d.hhea.numberOfHMetrics&&(g=c.readUshort(b,a),a+=2,h=c.readShort(b,a),a+=2),e.aWidth.push(g),e.lsBearing.push(h);return e};f.kern={};f.kern.parse=function(b,a,c,d){var e=f._bin,g=e.readUshort(b,a);a+=2;if(1==g)return f.kern.parseV1(b,a-2,c,d);c=e.readUshort(b, | ||
a);a+=2;d={glyph1:[],rval:[]};for(g=0;g<c;g++){a+=2;e.readUshort(b,a);a+=2;var h=e.readUshort(b,a);a+=2;h>>>=8;h&=15;if(0==h)a=f.kern.readFormat0(b,a,d);else throw"unknown kern table format: "+h;}return d};f.kern.parseV1=function(b,a,c,d){c=f._bin;c.readFixed(b,a);a+=4;d=c.readUint(b,a);a+=4;for(var e={glyph1:[],rval:[]},g=0;g<d;g++){c.readUint(b,a);a+=4;var h=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;h>>>=8;h&=15;if(0==h)a=f.kern.readFormat0(b,a,e);else throw"unknown kern table format: "+h;}return e}; | ||
f.kern.readFormat0=function(b,a,c){var d=f._bin,e=-1,g=d.readUshort(b,a);a+=2;d.readUshort(b,a);a+=2;d.readUshort(b,a);a+=2;d.readUshort(b,a);a+=2;for(var h=0;h<g;h++){var k=d.readUshort(b,a);a+=2;var n=d.readUshort(b,a);a+=2;var t=d.readShort(b,a);a+=2;k!=e&&(c.glyph1.push(k),c.rval.push({glyph2:[],vals:[]}));e=c.rval[c.rval.length-1];e.glyph2.push(n);e.vals.push(t);e=k}return a};f.loca={};f.loca.parse=function(b,a,c,d){c=f._bin;var e=[],g=d.head.indexToLocFormat;d=d.maxp.numGlyphs+1;if(0==g)for(var h= | ||
0;h<d;h++)e.push(c.readUshort(b,a+(h<<1))<<1);if(1==g)for(h=0;h<d;h++)e.push(c.readUint(b,a+(h<<2)));return e};f.maxp={};f.maxp.parse=function(b,a,c){c=f._bin;var d={},e=c.readUint(b,a);a+=4;d.numGlyphs=c.readUshort(b,a);a+=2;65536==e&&(d.maxPoints=c.readUshort(b,a),a+=2,d.maxContours=c.readUshort(b,a),a+=2,d.maxCompositePoints=c.readUshort(b,a),a+=2,d.maxCompositeContours=c.readUshort(b,a),a+=2,d.maxZones=c.readUshort(b,a),a+=2,d.maxTwilightPoints=c.readUshort(b,a),a+=2,d.maxStorage=c.readUshort(b, | ||
a),a+=2,d.maxFunctionDefs=c.readUshort(b,a),a+=2,d.maxInstructionDefs=c.readUshort(b,a),a+=2,d.maxStackElements=c.readUshort(b,a),a+=2,d.maxSizeOfInstructions=c.readUshort(b,a),a+=2,d.maxComponentElements=c.readUshort(b,a),d.maxComponentDepth=c.readUshort(b,a+2));return d};f.name={};f.name.parse=function(b,a,c){c=f._bin;var d={};c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;for(var g="copyright fontFamily fontSubfamily ID fullName version postScriptName trademark manufacturer designer description urlVendor urlDesigner licence licenceURL --- typoFamilyName typoSubfamilyName compatibleFull sampleText postScriptCID wwsFamilyName wwsSubfamilyName lightPalette darkPalette".split(" "), | ||
fragmentColorTransform:"\ntroikaApplyClipping();\n\nfloat troikaSDFValue = texture2D(uTroikaSDFTexture, vTroikaGlyphUV).r;\n\n#if defined(IS_DEPTH_MATERIAL) || defined(IS_DISTANCE_MATERIAL)\nif (troikaSDFValue < 0.5) discard;\n#else\n\n\n#if defined(GL_OES_standard_derivatives) || __VERSION__ >= 300\n float troikaAntiAliasDist = min(\n 0.5,\n 0.5 * min(\n fwidth(vTroikaGlyphUV.x), \n fwidth(vTroikaGlyphUV.y / uTroikaGlyphVSize)\n )\n ) / uTroikaSDFMinDistancePct;\n#else\n float troikaAntiAliasDist = 0.01;\n#endif\n\nfloat textAlphaMult = uTroikaSDFDebug ? troikaSDFValue : smoothstep(\n 0.5 - troikaAntiAliasDist,\n 0.5 + troikaAntiAliasDist,\n troikaSDFValue\n);\nif (textAlphaMult == 0.0) {\n if (uTroikaSDFDebug) {\n gl_FragColor *= 0.5;\n } else {\n discard;\n }\n} else {\n gl_FragColor.a *= textAlphaMult;\n}\n\n#endif\n"}); | ||
l.transparent=!0;Object.defineProperty(l,"shadowSide",{get:function(){return this.side}});return l}var H=F.defineWorkerModule({dependencies:[function(){var l=self,f={parse:function(b){var a=f._bin;b=new Uint8Array(b);if("ttcf"==a.readASCII(b,0,4)){var c=4;a.readUshort(b,c);c+=2;a.readUshort(b,c);c+=2;var d=a.readUint(b,c);c+=4;for(var e=[],g=0;g<d;g++){var h=a.readUint(b,c);c+=4;e.push(f._readFont(b,h))}return e}return[f._readFont(b,0)]},_readFont:function(b,a){var c=f._bin,d=a;c.readFixed(b,a);a+= | ||
4;var e=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;var g="cmap;head;hhea;maxp;hmtx;name;OS/2;post;loca;glyf;kern;CFF ;GPOS;GSUB;SVG ".split(";");d={_data:b,_offset:d};for(var h={},k=0;k<e;k++){var n=c.readASCII(b,a,4);a+=4;c.readUint(b,a);a+=4;var t=c.readUint(b,a);a+=4;var u=c.readUint(b,a);a+=4;h[n]={offset:t,length:u}}for(k=0;k<g.length;k++)a=g[k],h[a]&&(d[a.trim()]=f[a.trim()].parse(b,h[a].offset,h[a].length,d));return d},_tabOffset:function(b, | ||
a,c){var d=f._bin,e=d.readUshort(b,c+4);c+=12;for(var g=0;g<e;g++){var h=d.readASCII(b,c,4);c+=4;d.readUint(b,c);c+=4;var k=d.readUint(b,c);c+=4;d.readUint(b,c);c+=4;if(h==a)return k}return 0}};f._bin={readFixed:function(b,a){return(b[a]<<8|b[a+1])+(b[a+2]<<8|b[a+3])/65540},readF2dot14:function(b,a){return f._bin.readShort(b,a)/16384},readInt:function(b,a){var c=f._bin.t.uint8;c[0]=b[a+3];c[1]=b[a+2];c[2]=b[a+1];c[3]=b[a];return f._bin.t.int32[0]},readInt8:function(b,a){f._bin.t.uint8[0]=b[a];return f._bin.t.int8[0]}, | ||
readShort:function(b,a){var c=f._bin.t.uint8;c[1]=b[a];c[0]=b[a+1];return f._bin.t.int16[0]},readUshort:function(b,a){return b[a]<<8|b[a+1]},readUshorts:function(b,a,c){for(var d=[],e=0;e<c;e++)d.push(f._bin.readUshort(b,a+2*e));return d},readUint:function(b,a){var c=f._bin.t.uint8;c[3]=b[a];c[2]=b[a+1];c[1]=b[a+2];c[0]=b[a+3];return f._bin.t.uint32[0]},readUint64:function(b,a){return 4294967296*f._bin.readUint(b,a)+f._bin.readUint(b,a+4)},readASCII:function(b,a,c){for(var d="",e=0;e<c;e++)d+=String.fromCharCode(b[a+ | ||
e]);return d},readUnicode:function(b,a,c){for(var d="",e=0;e<c;e++){var g=b[a++]<<8|b[a++];d+=String.fromCharCode(g)}return d},_tdec:l.TextDecoder?new l.TextDecoder:null,readUTF8:function(b,a,c){var d=f._bin._tdec;return d&&0==a&&c==b.length?d.decode(b):f._bin.readASCII(b,a,c)},readBytes:function(b,a,c){for(var d=[],e=0;e<c;e++)d.push(b[a+e]);return d},readASCIIArray:function(b,a,c){for(var d=[],e=0;e<c;e++)d.push(String.fromCharCode(b[a+e]));return d}};f._bin.t={buff:new ArrayBuffer(8)};f._bin.t.int8= | ||
new Int8Array(f._bin.t.buff);f._bin.t.uint8=new Uint8Array(f._bin.t.buff);f._bin.t.int16=new Int16Array(f._bin.t.buff);f._bin.t.uint16=new Uint16Array(f._bin.t.buff);f._bin.t.int32=new Int32Array(f._bin.t.buff);f._bin.t.uint32=new Uint32Array(f._bin.t.buff);f._lctf={};f._lctf.parse=function(b,a,c,d,e){var g=f._bin;c={};d=a;g.readFixed(b,a);a+=4;var h=g.readUshort(b,a);a+=2;var k=g.readUshort(b,a);a=g.readUshort(b,a+2);c.scriptList=f._lctf.readScriptList(b,d+h);c.featureList=f._lctf.readFeatureList(b, | ||
d+k);c.lookupList=f._lctf.readLookupList(b,d+a,e);return c};f._lctf.readLookupList=function(b,a,c){var d=f._bin,e=a,g=[],h=d.readUshort(b,a);a+=2;for(var k=0;k<h;k++){var n=d.readUshort(b,a);a+=2;n=f._lctf.readLookupTable(b,e+n,c);g.push(n)}return g};f._lctf.readLookupTable=function(b,a,c){var d=f._bin,e=a,g={tabs:[]};g.ltype=d.readUshort(b,a);a+=2;g.flag=d.readUshort(b,a);a+=2;var h=d.readUshort(b,a);a+=2;for(var k=0;k<h;k++){var n=d.readUshort(b,a);a+=2;n=c(b,g.ltype,e+n);g.tabs.push(n)}return g}; | ||
f._lctf.numOfOnes=function(b){for(var a=0,c=0;32>c;c++)0!=(b>>>c&1)&&a++;return a};f._lctf.readClassDef=function(b,a){var c=f._bin,d=[],e=c.readUshort(b,a);a+=2;if(1==e){var g=c.readUshort(b,a);a+=2;var h=c.readUshort(b,a);a+=2;for(var k=0;k<h;k++)d.push(g+k),d.push(g+k),d.push(c.readUshort(b,a)),a+=2}if(2==e)for(e=c.readUshort(b,a),a+=2,k=0;k<e;k++)d.push(c.readUshort(b,a)),a+=2,d.push(c.readUshort(b,a)),a+=2,d.push(c.readUshort(b,a)),a+=2;return d};f._lctf.getInterval=function(b,a){for(var c=0;c< | ||
b.length;c+=3){var d=b[c+1];if(b[c]<=a&&a<=d)return c}return-1};f._lctf.readCoverage=function(b,a){var c=f._bin,d={};d.fmt=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;1==d.fmt&&(d.tab=c.readUshorts(b,a,e));2==d.fmt&&(d.tab=c.readUshorts(b,a,3*e));return d};f._lctf.coverageIndex=function(b,a){var c=b.tab;return 1==b.fmt?c.indexOf(a):2==b.fmt&&(b=f._lctf.getInterval(c,a),-1!=b)?c[b+2]+(a-c[b]):-1};f._lctf.readFeatureList=function(b,a){var c=f._bin,d=a,e=[],g=c.readUshort(b,a);a+=2;for(var h= | ||
0;h<g;h++){var k=c.readASCII(b,a,4);a+=4;var n=c.readUshort(b,a);a+=2;e.push({tag:k.trim(),tab:f._lctf.readFeatureTable(b,d+n)})}return e};f._lctf.readFeatureTable=function(b,a){var c=f._bin;c.readUshort(b,a);a+=2;var d=c.readUshort(b,a);a+=2;for(var e=[],g=0;g<d;g++)e.push(c.readUshort(b,a+2*g));return e};f._lctf.readScriptList=function(b,a){var c=f._bin,d=a,e={},g=c.readUshort(b,a);a+=2;for(var h=0;h<g;h++){var k=c.readASCII(b,a,4);a+=4;var n=c.readUshort(b,a);a+=2;e[k.trim()]=f._lctf.readScriptTable(b, | ||
d+n)}return e};f._lctf.readScriptTable=function(b,a){var c=f._bin,d=a,e={},g=c.readUshort(b,a);a+=2;e.default=f._lctf.readLangSysTable(b,d+g);g=c.readUshort(b,a);a+=2;for(var h=0;h<g;h++){var k=c.readASCII(b,a,4);a+=4;var n=c.readUshort(b,a);a+=2;e[k.trim()]=f._lctf.readLangSysTable(b,d+n)}return e};f._lctf.readLangSysTable=function(b,a){var c=f._bin,d={};c.readUshort(b,a);a+=2;d.reqFeature=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);d.features=c.readUshorts(b,a+2,e);return d};f.CFF={};f.CFF.parse= | ||
function(b,a,c){var d=f._bin;b=new Uint8Array(b.buffer,a,c);a=0;a++;a++;a++;a++;var e=[];a=f.CFF.readIndex(b,a,e);var g=[];for(c=0;c<e.length-1;c++)g.push(d.readASCII(b,a+e[c],e[c+1]-e[c]));a+=e[e.length-1];e=[];a=f.CFF.readIndex(b,a,e);g=[];for(c=0;c<e.length-1;c++)g.push(f.CFF.readDict(b,a+e[c],a+e[c+1]));a+=e[e.length-1];e=g[0];var h=[];a=f.CFF.readIndex(b,a,h);g=[];for(c=0;c<h.length-1;c++)g.push(d.readASCII(b,a+h[c],h[c+1]-h[c]));a+=h[h.length-1];f.CFF.readSubrs(b,a,e);if(e.CharStrings){a=e.CharStrings; | ||
h=[];a=f.CFF.readIndex(b,a,h);var k=[];for(c=0;c<h.length-1;c++)k.push(d.readBytes(b,a+h[c],h[c+1]-h[c]));e.CharStrings=k}if(e.ROS){a=e.FDArray;h=[];a=f.CFF.readIndex(b,a,h);e.FDArray=[];for(c=0;c<h.length-1;c++)k=f.CFF.readDict(b,a+h[c],a+h[c+1]),f.CFF._readFDict(b,k,g),e.FDArray.push(k);a=e.FDSelect;e.FDSelect=[];c=b[a];a++;if(3==c)for(h=d.readUshort(b,a),a+=2,c=0;c<h+1;c++)e.FDSelect.push(d.readUshort(b,a),b[a+2]),a+=3;else throw c;}e.Encoding&&(e.Encoding=f.CFF.readEncoding(b,e.Encoding,e.CharStrings.length)); | ||
e.charset&&(e.charset=f.CFF.readCharset(b,e.charset,e.CharStrings.length));f.CFF._readFDict(b,e,g);return e};f.CFF._readFDict=function(b,a,c){if(a.Private){var d=a.Private[1];a.Private=f.CFF.readDict(b,d,d+a.Private[0]);a.Private.Subrs&&f.CFF.readSubrs(b,d+a.Private.Subrs,a.Private)}for(var e in a)-1!="FamilyName FontName FullName Notice version Copyright".split(" ").indexOf(e)&&(a[e]=c[a[e]-426+35])};f.CFF.readSubrs=function(b,a,c){var d=f._bin,e=[];a=f.CFF.readIndex(b,a,e);var g=e.length;c.Bias= | ||
1240>g?107:33900>g?1131:32768;c.Subrs=[];for(g=0;g<e.length-1;g++)c.Subrs.push(d.readBytes(b,a+e[g],e[g+1]-e[g]))};f.CFF.tableSE=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | ||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,0,111,112,113,114,0,115,116,117,118,119,120,121,122,0,123,0,124,125,126,127,128,129,130,131,0,132,133,0,134,135,136,137,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,0,139,0,0,0,0,140,141,142,143,0,0,0,0,0,144,0,0,0,145,0,0,146,147,148,149,0,0,0,0];f.CFF.glyphByUnicode=function(b,a){for(var c=0;c<b.charset.length;c++)if(b.charset[c]==a)return c;return-1};f.CFF.glyphBySE=function(b,a){return 0>a||255<a?-1:f.CFF.glyphByUnicode(b, | ||
f.CFF.tableSE[a])};f.CFF.readEncoding=function(b,a,c){c=[".notdef"];var d=b[a];a++;if(0==d){d=b[a];a++;for(var e=0;e<d;e++)c.push(b[a+e])}else throw"error: unknown encoding format: "+d;return c};f.CFF.readCharset=function(b,a,c){var d=f._bin,e=[".notdef"],g=b[a];a++;if(0==g)for(var h=0;h<c;h++){var k=d.readUshort(b,a);a+=2;e.push(k)}else if(1==g||2==g)for(;e.length<c;){k=d.readUshort(b,a);a+=2;if(1==g){var n=b[a];a++}else n=d.readUshort(b,a),a+=2;for(h=0;h<=n;h++)e.push(k),k++}else throw"error: format: "+ | ||
g;return e};f.CFF.readIndex=function(b,a,c){var d=f._bin,e=d.readUshort(b,a)+1;a+=2;var g=b[a];a++;if(1==g)for(var h=0;h<e;h++)c.push(b[a+h]);else if(2==g)for(h=0;h<e;h++)c.push(d.readUshort(b,a+2*h));else if(3==g)for(h=0;h<e;h++)c.push(d.readUint(b,a+3*h-1)&16777215);else if(1!=e)throw"unsupported offset size: "+g+", count: "+e;return a+e*g-1};f.CFF.getCharString=function(b,a,c){var d=f._bin,e=b[a],g=b[a+1],h=1,k=null,n=null;20>=e&&(k=e,h=1);12==e&&(k=100*e+g,h=2);21<=e&&27>=e&&(k=e,h=1);28==e&& | ||
(n=d.readShort(b,a+1),h=3);29<=e&&31>=e&&(k=e,h=1);32<=e&&246>=e&&(n=e-139,h=1);247<=e&&250>=e&&(n=256*(e-247)+g+108,h=2);251<=e&&254>=e&&(n=256*-(e-251)-g-108,h=2);255==e&&(n=d.readInt(b,a+1)/65535,h=5);c.val=null!=n?n:"o"+k;c.size=h};f.CFF.readCharString=function(b,a,c){c=a+c;for(var d=f._bin,e=[];a<c;){var g=b[a],h=b[a+1],k=1,n=null,t=null;20>=g&&(n=g,k=1);12==g&&(n=100*g+h,k=2);if(19==g||20==g)n=g,k=2;21<=g&&27>=g&&(n=g,k=1);28==g&&(t=d.readShort(b,a+1),k=3);29<=g&&31>=g&&(n=g,k=1);32<=g&&246>= | ||
g&&(t=g-139,k=1);247<=g&&250>=g&&(t=256*(g-247)+h+108,k=2);251<=g&&254>=g&&(t=256*-(g-251)-h-108,k=2);255==g&&(t=d.readInt(b,a+1)/65535,k=5);e.push(null!=t?t:"o"+n);a+=k}return e};f.CFF.readDict=function(b,a,c){for(var d=f._bin,e={},g=[];a<c;){var h=b[a],k=b[a+1],n=1,t=null,u=null;28==h&&(u=d.readShort(b,a+1),n=3);29==h&&(u=d.readInt(b,a+1),n=5);32<=h&&246>=h&&(u=h-139,n=1);247<=h&&250>=h&&(u=256*(h-247)+k+108,n=2);251<=h&&254>=h&&(u=256*-(h-251)-k-108,n=2);if(255==h)throw d.readInt(b,a+1),"unknown number"; | ||
if(30==h){u=[];for(n=1;;){var m=b[a+n];n++;var q=m>>4;m&=15;15!=q&&u.push(q);15!=m&&u.push(m);if(15==m)break}q="";m=[0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"];for(var p=0;p<u.length;p++)q+=m[u[p]];u=parseFloat(q)}21>=h&&(n="version Notice FullName FamilyName Weight FontBBox BlueValues OtherBlues FamilyBlues FamilyOtherBlues StdHW StdVW escape UniqueID XUID charset Encoding CharStrings Private Subrs defaultWidthX nominalWidthX".split(" "),t=n[h],n=1,12==h&&(n=["Copyright","isFixedPitch", | ||
"ItalicAngle","UnderlinePosition","UnderlineThickness","PaintType","CharstringType","FontMatrix","StrokeWidth","BlueScale","BlueShift","BlueFuzz","StemSnapH","StemSnapV","ForceBold",0,0,"LanguageGroup","ExpansionFactor","initialRandomSeed","SyntheticBase","PostScript","BaseFontName","BaseFontBlend",0,0,0,0,0,0,"ROS","CIDFontVersion","CIDFontRevision","CIDFontType","CIDCount","UIDBase","FDArray","FDSelect","FontName"],t=n[k],n=2));null!=t?(e[t]=1==g.length?g[0]:g,g=[]):g.push(u);a+=n}return e};f.cmap= | ||
{};f.cmap.parse=function(b,a,c){b=new Uint8Array(b.buffer,a,c);a=0;c=f._bin;var d={};c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;var g=[];d.tables=[];for(var h=0;h<e;h++){var k=c.readUshort(b,a);a+=2;var n=c.readUshort(b,a);a+=2;var t=c.readUint(b,a);a+=4;var u="p"+k+"e"+n,m=g.indexOf(t);if(-1==m){m=d.tables.length;var q;g.push(t);var p=c.readUshort(b,t);0==p?q=f.cmap.parse0(b,t):4==p?q=f.cmap.parse4(b,t):6==p?q=f.cmap.parse6(b,t):12==p?q=f.cmap.parse12(b,t):console.log("unknown format: "+ | ||
p,k,n,t);d.tables.push(q)}if(null!=d[u])throw"multiple tables for one platform+encoding";d[u]=m}return d};f.cmap.parse0=function(b,a){var c=f._bin,d={};d.format=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;d.map=[];for(c=0;c<e-6;c++)d.map.push(b[a+c]);return d};f.cmap.parse4=function(b,a){var c=f._bin,d=a,e={};e.format=c.readUshort(b,a);a+=2;var g=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;var h=c.readUshort(b,a);a+=2;h/=2;e.searchRange=c.readUshort(b,a);a+=2;e.entrySelector= | ||
c.readUshort(b,a);a+=2;e.rangeShift=c.readUshort(b,a);a+=2;e.endCount=c.readUshorts(b,a,h);a=a+2*h+2;e.startCount=c.readUshorts(b,a,h);a+=2*h;e.idDelta=[];for(var k=0;k<h;k++)e.idDelta.push(c.readShort(b,a)),a+=2;e.idRangeOffset=c.readUshorts(b,a,h);a+=2*h;for(e.glyphIdArray=[];a<d+g;)e.glyphIdArray.push(c.readUshort(b,a)),a+=2;return e};f.cmap.parse6=function(b,a){var c=f._bin,d={};d.format=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;d.firstCode=c.readUshort(b,a);a+=2;var e= | ||
c.readUshort(b,a);a+=2;d.glyphIdArray=[];for(var g=0;g<e;g++)d.glyphIdArray.push(c.readUshort(b,a)),a+=2;return d};f.cmap.parse12=function(b,a){var c=f._bin,d={};d.format=c.readUshort(b,a);a=a+2+2;c.readUint(b,a);a+=4;c.readUint(b,a);a+=4;var e=c.readUint(b,a);a+=4;d.groups=[];for(var g=0;g<e;g++){var h=a+12*g,k=c.readUint(b,h+0),n=c.readUint(b,h+4);h=c.readUint(b,h+8);d.groups.push([k,n,h])}return d};f.glyf={};f.glyf.parse=function(b,a,c,d){b=[];for(a=0;a<d.maxp.numGlyphs;a++)b.push(null);return b}; | ||
f.glyf._parseGlyf=function(b,a){var c=f._bin,d=b._data,e=f._tabOffset(d,"glyf",b._offset)+b.loca[a];if(b.loca[a]==b.loca[a+1])return null;b={};b.noc=c.readShort(d,e);e+=2;b.xMin=c.readShort(d,e);e+=2;b.yMin=c.readShort(d,e);e+=2;b.xMax=c.readShort(d,e);e+=2;b.yMax=c.readShort(d,e);e+=2;if(b.xMin>=b.xMax||b.yMin>=b.yMax)return null;if(0<b.noc){b.endPts=[];for(a=0;a<b.noc;a++)b.endPts.push(c.readUshort(d,e)),e+=2;a=c.readUshort(d,e);e+=2;if(d.length-e<a)return null;b.instructions=c.readBytes(d,e,a); | ||
e+=a;var g=b.endPts[b.noc-1]+1;b.flags=[];for(a=0;a<g;a++){var h=d[e];e++;b.flags.push(h);if(0!=(h&8)){var k=d[e];e++;for(var n=0;n<k;n++)b.flags.push(h),a++}}b.xs=[];for(a=0;a<g;a++)h=0!=(b.flags[a]&2),k=0!=(b.flags[a]&16),h?(b.xs.push(k?d[e]:-d[e]),e++):k?b.xs.push(0):(b.xs.push(c.readShort(d,e)),e+=2);b.ys=[];for(a=0;a<g;a++)h=0!=(b.flags[a]&4),k=0!=(b.flags[a]&32),h?(b.ys.push(k?d[e]:-d[e]),e++):k?b.ys.push(0):(b.ys.push(c.readShort(d,e)),e+=2);for(a=e=d=0;a<g;a++)d+=b.xs[a],e+=b.ys[a],b.xs[a]= | ||
d,b.ys[a]=e}else{b.parts=[];do a=c.readUshort(d,e),e+=2,g={m:{a:1,b:0,c:0,d:1,tx:0,ty:0},p1:-1,p2:-1},b.parts.push(g),g.glyphIndex=c.readUshort(d,e),e+=2,a&1?(h=c.readShort(d,e),e+=2,k=c.readShort(d,e),e+=2):(h=c.readInt8(d,e),e++,k=c.readInt8(d,e),e++),a&2?(g.m.tx=h,g.m.ty=k):(g.p1=h,g.p2=k),a&8?(g.m.a=g.m.d=c.readF2dot14(d,e),e+=2):a&64?(g.m.a=c.readF2dot14(d,e),e+=2,g.m.d=c.readF2dot14(d,e),e+=2):a&128&&(g.m.a=c.readF2dot14(d,e),e+=2,g.m.b=c.readF2dot14(d,e),e+=2,g.m.c=c.readF2dot14(d,e),e+=2, | ||
g.m.d=c.readF2dot14(d,e),e+=2);while(a&32);if(a&256)for(c=c.readUshort(d,e),e+=2,b.instr=[],a=0;a<c;a++)b.instr.push(d[e]),e++}return b};f.GPOS={};f.GPOS.parse=function(b,a,c,d){return f._lctf.parse(b,a,c,d,f.GPOS.subt)};f.GPOS.subt=function(b,a,c){var d=f._bin,e=c,g={};g.fmt=d.readUshort(b,c);c+=2;if(1==a||2==a||3==a||7==a||8==a&&2>=g.fmt){var h=d.readUshort(b,c);c+=2;g.coverage=f._lctf.readCoverage(b,h+e)}if(1==a&&1==g.fmt){var k=d.readUshort(b,c);c+=2;f._lctf.numOfOnes(k);0!=k&&(g.pos=f.GPOS.readValueRecord(b, | ||
c,k))}else if(2==a){k=d.readUshort(b,c);c+=2;var n=d.readUshort(b,c);c+=2;a=f._lctf.numOfOnes(k);h=f._lctf.numOfOnes(n);if(1==g.fmt){g.pairsets=[];var t=d.readUshort(b,c);c+=2;for(var u=0;u<t;u++){var m=e+d.readUshort(b,c);c+=2;var q=d.readUshort(b,m);m+=2;for(var p=[],r=0;r<q;r++){var A=d.readUshort(b,m);m+=2;if(0!=k){var l=f.GPOS.readValueRecord(b,m,k);m+=2*a}if(0!=n){var x=f.GPOS.readValueRecord(b,m,n);m+=2*h}p.push({gid2:A,val1:l,val2:x})}g.pairsets.push(p)}}if(2==g.fmt)for(l=d.readUshort(b,c), | ||
c+=2,x=d.readUshort(b,c),c+=2,k=d.readUshort(b,c),c+=2,d=d.readUshort(b,c),c+=2,g.classDef1=f._lctf.readClassDef(b,e+l),g.classDef2=f._lctf.readClassDef(b,e+x),g.matrix=[],u=0;u<k;u++){e=[];for(r=0;r<d;r++)x=l=null,0!=g.valFmt1&&(l=f.GPOS.readValueRecord(b,c,g.valFmt1),c+=2*a),0!=g.valFmt2&&(x=f.GPOS.readValueRecord(b,c,g.valFmt2),c+=2*h),e.push({val1:l,val2:x});g.matrix.push(e)}}return g};f.GPOS.readValueRecord=function(b,a,c){var d=f._bin,e=[];e.push(c&1?d.readShort(b,a):0);a+=c&1?2:0;e.push(c& | ||
2?d.readShort(b,a):0);a+=c&2?2:0;e.push(c&4?d.readShort(b,a):0);e.push(c&8?d.readShort(b,a+(c&4?2:0)):0);return e};f.GSUB={};f.GSUB.parse=function(b,a,c,d){return f._lctf.parse(b,a,c,d,f.GSUB.subt)};f.GSUB.subt=function(b,a,c){var d=f._bin,e=c,g={};g.fmt=d.readUshort(b,c);c+=2;if(1!=a&&4!=a&&5!=a&&6!=a)return null;if(1==a||4==a||5==a&&2>=g.fmt||6==a&&2>=g.fmt){var h=d.readUshort(b,c);c+=2;g.coverage=f._lctf.readCoverage(b,e+h)}if(1==a)1==g.fmt?g.delta=d.readShort(b,c):2==g.fmt&&(h=d.readUshort(b, | ||
c),g.newg=d.readUshorts(b,c+2,h));else if(4==a)for(g.vals=[],h=d.readUshort(b,c),c+=2,a=0;a<h;a++){var k=d.readUshort(b,c);c+=2;g.vals.push(f.GSUB.readLigatureSet(b,e+k))}else if(5==a){if(2==g.fmt)for(a=d.readUshort(b,c),c+=2,g.cDef=f._lctf.readClassDef(b,e+a),g.scset=[],h=d.readUshort(b,c),c+=2,a=0;a<h;a++)k=d.readUshort(b,c),c+=2,g.scset.push(0==k?null:f.GSUB.readSubClassSet(b,e+k))}else if(6==a&&3==g.fmt){for(a=0;3>a;a++){h=d.readUshort(b,c);c+=2;k=[];for(var n=0;n<h;n++)k.push(f._lctf.readCoverage(b, | ||
e+d.readUshort(b,c+2*n)));c+=2*h;0==a&&(g.backCvg=k);1==a&&(g.inptCvg=k);2==a&&(g.ahedCvg=k)}h=d.readUshort(b,c);g.lookupRec=f.GSUB.readSubstLookupRecords(b,c+2,h)}return g};f.GSUB.readSubClassSet=function(b,a){var c=f._bin.readUshort,d=a,e=[],g=c(b,a);a+=2;for(var h=0;h<g;h++){var k=c(b,a);a+=2;e.push(f.GSUB.readSubClassRule(b,d+k))}return e};f.GSUB.readSubClassRule=function(b,a){var c=f._bin.readUshort,d={},e=c(b,a);a+=2;var g=c(b,a);a+=2;d.input=[];for(var h=0;h<e-1;h++)d.input.push(c(b,a)),a+= | ||
2;d.substLookupRecords=f.GSUB.readSubstLookupRecords(b,a,g);return d};f.GSUB.readSubstLookupRecords=function(b,a,c){for(var d=f._bin.readUshort,e=[],g=0;g<c;g++)e.push(d(b,a),d(b,a+2)),a+=4;return e};f.GSUB.readChainSubClassSet=function(b,a){var c=f._bin,d=a,e=[],g=c.readUshort(b,a);a+=2;for(var h=0;h<g;h++){var k=c.readUshort(b,a);a+=2;e.push(f.GSUB.readChainSubClassRule(b,d+k))}return e};f.GSUB.readChainSubClassRule=function(b,a){for(var c=f._bin,d={},e=["backtrack","input","lookahead"],g=0;g<e.length;g++){var h= | ||
c.readUshort(b,a);a+=2;1==g&&h--;d[e[g]]=c.readUshorts(b,a,h);a+=2*d[e[g]].length}h=c.readUshort(b,a);d.subst=c.readUshorts(b,a+2,2*h);return d};f.GSUB.readLigatureSet=function(b,a){var c=f._bin,d=a,e=[],g=c.readUshort(b,a);a+=2;for(var h=0;h<g;h++){var k=c.readUshort(b,a);a+=2;e.push(f.GSUB.readLigature(b,d+k))}return e};f.GSUB.readLigature=function(b,a){var c=f._bin,d={chain:[]};d.nglyph=c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;for(var g=0;g<e-1;g++)d.chain.push(c.readUshort(b,a)),a+= | ||
2;return d};f.head={};f.head.parse=function(b,a,c){c=f._bin;var d={};c.readFixed(b,a);a+=4;d.fontRevision=c.readFixed(b,a);a+=4;c.readUint(b,a);a+=4;c.readUint(b,a);a+=4;d.flags=c.readUshort(b,a);a+=2;d.unitsPerEm=c.readUshort(b,a);a+=2;d.created=c.readUint64(b,a);a+=8;d.modified=c.readUint64(b,a);a+=8;d.xMin=c.readShort(b,a);a+=2;d.yMin=c.readShort(b,a);a+=2;d.xMax=c.readShort(b,a);a+=2;d.yMax=c.readShort(b,a);a+=2;d.macStyle=c.readUshort(b,a);a+=2;d.lowestRecPPEM=c.readUshort(b,a);a+=2;d.fontDirectionHint= | ||
c.readShort(b,a);a+=2;d.indexToLocFormat=c.readShort(b,a);d.glyphDataFormat=c.readShort(b,a+2);return d};f.hhea={};f.hhea.parse=function(b,a,c){c=f._bin;var d={};c.readFixed(b,a);a+=4;d.ascender=c.readShort(b,a);a+=2;d.descender=c.readShort(b,a);a+=2;d.lineGap=c.readShort(b,a);a+=2;d.advanceWidthMax=c.readUshort(b,a);a+=2;d.minLeftSideBearing=c.readShort(b,a);a+=2;d.minRightSideBearing=c.readShort(b,a);a+=2;d.xMaxExtent=c.readShort(b,a);a+=2;d.caretSlopeRise=c.readShort(b,a);a+=2;d.caretSlopeRun= | ||
c.readShort(b,a);a+=2;d.caretOffset=c.readShort(b,a);a=a+2+8;d.metricDataFormat=c.readShort(b,a);d.numberOfHMetrics=c.readUshort(b,a+2);return d};f.hmtx={};f.hmtx.parse=function(b,a,c,d){c=f._bin;for(var e={aWidth:[],lsBearing:[]},g=0,h=0,k=0;k<d.maxp.numGlyphs;k++)k<d.hhea.numberOfHMetrics&&(g=c.readUshort(b,a),a+=2,h=c.readShort(b,a),a+=2),e.aWidth.push(g),e.lsBearing.push(h);return e};f.kern={};f.kern.parse=function(b,a,c,d){var e=f._bin,g=e.readUshort(b,a);a+=2;if(1==g)return f.kern.parseV1(b, | ||
a-2,c,d);c=e.readUshort(b,a);a+=2;d={glyph1:[],rval:[]};for(g=0;g<c;g++){a+=2;e.readUshort(b,a);a+=2;var h=e.readUshort(b,a);a+=2;h>>>=8;h&=15;if(0==h)a=f.kern.readFormat0(b,a,d);else throw"unknown kern table format: "+h;}return d};f.kern.parseV1=function(b,a,c,d){c=f._bin;c.readFixed(b,a);a+=4;d=c.readUint(b,a);a+=4;for(var e={glyph1:[],rval:[]},g=0;g<d;g++){c.readUint(b,a);a+=4;var h=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;h>>>=8;h&=15;if(0==h)a=f.kern.readFormat0(b,a,e);else throw"unknown kern table format: "+ | ||
h;}return e};f.kern.readFormat0=function(b,a,c){var d=f._bin,e=-1,g=d.readUshort(b,a);a+=2;d.readUshort(b,a);a+=2;d.readUshort(b,a);a+=2;d.readUshort(b,a);a+=2;for(var h=0;h<g;h++){var k=d.readUshort(b,a);a+=2;var n=d.readUshort(b,a);a+=2;var t=d.readShort(b,a);a+=2;k!=e&&(c.glyph1.push(k),c.rval.push({glyph2:[],vals:[]}));e=c.rval[c.rval.length-1];e.glyph2.push(n);e.vals.push(t);e=k}return a};f.loca={};f.loca.parse=function(b,a,c,d){c=f._bin;var e=[],g=d.head.indexToLocFormat;d=d.maxp.numGlyphs+ | ||
1;if(0==g)for(var h=0;h<d;h++)e.push(c.readUshort(b,a+(h<<1))<<1);if(1==g)for(h=0;h<d;h++)e.push(c.readUint(b,a+(h<<2)));return e};f.maxp={};f.maxp.parse=function(b,a,c){c=f._bin;var d={},e=c.readUint(b,a);a+=4;d.numGlyphs=c.readUshort(b,a);a+=2;65536==e&&(d.maxPoints=c.readUshort(b,a),a+=2,d.maxContours=c.readUshort(b,a),a+=2,d.maxCompositePoints=c.readUshort(b,a),a+=2,d.maxCompositeContours=c.readUshort(b,a),a+=2,d.maxZones=c.readUshort(b,a),a+=2,d.maxTwilightPoints=c.readUshort(b,a),a+=2,d.maxStorage= | ||
c.readUshort(b,a),a+=2,d.maxFunctionDefs=c.readUshort(b,a),a+=2,d.maxInstructionDefs=c.readUshort(b,a),a+=2,d.maxStackElements=c.readUshort(b,a),a+=2,d.maxSizeOfInstructions=c.readUshort(b,a),a+=2,d.maxComponentElements=c.readUshort(b,a),d.maxComponentDepth=c.readUshort(b,a+2));return d};f.name={};f.name.parse=function(b,a,c){c=f._bin;var d={};c.readUshort(b,a);a+=2;var e=c.readUshort(b,a);a+=2;c.readUshort(b,a);a+=2;for(var g="copyright fontFamily fontSubfamily ID fullName version postScriptName trademark manufacturer designer description urlVendor urlDesigner licence licenceURL --- typoFamilyName typoSubfamilyName compatibleFull sampleText postScriptCID wwsFamilyName wwsSubfamilyName lightPalette darkPalette".split(" "), | ||
h=a,k=0;k<e;k++){var n=c.readUshort(b,a);a+=2;var t=c.readUshort(b,a);a+=2;var u=c.readUshort(b,a);a+=2;var m=c.readUshort(b,a);a+=2;var q=c.readUshort(b,a);a+=2;var p=c.readUshort(b,a);a+=2;m=g[m];p=h+12*e+p;if(0==n)q=c.readUnicode(b,p,q/2);else if(3==n&&0==t)q=c.readUnicode(b,p,q/2);else if(0==t)q=c.readASCII(b,p,q);else if(1==t)q=c.readUnicode(b,p,q/2);else if(3==t)q=c.readUnicode(b,p,q/2);else if(1==n)q=c.readASCII(b,p,q),console.log("reading unknown MAC encoding "+t+" as ASCII");else throw"unknown encoding "+ | ||
@@ -102,18 +102,19 @@ t+", platformID: "+n;n="p"+n+","+u.toString(16);null==d[n]&&(d[n]={});d[n][m]=q;d[n]._lang=u}for(var r in d)if(null!=d[r].postScriptName&&1033==d[r]._lang)return d[r];for(r in d)if(null!=d[r].postScriptName&&0==d[r]._lang)return d[r];for(r in d)if(null!=d[r].postScriptName&&3084==d[r]._lang)return d[r];for(r in d)if(null!=d[r].postScriptName)return d[r];for(r in d){var l=r;break}console.log("returning name table with languageID "+d[l]._lang);return d[l]};f["OS/2"]={};f["OS/2"].parse=function(b,a, | ||
g.y,a.x,a.y);g=a}p=d;r=e;break;case "C":a={x:p,y:r};for(h=1;16>h;h++){var k=h/15;var l=1-k;k={x:l*l*l*p+3*l*l*k*b+3*l*k*k*d+k*k*k*g,y:l*l*l*r+3*l*l*k*c+3*l*k*k*e+k*k*k*f};u.addLineSegment(a.x,a.y,k.x,k.y);a=k}p=g;r=f;break;case "Z":p===m&&r===q||u.addLineSegment(p,r,m,q)}});for(d=0;d<b;d++)for(var A=0;A<b;A++){var v=u.findNearestSignedDistance(f+(l-f)*(d+.5)/b,g+(t-g)*(A+.5)/b,k);v=isFinite(v)?Math.round(127.5*(1+v/k)):v;v=Math.max(0,Math.min(255,v));e[A*b+d]=v}}return{textureData:e,renderingBounds:[f, | ||
g,l,t]}}},function(l,f,b){function a(a,b){function c(){var d=function(b){console.error("Failure loading font "+a+(a===g?"":"; trying fallback"),b);a!==g&&(a=g,c())};try{var e=new XMLHttpRequest;e.open("get",a,!0);e.responseType="arraybuffer";e.onload=function(){try{var a=l(e.response);b(a)}catch(p){d(p)}};e.onerror=d;e.send()}catch(q){d(q)}}c()}function c(b,c){b||(b=g);var d=h[b];if(d)d.onload?d.onload.push(c):c();else{var e=h[b]={onload:[c]};a(b,function(a){d=h[b]={fontObj:a,glyphs:{},glyphCount:0}; | ||
e.onload.forEach(function(a){return a()})})}}function d(a,b){a||(a=g);c(a,function(){b(h[a])})}function e(a,b,c){var e=a.text;void 0===e&&(e="");var h=a.font;void 0===h&&(h=g);var k=a.fontSize;void 0===k&&(k=1);var l=a.letterSpacing;void 0===l&&(l=0);var n=a.lineHeight;void 0===n&&(n="normal");var t=a.maxWidth;void 0===t&&(t=Infinity);var v=a.textAlign;void 0===v&&(v="left");var x=a.whiteSpace;void 0===x&&(x="normal");var z=a.overflowWrap;void 0===z&&(z="normal");var y=a.anchor;void 0===c&&(c=!1); | ||
d(h,function(a){var d=a.fontObj,g=isFinite(t),h=null,m=null,p=null,q=null,r=0,u=0,A="nowrap"!==x,B=k/d.unitsPerEm;"normal"===n&&(n=(d.ascender-d.descender)/d.unitsPerEm);n*=k;var C=(n-(d.ascender-d.descender)*B)/2,D=e.split(/\r?\n/).map(function(a){var b=0,c=[],e=[c];d.forEachGlyph(a,k,l,function(a,d){var f=a.unicode;f="number"===typeof f&&String.fromCharCode(f);var h=a.advanceWidth*B,k=!!f&&/\s/.test(f);if(A&&g&&!k&&d+h+b>t&&c.length){if(c[c.length-1].isWhitespace){var l=[];b=-d}else for(var m=c.length;m--;)if(0=== | ||
m&&"break-word"===z){l=[];b=-d;break}else if(c[m].isWhitespace){l=c.splice(m+1);m=l[0].x;b-=m;for(var n=0;n<l.length;n++)l[n].x-=m;break}if(l){for(;c[c.length-1].isWhitespace;)c.pop();e.push(c=l);u=t}}c.push({glyphObj:a,x:d+b,y:0,width:h,char:f,isWhitespace:k,isEmpty:a.xMin===a.xMax||a.yMin===a.yMax,atlasInfo:null})});for(a=0;a<e.length&&u<t;a++){var f=e[a];f.length&&(f=f[f.length-1],u=Math.max(u,f.x+f.width))}r+=e.length;return e});if(!c){var F=[],I=-(k+C);D.forEach(function(b){for(var c=0;c<b.length;c++){var d= | ||
b[c];if(d.length){var e=0,g=d[d.length-1];g=g.x+g.width;var k=0;if("center"===v)e=(u-g)/2;else if("right"===v)e=u-g;else if("justify"===v)for(var l=0,m=d.length;l<m;l++)d[l].isWhitespace&&k++;l=0;for(m=d.length;l<m;l++){var p=d[l];p.isWhitespace&&"justify"===v&&c!==b.length-1&&(e+=(u-g)/k);if(!p.isWhitespace&&!p.isEmpty){var q=p.glyphObj,r=a.glyphs[q.index];r||(r=f(q),r.atlasIndex=a.glyphCount++,h||(h=[]),h.push(r),r=a.glyphs[q.index]={atlasIndex:r.atlasIndex,glyphObj:q,renderingBounds:r.renderingBounds}); | ||
p.atlasInfo=r;e&&(p.x+=e);p.y=I;F.push(p)}}}I-=n}});var H=0,J=0;y&&(y[0]&&(H=-u*y[0]),y[1]&&(J=r*n*y[1]));m=new Float32Array(4*F.length);p=new Float32Array(F.length);q=[Infinity,Infinity,-Infinity,-Infinity];F.forEach(function(a,b){var c=a.atlasInfo,d=c.renderingBounds;c=c.atlasIndex;var e=m[4*b]=a.x+d[0]*B+H,g=m[4*b+1]=a.y+d[1]*B+J,f=m[4*b+2]=a.x+d[2]*B+H;a=m[4*b+3]=a.y+d[3]*B+J;e<q[0]&&(q[0]=e);g<q[1]&&(q[1]=g);f>q[2]&&(q[2]=f);a>q[3]&&(q[3]=a);p[b]=c})}b({glyphBounds:m,glyphIndices:p,totalBounds:q, | ||
totalBlockSize:[u,r*n],newGlyphSDFs:h})})}var g=b.defaultFontUrl,h=Object.create(null);return{process:e,measure:function(a,b){e(a,function(a){b({width:a.totalBlockSize[0],height:a.totalBlockSize[1]})},!0)},loadFont:c}}],init:function(l,f,b,a,c){f=a({sdfTextureSize:l.sdfGlyphSize,sdfDistancePercent:f});return c(b,f,{defaultFontUrl:l.defaultFontURL})}});var U=F.defineWorkerModule({dependencies:[H,F.ThenableWorkerModule],init:function(l,f){return function(b){var a=new f;l.process(b,a.resolve);return a}}, | ||
getTransferables:function(l){var f=[l.glyphBounds.buffer,l.glyphIndices.buffer];l.newGlyphSDFs&&l.newGlyphSDFs.forEach(function(b){f.push(b.textureData.buffer)});return f}}),W=(new y.PlaneBufferGeometry(1,1)).translate(.5,.5,0),X=new y.Vector3,O=function(l){function f(){l.call(this);this.copy(W);this.addAttribute("aTroikaGlyphBounds",new y.InstancedBufferAttribute(new Float32Array(0),4));this.addAttribute("aTroikaGlyphIndex",new y.InstancedBufferAttribute(new Float32Array(0),1));this.boundingSphere= | ||
new y.Sphere}l&&(f.__proto__=l);f.prototype=Object.create(l&&l.prototype);f.prototype.constructor=f;f.prototype.computeBoundingSphere=function(){};f.prototype.updateGlyphs=function(b,a,c){N(this.attributes.aTroikaGlyphBounds,b);N(this.attributes.aTroikaGlyphIndex,a);this.maxInstancedCount=a.length;b=this.boundingSphere;b.center.set((c[0]+c[2])/2,(c[1]+c[3])/2,0);b.radius=b.center.distanceTo(X.set(c[0],c[1],0))};return f}(y.InstancedBufferGeometry),P=new y.MeshBasicMaterial({color:16777215,side:y.DoubleSide, | ||
transparent:!0}),Y=Object.freeze([0,0,0,0]),Z=new y.Matrix4,Q=new y.Mesh((new y.PlaneBufferGeometry(1,1)).translate(.5,.5,0),P),J=function(l){function f(a){a=new O;l.call(this,a,null);this.text="";this.font=this.anchor=null;this.fontSize=.1;this.letterSpacing=0;this.lineHeight="normal";this.maxWidth=Infinity;this.overflowWrap="normal";this.textAlign="left";this.whiteSpace="normal";this.color=this.material=null;this.depthOffset=0;this.clipRect=null;this.debugSDF=!1}l&&(f.__proto__=l);f.prototype=Object.create(l&& | ||
l.prototype);f.prototype.constructor=f;var b={material:{configurable:!0}};f.prototype.sync=function(a){var b=this;this._needsSync&&(this._needsSync=!1,this._isSyncing?(this._queuedSyncs||(this._queuedSyncs=[])).push(a):(this._isSyncing=!0,T({text:this.text,font:this.font,fontSize:this.fontSize,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,maxWidth:this.maxWidth,textAlign:this.textAlign,whiteSpace:this.whiteSpace,overflowWrap:this.overflowWrap,anchor:this.anchor},function(c){b._isSyncing= | ||
!1;b._textRenderInfo=c;b.geometry.updateGlyphs(c.glyphBounds,c.glyphIndices,c.totalBounds);var d=b._queuedSyncs;d&&(b._queuedSyncs=null,b._needsSync=!0,b.sync(function(){d.forEach(function(a){return a&&a()})}));a&&a()})))};f.prototype.onBeforeRender=function(){this.sync();this._prepareMaterial()};f.prototype.dispose=function(){this.geometry.dispose()};b.material.get=function(){var a=this._derivedMaterial,b=this._baseMaterial||P;a&&a.baseMaterial===b||(a&&a.dispose(),a=this._derivedMaterial=V(b),b.addEventListener("dispose", | ||
function e(){b.removeEventListener("dispose",e);a.dispose()}));return a};b.material.set=function(a){this._baseMaterial=a};f.prototype._prepareMaterial=function(){var a=this._derivedMaterial,b=this._textRenderInfo,d=a.uniforms;if(b){var e=b.sdfTexture;d.uTroikaSDFTexture.value=e;d.uTroikaSDFMinDistancePct.value=b.sdfMinDistancePercent;d.uTroikaGlyphVSize.value=e.image.width/e.image.height;d.uTroikaTotalBounds.value.fromArray(b.totalBounds)}d.uTroikaSDFDebug.value=!!this.debugSDF;(b=this.clipRect)&& | ||
Array.isArray(b)&&4===b.length||(b=Y);d.uTroikaClipRect.value.fromArray(b);a.polygonOffset=!!this.depthOffset;a.polygonOffsetFactor=a.polygonOffsetUnits=this.depthOffset||0;d=this.color;null!=d&&a.color&&a.color.isColor&&d!==a._troikaColor&&a.color.set(a._troikaColor=d)};f.prototype.raycast=function(a,b){var c=this._textRenderInfo;c&&(c=c.totalBounds,Q.matrixWorld.multiplyMatrices(this.matrixWorld,Z.set(c[2]-c[0],0,0,c[0],0,c[3]-c[1],0,c[1],0,0,1,0,0,0,0,1)),Q.raycast(a,b))};Object.defineProperties(f.prototype, | ||
b);return f}(y.Mesh);"font fontSize letterSpacing lineHeight maxWidth overflowWrap text textAlign whiteSpace anchor".split(" ").forEach(function(l){var f="_private_"+l;Object.defineProperty(J.prototype,l,{get:function(){return this[f]},set:"anchor"===l?function(b){JSON.stringify(b)!==JSON.stringify(this[f])&&(this[f]=b,this._needsSync=!0)}:function(b){b!==this[f]&&(this[f]=b,this._needsSync=!0)}})});var aa="text anchor font fontSize letterSpacing lineHeight maxWidth overflowWrap textAlign whiteSpace material color depthOffset clipRect debugSDF".split(" "); | ||
F=function(l){function f(b){var a=new J;a.geometry.boundingSphere.version=0;l.call(this,b,a)}l&&(f.__proto__=l);f.prototype=Object.create(l&&l.prototype);f.prototype.constructor=f;f.prototype.afterUpdate=function(){var b=this,a=this.threeObject;aa.forEach(function(c){a[c]=b[c]});a.sync(function(){b.isDestroying||(a.geometry.boundingSphere.version++,b.notifyWorld("needsRender"))});l.prototype.afterUpdate.call(this)};f.prototype.destructor=function(){this.threeObject.dispose();l.prototype.destructor.call(this)}; | ||
return f}(S.Object3DFacade);C.GlyphsGeometry=O;C.Text3DFacade=F;C.TextMesh=J;C.configureTextBuilder=function(l){K(I,l)};C.fontProcessorWorkerModule=H;Object.defineProperty(C,"__esModule",{value:!0})}); | ||
g,l,t]}}},function(l,f,b){function a(a,b){function c(){var d=function(b){console.error("Failure loading font "+a+(a===g?"":"; trying fallback"),b);a!==g&&(a=g,c())};try{var e=new XMLHttpRequest;e.open("get",a,!0);e.responseType="arraybuffer";e.onload=function(){if(400<=e.status)d(Error(e.statusText));else if(0<e.status)try{var a=l(e.response);b(a)}catch(p){d(p)}};e.onerror=d;e.send()}catch(q){d(q)}}c()}function c(b,c){b||(b=g);var d=h[b];if(d)d.onload?d.onload.push(c):c();else{var e=h[b]={onload:[c]}; | ||
a(b,function(a){d=h[b]={fontObj:a,glyphs:{},glyphCount:0};e.onload.forEach(function(a){return a()})})}}function d(a,b){a||(a=g);c(a,function(){b(h[a])})}function e(a,b,c){var e=a.text;void 0===e&&(e="");var h=a.font;void 0===h&&(h=g);var k=a.fontSize;void 0===k&&(k=1);var l=a.letterSpacing;void 0===l&&(l=0);var n=a.lineHeight;void 0===n&&(n="normal");var t=a.maxWidth;void 0===t&&(t=Infinity);var v=a.textAlign;void 0===v&&(v="left");var x=a.whiteSpace;void 0===x&&(x="normal");var z=a.overflowWrap; | ||
void 0===z&&(z="normal");var y=a.anchor;void 0===c&&(c=!1);d(h,function(a){var d=a.fontObj,g=isFinite(t),h=null,m=null,p=null,q=null,r=0,u=0,A="nowrap"!==x,B=k/d.unitsPerEm;"normal"===n&&(n=(d.ascender-d.descender)/d.unitsPerEm);n*=k;var C=(n-(d.ascender-d.descender)*B)/2,D=e.split(/\r?\n/).map(function(a){var b=0,c=[],e=[c];d.forEachGlyph(a,k,l,function(a,d){var f=a.unicode;f="number"===typeof f&&String.fromCharCode(f);var h=a.advanceWidth*B,k=!!f&&/\s/.test(f);if(A&&g&&!k&&d+h+b>t&&c.length){if(c[c.length- | ||
1].isWhitespace){var l=[];b=-d}else for(var m=c.length;m--;)if(0===m&&"break-word"===z){l=[];b=-d;break}else if(c[m].isWhitespace){l=c.splice(m+1);m=l[0].x;b-=m;for(var n=0;n<l.length;n++)l[n].x-=m;break}if(l){for(;c[c.length-1].isWhitespace;)c.pop();e.push(c=l);u=t}}c.push({glyphObj:a,x:d+b,y:0,width:h,char:f,isWhitespace:k,isEmpty:a.xMin===a.xMax||a.yMin===a.yMax,atlasInfo:null})});for(a=0;a<e.length&&u<t;a++){var f=e[a];f.length&&(f=f[f.length-1],u=Math.max(u,f.x+f.width))}r+=e.length;return e}); | ||
if(!c){var F=[],I=-(k+C);D.forEach(function(b){for(var c=0;c<b.length;c++){var d=b[c];if(d.length){var e=0,g=d[d.length-1];g=g.x+g.width;var k=0;if("center"===v)e=(u-g)/2;else if("right"===v)e=u-g;else if("justify"===v)for(var l=0,m=d.length;l<m;l++)d[l].isWhitespace&&k++;l=0;for(m=d.length;l<m;l++){var p=d[l];p.isWhitespace&&"justify"===v&&c!==b.length-1&&(e+=(u-g)/k);if(!p.isWhitespace&&!p.isEmpty){var q=p.glyphObj,r=a.glyphs[q.index];r||(r=f(q),r.atlasIndex=a.glyphCount++,h||(h=[]),h.push(r),r= | ||
a.glyphs[q.index]={atlasIndex:r.atlasIndex,glyphObj:q,renderingBounds:r.renderingBounds});p.atlasInfo=r;e&&(p.x+=e);p.y=I;F.push(p)}}}I-=n}});var H=0,J=0;y&&(y[0]&&(H=-u*y[0]),y[1]&&(J=r*n*y[1]));m=new Float32Array(4*F.length);p=new Float32Array(F.length);q=[Infinity,Infinity,-Infinity,-Infinity];F.forEach(function(a,b){var c=a.atlasInfo,d=c.renderingBounds;c=c.atlasIndex;var e=m[4*b]=a.x+d[0]*B+H,g=m[4*b+1]=a.y+d[1]*B+J,f=m[4*b+2]=a.x+d[2]*B+H;a=m[4*b+3]=a.y+d[3]*B+J;e<q[0]&&(q[0]=e);g<q[1]&&(q[1]= | ||
g);f>q[2]&&(q[2]=f);a>q[3]&&(q[3]=a);p[b]=c})}b({glyphBounds:m,glyphIndices:p,totalBounds:q,totalBlockSize:[u,r*n],newGlyphSDFs:h})})}var g=b.defaultFontUrl,h=Object.create(null);return{process:e,measure:function(a,b){e(a,function(a){b({width:a.totalBlockSize[0],height:a.totalBlockSize[1]})},!0)},loadFont:c}}],init:function(l,f,b,a,c){f=a({sdfTextureSize:l.sdfGlyphSize,sdfDistancePercent:f});return c(b,f,{defaultFontUrl:l.defaultFontURL})}});var U=F.defineWorkerModule({dependencies:[H,F.ThenableWorkerModule], | ||
init:function(l,f){return function(b){var a=new f;l.process(b,a.resolve);return a}},getTransferables:function(l){var f=[l.glyphBounds.buffer,l.glyphIndices.buffer];l.newGlyphSDFs&&l.newGlyphSDFs.forEach(function(b){f.push(b.textureData.buffer)});return f}}),W=(new y.PlaneBufferGeometry(1,1)).translate(.5,.5,0),X=new y.Vector3,O=function(l){function f(){l.call(this);this.copy(W);this.addAttribute("aTroikaGlyphBounds",new y.InstancedBufferAttribute(new Float32Array(0),4));this.addAttribute("aTroikaGlyphIndex", | ||
new y.InstancedBufferAttribute(new Float32Array(0),1));this.boundingSphere=new y.Sphere}l&&(f.__proto__=l);f.prototype=Object.create(l&&l.prototype);f.prototype.constructor=f;f.prototype.computeBoundingSphere=function(){};f.prototype.updateGlyphs=function(b,a,c){N(this.attributes.aTroikaGlyphBounds,b);N(this.attributes.aTroikaGlyphIndex,a);this.maxInstancedCount=a.length;b=this.boundingSphere;b.center.set((c[0]+c[2])/2,(c[1]+c[3])/2,0);b.radius=b.center.distanceTo(X.set(c[0],c[1],0))};return f}(y.InstancedBufferGeometry), | ||
P=new y.MeshBasicMaterial({color:16777215,side:y.DoubleSide,transparent:!0}),Y=Object.freeze([0,0,0,0]),Z=new y.Matrix4,Q=new y.Mesh((new y.PlaneBufferGeometry(1,1)).translate(.5,.5,0),P),J=function(l){function f(a){a=new O;l.call(this,a,null);this.text="";this.font=this.anchor=null;this.fontSize=.1;this.letterSpacing=0;this.lineHeight="normal";this.maxWidth=Infinity;this.overflowWrap="normal";this.textAlign="left";this.whiteSpace="normal";this.color=this.material=null;this.depthOffset=0;this.clipRect= | ||
null;this.debugSDF=!1}l&&(f.__proto__=l);f.prototype=Object.create(l&&l.prototype);f.prototype.constructor=f;var b={material:{configurable:!0},customDepthMaterial:{configurable:!0},customDistanceMaterial:{configurable:!0}};f.prototype.sync=function(a){var b=this;this._needsSync&&(this._needsSync=!1,this._isSyncing?(this._queuedSyncs||(this._queuedSyncs=[])).push(a):(this._isSyncing=!0,T({text:this.text,font:this.font,fontSize:this.fontSize,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight, | ||
maxWidth:this.maxWidth,textAlign:this.textAlign,whiteSpace:this.whiteSpace,overflowWrap:this.overflowWrap,anchor:this.anchor},function(c){b._isSyncing=!1;b._textRenderInfo=c;b.geometry.updateGlyphs(c.glyphBounds,c.glyphIndices,c.totalBounds);var d=b._queuedSyncs;d&&(b._queuedSyncs=null,b._needsSync=!0,b.sync(function(){d.forEach(function(a){return a&&a()})}));a&&a()})))};f.prototype.onBeforeRender=function(){this.sync();this._prepareMaterial()};f.prototype.dispose=function(){this.geometry.dispose()}; | ||
b.material.get=function(){var a=this._derivedMaterial,b=this._baseMaterial||P;a&&a.baseMaterial===b||(a&&a.dispose(),a=this._derivedMaterial=V(b),b.addEventListener("dispose",function e(){b.removeEventListener("dispose",e);a.dispose()}));return a};b.material.set=function(a){this._baseMaterial=a};b.customDepthMaterial.get=function(){return this._updateLayoutUniforms(this.material.getDepthMaterial())};b.customDistanceMaterial.get=function(){return this._updateLayoutUniforms(this.material.getDistanceMaterial())}; | ||
f.prototype._prepareMaterial=function(){var a=this._derivedMaterial;this._updateLayoutUniforms(a);a.uniforms.uTroikaSDFDebug.value=!!this.debugSDF;a.polygonOffset=!!this.depthOffset;a.polygonOffsetFactor=a.polygonOffsetUnits=this.depthOffset||0;var b=this.color;null!=b&&a.color&&a.color.isColor&&b!==a._troikaColor&&a.color.set(a._troikaColor=b)};f.prototype._updateLayoutUniforms=function(a){var b=this._textRenderInfo,d=a.uniforms;if(b){var e=b.sdfTexture;d.uTroikaSDFTexture.value=e;d.uTroikaSDFMinDistancePct.value= | ||
b.sdfMinDistancePercent;d.uTroikaGlyphVSize.value=e.image.width/e.image.height;d.uTroikaTotalBounds.value.fromArray(b.totalBounds)}(b=this.clipRect)&&Array.isArray(b)&&4===b.length||(b=Y);d.uTroikaClipRect.value.fromArray(b);return a};f.prototype.raycast=function(a,b){var c=this._textRenderInfo;c&&(c=c.totalBounds,Q.matrixWorld.multiplyMatrices(this.matrixWorld,Z.set(c[2]-c[0],0,0,c[0],0,c[3]-c[1],0,c[1],0,0,1,0,0,0,0,1)),Q.raycast(a,b))};Object.defineProperties(f.prototype,b);return f}(y.Mesh);"font fontSize letterSpacing lineHeight maxWidth overflowWrap text textAlign whiteSpace anchor".split(" ").forEach(function(l){var f= | ||
"_private_"+l;Object.defineProperty(J.prototype,l,{get:function(){return this[f]},set:"anchor"===l?function(b){JSON.stringify(b)!==JSON.stringify(this[f])&&(this[f]=b,this._needsSync=!0)}:function(b){b!==this[f]&&(this[f]=b,this._needsSync=!0)}})});var aa="text anchor font fontSize letterSpacing lineHeight maxWidth overflowWrap textAlign whiteSpace material color depthOffset clipRect debugSDF".split(" ");F=function(l){function f(b){var a=new J;a.geometry.boundingSphere.version=0;l.call(this,b,a)} | ||
l&&(f.__proto__=l);f.prototype=Object.create(l&&l.prototype);f.prototype.constructor=f;f.prototype.afterUpdate=function(){var b=this,a=this.threeObject;aa.forEach(function(c){a[c]=b[c]});a.sync(function(){b.isDestroying||(a.geometry.boundingSphere.version++,b.notifyWorld("needsRender"))});l.prototype.afterUpdate.call(this)};f.prototype.destructor=function(){this.threeObject.dispose();l.prototype.destructor.call(this)};return f}(S.Object3DFacade);C.GlyphsGeometry=O;C.Text3DFacade=F;C.TextMesh=J;C.configureTextBuilder= | ||
function(l){K(I,l)};C.fontProcessorWorkerModule=H;Object.defineProperty(C,"__esModule",{value:!0})}); |
{ | ||
"name": "troika-3d-text", | ||
"version": "0.15.2", | ||
"version": "0.15.3", | ||
"description": "Troika 3D Text", | ||
@@ -18,4 +18,4 @@ "author": "Jason Johnston <jason.johnston@protectwise.com>", | ||
"dependencies": { | ||
"troika-3d": "^0.15.2", | ||
"troika-three-utils": "^0.15.0", | ||
"troika-3d": "^0.15.3", | ||
"troika-three-utils": "^0.15.3", | ||
"troika-worker-utils": "^0.15.0" | ||
@@ -31,3 +31,3 @@ }, | ||
}, | ||
"gitHead": "4aa524eaf811d2b25048fbaa4bafd5e9a3074b96" | ||
"gitHead": "5286e414c66aa8c471091aaaea28c08b86bed0f6" | ||
} |
@@ -9,2 +9,6 @@ # `troika-3d-text` | ||
## Demo | ||
Here's [an online demo](https://troika-examples.netlify.com/#text). | ||
## Screenshots | ||
@@ -11,0 +15,0 @@ |
@@ -88,8 +88,13 @@ /** | ||
request.onload = function () { | ||
try { | ||
const fontObj = fontParser(request.response) | ||
callback(fontObj) | ||
} catch (e) { | ||
onError(e) | ||
if (request.status >= 400) { | ||
onError(new Error(request.statusText)) | ||
} | ||
else if (request.status > 0) { | ||
try { | ||
const fontObj = fontParser(request.response) | ||
callback(fontObj) | ||
} catch (e) { | ||
onError(e) | ||
} | ||
} | ||
} | ||
@@ -96,0 +101,0 @@ request.onerror = onError |
@@ -60,2 +60,6 @@ import { createDerivedMaterial } from 'troika-three-utils' | ||
#if defined(IS_DEPTH_MATERIAL) || defined(IS_DISTANCE_MATERIAL) | ||
if (troikaSDFValue < 0.5) discard; | ||
#else | ||
${''/* | ||
@@ -93,2 +97,4 @@ When the standard derivatives extension is available, we choose an antialiasing alpha threshold based | ||
} | ||
#endif | ||
` | ||
@@ -117,5 +123,13 @@ | ||
//force transparency - TODO is this reasonable? | ||
// Force transparency - TODO is this reasonable? | ||
textMaterial.transparent = true | ||
// WebGLShadowMap reverses the side of the shadow material by default, which fails | ||
// for planes, so here we force the `shadowSide` to always match the main side. | ||
Object.defineProperty(textMaterial, 'shadowSide', { | ||
get() { | ||
return this.side | ||
} | ||
}) | ||
return textMaterial | ||
@@ -122,0 +136,0 @@ } |
@@ -6,3 +6,6 @@ import { | ||
MeshBasicMaterial, | ||
PlaneBufferGeometry | ||
MeshDepthMaterial, | ||
MeshDistanceMaterial, | ||
PlaneBufferGeometry, | ||
RGBADepthPacking | ||
} from 'three' | ||
@@ -32,3 +35,2 @@ import { GlyphsGeometry } from './GlyphsGeometry.js' | ||
/** | ||
@@ -261,4 +263,28 @@ * @class TextMesh | ||
// Create and update material for shadows upon request: | ||
get customDepthMaterial() { | ||
return this._updateLayoutUniforms(this.material.getDepthMaterial()) | ||
} | ||
get customDistanceMaterial() { | ||
return this._updateLayoutUniforms(this.material.getDistanceMaterial()) | ||
} | ||
_prepareMaterial() { | ||
const material = this._derivedMaterial | ||
this._updateLayoutUniforms(material) | ||
// presentation uniforms: | ||
const uniforms = material.uniforms | ||
uniforms.uTroikaSDFDebug.value = !!this.debugSDF | ||
material.polygonOffset = !!this.depthOffset | ||
material.polygonOffsetFactor = material.polygonOffsetUnits = this.depthOffset || 0 | ||
// shortcut for setting material color via facade prop: | ||
const color = this.color | ||
if (color != null && material.color && material.color.isColor && color !== material._troikaColor) { | ||
material.color.set(material._troikaColor = color) | ||
} | ||
} | ||
_updateLayoutUniforms(material) { | ||
const textInfo = this._textRenderInfo | ||
@@ -273,16 +299,6 @@ const uniforms = material.uniforms | ||
} | ||
uniforms.uTroikaSDFDebug.value = !!this.debugSDF | ||
let clipRect = this.clipRect | ||
if (!(clipRect && Array.isArray(clipRect) && clipRect.length === 4)) { clipRect = noclip } | ||
uniforms.uTroikaClipRect.value.fromArray(clipRect) | ||
material.polygonOffset = !!this.depthOffset | ||
material.polygonOffsetFactor = material.polygonOffsetUnits = this.depthOffset || 0 | ||
// shortcut for setting material color via facade prop: | ||
const color = this.color | ||
if (color != null && material.color && material.color.isColor && color !== material._troikaColor) { | ||
material.color.set(material._troikaColor = color) | ||
} | ||
return material | ||
} | ||
@@ -289,0 +305,0 @@ |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1837044
32
31952
179
90
3
8
1
11
2
Updatedtroika-3d@^0.15.3
Updatedtroika-three-utils@^0.15.3