bliss-svg-builder
Version:
Compose, render, and manipulate Blissymbolics SVG using a compact DSL and a programmatic mutation API.
8,999 lines • 367 kB
JavaScript
/*!
* Contains glyph data derived from Liberation Sans Regular (Liberation Fonts Project)
* Copyright © 2012 Red Hat, Inc.
* Glyph data licensed under Apache License 2.0; see FONT_LICENSE.
*/
//#region src/external-font-data/liberation-sans-svg-path-data.js
var e = 107, t = 165, n = 356;
function r(r) {
return (r - e - t) / n;
}
function i(e) {
return e / n;
}
function a(e, t = 7) {
return e.replace(/-?\d+\.?\d*/g, (e) => parseFloat(parseFloat(e).toFixed(t)).toString());
}
var o = {
Xa: {
getPath: () => a("M1.1633399724960327,16.04509925842285q-0.45802998542785645,0,-0.6884499788284302,-0.24165916442871094t-0.23041999340057373,-0.6631603240966797q0,-0.4720802307128906,0.3105049729347229,-0.7249794006347656t1.0017650723457336,-0.2697601318359375l0.6828298568725586,-0.011240005493164062l0,-0.16579055786132812q0,-0.37091922760009766,-0.15735983848571777,-0.5310897827148438t-0.4945601224899292,-0.1601696014404297q-0.3400099277496338,0,-0.4945598840713501,0.11520957946777344t-0.18546003103256226,0.36810970306396484l-0.5282800197601318,-0.04776954650878906q0.12926000356674194,-0.8205204010009766,1.2195399403572083,-0.8205204010009766q0.5732401609420776,0,0.8626700639724731,0.26273536682128906t0.2894299030303955,0.7601051330566406l0,1.3094596862792969q0,0.22480010986328125,0.05901002883911133,0.3386049270629883t0.22480010986328125,0.11380481719970703q0.0730600357055664,0,0.16578984260559082,-0.019669532775878906l0,0.31472015380859375q-0.19107985496520996,0.04496002197265625,-0.39058995246887207,0.04496002197265625q-0.28099989891052246,0,-0.40885496139526367,-0.14752483367919922t-0.1447150707244873,-0.46224498748779297l-0.016860008239746094,0q-0.19388985633850098,0.34843921661376953,-0.45100486278533936,0.49315452575683594t-0.6252250671386719,0.14471435546875ZM1.2785500288009644,15.665749549865723q0.278190016746521,0,0.49456000328063965,-0.1264495849609375t0.34141504764556885,-0.34703540802001953t0.1250448226928711,-0.4538145065307617l0,-0.2500896453857422l-0.5535699129104614,0.011240005493164062q-0.3568699359893799,0.005620002746582031,-0.5409250259399414,0.0730600357055664t-0.28240495920181274,0.20793914794921875t-0.09834998846054077,0.36811065673828125q0,0.24728012084960938,0.13347500562667847,0.3821601867675781t0.3807550072669983,0.13487911224365234Z"),
get width() {
return r(1139);
},
height: 16.05,
char: "a"
},
Xb: {
getPath: () => a("M2.958930015563965,14.45464038848877q0,1.590458869934082,-1.118380069732666,1.590458869934082q-0.3456299304962158,0,-0.574644923210144,-0.1250438690185547t-0.37232500314712524,-0.40323543548583984l-0.005620002746582031,0q0,0.08711051940917969,-0.011240005493164062,0.2655448913574219t-0.016860008239746094,0.20653533935546875l-0.4889400005340576,0q0.016860008239746094,-0.15174007415771484,0.016860008239746094,-0.6266298294067383l0,-3.543410301208496l0.5058000087738037,0l0,1.1886301040649414q0,0.1826496124267578,-0.011240005493164062,0.4299297332763672l0.011240005493164062,0q0.140500009059906,-0.2922401428222656,0.37232500314712524,-0.4186897277832031t0.574644923210144,-0.1264505386352539q0.5760500431060791,0,0.847214937210083,0.38778018951416016t0.271165132522583,1.1745805740356445ZM2.427839994430542,14.471500396728516q0,-0.6378707885742188,-0.16860008239746094,-0.9132499694824219t-0.5479499101638794,-0.27538013458251953q-0.4271199703216553,0,-0.6224149465560913,0.2922401428222656t-0.1952950358390808,0.9272994995117188q0,0.5985298156738281,0.1910800337791443,0.8837451934814453t0.6210099458694458,0.2852144241333008q0.3821600675582886,0,0.5521649122238159,-0.28240489959716797t0.17000508308410645,-0.9174642562866211Z"),
get width() {
return r(1139);
},
height: 16.05,
char: "b"
},
Xc: {
getPath: () => a("M0.7727500200271606,14.45464038848877q0,0.606959342956543,0.1910799741744995,0.8991994857788086t0.5760500431060791,0.2922401428222656q0.26976001262664795,0,0.4510049819946289,-0.1461200714111328t0.22339487075805664,-0.4496002197265625l0.5114200115203857,0.03372001647949219q-0.05900979042053223,0.43836021423339844,-0.373729944229126,0.6996898651123047t-0.7980399131774902,0.26132965087890625q-0.6378700733184814,0,-0.9736650586128235,-0.40323448181152344t-0.33579498529434204,-1.1759843826293945q0,-0.7671308517456055,0.33719998598098755,-1.170365333557129t0.966640055179596,-0.40323543548583984q0.4664599895477295,0,0.7741549015045166,0.24166011810302734t0.38637495040893555,0.6659698486328125l-0.5198497772216797,0.03934001922607422q-0.03934001922607422,-0.252899169921875,-0.1995100975036621,-0.40182971954345703t-0.45521998405456543,-0.14892959594726562q-0.4018300771713257,0,-0.5816700458526611,0.2669496536254883t-0.17983996868133545,0.899200439453125Z"),
get width() {
return r(1024);
},
height: 16.05,
char: "c"
},
Xd: {
getPath: () => a("M2.3070099353790283,15.499959945678711q-0.14049983024597168,0.2922401428222656,-0.37232494354248047,0.4186897277832031t-0.5746450424194336,0.1264495849609375q-0.5760499238967896,0,-0.847214937210083,-0.38777923583984375t-0.27116501331329346,-1.1745796203613281q0,-1.5904607772827148,1.1183799505233765,-1.5904607772827148q0.34563004970550537,0,0.5760500431060791,0.1264505386352539t0.37091994285583496,0.40182971954345703l0.005620002746582031,0l-0.005620002746582031,-0.3400096893310547l0,-1.2616901397705078l0.5058000087738037,0l0,3.543410301208496q0,0.47488975524902344,0.016860008239746094,0.6266298294067383l-0.4833199977874756,0q-0.008430004119873047,-0.04496002197265625,-0.0182650089263916,-0.20794010162353516t-0.009835004806518555,-0.28100013732910156l-0.011240005493164062,0ZM0.7727500200271606,14.465880393981934q0,0.6378698348999023,0.1685999631881714,0.9132499694824219t0.547950029373169,0.2753791809082031q0.4299299716949463,0,0.6238200664520264,-0.29785919189453125t0.19388985633850098,-0.9244899749755859q0,-0.6041507720947266,-0.19388985633850098,-0.8851499557495117t-0.6182000637054443,-0.28100013732910156q-0.3821600675582886,0,-0.5521650314331055,0.28240489959716797t-0.1700049638748169,0.9174652099609375Z"),
get width() {
return r(1139);
},
height: 16.05,
char: "d"
},
Xe: {
getPath: () => a("M0.7755600214004517,14.575469970703125q0,0.5226602554321289,0.21636998653411865,0.8064699172973633t0.6322499513626099,0.2838096618652344q0.3287700414657593,0,0.5268751382827759,-0.13206958770751953t0.2683548927307129,-0.33438968658447266l0.44397997856140137,0.1264495849609375q-0.2725698947906494,0.7193593978881836,-1.2392100095748901,0.7193593978881836q-0.6743999719619751,0,-1.0270549654960632,-0.40182971954345703t-0.35265499353408813,-1.194249153137207q0,-0.7530803680419922,0.35265499353408813,-1.1549100875854492t1.0073849558830261,-0.40183067321777344q1.3403700590133667,0,1.3403700590133667,1.6157503128051758l0,0.06744003295898438l-2.169319987297058,0ZM2.42221999168396,14.187689781188965q-0.042150020599365234,-0.48050975799560547,-0.24446988105773926,-0.7010946273803711t-0.5816701650619507,-0.22058486938476562q-0.36810994148254395,0,-0.5830749273300171,0.24587440490722656t-0.23182499408721924,0.6758050918579102l1.6410399675369263,0Z"),
get width() {
return r(1139);
},
height: 16.05,
char: "e"
},
Xf: {
getPath: () => a("M1.0144100189208984,13.316590309143066l0,2.6723098754882812l-0.5058000087738037,0l0,-2.6723098754882812l-0.42712000757455826,0l0,-0.36811065673828125l0.42712000757455826,0l0,-0.3428192138671875q0,-0.4158802032470703,0.18264997005462646,-0.5985307693481445t0.559190034866333,-0.1826496124267578q0.21074998378753662,0,0.3568699359893799,0.03372001647949219l0,0.38496971130371094q-0.12644994258880615,-0.022480010986328125,-0.2247999906539917,-0.022480010986328125q-0.19388997554779053,0,-0.281000018119812,0.09835052490234375t-0.08710992336273193,0.3568696975708008l0,0.2725696563720703l0.5929099321365356,0l0,0.36811065673828125l-0.5929099321365356,0Z"),
get width() {
return r(569);
},
height: 15.99,
char: "f",
kerningRules: { f: i(37) }
},
Xg: {
getPath: () => a("M1.5398800373077393,17.183149337768555q-0.49737000465393066,0,-0.7924200296401978,-0.19529342651367188t-0.3793500065803528,-0.5549755096435547l0.5086100101470947,-0.07306098937988281q0.050579965114593506,0.21075057983398438,0.22339493036270142,0.3245563507080078t0.4538151025772095,0.11380386352539062q0.755889892578125,0,0.755889892578125,-0.8851499557495117l0,-0.4889392852783203l-0.005620002746582031,0q-0.1433098316192627,0.2922391891479492,-0.3933999538421631,0.43976497650146484t-0.5844799280166626,0.1475238800048828q-0.559190034866333,0,-0.8219250440597534,-0.37091922760009766t-0.2627350091934204,-1.1661500930786133q0,-0.8064699172973633,0.2824050188064575,-1.1900348663330078t0.8584549427032471,-0.38356494903564453q0.32315003871917725,0,0.5605950355529785,0.14752483367919922t0.36670494079589844,0.42009544372558594l0.005620002746582031,0q0,-0.08430004119873047,0.011240005493164062,-0.2922401428222656t0.022480010986328125,-0.22761058807373047l0.48050999641418457,0q-0.016860008239746094,0.15174007415771484,-0.016860008239746094,0.6294403076171875l0,2.3238697052001953q0,1.2813596725463867,-1.2729299068450928,1.2813596725463867ZM2.3098199367523193,14.468689918518066q0,-0.37092018127441406,-0.10116004943847656,-0.6392745971679688t-0.285214900970459,-0.4102602005004883t-0.4172849655151367,-0.1419048309326172q-0.3877800703048706,0,-0.564810037612915,0.28100013732910156t-0.17702996730804443,0.9104394912719727q0,0.6238203048706055,0.16578996181488037,0.8963899612426758t0.567620038986206,0.2725696563720703q0.23884999752044678,0,0.42430996894836426,-0.14049911499023438t0.2866199016571045,-0.40323543548583984t0.10116004943847656,-0.6252250671386719Z"),
get width() {
return r(1139);
},
height: 17.18,
char: "g"
},
Xh: {
getPath: () => a("M0.8907700181007385,13.468330383300781q0.16298002004623413,-0.29786014556884766,0.39199501276016235,-0.43695545196533203t0.5802649259567261,-0.13909530639648438q0.49456000328063965,0,0.7291951179504395,0.24587535858154297t0.2346348762512207,0.8247346878051758l0,2.026010513305664l-0.5086100101470947,0l0,-1.9276599884033203q0,-0.3203401565551758,-0.05901002883911133,-0.47629547119140625t-0.19388985633850098,-0.22901439666748047t-0.3737300634384155,-0.0730600357055664q-0.3568699359893799,0,-0.5718350410461426,0.24728012084960938t-0.21496492624282837,0.6659698486328125l0,1.7927799224853516l-0.5058000385761261,0l0,-4.170040130615234l0.5058000385761261,0l0,1.0846595764160156q0,0.17141056060791016,-0.009835004806518555,0.35406017303466797t-0.01264500617980957,0.21075057983398438l0.008430004119873047,0Z"),
get width() {
return r(1139);
},
height: 15.99,
char: "h"
},
Xi: {
getPath: () => a("M0.3849700093269348,12.302180290222168l0,-0.4833202362060547l0.5058000087738037,0l0,0.4833202362060547l-0.5058000087738037,0ZM0.3849700093269348,15.988900184631348l0,-3.0404205322265625l0.5058000087738037,0l0,3.0404205322265625l-0.5058000087738037,0Z"),
get width() {
return r(455);
},
height: 15.99,
char: "i"
},
Xj: {
getPath: () => a("M0.3849700093269348,12.302180290222168l0,-0.4833202362060547l0.5058000087738037,0l0,0.4833202362060547l-0.5058000087738037,0ZM0.8907700181007385,16.365440368652344q0,0.4299297332763672,-0.16860002279281616,0.6238193511962891t-0.5057999938726425,0.19388961791992188q-0.21637000143527985,0,-0.35686999559402466,-0.025289535522460938l0,-0.3905906677246094l0.1742199957370758,0.0168609619140625q0.19389000535011292,0,0.27256999909877777,-0.10116004943847656t0.07868000864982605,-0.3934001922607422l0,-3.341090202331543l0.5058000087738037,0l0,3.4169607162475586Z"),
get width() {
return r(455);
},
height: 17.18,
char: "j"
},
Xk: {
getPath: () => a("M2.2929599285125732,15.988900184631348l-1.028459906578064,-1.3881397247314453l-0.37092000246047974,0.3062896728515625l0,1.0818500518798828l-0.5058000087738037,0l0,-4.170040130615234l0.5058000087738037,0l0,2.604869842529297l1.3347498774528503,-1.475250244140625l0.5929100513458252,0l-1.233590006828308,1.306650161743164l1.2982200384140015,1.7337703704833984l-0.5929100513458252,0Z"),
get width() {
return r(1024);
},
height: 15.99,
char: "k"
},
Xl: {
getPath: () => a("M0.38778001070022583,15.988900184631348l0,-4.170040130615234l0.5058000087738037,0l0,4.170040130615234l-0.5058000087738037,0Z"),
get width() {
return r(455);
},
height: 15.99,
char: "l"
},
Xm: {
getPath: () => a("M2.1580801010131836,15.988900184631348l0,-1.9276599884033203q0,-0.44116973876953125,-0.12083005905151367,-0.6097698211669922t-0.43555009365081787,-0.16860008239746094q-0.3231499195098877,0,-0.5114198923110962,0.24728012084960938t-0.18827003240585327,0.6968793869018555l0,1.7618703842163086l-0.5029900372028351,0l0,-2.3913097381591797q0,-0.5310907363891602,-0.016859978437423706,-0.6491107940673828l0.47769999504089355,0q0.0028100013732910156,0.014050483703613281,0.005620002746582031,0.07587051391601562t0.007025003433227539,0.1419048309326172t0.009835004806518555,0.3020753860473633l0.008430004119873047,0q0.16298002004623413,-0.323150634765625,0.37373000383377075,-0.4496002197265625t0.5142300128936768,-0.1264505386352539q0.34563004970550537,0,0.5465449094772339,0.13769054412841797t0.27959513664245605,0.43836021423339844l0.008430004119873047,0q0.15735983848571777,-0.3062906265258789,0.3807549476623535,-0.44117069244384766t0.5409250259399414,-0.13488006591796875q0.46083998680114746,0,0.670184850692749,0.2500905990600586t0.20934486389160156,0.8205194473266602l0,2.026010513305664l-0.5001797676086426,0l0,-1.9276599884033203q0,-0.44116973876953125,-0.12083005905151367,-0.6097698211669922t-0.4355499744415283,-0.16860008239746094q-0.33157992362976074,0,-0.5156350135803223,0.24587440490722656t-0.18405485153198242,0.6982851028442383l0,1.7618703842163086l-0.5001800060272217,0Z"),
get width() {
return r(1706);
},
height: 15.99,
char: "m"
},
Xn: {
getPath: () => a("M2.3182499408721924,15.988900184631348l0,-1.9276599884033203q0,-0.3006706237792969,-0.05901002883911133,-0.4664602279663086t-0.18826985359191895,-0.23884963989257812t-0.37935006618499756,-0.0730600357055664q-0.36529994010925293,0,-0.5760500431060791,0.2500896453857422t-0.21074992418289185,0.6940698623657227l0,1.7618703842163086l-0.5058000385761261,0l0,-2.3913097381591797q0,-0.5310907363891602,-0.016859978437423706,-0.6491107940673828l0.47769999504089355,0q0.0028100013732910156,0.014050483703613281,0.005620002746582031,0.07587051391601562t0.007025003433227539,0.1419048309326172t0.009835004806518555,0.3020753860473633l0.008430004119873047,0q0.1742200255393982,-0.31472015380859375,0.4032350182533264,-0.4453849792480469t0.569024920463562,-0.13066577911376953q0.5001800060272217,0,0.7320051193237305,0.2486858367919922t0.2318248748779297,0.8219242095947266l0,2.026010513305664l-0.5086100101470947,0Z"),
get width() {
return r(1139);
},
height: 15.99,
char: "n"
},
Xo: {
getPath: () => a("M2.958930015563965,14.465880393981934q0,0.798039436340332,-0.35124993324279785,1.188629150390625t-1.02003014087677,0.39058971405029297q-0.665969967842102,0,-1.0059799551963806,-0.40604400634765625t-0.34000998735427856,-1.1731748580932617q0,-1.5736007690429688,1.3628499507904053,-1.5736007690429688q0.6968799829483032,0,1.025650143623352,0.38356494903564453t0.3287699222564697,1.1900358200073242ZM2.427839994430542,14.465880393981934q0,-0.6294403076171875,-0.18686509132385254,-0.9146556854248047t-0.6280349493026733,-0.2852144241333008q-0.44397997856140137,0,-0.6420849561691284,0.2908344268798828t-0.19810497760772705,0.9090356826782227q0,0.6013393402099609,0.19529497623443604,0.9034147262573242t0.6139850616455078,0.3020744323730469q0.45521998405456543,0,0.6505148410797119,-0.2922391891479492t0.19529509544372559,-0.9132499694824219Z"),
get width() {
return r(1139);
},
height: 16.05,
char: "o"
},
Xp: {
getPath: () => a("M2.958930015563965,14.45464038848877q0,1.590458869934082,-1.118380069732666,1.590458869934082q-0.7024999856948853,0,-0.9441599249839783,-0.5282793045043945l-0.014050006866455078,0q0.011240005493164062,0.022480010986328125,0.011240005493164062,0.47770023345947266l0,1.188629150390625l-0.5058000087738037,0l0,-3.613658905029297q0,-0.4692707061767578,-0.016860008239746094,-0.6210107803344727l0.4889400005340576,0q0.0028100013732910156,0.011240005493164062,0.008430004119873047,0.08008575439453125t0.01264500617980957,0.21215438842773438t0.007025003433227539,0.1967000961303711l0.011240005493164062,0q0.13488000631332397,-0.28100013732910156,0.35686999559402466,-0.4116649627685547t0.5844799280166626,-0.13066482543945312q0.562000036239624,0,0.8401901721954346,0.3765401840209961t0.27818989753723145,1.1830101013183594ZM2.427839994430542,14.465880393981934q0,-0.6350603103637695,-0.17141008377075195,-0.9076299667358398t-0.5451399087905884,-0.2725706100463867q-0.3006700277328491,0,-0.470674991607666,0.1264505386352539t-0.2585200071334839,0.3948049545288086t-0.08851498365402222,0.6982851028442383q0,0.5985298156738281,0.1910800337791443,0.8823394775390625t0.6210099458694458,0.2838096618652344q0.37654006481170654,0,0.5493549108505249,-0.27678489685058594t0.17281508445739746,-0.9287042617797852Z"),
get width() {
return r(1139);
},
height: 17.18,
char: "p"
},
Xq: {
getPath: () => a("M1.3600399494171143,16.04509925842285q-0.5788599252700806,0,-0.8486199378967285,-0.39058971405029297t-0.26976001262664795,-1.171769142150879q0,-1.5904607772827148,1.1183799505233765,-1.5904607772827148q0.34563004970550537,0,0.5704300403594971,0.12223529815673828t0.376539945602417,0.40604496002197266l0.005620002746582031,0q0,-0.08430004119873047,0.011240005493164062,-0.2908344268798828t0.022480010986328125,-0.22058582305908203l0.4861299991607666,0q-0.01967000961303711,0.16579055786132812,-0.01967000961303711,0.8289499282836914l0,3.4450597763061523l-0.5058000087738037,0l0,-1.2335891723632812l0.011240005493164062,-0.46084022521972656l-0.005620002746582031,0q-0.15173983573913574,0.30066967010498047,-0.373729944229126,0.4285249710083008t-0.5788600444793701,0.1278543472290039ZM2.3070099353790283,14.432160377502441q0,-0.5929107666015625,-0.19388985633850098,-0.8795299530029297t-0.6182000637054443,-0.2866201400756836q-0.3849700689315796,0,-0.553570032119751,0.2866201400756836t-0.1685999631881714,0.9132499694824219q0,0.6378698348999023,0.1700049638748169,0.9132499694824219t0.5465450286865234,0.2753791809082031q0.4299299716949463,0,0.6238200664520264,-0.3062896728515625t0.19388985633850098,-0.9160594940185547Z"),
get width() {
return r(1139);
},
height: 17.18,
char: "q"
},
Xr: {
getPath: () => a("M0.3990199863910675,15.988900184631348l0,-2.3323001861572266q0,-0.3203401565551758,-0.016859978437423706,-0.7081203460693359l0.47769999504089355,0q0.022480010986328125,0.5170402526855469,0.022480010986328125,0.6210107803344727l0.011240005493164062,0q0.1208299994468689,-0.3905906677246094,0.2781899571418762,-0.533900260925293t0.44397997856140137,-0.143310546875q0.10116004943847656,0,0.20513010025024414,0.028100013732910156l0,0.4636507034301758q-0.10116004943847656,-0.028100013732910156,-0.26976001262664795,-0.028100013732910156q-0.3147200345993042,0,-0.48050999641418457,0.2711648941040039t-0.16579002141952515,0.7769651412963867l0,1.5848398208618164l-0.5058000385761261,0Z"),
get width() {
return r(682);
},
height: 15.99,
char: "r"
},
Xs: {
getPath: () => a("M2.6695001125335693,15.148710250854492q0,0.4299297332763672,-0.3245551586151123,0.6631593704223633t-0.9090349674224854,0.2332296371459961q-0.5676199793815613,0,-0.8753150105476379,-0.18686389923095703t-0.4004249721765518,-0.5830755233764648l0.4467899948358536,-0.08710956573486328q0.06462997198104858,0.24446964263916016,0.26695001125335693,0.3582744598388672t0.5619999766349792,0.11380481719970703q0.3849700689315796,0,0.5634050369262695,-0.11801910400390625t0.1784350872039795,-0.35406017303466797q0,-0.179840087890625,-0.12364006042480469,-0.2922401428222656t-0.39902007579803467,-0.18546009063720703l-0.3624899387359619,-0.09554004669189453q-0.4355500340461731,-0.11240005493164062,-0.6196050643920898,-0.22058486938476562t-0.2880249619483948,-0.26273536682128906t-0.10397002100944519,-0.3793497085571289q0,-0.4158802032470703,0.2964549958705902,-0.6336545944213867t0.8640750050544739,-0.2177753448486328q0.5029900074005127,0,0.7994449138641357,0.17702960968017578t0.3751351833343506,0.5676202774047852l-0.45521998405456543,0.05620002746582031q-0.042150020599365234,-0.20232009887695312,-0.22620511054992676,-0.3105049133300781t-0.49315500259399414,-0.108184814453125q-0.34282004833221436,0,-0.5058000087738037,0.10396957397460938t-0.16297996044158936,0.31472015380859375q0,0.12926006317138672,0.0674399733543396,0.2135601043701172t0.19951003789901733,0.1433095932006836t0.5563799142837524,0.1629800796508789q0.4018300771713257,0.10116004943847656,0.5788601636886597,0.18686485290527344t0.27959489822387695,0.18967533111572266t0.15876507759094238,0.24025535583496094t0.05620002746582031,0.3105049133300781Z"),
get width() {
return r(1024);
},
height: 16.05,
char: "s"
},
Xt: {
getPath: () => a("M1.5567400455474854,15.96642017364502q-0.25009000301361084,0.06743907928466797,-0.5114200115203857,0.06743907928466797q-0.6069600284099579,0,-0.6069600284099579,-0.6884489059448242l0,-2.028820037841797l-0.3512500077486038,0l0,-0.36811065673828125l0.37091998755931854,0l0.14893001317977905,-0.6800193786621094l0.33719998598098755,0l0,0.6800193786621094l0.562000036239624,0l0,0.36811065673828125l-0.562000036239624,0l0,1.919229507446289q0,0.21918010711669922,0.0716550350189209,0.3076953887939453t0.24868500232696533,0.08851432800292969q0.10115993022918701,0,0.2922400236129761,-0.03933906555175781l0,0.3737297058105469Z"),
get width() {
return r(569);
},
height: 16.03,
char: "t"
},
Xu: {
getPath: () => a("M0.8823400139808655,12.948479652404785l0,1.9276599884033203q0,0.3006706237792969,0.05900996923446655,0.4664602279663086t0.1882699728012085,0.23885059356689453t0.37935006618499756,0.07305908203125q0.36529994010925293,0,0.5760500431060791,-0.2500896453857422t0.21074986457824707,-0.6940698623657227l0,-1.7618703842163086l0.5058000087738037,0l0,2.391310691833496q0,0.5310897827148438,0.016860008239746094,0.6491098403930664l-0.47769999504089355,0q-0.0028100013732910156,-0.014050483703613281,-0.005620002746582031,-0.07587051391601562t-0.007025003433227539,-0.1419048309326172t-0.009835004806518555,-0.3020744323730469l-0.008430004119873047,0q-0.17421984672546387,0.31471920013427734,-0.40323495864868164,0.4453849792480469t-0.569024920463562,0.13066387176513672q-0.5001800656318665,0,-0.7320050597190857,-0.24868392944335938t-0.23182499408721924,-0.821925163269043l0,-2.026010513305664l0.5086100101470947,0Z"),
get width() {
return r(1139);
},
height: 16.05,
char: "u"
},
Xv: {
getPath: () => a("M1.7225300073623657,15.988900184631348l-0.5985300540924072,0l-1.1043299529701471,-3.0404205322265625l0.5395199749618769,0l0.6687800288200378,1.9782400131225586q0.0365300178527832,0.11240005493164062,0.19388997554779053,0.6659708023071289l0.09835004806518555,-0.32877063751220703l0.10958993434906006,-0.33158016204833984l0.6912599802017212,-1.9838600158691406l0.5367100238800049,0Z"),
get width() {
return r(1024);
},
height: 15.99,
char: "v"
},
Xw: {
getPath: () => a("M3.2989399433135986,15.988900184631348l-0.5872900485992432,0l-0.5310897827148438,-2.1496505737304688l-0.10116004943847656,-0.47488975524902344q-0.02529001235961914,0.1264505386352539,-0.07868003845214844,0.3638954162597656t-0.5732400417327881,2.2606449127197266l-0.5844799876213074,0l-0.851429995149374,-3.0404205322265625l0.5001800023019314,0l0.5142300128936768,2.0653505325317383q0.01967000961303711,0.06744003295898438,0.12082993984222412,0.5563802719116211l0.047770023345947266,-0.20794010162353516l0.6350600719451904,-2.413790702819824l0.5423299074172974,0l0.5310900211334229,2.0878305435180664l0.12926006317138672,0.533900260925293l0.08711004257202148,-0.3905906677246094l0.5760498046875,-2.23114013671875l0.49456024169921875,0Z"),
get width() {
return r(1479);
},
height: 15.99,
char: "w"
},
Xx: {
getPath: () => a("M2.250809907913208,15.988900184631348l-0.8177099227905273,-1.247640609741211l-0.8233299851417542,1.247640609741211l-0.5451399981975555,0l1.0818499624729156,-1.5623598098754883l-1.0312699675559998,-1.4780607223510742l0.5591899752616882,0l0.7587000131607056,1.1830101013183594l0.7530801296234131,-1.1830101013183594l0.5648097991943359,0l-1.031269907951355,1.4724407196044922l1.0958999395370483,1.5679798126220703l-0.564810037612915,0Z"),
get width() {
return r(1024);
},
height: 15.99,
char: "x"
},
Xy: {
getPath: () => a("M0.5367100238800049,17.183149337768555q-0.207940012216568,0,-0.348440021276474,-0.030908584594726562l0,-0.3793506622314453q0.10677999258041382,0.016859054565429688,0.23603999614715576,0.016859054565429688q0.4720800220966339,0,0.7474599778652191,-0.6940689086914062l0.047770023345947266,-0.12083053588867188l-1.205489999614656,-3.026370048522949l0.5395199721679091,0l0.6406800150871277,1.6803808212280273q0.014050006866455078,0.03933906555175781,0.03372001647949219,0.09413433074951172t0.12644994258880615,0.36670494079589844t0.11521005630493164,0.34844017028808594l0.19669997692108154,-0.5535697937011719l0.665969967842102,-1.9360904693603516l0.5339000225067139,0l-1.1689599752426147,3.0404205322265625q-0.1882699728012085,0.4861307144165039,-0.3512500524520874,0.7235746383666992t-0.3610849380493164,0.3540611267089844t-0.4481949806213379,0.11661338806152344Z"),
get width() {
return r(1024);
},
height: 17.18,
char: "y"
},
Xz: {
getPath: () => a("M0.23322999477386475,15.988900184631348l0,-0.38496971130371094l1.7000499963760376,-2.264860153198242l-1.6045099794864655,0l0,-0.3905906677246094l2.2030400335788727,0l0,0.38497066497802734l-1.7028600573539734,2.264860153198242l1.7618700861930847,0l0,0.39058971405029297l-2.357590079307556,0Z"),
get width() {
return r(1024);
},
height: 15.99,
char: "z"
},
Xå: {
getPath: () => a("M1.1633399724960327,16.04509925842285q-0.45802998542785645,0,-0.6884499788284302,-0.24165916442871094t-0.23041999340057373,-0.6631603240966797q0,-0.4720802307128906,0.3105049729347229,-0.7249794006347656t1.0017650723457336,-0.2697601318359375l0.6828298568725586,-0.011240005493164062l0,-0.16579055786132812q0,-0.37091922760009766,-0.15735983848571777,-0.5310897827148438t-0.4945601224899292,-0.1601696014404297q-0.3400099277496338,0,-0.4945598840713501,0.11520957946777344t-0.18546003103256226,0.36810970306396484l-0.5282800197601318,-0.04776954650878906q0.12926000356674194,-0.8205204010009766,1.2195399403572083,-0.8205204010009766q0.5732401609420776,0,0.8626700639724731,0.26273536682128906t0.2894299030303955,0.7601051330566406l0,1.3094596862792969q0,0.22480010986328125,0.05901002883911133,0.3386049270629883t0.22480010986328125,0.11380481719970703q0.0730600357055664,0,0.16578984260559082,-0.019669532775878906l0,0.31472015380859375q-0.19107985496520996,0.04496002197265625,-0.39058995246887207,0.04496002197265625q-0.28099989891052246,0,-0.40885496139526367,-0.14752483367919922t-0.1447150707244873,-0.46224498748779297l-0.016860008239746094,0q-0.19388985633850098,0.34843921661376953,-0.45100486278533936,0.49315452575683594t-0.6252250671386719,0.14471435546875ZM1.2785500288009644,15.665749549865723q0.278190016746521,0,0.49456000328063965,-0.1264495849609375t0.34141504764556885,-0.34703540802001953t0.1250448226928711,-0.4538145065307617l0,-0.2500896453857422l-0.5535699129104614,0.011240005493164062q-0.3568699359893799,0.005620002746582031,-0.5409250259399414,0.0730600357055664t-0.28240495920181274,0.20793914794921875t-0.09834998846054077,0.36811065673828125q0,0.24728012084960938,0.13347500562667847,0.3821601867675781t0.3807550072669983,0.13487911224365234ZM2.245189905166626,12.026800155639648q0,0.28100013732910156,-0.199509859085083,0.48050975799560547t-0.48050999641418457,0.1995096206665039t-0.48050999641418457,-0.1995096206665039t-0.19951003789901733,-0.48050975799560547q0,-0.2838106155395508,0.19951003789901733,-0.48050975799560547t0.48050999641418457,-0.1967000961303711q0.27818989753723145,0,0.47910499572753906,0.1981048583984375t0.20091485977172852,0.47910499572753906ZM1.9417099952697754,12.026800155639648q0,-0.15736007690429688,-0.10959005355834961,-0.2669506072998047t-0.2669498920440674,-0.1095895767211914q-0.1601700782775879,0,-0.26976001262664795,0.1095895767211914t-0.10959005355834961,0.2669506072998047q0,0.15454959869384766,0.1067800521850586,0.2697601318359375t0.27257001399993896,0.11520957946777344q0.16297996044158936,0,0.2697598934173584,-0.11380481719970703t0.1067800521850586,-0.2711648941040039Z"),
get width() {
return r(1139);
},
height: 16.05,
char: "å"
},
Xä: {
getPath: () => a("M1.1633399724960327,16.04509925842285q-0.45802998542785645,0,-0.6884499788284302,-0.24165916442871094t-0.23041999340057373,-0.6631603240966797q0,-0.4720802307128906,0.3105049729347229,-0.7249794006347656t1.0017650723457336,-0.2697601318359375l0.6828298568725586,-0.011240005493164062l0,-0.16579055786132812q0,-0.37091922760009766,-0.15735983848571777,-0.5310897827148438t-0.4945601224899292,-0.1601696014404297q-0.3400099277496338,0,-0.4945598840713501,0.11520957946777344t-0.18546003103256226,0.36810970306396484l-0.5282800197601318,-0.04776954650878906q0.12926000356674194,-0.8205204010009766,1.2195399403572083,-0.8205204010009766q0.5732401609420776,0,0.8626700639724731,0.26273536682128906t0.2894299030303955,0.7601051330566406l0,1.3094596862792969q0,0.22480010986328125,0.05901002883911133,0.3386049270629883t0.22480010986328125,0.11380481719970703q0.0730600357055664,0,0.16578984260559082,-0.019669532775878906l0,0.31472015380859375q-0.19107985496520996,0.04496002197265625,-0.39058995246887207,0.04496002197265625q-0.28099989891052246,0,-0.40885496139526367,-0.14752483367919922t-0.1447150707244873,-0.46224498748779297l-0.016860008239746094,0q-0.19388985633850098,0.34843921661376953,-0.45100486278533936,0.49315452575683594t-0.6252250671386719,0.14471435546875ZM1.2785500288009644,15.665749549865723q0.278190016746521,0,0.49456000328063965,-0.1264495849609375t0.34141504764556885,-0.34703540802001953t0.1250448226928711,-0.4538145065307617l0,-0.2500896453857422l-0.5535699129104614,0.011240005493164062q-0.3568699359893799,0.005620002746582031,-0.5409250259399414,0.0730600357055664t-0.28240495920181274,0.20793914794921875t-0.09834998846054077,0.36811065673828125q0,0.24728012084960938,0.13347500562667847,0.3821601867675781t0.3807550072669983,0.13487911224365234ZM1.8939399719238281,12.563509941101074l0,-0.5170402526855469l0.45802998542785645,0l0,0.5170402526855469l-0.45802998542785645,0ZM0.7868000268936157,12.563509941101074l0,-0.5170402526855469l0.4636499881744385,0l0,0.5170402526855469l-0.4636499881744385,0Z"),
get width() {
return r(1139);
},
height: 16.05,
char: "ä"
},
Xö: {
getPath: () => a("M2.958930015563965,14.465880393981934q0,0.798039436340332,-0.35124993324279785,1.188629150390625t-1.02003014087677,0.39058971405029297q-0.665969967842102,0,-1.0059799551963806,-0.40604400634765625t-0.34000998735427856,-1.1731748580932617q0,-1.5736007690429688,1.3628499507904053,-1.5736007690429688q0.6968799829483032,0,1.025650143623352,0.38356494903564453t0.3287699222564697,1.1900358200073242ZM2.427839994430542,14.465880393981934q0,-0.6294403076171875,-0.18686509132385254,-0.9146556854248047t-0.6280349493026733,-0.2852144241333008q-0.44397997856140137,0,-0.6420849561691284,0.2908344268798828t-0.19810497760772705,0.9090356826782227q0,0.6013393402099609,0.19529497623443604,0.9034147262573242t0.6139850616455078,0.3020744323730469q0.45521998405456543,0,0.6505148410797119,-0.2922391891479492t0.19529509544372559,-0.9132499694824219ZM1.9360899925231934,12.563509941101074l0,-0.5170402526855469l0.45802998542785645,0l0,0.5170402526855469l-0.45802998542785645,0ZM0.8289499878883362,12.563509941101074l0,-0.5170402526855469l0.46365004777908325,0l0,0.5170402526855469l-0.46365004777908325,0Z"),
get width() {
return r(1139);
},
height: 16.05,
char: "ö"
},
XA: {
getPath: () => a("M3.2792699337005615,15.988900184631348l-0.4524099826812744,-1.1577205657958984l-1.8040199279785156,0l-0.4552200436592102,1.1577205657958984l-0.5563799794763327,0l1.6157499607652426,-3.9592905044555664l0.6097699403762817,0l1.5904600620269775,3.9592905044555664l-0.547950029373169,0ZM1.9248499870300293,12.434249877929688l-0.02529001235961914,0.07868003845214844q-0.07024991512298584,0.2332296371459961,-0.2079399824142456,0.5985298156738281l-0.5058000087738037,1.301030158996582l1.4808701276779175,0l-0.5086100101470947,-1.306650161743164q-0.07868003845214844,-0.19388961791992188,-0.15736007690429688,-0.43835926055908203Z"),
get width() {
return r(1366);
},
height: 15.99,
char: "A",
kerningRules: {
y: i(37),
v: i(37),
w: i(37),
Y: i(152),
W: i(76),
V: i(152),
T: i(152)
}
},
XB: {
getPath: () => a("M3.534980058670044,14.873330116271973q0,0.5282802581787109,-0.38496994972229004,0.821925163269043t-1.0706100463867188,0.29364490509033203l-1.6073200702667236,0l0,-3.9592905044555664l1.4387199878692627,0q1.3937599658966064,0,1.3937599658966064,0.9610204696655273q0,0.35124969482421875,-0.196699857711792,0.5901002883911133t-0.556380033493042,0.3203392028808594q0.4720799922943115,0.05620002746582031,0.7277898788452148,0.31612491607666016t0.2557101249694824,0.6561355590820312ZM2.7650399208068848,13.055259704589844q0,-0.3203401565551758,-0.21917986869812012,-0.45802974700927734t-0.6350600719451904,-0.13768959045410156l-0.9020099639892578,0l0,1.2532596588134766l0.9020099639892578,0q0.4299299716949463,0,0.642085075378418,-0.1615753173828125t0.21215486526489258,-0.49596500396728516ZM2.992650032043457,14.83117961883545q0,-0.6996898651123047,-0.9835000038146973,-0.6996898651123047l-1.0003600120544434,0l0,1.427480697631836l1.0425100326538086,0q0.49175000190734863,0,0.7165498733520508,-0.18265056610107422t0.22480010986328125,-0.545140266418457Z"),
get width() {
return r(1366);
},
height: 15.99,
char: "B"
},
XC: {
getPath: () => a("M2.225519895553589,12.408960342407227q-0.6575398445129395,0,-1.022839903831482,0.42290496826171875t-0.3652999997138977,1.1591243743896484q0,0.7277898788452148,0.3807550072669983,1.170365333557129t1.0298649072647095,0.44257545471191406q0.8317601680755615,0,1.2504501342773438,-0.8233308792114258l0.43835997581481934,0.21918010711669922q-0.24447011947631836,0.5114202499389648,-0.6870450973510742,0.7783699035644531t-1.027055025100708,0.2669496536254883q-0.5985299348831177,0,-1.0354849100112915,-0.24868392944335938t-0.665969967842102,-0.7109298706054688t-0.2290150225162506,-1.0944957733154297q0,-0.9469699859619141,0.5114199817180634,-1.4836797714233398t1.4162399172782898,-0.5367097854614258q0.6322500705718994,0,1.0565600395202637,0.24728012084960938t0.6238200664520264,0.7334098815917969l-0.5086100101470947,0.16860008239746094q-0.13769006729125977,-0.3456306457519531,-0.44257497787475586,-0.5282802581787109t-0.7235751152038574,-0.1826496124267578Z"),
get width() {
return r(1479);
},
height: 16.05,
char: "C"
},
XD: {
getPath: () => a("M3.8806099891662598,13.968509674072266q0,0.6125802993774414,-0.23884987831115723,1.0720157623291016t-0.6772100925445557,0.7039041519165039t-1.0116000175476074,0.24447059631347656l-1.480870008468628,0l0,-3.9592905044555664l1.3094600439071655,0q1.0059798955917358,0,1.5525249242782593,0.5043954849243164t0.5465450286865234,1.434504508972168ZM3.341089963912964,13.968509674072266q0,-0.7362194061279297,-0.40323495864868164,-1.1225948333740234t-1.1675549745559692,-0.38637447357177734l-0.7615100145339966,0l0,3.0994300842285156l0.8823399543762207,0q0.4355499744415283,0,0.7657251358032227,-0.19108009338378906t0.5072050094604492,-0.5507602691650391t0.17702984809875488,-0.8486204147338867Z"),
get width() {
return r(1479);
},
height: 15.99,
char: "D"
},
XE: {
getPath: () => a("M0.4720799922943115,15.988900184631348l0,-3.9592905044555664l3.003890037536621,0l0,0.43836021423339844l-2.467180013656616,0l0,1.2701196670532227l2.2985799312591553,0l0,0.4327402114868164l-2.2985799312591553,0l0,1.3797101974487305l2.582390069961548,0l0,0.43836021423339844l-3.1191000938415527,0Z"),
get width() {
return r(1366);
},
height: 15.99,
char: "E"
},
XF: {
getPath: () => a("M1.0087900161743164,12.46796989440918l0,1.4724397659301758l2.2086598873138428,0l0,0.44398021697998047l-2.2086598873138428,0l0,1.6045103073120117l-0.5367100238800049,0l0,-3.9592905044555664l2.812809944152832,0l0,0.43836021423339844l-2.276099920272827,0Z"),
get width() {
return r(1251);
},
height: 15.99,
char: "F",
kerningRules: { A: i(113) }
},
XG: {
getPath: () => a("M0.28942999243736267,13.990989685058594q0,-0.9638299942016602,0.5170399844646454,-1.4921092987060547t1.452769935131073,-0.5282802581787109q0.6575400829315186,0,1.0678000450134277,0.22198963165283203t0.6322500705718994,0.7109298706054688l-0.5114200115203857,0.15174007415771484q-0.16860008239746094,-0.3372001647949219,-0.465054988861084,-0.49174976348876953t-0.7376251220703125,-0.15454959869384766q-0.6856398582458496,0,-1.048129916191101,0.4144744873046875t-0.3624899983406067,1.1675548553466797q0,0.750269889831543,0.3849700093269348,1.1844148635864258t1.0649899244308472,0.4341459274291992q0.38778018951416016,0,0.7235751152038574,-0.11802005767822266t0.5437350273132324,-0.3203401565551758l0,-0.713740348815918l-1.1830101013183594,0l0,-0.4496002197265625l1.677570104598999,0l0,1.3656606674194336q-0.31472015380859375,0.3203392028808594,-0.7713451385498047,0.49596500396728516t-0.9905250072479248,0.17562389373779297q-0.6210099458694458,0,-1.0706099271774292,-0.24727916717529297t-0.6870449781417847,-0.7123346328735352t-0.23744502663612366,-1.0944957733154297Z"),
get width() {
return r(1593);
},
height: 16.05,
char: "G"
},
XH: {
getPath: () => a("M3.150010108947754,15.988900184631348l0,-1.834930419921875l-2.1412200927734375,0l0,1.834930419921875l-0.5367100238800049,0l0,-3.9592905044555664l0.5367100238800049,0l0,1.674759864807129l2.1412200927734375,0l0,-1.674759864807129l0.5367097854614258,0l0,3.9592905044555664l-0.5367097854614258,0Z"),
get width() {
return r(1479);
},
height: 15.99,
char: "H"
},
XI: {
getPath: () => a("M0.5310900211334229,15.988900184631348l0,-3.9592905044555664l0.5367100238800049,0l0,3.9592905044555664l-0.5367100238800049,0Z"),
get width() {
return r(569);
},
height: 15.99,
char: "I"
},
XJ: {
getPath: () => a("M1.2841700315475464,16.04509925842285q-1.0059800446033478,0,-1.1942500323057175,-1.0396995544433594l0.5254700034856796,-0.08710956573486328q0.05058002471923828,0.3259601593017578,0.22760999202728271,0.5086097717285156t0.44398003816604614,0.18265056610107422q0.2922400236129761,0,0.46083998680114746,-0.20091533660888672t0.1685999631881714,-0.5886955261230469l0,-2.3519697189331055l-0.7615100145339966,0l0,-0.43836021423339844l1.2954100370407104,0l0,2.77908992767334q0,0.5760507583618164,-0.31190991401672363,0.9062252044677734t-0.8542400598526001,0.33017444610595703Z"),
get width() {
return r(1024);
},
height: 16.05,
char: "J"
},
XK: {
getPath: () => a("M3.1078600883483887,15.988900184631348l-1.5820300579071045,-1.9107999801635742l-0.5170400142669678,0.3934001922607422l0,1.517399787902832l-0.5367100238800049,0l0,-3.9592905044555664l0.5367100238800049,0l0,1.9838600158691406l1.9079899787902832,-1.9838600158691406l0.6322500705718994,0l-1.686000108718872,1.7197198867797852l1.9107999801635742,2.2395706176757812l-0.6659698486328125,0Z"),
get width() {
return r(1366);
},
height: 15.99,
char: "K"
},
XL: {
getPath: () => a("M0.4720799922943115,15.988900184631348l0,-3.9592905044555664l0.5367100238800049,0l0,3.520930290222168l2.0007200241088867,0l0,0.43836021423339844l-2.5374300479888916,0Z"),
get width() {
return r(1139);
},
height: 15.99,
char: "L",
kerningRules: {
y: i(76),
Y: i(152),
W: i(152),
V: i(152),
T: i(152)
}
},
XM: {
getPath: () => a("M3.8384599685668945,15.988900184631348l0,-2.6414003372192383q0,-0.43836021423339844,0.02529001235961914,-0.8429994583129883q-0.13769006729125977,0.5029897689819336,-0.24727988243103027,0.786799430847168l-1.0228400230407715,2.6976003646850586l-0.3765401840209961,0l-1.036889910697937,-2.6976003646850586l-0.15735995769500732,-0.47770023345947266l-0.09273004531860352,-0.3090991973876953l0.008430004119873047,0.31190967559814453l0.011240005493164062,0.5310897827148438l0,2.6414003372192383l-0.47769999504089355,0l0,-3.9592905044555664l0.7053099870681763,0l1.053749918937683,2.7453699111938477q0.05620002746582031,0.16579055786132812,0.1081850528717041,0.3554649353027344t0.06884503364562988,0.2739753723144531q0.022480010986328125,-0.11240005493164062,0.09413504600524902,-0.3414144515991211t0.09694504737854004,-0.2880258560180664l1.0340800285339355,-2.7453699111938477l0.6884500980377197,0l0,3.9592905044555664l-0.4833202362060547,0Z"),
get width() {
return r(1706);
},
height: 15.99,
char: "M"
},
XN: {
getPath: () => a("M3.0404200553894043,15.988900184631348l-2.1187400817871094,-3.371999740600586l0.014050006866455078,0.2725696563720703l0.014050006866455078,0.4692697525024414l0,2.630160331726074l-0.47769999504089355,0l0,-3.9592905044555664l0.6238200664520264,0l2.1412198543548584,3.3944807052612305q-0.03372001647949219,-0.5507602691650391,-0.03372001647949219,-0.7980403900146484l0,-2.596440315246582l0.4833199977874756,0l0,3.9592905044555664l-0.6462998390197754,0Z"),
get width() {
return r(1479);
},
height: 15.99,
char: "N"
},
XO: {
getPath: () => a("M4.2009501457214355,13.990989685058594q0,0.6210107803344727,-0.23744511604309082,1.0874700546264648t-0.6814250946044922,0.7165498733520508t-1.0481300354003906,0.2500896453857422q-0.6097699403762817,0,-1.0523449182510376,-0.24727916717529297t-0.6758049726486206,-0.7151451110839844t-0.23322999477386475,-1.0916852951049805q0,-0.9497795104980469,0.5198500156402588,-1.4850845336914062t1.4471498727798462,-0.5353050231933594q0.6041500568389893,0,1.0481300354003906,0.24025440216064453t0.6786150932312012,0.6982851028442383t0.2346351146697998,1.0818500518798828ZM3.6530001163482666,13.990989685058594q0,-0.7390298843383789,-0.36951518058776855,-1.1605300903320312t-1.043915033340454,-0.42149925231933594q-0.6800198554992676,0,-1.050939917564392,0.4158792495727539t-0.37092000246047974,1.1661500930786133q0,0.7446498870849609,0.37513500452041626,1.181605339050293t1.0411049127578735,0.43695545196533203q0.6856400966644287,0,1.0523450374603271,-0.42290592193603516t0.36670517921447754,-1.1956548690795898Z"),
get width() {
return r(1593);
},
height: 16.05,
char: "O"
},
XP: {
getPath: () => a("M3.534980058670044,13.221050262451172q0,0.5619993209838867,-0.36670494079589844,0.8935794830322266t-0.9961450099945068,0.33158016204833984l-1.1633400917053223,0l0,1.5426902770996094l-0.5367100238800049,0l0,-3.9592905044555664l1.666330099105835,0q0.6659698486328125,0,1.0312700271606445,0.31191062927246094t0.36529994010925293,0.8795299530029297ZM2.995460033416748,13.226670265197754q0,-0.7671298980712891,-0.9216799736022949,-0.7671298980712891l-1.0649900436401367,0l0,1.5623598098754883l1.0874700546264648,0q0.8991999626159668,0,0.8991999626159668,-0.7952299118041992Z"),
get width() {
return r(1366);
},
height: 15.99,
char: "P",
kerningRules: { A: i(152) }
},
XQ: {
getPath: () => a("M4.2009501457214355,13.990989685058594q0,0.8373804092407227,-0.42150020599365234,1.3769006729125977t-1.1717698574066162,0.6378698348999023q0.11520981788635254,0.35405921936035156,0.3020749092102051,0.5114192962646484t0.47348499298095703,0.15736007690429688q0.15455007553100586,0,0.3231499195098877,-0.036529541015625l0,0.3765392303466797q-0.26132988929748535,0.06182098388671875,-0.5001800060272217,0.06182098388671875q-0.42430996894836426,0,-0.6982848644256592,-0.24025535583496094t-0.4481949806213379,-0.8022556304931641q-0.556380033493042,-0.02809906005859375,-0.9596151113510132,-0.28240394592285156t-0.6153899431228638,-0.7081203460693359t-0.21215498447418213,-1.0523452758789062q0,-0.9497795104980469,0.5198500156402588,-1.4850845336914062t1.4471498727798462,-0.5353050231933594q0.6041500568389893,0,1.0481300354003906,0.24025440216064453t0.6786150932312012,0.6982851028442383t0.2346351146697998,1.0818500518798828ZM3.6530001163482666,13.990989685058594q0,-0.7390298843383789,-0.36951518058776855,-1.1605300903320312t-1.043915033340454,-0.42149925231933594q-0.6800198554992676,0,-1.050939917564392,0.4158792495727539t-0.37092000246047974,1.1661500930786133q0,0.7446498870849609,0.37513500452041626,1.181605339050293t1.0411049127578735,0.43695545196533203q0.6856400966644287,0,1.0523450374603271,-0.42290592193603516t0.36670517921447754,-1.1956548690795898Z"),
get width() {
return r(1593);
},
height: 17.08,
char: "Q"
},
XR: {
getPath: () => a("M3.2708399295806885,15.988900184631348l-1.0284600257873535,-1.643850326538086l-1.2335898876190186,0l0,1.643850326538086l-0.5367100238800049,0l0,-3.9592905044555664l1.863029956817627,0q0.6687800884246826,0,1.03267502784729,0.29926490783691406t0.3638949394226074,0.833165168762207q0,0.44117069244384766,-0.25711488723754883,0.7418403625488281t-0.7095251083374023,0.3793497085571289l1.124000072479248,1.7056703567504883l-0.6182000637054443,0ZM3.19215989112854,13.167659759521484q0,-0.3456296920776367,-0.2346348762512207,-0.5268745422363281t-0.6758050918579102,-0.1812448501586914l-1.2729299068450928,0l0,1.4611997604370117l1.295409917831421,0q0.42430996894836426,0,0.656135082244873,-0.1981048583984375t0.2318248748779297,-0.5549755096435547Z"),
get width() {
return r(1479);
},
height: 15.99,
char: "R",
kerningRules: {
Y: i(37),
W: i(37),
V: i(37),
T: i(37)
}
},
XS: {
getPath: () => a("M3.574320077896118,14.8958101272583q0,0.5479497909545898,-0.4285249710083008,0.8486194610595703t-1.206895112991333,0.30066967010498047q-1.4471499919891357,0,-1.6775699853897095,-1.0059795379638672l0.5198500156402588,-0.10396957397460938q0.08991998434066772,0.3568696975708008,0.382159948348999,0.5240650177001953t0.7952300310134888,0.16719436645507812q0.5198500156402588,0,0.8022549152374268,-0.1784343719482422t0.28240513801574707,-0.5240650177001953q0,-0.19389057159423828,-0.08851504325866699,-0.31472015380859375t-0.24868512153625488,-0.1995096206665039t-0.382159948348999,-0.13207054138183594t-0.49175000190734863,-0.11520957946777344q-0.4692699909210205,-0.10397052764892578,-0.7123349905014038,-0.20794010162353516t-0.38356494903564453,-0.2318248748779297t-0.21496498584747314,-0.29926490783691406t-0.07446500658988953,-0.3934001922607422q0,-0.5086097717285156,0.38918498158454895,-0.7839899063110352t1.1141650080680847,-0.27538013458251953q0.6744000911712646,0,1.0312700271606445,0.20653533935546875t0.5001800060272217,0.7039041519165039l-0.5282800197601318,0.09273052215576172q-0.08711004257202148,-0.31472015380859375,-0.33157992362976074,-0.45662498474121094t-0.6772100925445557,-0.1419048309326172q-0.47488999366760254,0,-0.7249799966812134,0.15736007690429688t-0.25009000301361084,0.4692697525024414q0,0.1826496124267578,0.09694504737854004,0.3020744323730469t0.27959489822387695,0.20232009887695312t0.727790117263794,0.20372486114501953q0.18264985084533691,0.04215049743652344,0.3638949394226074,0.08570575714111328t0.34703493118286133,0.10396957397460938t0.3105051517486572,0.1419048309326172t0.2514948844909668,0.1995105743408203t0.16719508171081543,0.27818965911865234t0.060415029525756836,0.3765401840209961Z"),
get width() {
return r(1366);
},
height: 16.05,
char: "S"
},
XT: {
getPath: () => a("M2.023200035095215,12.46796989440918l0,3.520930290222168l-0.5339000225067139,0l0,-3.520930290222168l-1.360040009021759,0l0,-0.43836021423339844l3.253979980945587,0l0,0.43836021423339844l-1.3600399494171143,0Z"),
get width() {
return r(1251);
},
height: 15.99,
char: "T",
kerningRules: {
y: i(113),
w: i(113),
u: i(76),
ù: i(76),
ú: i(76),
û: i(76),
ü: i(76),
ū: i(76),
ű: i(76),
ų: i(76),
s: i(227),
š: i(227),
ś: i(227),
r: i(76),
o: i(227),
ò: i(227),
ó: i(227),
ô: i(227),
õ: i(227),
ö: i(227),
ø: i(227),
ō: i(227),
ő: i(227),
i: i(76),
ì: i(76),
í: i(76),
î: i(76),
ï: i(76),
ī: i(76),
į: i(76),
e: i(227),
è: i(227),
é: i(227),
ê: i(227),
ë: i(227),
ē: i(227),
ė: i(227),
ę: i(227),
c: i(227),
ć: i(227),
č: i(227),
ç: i(227),
a: i(227),
à: i(227),
á: i(227),
â: i(227),
ã: i(227),
ä: i(227),
å: i(227),
ā: i(227),
ą: i(227),
æ: i(227),
O: i(37),
Ò: i(37),
Ó: i(37),
Ô: i(37),
Õ: i(37),
Ö: i(37),
Ø: i(37),
Ō: i(37),
Ő: i(37),
A: i(152),
À: i(152),
Á: i(152),
Â: i(152),
Ã: i(152),
Ä: i(152),
Å: i(152),
Ā: i(152),
Ą: i(152),
Æ: i(152)
}
},
XU: {
getPath: () => a("M2.054110050201416,16.04509925842285q-0.4861299991607666,0,-0.8486200571060181,-0.17702960968017578t-0.5619999766349792,-0.5142297744750977t-0.19951000809669495,-0.8036594390869141l0,-2.520570755004883l0.5367099940776825,0l0,2.4756107330322266q0,0.5423297882080078,0.27538001537323,0.8233299255371094t0.7952300310134888,0.28100013732910156q0.5339000225067139,0,0.8303549289703369,-0.2908353805541992t0.29645490646362305,-0.8500251770019531l0,-2.439080238342285l0.5339000225067139,0l0,2.4699907302856445q0,0.48050975799560547,-0.20372486114501953,0.8289499282836914t-0.5760500431060791,0.5324945449829102t-0.8781249523162842,0.18405437469482422Z"),
get width() {
return r(1479);
},
height: 16.05,
char: "U"
},
XV: {
getPath: () => a("M2.1974198818206787,15.988900184631348l-0.5563799142837524,0l-1.6157499682158232,-3.9592905044555664l0.5648099910467863,0l1.0958999991416931,2.787520408630371l0.23603999614715576,0.6996898651123047l0.2360401153564453,-0.6996898651123047l1.0902798175811768,-2.787520408630371l0.564810037612915,0Z"),
get width() {
return r(1366);
},
height: 15.99,
char: "V",
kerningRules: {
y: i(76),
ý: i(76),
ÿ: i(76),
u: i(76),
ù: i(76),
ú: i(76),
û: i(76),
ü: i(76),
ū: i(76),
ű: i(76),
ų: i(76),
r: i(76),
o: i(113),
ò: i(113),
ó: i(113),
ô: i(113),
õ: i(113),
ö: i(113),
ø: i(113),
ō: i(113),
ő: i(113),
i: i(37),
ì: i(37),
í: i(37),
î: i(37),
ï: i(37),
ī: i(37),
į: i(37),
e: i(113),
è: i(113),
é: i(113),
ê: i(113),
ë: i(113),
ē: i(113),
ė: i(113),
ę: i(113),
a: i(227),
à: i(227),
á: i(227),
â: i(227),
ã: i(227),
ä: i(227),
å: i(227),
ā: i(227),
ą: i(227),
æ: i(227),
A: i(152),
À: i(152),
Á: i(152),
Â: i(152),
Ã: i(152),
Ä: i(152),
Å: i(152),
Ā: i(152),
Ą: i(152),
Æ: i(152)
}
},
XW: {
getPath: () => a("M4.245910167694092,15.988900184631348l-0.6406800746917725,0l-0.6856400966644287,-2.5149497985839844q-0.06744003295898438,-0.2360401153564453,-0.1967000961303711,-0.8458099365234375q-0.0730597972869873,0.3259592056274414,-0.12363982200622559,0.5451393127441406t-0.7671301364898682,2.8156204223632812l-0.6406799554824829,0l-1.1661499869078398,-3.9592905044555664l0.5591899883002043,0l0.7109300494194031,2.514950752258301q0.12644994258880615,0.4720792770385742,0.23322999477386475,0.972259521484375q0.06743991374969482,-0.3091001510620117,0.15595495700836182,-0.6744003295898438t0.7797750234603882,-2.812809944152832l0.5142300128936768,0l0.6884498596191406,2.4643707275390625q0.15736007690429688,0.6041498184204102,0.24728012084960938,1.0228395462036133l0.02529001235961914,-0.09834957122802734q0.07587003707885742,-0.323150634765625,0.12364006042480469,-0.5268754959106445t0.7896099090576172,-2.861985206604004l0.5591897964477539,0Z"),
get width() {
return r(1933);
},
height: 15.99,
char: "W",
kerningRules: {
y: i(18),
ý: i(18),
ÿ: i(18),
u: i(37),
ù: i(37),
ú: i(37),
û: i(37),
ü: i(37),
ū: i(37),
ű: i(37),
ų: i(37),
r: i(37),
o: i(37),
ò: i(37),
ó: i(37),
ô: i(37),
õ: i(37),
ö: i(37),
ø: i(37),
ō: i(37),
ő: i(37),
e: i(37),
è: i(37),
é: i(37),
ê: i(37),
ë: i(37),
ē: i(37),
ė: i(37),
ę: i(37),
a: i(76),
à: i(76),
á: i(76),
â: i(76),
ã: i(76),
ä: i(76),
å: i(76),
ā: i(76),
ą: i(76),
æ: i(76),
A: i(76),
À: i(76),
Á: i(76),
Â: i(76),
Ã: i(76),
Ä: i(76),
Å: i(76),
Ā: i(76),
Ą: i(76),
Æ: i(76)
}
},
XX: {
getPath: () => a("M3.1247200965881348,15.988900184631348l-1.1886301040649414,-1.7309598922729492l-1.213919997215271,1.7309598922729492l-0.5929099917411804,0l1.5061599612236023,-2.056920051574707l-1.3909499645233154,-1.9023704528808594l0.5929099917411804,0l1.1015200018882751,1.5539302825927734l1.0706100463867188,-1.5539302825927734l0.5929100513458252,0l-1.3544201850891113,1.882699966430664l1.4696300029754639,2.0765905380249023l-0.5929098129272461,0Z"),
get width() {
return r(1366);
},
height: 15.99,
char: "X"
},
XY: {
getPath: () => a("M2.1833701133728027,14.347860336303711l0,1.6410398483276367l-0.5339001417160034,0l0,-1.6410398483276367l-1.5230199694633484,-2.3182506561279297l0.5900999903678894,0l1.205489993095398,1.8855104446411133l1.1998701095581055,-1.8855104446411133l0.5900998115539551,0Z"),
get width() {
return r(1366);
},
height: 15.99,
char: "Y",
kerningRules: {
v: i(113),
u: i(113),
ù: i(113),
ú: i(113),
û: i(113),
ü: i(113),
ū: i(113),
ű: i(113),
ų: i(113),
q: i(188),
p: i(152),
o: i(188),
ò: i(188),
ó: i(188),
ô: i(188),
õ: i(188),
ö: i(188),
ø: i(188),
ō: i(188),
ő: i(188),
i: i(76),
ì: i(76),
í: i(76),
î: i(76),
ï: i(76),
ī: i(76),
į: i(76),
e: i(188),
è: i(188),
é: i(188),
ê: i(188),
ë: i(188),
ē: i(188),
ė: i(188),
ę: i(188),
a: i(152),
à: i(152),
á: i(152),
â: i(152),
ã: i(152),
ä: i(152),
å: i(152),
ā: i(152),
ą: i(152),
æ: i(152),
A: i(152),
À: i(152),
Á: i(152),
Â: i(152),
Ã: i(152),
Ä: i(152),
Å: i(152),
Ā: i(152),
Ą: i(152),
Æ: i(152)
}
},
XZ: {
getPath: () => a("M3.335469961166382,15.988900184631348l-3.152819961309433,0l0,-0.40182971954345703l2.410980075597763,-3.119100570678711l-2.205850064754486,0l0,-0.43836021423339844l2.8156198859214783,0l0,0.3905906677246094l-2.4109798669815063,3.1303396224975586l2.543049931526184,0l0,0.43836021423339844Z"),
get width() {
return r(1251);
},
height: 15.99,
char: "Z"
},
XÅ: {
getPath: () => a("M3.2792699337005615,15.988900184631348l-0.4524099826812744,-1.1577205657958984l-1.8040199279785156,0l-0.4552200436592102,1.1577205657958984l-0.5563799794763327,0l1.6157499607652426,-3.9592905044555664l0.6097699403762817,0l1.5904600620269775,3.9592905044555664l-0.547950029373169,0ZM1.9248499870300293,12.434249877929688l-0.02529001235961914,0.07868003845214844q-0.07024991512298584,0.2332296371459961,-0.2079399824142456,0.5985298156738281l-0.5058000087738037,1.301030158996582l1.4808701276779175,0l-0.5086100101470947,-1.306650161743164q-0.07868003845214844,-0.19388961791992188,-0.15736007690429688,-0.43835926055908203ZM2.607680082321167,11.64463996887207q0,0.28100013732910156,-0.1995100975036621,0.48050975799560547t-0.48050999641418457,0.1995105743408203t-0.48050999641418457,-0.1995105743408203t-0.19950997829437256,-0.48050975799560547q0,-0.2838096618652344,0.19950997829437256,-0.48050975799560547t0.48050999641418457,-0.1967000961303711q0.27818989753723145,0,0.47910499572753906,0.1981048583984375t0.20091509819030762,0.47910499572753906ZM2.3041999340057373,11.64463996887207q0,-0.15736007690429688,-0.10958981513977051,-0.2669496536254883t-0.2669501304626465,-0.10959053039550781q-0.16016995906829834,0,-0.26976001262664795,0.10959053039550781t-0.10958993434906006,0.2669496536254883q0,0.15454959869384766,0.10677993297576904,0.2697601318359375t0.27257001399993896,0.11520957946777344q0.1629800796508789,0,0.2697598934173584,-0.11380481719970703t0.1067800521850586,-0.2711648941040039Z"),
get width() {
return r(1366);
},
height: 15.99,
char: "Å",
kerningRules: {
y: i(37),
v: i(37),
w: i(37),
Y: i(152),
W: i(76),
V: i(152),
T: i(152)
}
},
XÄ: {
getPath: () => a("M3.2792699337005615,15.988900184631348l-0.4524099826812744,-1.1577205657958984l-1.8040199279785156,0l-0.4552200436592102,1.1577205657958984l-0.5563799794763327,0l1.6157499607652426,-3.9592905044555664l0.6097699403762817,0l1.5904600620269775,3.9592905044555664l-0.547950029373169,0ZM1.9248499870300293,12.434249877929688l-0.02529001235961914,0.07868003845214844q-0.07024991512298584,0.2332296371459961,-0.2079399824142456,0.5985298156738281l-0.5058000087738037,1.301030158996582l1.4808701276779175,0l-0.5086100101470947,-1.306650161743164q-0.07868003845214844,-0.19388961791992188,-0.15736007690429688,-0.43835926055908203ZM2.25642991065979,11.689599990844727l0,-0.5170402526855469l0.45802998542785645,0l0,0.5170402526855469l-0.45802998542785645,0ZM1.1492899656295776,11.689599990844727l0,-0.5170402526855469l0.4636499881744385,0l0,0.5170402526855469l-0.4636499881744385,0Z"),
get width() {
return r(1366);
},
height: 15.99,
char: "Ä",
kerningRules: {
y: i(37),
v: i(37),
w: i(37),
Y: i(152),
W: i(76),
V: i(152),
T: i(152)
}
},
XÖ: {
getPath: () => a("M4.2009501457214355,13.990989685058594q0,0.6210107803344727,-0.23744511604309082,1.0874700546264648t-0.6814250946044922,0.7165498733520508t-1.0481300354003906,0.2500896453857422q-0.6097699403762817,0,-1.0523449182510376,-0.24727916717529297t-0.6758049726486206,-0.7151451110839844t-0.23322999477386475,-1.0916852951049805q0,-0.9497795104980469,0.5198500156402588,-1.4850845336914062t1.4471498727798462,-0.5353050231933594q0.6041500568389893,0,1.0481300354003906,0.24025440216064453t0.6786150932312012,0.6982851028442383t0.2346351146697998,1.0818500518798828ZM3.6530001163482666,13.990989685058594q0,-0.7390298843383789,-0.36951518058776855,-1.1605300903320312t-1.043915033340454,-0.42149925231933594q-0.6800198554992676,0,-1.050939917564392,0.4158792495727539t-0.37092000246047974,1.1661500930786133q0,0.7446498870849609,0.37513500452041626,1.181605339050293t1.0411049127578735,0.43695545196533203q0.6856400966644287,0,1.0523450374603271,-0.42290592193603516t0.36670517921447754,-1.1956548690795898ZM2.5571000576019287,11.689599990844727l0,-0.5170402526855469l0.45802998542785645,0l0,0.5170402526855469l-0.45802998542785645,0ZM1.4499599933624268,11.689599990844727l0,-0.5170402526855469l0.4636499881744385,0l0,0.5170402526855469l-0.4636499881744385,0Z"),
get width() {
return r(1593);
},
height: 16.05,
char: "Ö"
},
XÀ: {
getPath: () => "M3.2781,16l-0.4522,-1.1573h-1.8034l-0.4551,1.1573h-0.5562l1.6152,-3.9579h0.6096l1.5899,3.9579h-0.5478zM1.9242,12.4466l-0.0253,0.0787q-0.0702,0.2331,-0.2079,0.5983l-0.5056,1.3006h1.4803l-0.5084,-1.3062q-0.0787,-0.1938,-0.1573,-0.4382zM2.1067,11.7022l-0.8708,-0.6096v-0.0815h0.5815l0.6096,0.6348v0.0562h-0.3202z",
get width() {
return r(1366);
},
height: 16,
char: "À",
kerningRules: {
T: i(152),
v: i(37),
V: i(152),
w: i(37),
W: i(76),
y: i(37),
Y: i(152)
}
},
XÁ: {
getPath: () => "M3.2781,16l-0.4522,-1.1573h-1.8034l-0.4551,1.1573h-0.5562l1.6152,-3.9579h0.6096l1.5899,3.9579h-0.5478zM1.9242,12.4466l-0.0253,0.0787q-0.0702,0.2331,-0.2079,0.5983l-0.5056,1.3006h1.4803l-0.5084,-1.3062q-0.0787,-0.1938,-0.1573,-0.4382zM1.5365,11.7022v-0.0562l0.6096,-0.6348h0.5815v0.0815l-0.8708,0.6096h-0.3202z",
get width() {
return r(1366);
},
height: 16,
char: "Á",
kerningRules: {
T: i(152),
v: i(37),
V: i(152),
w: i(37),
W: i(76),
y: i(37),
Y: i(152)
}
},
XÂ: {
getPath: () => "M3.2781,16l-0.4522,-1.1573h-1.8034l-0.4551,1.1573h-0.5562l1.6152,-3.9579h0.6096l1.5899,3.9579h-0.5478zM1.9242,12.4466l-0.0253,0.0787q-0.0702,0.2331,-0.2079,0.5983l-0.5056,1.3006h1.4803l-0.5084,-1.3062q-0.0787,-0.1938,-0.1573,-0.4382zM2.8483,11.6461v0.0562h-0.2949l-0.6152,-0.3904h-0.0056l-0.6517,0.3904h-0.2921v-0.0562l0.6573,-0.6742h0.573z",
get width() {
return r(1366);
},
height: 16,
char: "Â",
kerningRules: {
T: i(152),
v: i(37),
V: i(152),
w: i(37),
W: i(76),
y: i(37),
Y: i(152)
}
},
XÃ: {
getPath: () => "M3.2781,16l-0.4522,-1.1573h-1.8034l-0.4551,1.1573h-0.5562l1.6152,-3.9579h0.6096l1.5899,3.9579h-0.5478zM1.9242,12.4466l-0.0253,0.0787q-0.0702,0.2331,-0.2079,0.5983l-0.5056,1.3006h1.4803l-0.5084,-1.3062q-0.0787,-0.1938,-0.1573,-0.4382zM2.3652,11.7022q-0.118,0,-0.236,-0.052t-0.2275,-0.1152t-0.2093,-0.1152t-0.1868,-0.052q-0.1545,0,-0.2303,0.0871t-0.1011,0.2472h-0.2556q0.0309,-0.2865,0.0983,-0.434t0.1812,-0.2331t0.2907,-0.0857q0.1236,0,0.2416,0.052t0.2275,0.1152t0.2065,0.1152t0.1812,0.052q0.2809,0,0.3287,-0.3343h0.2584q-0.0478,0.4157,-0.1882,0.5843t-0.3792,0.1685z",
get width() {
return r(1366);
},
height: 16,
char: "Ã",
kerningRules: {
T: i(152),
v: i(37),
V: i(152),
w: i(37),
W: i(76),
y: i(37),
Y: i(152)
}
},
XÆ: {
getPath: () => "M2.7219,16v-1.1573h-1.5393l-0.5562,1.1573h-0.559l1.927,-3.9579h3.3961v0.4382h-2.132v1.2697h1.9635v0.4326h-1.9635v1.3792h2.2472v0.4382h-2.7837zM2.7219,12.4551h-0.4242l-0.0787,0.177l-0.8399,1.7921h1.3427v-1.9691z",
get width() {
return r(2048);
},
height: 16,
char: "Æ",
kerningRules: {
T: i(152),
v: i(37),
V: i(152),
w: i(37),
W: i(76),
y: i(37),
Y: i(152)
}
},
XÇ: {
getPath: () => "M2.2247,12.4213q-0.6573,0,-1.0225,0.4228t-0.3652,1.1587q0,0.7275,0.3806,1.1699t1.0295,0.4424q0.8315,0,1.25,-0.823l0.4382,0.2191q-0.2444,0.5112,-0.6868,0.7781t-1.0267,0.2669q-0.5983,0,-1.0351,-0.2486t-0.6657,-0.7107t-0.2289,-1.0941q0,-0.9466,0.5112,-1.4831t1.4157,-0.5365q0.632,0,1.0562,0.2472t0.6236,0.7331l-0.5084,0.1685q-0.1376,-0.3455,-0.4424,-0.5281t-0.7233,-0.1826zM2.7893,16.7107q0,0.5084,-0.7697,0.5084q-0.1601,0,-0.2528,-0.0112v-0.2753q0.1376,0.0169,0.2416,0.0169q0.4129,0,0.4129,-0.2275q0,-0.2163,-0.3736,-0.2163q-0.1208,0,-0.1601,0.0056l0.1826,-0.5112h0.3006l-0.1096,0.2809q0.264,0.0084,0.3961,0.1222t0.132,0.3076z",
get width() {
return r(1479);
},
height: 16,
char: "Ç"
},
XÈ: {
getPath: () => "M0.4719,16v-3.9579h3.0028v0.4382h-2.4663v1.2697h2.2978v0.4326h-2.2978v1.3792h2.5815v0.4382h-3.118zM2.0646,11.7022l-0.8708,-0.6096v-0.0815h0.5815l0.6096,0.6348v0.0562h-0.3202z",
get width() {
return r(1366);
},
height: 16,
char: "È"
},
XÉ: {
getPath: () => "M0.4719,16v-3.9579h3.0028v0.4382h-2.4663v1.2697h2.2978v0.4326h-2.2978v1.3792h2.5815v0.4382h-3.118zM1.5478,11.7022v-0.0562l0.6096,-0.6348h0.5815v0.0815l-0.8708,0.6096h-0.3202z",
get width() {
return r(1366);
},
height: 16,
char: "É"
},
XÊ: {
getPath: () => "M0.4719,16v-3.9579h3.0028v0.4382h-2.4663v1.2697h2.2978v0.4326h-2.2978v1.3792h2.5815v0.4382h-3.118zM2.9129,11.6461v0.0562h-0.2949l-0.6152,-0.3904h-0.0056l-0.6517,0.3904h-0.2921v-0.0562l0.6573,-0.6742h0.573z",
get width() {
return r(1366);
},
height: 16,
char: "Ê"
},
XË: {
getPath: () => "M0.4719,16v-3.9579h3.0028v0.4382h-2.4663v1.2697h2.2978v0.4326h-2.2978v1.3792h2.5815v0.4382h-3.118zM2.2921,11.7022v-0.5169h0.4579v0.5169h-0.4579zM1.1854,11.7022v-0.5169h0.4635v0.5169h-0.4635z",
get width() {
return r(1366);
},
height: 16,
char: "Ë"
},
XÌ: {
getPath: () => "M0.5309,16v-3.9579h0.5365v3.9579h-0.5365zM0.8961,11.7022l-0.8708,-0.6096v-0.0815h0.5815l0.6096,0.6348v0.0562h-0.3202z",
get width() {
return r(569);
},
height: 16,
char: "Ì"
},
XÍ: {
getPath: () => "M0.5309,16v-3.9579h0.5365v3.9579h-0.5365zM0.3989,11.7022v-0.0562l0.6096,-0.6348h0.5815v0.0815l-0.8708,0.6096h-0.3202z",
get width() {
return r(569);
},
height: 16,
char: "Í"
},
XÎ: {
getPath: () => "M0.5309,16v-3.9579h0.5365v3.9579h-0.5365zM1.7303,11.6461v0.0562h-0.2949l-0.6152,-0.3904h-0.0056l-0.6517,0.3904h-0.2921v-0.0562l0.6573,-0.6742h0.573z",
get width() {
return r(569);
},
height: 16,
char: "Î"
},
XÏ: {
getPath: () => "M0.5309,16v-3.9579h0.5365v3.9579h-0.5365zM1.1264,11.7022v-0.5169h0.4579v0.5169h-0.4579zM0.0197,11.7022v-0.5169h0.4635v0.5169h-0.4635z",
get width() {
return r(569);
},
height: 16,
char: "Ï"
},
XÐ: {
getPath: () => "M0.0393,13.75h0.4326v-1.7079h1.309q1.0056,0,1.552,0.5042t0.5463,1.434q0,0.6124,-0.2388,1.0716t-0.677,0.7037t-1.0112,0.2444h-1.4803v-1.8174h-0.4326v-0.4326zM3.3399,13.9803q0,-0.736,-0.4031,-1.1222t-1.1671,-0.3862h-0.7612v1.2781h1.1404v0.4326h-1.1404v1.3876h0.882q0.4354,0,0.7654,-0.191t0.507,-0.5506t0.177,-0.8483z",
get width() {
return r(1479);
},
height: 16,
char: "Ð"
},
XÑ: {
getPath: () => "M3.0393,16l-2.118,-3.3708l0.014,0.2725l0.014,0.4691v2.6292h-0.4775v-3.9579h0.6236l2.1404,3.3933q-0.0337,-0.5506,-0.0337,-0.7978v-2.5955h0.4831v3.9579h-0.6461zM2.5534,11.7022q-0.118,0,-0.236,-0.052t-0.2275,-0.1152t-0.2093,-0.1152t-0.1868,-0.052q-0.1545,0,-0.2303,0.0871t-0.1011,0.2472h-0.2556q0.0309,-0.2865,0.0983,-0.434t0.1812,-0.2331t0.2907,-0.0857q0.1236,0,0.2416,0.052t0.2275,0.1152t0.2065,0.1152t0.1812,0.052q0.2809,0,0.3287,-0.3343h0.2584q-0.0478,0.4157,-0.1882,0.5843t-0.3792,0.1685z",
get width() {
return r(1479);
},
height: 16,
char: "Ñ"
},
XÒ: {
getPath: () => "M4.1994,14.0028q0,0.6208,-0.2374,1.0871t-0.6812,0.7163t-1.0478,0.25q-0.6096,0,-1.052,-0.2472t-0.6756,-0.7149t-0.2331,-1.0913q0,-0.9494,0.5197,-1.4846t1.4466,-0.5351q0.6039,0,1.0478,0.2402t0.6784,0.698t0.2346,1.0815zM3.6517,14.0028q0,-0.7388,-0.3694,-1.1601t-1.0435,-0.4213q-0.6798,0,-1.0506,0.4157t-0.3708,1.1657q0,0.7444,0.375,1.1812t1.0407,0.4368q0.6854,0,1.052,-0.4228t0.3666,-1.1952zM2.3989,11.7022l-0.8708,-0.6096v-0.0815h0.5815l0.6096,0.6348v0.0562h-0.3202z",
get width() {
return r(1593);
},
height: 16,
char: "Ò"
},
XÓ: {
getPath: () => "M4.1994,14.0028q0,0.6208,-0.2374,1.0871t-0.6812,0.7163t-1.0478,0.25q-0.6096,0,-1.052,-0.2472t-0.6756,-0.7149t-0.2331,-1.0913q0,-0.9494,0.5197,-1.4846t1.4466,-0.5351q0.6039,0,1.0478,0.2402t0.6784,0.698t0.2346,1.0815zM3.6517,14.0028q0,-0.7388,-0.3694,-1.1601t-1.0435,-0.4213q-0.6798,0,-1.0506,0.4157t-0.3708,1.1657q0,0.7444,0.375,1.1812t1.0407,0.4368q0.6854,0,1.052,-0.4228t0.3666,-1.1952zM1.7444,11.7022v-0.0562l0.6096,-0.6348h0.5815v0.0815l-0.8708,0.6096h-0.3202z",
get width() {
return r(1593);
},
height: 16,
char: "Ó"
},
XÔ: {
getPath: () => "M4.1994,14.0028q0,0.6208,-0.2374,1.0871t-0.6812,0.7163t-1.0478,0.25q-0.6096,0,-1.052,-0.2472t-0.6756,-0.7149t-0.2331,-1.0913q0,-0.9494,0.5197,-1.4846t1.4466,-0.5351q0.6039,0,1.0478,0.2402t0.6784,0.698t0.2346,1.0815zM3.6517,14.0028q0,-0.7388,-0.3694,-1.1601t-1.0435,-0.4213q-0.6798,0,-1.0506,0.4157t-0.3708,1.1657q0,0.7444,0.375,1.1812t1.0407,0.4368q0.6854,0,1.052,-0.4228t0.3666,-1.1952zM3.177,11.6461v0.0562h-0.2949l-0.6152,-0.3904h-0.0056l-0.6517,0.3904h-0.2921v-0.0562l0.6573,-0.6742h0.573z",
get width() {
return r(1593);
},
height: 16,
char: "Ô"
},
XÕ: {
getPath: () => "M4.1994,14.0028q0,0.6208,-0.2374,1.0871t-0.6812,0.7163t-1.0478,0.25q-0.6096,0,-1.052,-0.2472t-0.6756,-0.7149t-0.2331,-1.0913q0,-0.9494,0.5197,-1.4846t1.4466,-0.5351q0.6039,0,1.0478,0.2402t0.6784,0.698t0.2346,1.0815zM3.6517,14.0028q0,-0.7388,-0.3694,-1.1601t-1.0435,-0.4213q-0.6798,0,-1.0506,0.4157t-0.3708,1.1657q0,0.7444,0.375,1.1812t1.0407,0.4368q0.6854,0,1.052,-0.4228t0.3666,-1.1952zM2.6433,11.7022q-0.118,0,-0.236,-0.052t-0.2275,-0.1152t-0.2093,-0.1152t-0.1868,-0.052q-0.1545,0,-0.2303,0.0871t-0.1011,0.2472h-0.2556q0.0309,-0.2865,0.0983,-0.434t0.1812,-0.2331t0.2907,-0.0857q0.1236,0,0.2416,0.052t0.2275,0.1152t0.2065,0.1152t0.1812,0.052q0.2809,0,0.3287,-0.3343h0.2584q-0.0478,0.4157,-0.1882,0.5843t-0.3792,0.1685z",
get width() {
return r(1593);
},
height: 16,
char: "Õ"
},
XØ: {
getPath: () => "M4.1994,14.0028q0,0.6208,-0.2374,1.0871t-0.6812,0.7163t-1.0478,0.25q-0.691,0,-1.1629,-0.3146l-0.3371,0.4073h-0.5337l0.5618,-0.677q-0.4888,-0.5393,-0.4888,-1.4691q0,-0.9494,0.5197,-1.4846t1.4466,-0.5351q0.6938,0,1.1629,0.309l0.3399,-0.4101h0.5393l-0.5646,0.6798q0.4831,0.5337,0.4831,1.441zM3.6517,14.0028q0,-0.6292,-0.2753,-1.0337l-1.9916,2.3961q0.3427,0.2556,0.8483,0.2556q0.6854,0,1.052,-0.4228t0.3666,-1.1952zM0.8174,14.0028q0,0.6433,0.2837,1.0618l1.986,-2.3961q-0.3483,-0.2472,-0.8483,-0.2472q-0.6798,0,-1.0506,0.4157t-0.3708,1.1657z",
get width() {
return r(1593);
},
height: 16,
char: "Ø"
},
XÙ: {
getPath: () => "M2.0534,16.0562q-0.486,0,-0.8483,-0.177t-0.5618,-0.514t-0.1994,-0.8034v-2.5197h0.5365v2.4747q0,0.5421,0.2753,0.823t0.7949,0.2809q0.5337,0,0.8301,-0.2907t0.2963,-0.8497v-2.4382h0.5337v2.4691q0,0.4803,-0.2037,0.8287t-0.5758,0.5323t-0.8778,0.184zM2.2837,11.7022l-0.8708,-0.6096v-0.0815h0.5815l0.6096,0.6348v0.0562h-0.3202z",
get width() {
return r(1479);
},
height: 16,
char: "Ù"
},
XÚ: {
getPath: () => "M2.0534,16.0562q-0.486,0,-0.8483,-0.177t-0.5618,-0.514t-0.1994,-0.8034v-2.5197h0.5365v2.4747q0,0.5421,0.2753,0.823t0.7949,0.2809q0.5337,0,0.8301,-0.2907t0.2963,-0.8497v-2.4382h0.5337v2.4691q0,0.4803,-0.2037,0.8287t-0.5758,0.5323t-0.8778,0.184zM1.5871,11.7022v-0.0562l0.6096,-0.6348h0.5815v0.0815l-0.8708,0.6096h-0.3202z",
get width() {
return r(1479);
},
height: 16,
char: "Ú"
},
XÛ: {
getPath: () => "M2.0534,16.0562q-0.486,0,-0.8483,-0.177t-0.5618,-0.514t-0.1994,-0.8034v-2.5197h0.5365v2.4747q0,0.5421,0.2753,0.823t0.7949,0.2809q0.5337,0,0.8301,-0.2907t0.2963,-0.8497v-2.4382h0.5337v2.4691q0,0.4803,-0.2037,0.8287t-0.5758,0.5323t-0.8778,0.184zM3.0056,11.6461v0.0562h-0.2949l-0.6152,-0.3904h-0.0056l-0.6517,0.3904h-0.2921v-0.0562l0.6573,-0.6742h0.573z",
get width() {
return r(1479);
},
height: 16,
char: "Û"
},
XÜ: {
getPath: () => "M2.0534,16.0562q-0.486,0,-0.8483,-0.177t-0.5618,-0.514t-0.1994,-0.8034v-2.5197h0.5365v2.4747q0,0.5421,0.2753,0.823t0.7949,0.2809q0.5337,0,0.8301,-0.2907t0.2963,-0.8497v-2.4382h0.5337v2.4691q0,0.4803,-0.2037,0.8287t-0.5758,0.5323t-0.8778,0.184zM2.3961,11.7022v-0.5169h0.4579v0.5169h-0.4579zM1.2893,11.7022v-0.5169h0.4635v0.5169h-0.4635z",
get width() {
return r(1479);
},
height: 16,
char: "Ü"
},
XÝ: {
getPath: () => "M2.1826,14.3596v1.6404h-0.5337v-1.6404l-1.5225,-2.3174h0.5899l1.2051,1.8848l1.1994,-1.8848h0.5899zM1.5056,11.7022v-0.0562l0.6096,-0.6348h0.5815v0.0815l-0.8708,0.6096h-0.3202z",
get width() {
return r(1366);
},
height: 16,
char: "Ý",
kerningRules: {
a: i(152),
A: i(152),
e: i(188),
i: i(76),
o: i(188),
p: i(152),
q: i(188),
u: i(113),
v: i(113)
}
},
XÞ: {
getPath: () => "M3.5337,13.9354q0,0.3596,-0.1629,0.639t-0.4705,0.4354t-0.7289,0.1559h-1.1629v0.8343h-0.5365v-3.9579h0.5365v0.7079h1.1292q0.6713,0,1.0337,0.3118t0.3624,0.8736zM2.9944,13.9466q0,-0.3764,-0.2303,-0.5857t-0.691,-0.2093h-1.0646v1.618h1.0871q0.4298,0,0.6643,-0.2177t0.2346,-0.6053z",
get width() {
return r(1366);
},
height: 16,
char: "Þ",
kerningRules: {
a: i(227),
A: i(152),
c: i(227),
e: i(227),
i: i(76),
o: i(227),
O: i(37),
r: i(76),
s: i(227),
u: i(76),
w: i(113),
y: i(113)
}
},
Xß: {
getPath: () => "M3.2781,15.1713q0,0.4213,-0.264,0.6531t-0.7416,0.2317q-0.4803,0,-0.7949,-0.1376l-0.0056,-0.4607q0.1461,0.0815,0.3708,0.1376t0.4185,0.0562q0.2584,0,0.3961,-0.1208t0.1376,-0.3427q0,-0.1798,-0.1194,-0.323t-0.3919,-0.3062q-0.2584,-0.1517,-0.3862,-0.3371t-0.1278,-0.427q0,-0.1713,0.0801,-0.3118t0.2317,-0.2669q0.1629,-0.1348,0.2374,-0.2528t0.0744,-0.2584q0,-0.2163,-0.1882,-0.3469t-0.4944,-0.1306q-0.4157,0,-0.611,0.2247t-0.1952,0.6798v2.868h-0.5056v-2.8848q0,-0.6376,0.3301,-0.9607t0.9817,-0.323q0.5337,0,0.8497,0.2261t0.316,0.6081q0,0.4017,-0.3174,0.691q-0.2219,0.2022,-0.2697,0.2711t-0.0478,0.1503q0,0.1067,0.0772,0.1896t0.1924,0.1629t0.25,0.1699q0.5169,0.3483,0.5169,0.8708z",
get width() {
return r(1251);
},
height: 16,
char: "ß"
},
Xà: {
getPath: () => "M1.1629,16.0562q-0.4579,0,-0.6882,-0.2416t-0.2303,-0.6629q0,-0.4719,0.3104,-0.7247t1.0014,-0.2697l0.6826,-0.0112v-0.1657q0,-0.3708,-0.1573,-0.5309t-0.4944,-0.1601q-0.3399,0,-0.4944,0.1152t-0.1854,0.368l-0.5281,-0.0478q0.1292,-0.8202,1.2191,-0.8202q0.573,0,0.8624,0.2626t0.2893,0.7598v1.309q0,0.2247,0.059,0.3385t0.2247,0.1138q0.073,0,0.1657,-0.0197v0.3146q-0.191,0.0449,-0.3904,0.0449q-0.2809,0,-0.4087,-0.1475t-0.1447,-0.4621h-0.0169q-0.1938,0.3483,-0.4508,0.493t-0.625,0.1447zM1.2781,15.677q0.2781,0,0.4944,-0.1264t0.3413,-0.3469t0.125,-0.4537v-0.25l-0.5534,0.0112q-0.3567,0.0056,-0.5407,0.073t-0.2823,0.2079t-0.0983,0.368q0,0.2472,0.1334,0.382t0.3806,0.1348zM1.7528,12.6264l-0.927,-0.7809v-0.0815h0.5815l0.6096,0.8062v0.0562h-0.264z",
get width() {
return r(1139);
},
height: 16,
char: "à"
},
Xá: {
getPath: () => "M1.1629,16.0562q-0.4579,0,-0.6882,-0.2416t-0.2303,-0.6629q0,-0.4719,0.3104,-0.7247t1.0014,-0.2697l0.6826,-0.0112v-0.1657q0,-0.3708,-0.1573,-0.5309t-0.4944,-0.1601q-0.3399,0,-0.4944,0.1152t-0.1854,0.368l-0.5281,-0.0478q0.1292,-0.8202,1.2191,-0.8202q0.573,0,0.8624,0.2626t0.2893,0.7598v1.309q0,0.2247,0.059,0.3385t0.2247,0.1138q0.073,0,0.1657,-0.0197v0.3146q-0.191,0.0449,-0.3904,0.0449q-0.2809,0,-0.4087,-0.1475t-0.1447,-0.4621h-0.0169q-0.1938,0.3483,-0.4508,0.493t-0.625,0.1447zM1.2781,15.677q0.2781,0,0.4944,-0.1264t0.3413,-0.3469t0.125,-0.4537v-0.25l-0.5534,0.0112q-0.3567,0.0056,-0.5407,0.073t-0.2823,0.2079t-0.0983,0.368q0,0.2472,0.1334,0.382t0.3806,0.1348zM1.1573,12.6264v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264z",
get width() {
return r(1139);
},
height: 16,
char: "á"
},
Xâ: {
getPath: () => "M1.1629,16.0562q-0.4579,0,-0.6882,-0.2416t-0.2303,-0.6629q0,-0.4719,0.3104,-0.7247t1.0014,-0.2697l0.6826,-0.0112v-0.1657q0,-0.3708,-0.1573,-0.5309t-0.4944,-0.1601q-0.3399,0,-0.4944,0.1152t-0.1854,0.368l-0.5281,-0.0478q0.1292,-0.8202,1.2191,-0.8202q0.573,0,0.8624,0.2626t0.2893,0.7598v1.309q0,0.2247,0.059,0.3385t0.2247,0.1138q0.073,0,0.1657,-0.0197v0.3146q-0.191,0.0449,-0.3904,0.0449q-0.2809,0,-0.4087,-0.1475t-0.1447,-0.4621h-0.0169q-0.1938,0.3483,-0.4508,0.493t-0.625,0.1447zM1.2781,15.677q0.2781,0,0.4944,-0.1264t0.3413,-0.3469t0.125,-0.4537v-0.25l-0.5534,0.0112q-0.3567,0.0056,-0.5407,0.073t-0.2823,0.2079t-0.0983,0.368q0,0.2472,0.1334,0.382t0.3806,0.1348zM2.4719,12.5702v0.0562h-0.2949l-0.6152,-0.4747h-0.0056l-0.6517,0.4747h-0.2921v-0.0562l0.6573,-0.7584h0.573z",
get width() {
return r(1139);
},
height: 16,
char: "â"
},
Xã: {
getPath: () => "M1.1629,16.0562q-0.4579,0,-0.6882,-0.2416t-0.2303,-0.6629q0,-0.4719,0.3104,-0.7247t1.0014,-0.2697l0.6826,-0.0112v-0.1657q0,-0.3708,-0.1573,-0.5309t-0.4944,-0.1601q-0.3399,0,-0.4944,0.1152t-0.1854,0.368l-0.5281,-0.0478q0.1292,-0.8202,1.2191,-0.8202q0.573,0,0.8624,0.2626t0.2893,0.7598v1.309q0,0.2247,0.059,0.3385t0.2247,0.1138q0.073,0,0.1657,-0.0197v0.3146q-0.191,0.0449,-0.3904,0.0449q-0.2809,0,-0.4087,-0.1475t-0.1447,-0.4621h-0.0169q-0.1938,0.3483,-0.4508,0.493t-0.625,0.1447zM1.2781,15.677q0.2781,0,0.4944,-0.1264t0.3413,-0.3469t0.125,-0.4537v-0.25l-0.5534,0.0112q-0.3567,0.0056,-0.5407,0.073t-0.2823,0.2079t-0.0983,0.368q0,0.2472,0.1334,0.382t0.3806,0.1348zM2.0702,12.6264q-0.118,0,-0.236,-0.052t-0.2275,-0.1152t-0.2093,-0.1152t-0.1868,-0.052q-0.1545,0,-0.2303,0.0871t-0.1011,0.2472h-0.2556q0.0309,-0.2865,0.0983,-0.434t0.1812,-0.2331t0.2907,-0.0857q0.1236,0,0.2416,0.052t0.2275,0.1152t0.2065,0.1152t0.1812,0.052q0.2809,0,0.3287,-0.3343h0.2584q-0.0478,0.4157,-0.1882,0.5843t-0.3792,0.1685z",
get width() {
return r(1139);
},
height: 16,
char: "ã"
},
Xæ: {
getPath: () => "M2.7191,14.5871v0.0478q0.0056,0.5084,0.2163,0.7753t0.6039,0.2669q0.3287,0,0.5267,-0.132t0.2683,-0.3343l0.4438,0.1264q-0.2725,0.7191,-1.2388,0.7191q-0.9017,0,-1.1882,-0.7219q-0.2219,0.3933,-0.5169,0.5576t-0.7051,0.1643q-0.4691,0,-0.7065,-0.2416t-0.2374,-0.6629q0,-0.4888,0.3343,-0.736t1.014,-0.2584l0.6742,-0.0112v-0.1657q0,-0.3792,-0.1559,-0.5351t-0.4958,-0.1559q-0.3539,0,-0.5126,0.1124t-0.1952,0.3708l-0.5281,-0.0478q0.1292,-0.8202,1.2472,-0.8202q0.7022,0,0.9803,0.3904q0.3315,-0.3904,0.9719,-0.3904q1.3399,0,1.3399,1.6152v0.0674h-2.1404zM2.2079,14.5l-0.5478,0.0112q-0.3736,0.0084,-0.5716,0.0829t-0.2907,0.2163t-0.0927,0.3497q0,0.2444,0.1404,0.3806t0.4017,0.1362q0.2865,0,0.5014,-0.125t0.3371,-0.3427t0.1222,-0.4593v-0.25zM4.3371,14.1994q-0.0421,-0.4803,-0.2444,-0.7008t-0.5815,-0.2205q-0.3567,0,-0.5632,0.2402t-0.2233,0.6812h1.6124z",
get width() {
return r(1821);
},
height: 16,
char: "æ"
},
Xç: {
getPath: () => "M0.7725,14.4663q0,0.6067,0.191,0.8989t0.5758,0.2921q0.2697,0,0.4508,-0.1461t0.2233,-0.4494l0.5112,0.0337q-0.059,0.4382,-0.3736,0.6994t-0.7978,0.2612q-0.6376,0,-0.9733,-0.4031t-0.3357,-1.1756q0,-0.7669,0.3371,-1.1699t0.9663,-0.4031q0.4663,0,0.7739,0.2416t0.3862,0.6657l-0.5197,0.0393q-0.0393,-0.2528,-0.1994,-0.4017t-0.4551,-0.1489q-0.4017,0,-0.5815,0.2669t-0.1798,0.8989zM2.1096,16.7107q0,0.5084,-0.7697,0.5084q-0.1601,0,-0.2528,-0.0112v-0.2753q0.1376,0.0169,0.2416,0.0169q0.4129,0,0.4129,-0.2275q0,-0.2163,-0.3736,-0.2163q-0.1208,0,-0.1601,0.0056l0.1826,-0.5112h0.3006l-0.1096,0.2809q0.264,0.0084,0.3961,0.1222t0.132,0.3076z",
get width() {
return r(1024);
},
height: 16,
char: "ç"
},
Xè: {
getPath: () => "M0.7753,14.5871q0,0.5225,0.2163,0.8062t0.632,0.2837q0.3287,0,0.5267,-0.132t0.2683,-0.3343l0.4438,0.1264q-0.2725,0.7191,-1.2388,0.7191q-0.6742,0,-1.0267,-0.4017t-0.3525,-1.1938q0,-0.7528,0.3525,-1.1545t1.007,-0.4017q1.3399,0,1.3399,1.6152v0.0674h-2.1685zM2.4213,14.1994q-0.0421,-0.4803,-0.2444,-0.7008t-0.5815,-0.2205q-0.368,0,-0.5829,0.2458t-0.2317,0.6756h1.6404zM1.8455,12.6264l-0.927,-0.7809v-0.0815h0.5815l0.6096,0.8062v0.0562h-0.264z",
get width() {
return r(1139);
},
height: 16,
char: "è"
},
Xé: {
getPath: () => "M0.7753,14.5871q0,0.5225,0.2163,0.8062t0.632,0.2837q0.3287,0,0.5267,-0.132t0.2683,-0.3343l0.4438,0.1264q-0.2725,0.7191,-1.2388,0.7191q-0.6742,0,-1.0267,-0.4017t-0.3525,-1.1938q0,-0.7528,0.3525,-1.1545t1.007,-0.4017q1.3399,0,1.3399,1.6152v0.0674h-2.1685zM2.4213,14.1994q-0.0421,-0.4803,-0.2444,-0.7008t-0.5815,-0.2205q-0.368,0,-0.5829,0.2458t-0.2317,0.6756h1.6404zM1.236,12.6264v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264z",
get width() {
return r(1139);
},
height: 16,
char: "é"
},
Xê: {
getPath: () => "M0.7753,14.5871q0,0.5225,0.2163,0.8062t0.632,0.2837q0.3287,0,0.5267,-0.132t0.2683,-0.3343l0.4438,0.1264q-0.2725,0.7191,-1.2388,0.7191q-0.6742,0,-1.0267,-0.4017t-0.3525,-1.1938q0,-0.7528,0.3525,-1.1545t1.007,-0.4017q1.3399,0,1.3399,1.6152v0.0674h-2.1685zM2.4213,14.1994q-0.0421,-0.4803,-0.2444,-0.7008t-0.5815,-0.2205q-0.368,0,-0.5829,0.2458t-0.2317,0.6756h1.6404zM2.5478,12.5702v0.0562h-0.2949l-0.6152,-0.4747h-0.0056l-0.6517,0.4747h-0.2921v-0.0562l0.6573,-0.7584h0.573z",
get width() {
return r(1139);
},
height: 16,
char: "ê"
},
Xë: {
getPath: () => "M0.7753,14.5871q0,0.5225,0.2163,0.8062t0.632,0.2837q0.3287,0,0.5267,-0.132t0.2683,-0.3343l0.4438,0.1264q-0.2725,0.7191,-1.2388,0.7191q-0.6742,0,-1.0267,-0.4017t-0.3525,-1.1938q0,-0.7528,0.3525,-1.1545t1.007,-0.4017q1.3399,0,1.3399,1.6152v0.0674h-2.1685zM2.4213,14.1994q-0.0421,-0.4803,-0.2444,-0.7008t-0.5815,-0.2205q-0.368,0,-0.5829,0.2458t-0.2317,0.6756h1.6404zM1.9298,12.5758v-0.5169h0.4579v0.5169h-0.4579zM0.823,12.5758v-0.5169h0.4635v0.5169h-0.4635z",
get width() {
return r(1139);
},
height: 16,
char: "ë"
},
Xì: {
getPath: () => "M0.5449,16v-3.0393h0.5056v3.0393h-0.5056zM0.9551,12.6264l-0.927,-0.7809v-0.0815h0.5815l0.6096,0.8062v0.0562h-0.264z",
get width() {
return r(569);
},
height: 16,
char: "ì"
},
Xí: {
getPath: () => "M0.5449,16v-3.0393h0.5056v3.0393h-0.5056zM0.3792,12.6264v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264z",
get width() {
return r(569);
},
height: 16,
char: "í"
},
Xî: {
getPath: () => "M0.5449,16v-3.0393h0.5056v3.0393h-0.5056zM1.7331,12.5702v0.0562h-0.2949l-0.6152,-0.4747h-0.0056l-0.6517,0.4747h-0.2921v-0.0562l0.6573,-0.7584h0.573z",
get width() {
return r(569);
},
height: 16,
char: "î"
},
Xï: {
getPath: () => "M0.5449,16v-3.0393h0.5056v3.0393h-0.5056zM1.1292,12.5758v-0.5169h0.4579v0.5169h-0.4579zM0.0225,12.5758v-0.5169h0.4635v0.5169h-0.4635z",
get width() {
return r(569);
},
height: 16,
char: "ï"
},
Xð: {
getPath: () => "M1.5899,16.0562q-0.6517,0,-1,-0.3624t-0.3483,-1.0449q0,-0.6854,0.3483,-1.0421t1.0197,-0.3567q0.3848,0,0.6489,0.1657q-0.3062,-0.6096,-0.6573,-0.9298l-0.8455,0.3736v-0.3202l0.6124,-0.264q-0.3062,-0.2444,-0.6798,-0.4438h0.5871q0.2247,0.1011,0.4775,0.2865l0.8596,-0.3708l-0.0028,0.3146l-0.5927,0.2584q0.4803,0.4382,0.7247,1.0084t0.2444,1.2219v0.0169q0,0.7331,-0.3497,1.111t-1.0463,0.3778zM2.4551,14.6489q0,-0.5393,-0.198,-0.7823t-0.6362,-0.243q-0.441,0,-0.6447,0.2444t-0.2037,0.7809q0,0.5337,0.2022,0.7837t0.6096,0.25q0.4522,0,0.6615,-0.2458t0.2093,-0.7879z",
get width() {
return r(1139);
},
height: 16,
char: "ð"
},
Xñ: {
getPath: () => "M2.3287,16v-1.927q0,-0.3006,-0.059,-0.4663t-0.1882,-0.2388t-0.3792,-0.073q-0.3652,0,-0.5758,0.25t-0.2107,0.6938v1.7612h-0.5056v-2.3904q0,-0.5309,-0.0169,-0.6489h0.4775q0.0028,0.014,0.0056,0.0758t0.007,0.1419t0.0098,0.302h0.0084q0.1742,-0.3146,0.4031,-0.4452t0.5688,-0.1306q0.5,0,0.7317,0.2486t0.2317,0.8216v2.0253h-0.5084zM2.0702,12.6264q-0.118,0,-0.236,-0.052t-0.2275,-0.1152t-0.2093,-0.1152t-0.1868,-0.052q-0.1545,0,-0.2303,0.0871t-0.1011,0.2472h-0.2556q0.0309,-0.2865,0.0983,-0.434t0.1812,-0.2331t0.2907,-0.0857q0.1236,0,0.2416,0.052t0.2275,0.1152t0.2065,0.1152t0.1812,0.052q0.2809,0,0.3287,-0.3343h0.2584q-0.0478,0.4157,-0.1882,0.5843t-0.3792,0.1685z",
get width() {
return r(1139);
},
height: 16,
char: "ñ"
},
Xò: {
getPath: () => "M2.9579,14.4775q0,0.7978,-0.3511,1.1882t-1.0197,0.3904q-0.6657,0,-1.0056,-0.4059t-0.3399,-1.1728q0,-1.573,1.3624,-1.573q0.6966,0,1.0253,0.3834t0.3287,1.1896zM2.427,14.4775q0,-0.6292,-0.1868,-0.9143t-0.6278,-0.2851q-0.4438,0,-0.6419,0.2907t-0.198,0.9087q0,0.6011,0.1952,0.9031t0.6138,0.302q0.4551,0,0.6503,-0.2921t0.1952,-0.9129zM1.8511,12.6264l-0.927,-0.7809v-0.0815h0.5815l0.6096,0.8062v0.0562h-0.264z",
get width() {
return r(1139);
},
height: 16,
char: "ò"
},
Xó: {
getPath: () => "M2.9579,14.4775q0,0.7978,-0.3511,1.1882t-1.0197,0.3904q-0.6657,0,-1.0056,-0.4059t-0.3399,-1.1728q0,-1.573,1.3624,-1.573q0.6966,0,1.0253,0.3834t0.3287,1.1896zM2.427,14.4775q0,-0.6292,-0.1868,-0.9143t-0.6278,-0.2851q-0.4438,0,-0.6419,0.2907t-0.198,0.9087q0,0.6011,0.1952,0.9031t0.6138,0.302q0.4551,0,0.6503,-0.2921t0.1952,-0.9129zM1.2107,12.6264v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264z",
get width() {
return r(1139);
},
height: 16,
char: "ó"
},
Xô: {
getPath: () => "M2.9579,14.4775q0,0.7978,-0.3511,1.1882t-1.0197,0.3904q-0.6657,0,-1.0056,-0.4059t-0.3399,-1.1728q0,-1.573,1.3624,-1.573q0.6966,0,1.0253,0.3834t0.3287,1.1896zM2.427,14.4775q0,-0.6292,-0.1868,-0.9143t-0.6278,-0.2851q-0.4438,0,-0.6419,0.2907t-0.198,0.9087q0,0.6011,0.1952,0.9031t0.6138,0.302q0.4551,0,0.6503,-0.2921t0.1952,-0.9129zM2.5337,12.5702v0.0562h-0.2949l-0.6152,-0.4747h-0.0056l-0.6517,0.4747h-0.2921v-0.0562l0.6573,-0.7584h0.573z",
get width() {
return r(1139);
},
height: 16,
char: "ô"
},
Xõ: {
getPath: () => "M2.9579,14.4775q0,0.7978,-0.3511,1.1882t-1.0197,0.3904q-0.6657,0,-1.0056,-0.4059t-0.3399,-1.1728q0,-1.573,1.3624,-1.573q0.6966,0,1.0253,0.3834t0.3287,1.1896zM2.427,14.4775q0,-0.6292,-0.1868,-0.9143t-0.6278,-0.2851q-0.4438,0,-0.6419,0.2907t-0.198,0.9087q0,0.6011,0.1952,0.9031t0.6138,0.302q0.4551,0,0.6503,-0.2921t0.1952,-0.9129zM2.0758,12.6264q-0.118,0,-0.236,-0.052t-0.2275,-0.1152t-0.2093,-0.1152t-0.1868,-0.052q-0.1545,0,-0.2303,0.0871t-0.1011,0.2472h-0.2556q0.0309,-0.2865,0.0983,-0.434t0.1812,-0.2331t0.2907,-0.0857q0.1236,0,0.2416,0.052t0.2275,0.1152t0.2065,0.1152t0.1812,0.052q0.2809,0,0.3287,-0.3343h0.2584q-0.0478,0.4157,-0.1882,0.5843t-0.3792,0.1685z",
get width() {
return r(1139);
},
height: 16,
char: "õ"
},
Xø: {
getPath: () => "M3.1236,14.4775q0,0.7978,-0.3511,1.1882t-1.0197,0.3904q-0.5478,0,-0.8792,-0.2753l-0.2809,0.3258h-0.4691l0.5169,-0.6011q-0.2331,-0.3876,-0.2331,-1.0281q0,-1.573,1.3624,-1.573q0.5646,0,0.8876,0.2556l0.2556,-0.2949h0.4691l-0.486,0.5646q0.2275,0.3736,0.2275,1.0478zM2.5927,14.4775q0,-0.3624,-0.0646,-0.6208l-1.3567,1.5787q0.191,0.2472,0.5758,0.2472q0.4551,0,0.6503,-0.2921t0.1952,-0.9129zM0.9382,14.4775q0,0.3652,0.0674,0.6039l1.3539,-1.5758q-0.1882,-0.2275,-0.5815,-0.2275q-0.4438,0,-0.6419,0.2907t-0.198,0.9087z",
get width() {
return r(1251);
},
height: 16,
char: "ø"
},
Xù: {
getPath: () => "M0.8989,12.9607v1.927q0,0.3006,0.059,0.4663t0.1882,0.2388t0.3792,0.073q0.3652,0,0.5758,-0.25t0.2107,-0.6938v-1.7612h0.5056v2.3904q0,0.5309,0.0169,0.6489h-0.4775q-0.0028,-0.014,-0.0056,-0.0758t-0.007,-0.1419t-0.0098,-0.302h-0.0084q-0.1742,0.3146,-0.4031,0.4452t-0.5688,0.1306q-0.5,0,-0.7317,-0.2486t-0.2317,-0.8216v-2.0253h0.5084zM1.8876,12.6264l-0.927,-0.7809v-0.0815h0.5815l0.6096,0.8062v0.0562h-0.264z",
get width() {
return r(1139);
},
height: 16,
char: "ù"
},
Xú: {
getPath: () => "M0.8989,12.9607v1.927q0,0.3006,0.059,0.4663t0.1882,0.2388t0.3792,0.073q0.3652,0,0.5758,-0.25t0.2107,-0.6938v-1.7612h0.5056v2.3904q0,0.5309,0.0169,0.6489h-0.4775q-0.0028,-0.014,-0.0056,-0.0758t-0.007,-0.1419t-0.0098,-0.302h-0.0084q-0.1742,0.3146,-0.4031,0.4452t-0.5688,0.1306q-0.5,0,-0.7317,-0.2486t-0.2317,-0.8216v-2.0253h0.5084zM1.1657,12.6264v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264z",
get width() {
return r(1139);
},
height: 16,
char: "ú"
},
Xû: {
getPath: () => "M0.8989,12.9607v1.927q0,0.3006,0.059,0.4663t0.1882,0.2388t0.3792,0.073q0.3652,0,0.5758,-0.25t0.2107,-0.6938v-1.7612h0.5056v2.3904q0,0.5309,0.0169,0.6489h-0.4775q-0.0028,-0.014,-0.0056,-0.0758t-0.007,-0.1419t-0.0098,-0.302h-0.0084q-0.1742,0.3146,-0.4031,0.4452t-0.5688,0.1306q-0.5,0,-0.7317,-0.2486t-0.2317,-0.8216v-2.0253h0.5084zM2.5309,12.5702v0.0562h-0.2949l-0.6152,-0.4747h-0.0056l-0.6517,0.4747h-0.2921v-0.0562l0.6573,-0.7584h0.573z",
get width() {
return r(1139);
},
height: 16,
char: "û"
},
Xü: {
getPath: () => "M0.8989,12.9607v1.927q0,0.3006,0.059,0.4663t0.1882,0.2388t0.3792,0.073q0.3652,0,0.5758,-0.25t0.2107,-0.6938v-1.7612h0.5056v2.3904q0,0.5309,0.0169,0.6489h-0.4775q-0.0028,-0.014,-0.0056,-0.0758t-0.007,-0.1419t-0.0098,-0.302h-0.0084q-0.1742,0.3146,-0.4031,0.4452t-0.5688,0.1306q-0.5,0,-0.7317,-0.2486t-0.2317,-0.8216v-2.0253h0.5084zM1.8989,12.5758v-0.5169h0.4579v0.5169h-0.4579zM0.7921,12.5758v-0.5169h0.4635v0.5169h-0.4635z",
get width() {
return r(1139);
},
height: 16,
char: "ü"
},
Xý: {
getPath: () => "M0.5365,17.1938q-0.2079,0,-0.3483,-0.0309v-0.3792q0.1067,0.0169,0.236,0.0169q0.4719,0,0.7472,-0.6938l0.0478,-0.1208l-1.2051,-3.0253h0.5393l0.6404,1.6798q0.014,0.0393,0.0337,0.0941t0.1264,0.3666t0.1152,0.3483l0.1966,-0.5534l0.6657,-1.9354h0.5337l-1.1685,3.0393q-0.1882,0.486,-0.3511,0.7233t-0.361,0.3539t-0.448,0.1166zM0.9972,12.6264v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264z",
get width() {
return r(1024);
},
height: 16,
char: "ý"
},
Xþ: {
getPath: () => "M0.3876,11.8315h0.5056v1.1882q0,0.1826,-0.0112,0.4298h0.0169q0.1348,-0.2809,0.3567,-0.4115t0.5843,-0.1306q0.5618,0,0.8399,0.3764t0.2781,1.1826q0,1.5899,-1.118,1.5899q-0.7022,0,-0.9438,-0.5281h-0.014q0.0112,0.0225,0.0112,0.4775v1.1882h-0.5056v-5.3624zM2.427,14.4775q0,-0.6348,-0.1713,-0.9073t-0.5449,-0.2725q-0.3006,0,-0.4705,0.1264t-0.2584,0.3947t-0.0885,0.698q0,0.5983,0.191,0.882t0.6208,0.2837q0.3764,0,0.5492,-0.2767t0.1728,-0.9284z",
get width() {
return r(1139);
},
height: 16,
char: "þ"
},
Xÿ: {
getPath: () => "M0.5365,17.1938q-0.2079,0,-0.3483,-0.0309v-0.3792q0.1067,0.0169,0.236,0.0169q0.4719,0,0.7472,-0.6938l0.0478,-0.1208l-1.2051,-3.0253h0.5393l0.6404,1.6798q0.014,0.0393,0.0337,0.0941t0.1264,0.3666t0.1152,0.3483l0.1966,-0.5534l0.6657,-1.9354h0.5337l-1.1685,3.0393q-0.1882,0.486,-0.3511,0.7233t-0.361,0.3539t-0.448,0.1166zM1.7584,12.5758v-0.5169h0.4579v0.5169h-0.4579zM0.6517,12.5758v-0.5169h0.4635v0.5169h-0.4635z",
get width() {
return r(1024);
},
height: 16,
char: "ÿ"
},
XĀ: {
getPath: () => "M3.2781,16l-0.4522,-1.1573h-1.8034l-0.4551,1.1573h-0.5562l1.6152,-3.9579h0.6096l1.5899,3.9579h-0.5478zM1.9242,12.4466l-0.0253,0.0787q-0.0702,0.2331,-0.2079,0.5983l-0.5056,1.3006h1.4803l-0.5084,-1.3062q-0.0787,-0.1938,-0.1573,-0.4382zM2.6966,11.6039h-1.5421v-0.3567h1.5421v0.3567z",
get width() {
return r(1366);
},
height: 16,
char: "Ā",
kerningRules: {
T: i(152),
v: i(37),
V: i(152),
w: i(37),
W: i(76),
y: i(37),
Y: i(152)
}
},
Xā: {
getPath: () => "M1.1629,16.0562q-0.4579,0,-0.6882,-0.2416t-0.2303,-0.6629q0,-0.4719,0.3104,-0.7247t1.0014,-0.2697l0.6826,-0.0112v-0.1657q0,-0.3708,-0.1573,-0.5309t-0.4944,-0.1601q-0.3399,0,-0.4944,0.1152t-0.1854,0.368l-0.5281,-0.0478q0.1292,-0.8202,1.2191,-0.8202q0.573,0,0.8624,0.2626t0.2893,0.7598v1.309q0,0.2247,0.059,0.3385t0.2247,0.1138q0.073,0,0.1657,-0.0197v0.3146q-0.191,0.0449,-0.3904,0.0449q-0.2809,0,-0.4087,-0.1475t-0.1447,-0.4621h-0.0169q-0.1938,0.3483,-0.4508,0.493t-0.625,0.1447zM1.2781,15.677q0.2781,0,0.4944,-0.1264t0.3413,-0.3469t0.125,-0.4537v-0.25l-0.5534,0.0112q-0.3567,0.0056,-0.5407,0.073t-0.2823,0.2079t-0.0983,0.368q0,0.2472,0.1334,0.382t0.3806,0.1348zM2.3399,12.5281h-1.5421v-0.3567h1.5421v0.3567z",
get width() {
return r(1139);
},
height: 16,
char: "ā"
},
XĄ: {
getPath: () => "M3.2781,16l-0.4522,-1.1573h-1.8034l-0.4551,1.1573h-0.5562l1.6152,-3.9579h0.6096l1.5899,3.9579h-0.5478zM1.9242,12.4466l-0.0253,0.0787q-0.0702,0.2331,-0.2079,0.5983l-0.5056,1.3006h1.4803l-0.5084,-1.3062q-0.0787,-0.1938,-0.1573,-0.4382zM3.8736,17.0927q-0.177,0.0758,-0.3904,0.0758q-0.2949,0,-0.4438,-0.1433t-0.1489,-0.382q0,-0.1966,0.1222,-0.382t0.3132,-0.2921h0.3736q-0.0702,0.0393,-0.1433,0.1025t-0.1334,0.1461t-0.0983,0.1812t-0.0379,0.2079q0,0.118,0.0688,0.1854t0.1952,0.0674q0.1517,0,0.323,-0.0674v0.3006z",
get width() {
return r(1366);
},
height: 16,
char: "Ą",
kerningRules: {
T: i(152),
v: i(37),
V: i(152),
w: i(37),
W: i(76),
y: i(37),
Y: i(152)
}
},
Xą: {
getPath: () => "M1.1629,16.0562q-0.4579,0,-0.6882,-0.2416t-0.2303,-0.6629q0,-0.4719,0.3104,-0.7247t1.0014,-0.2697l0.6826,-0.0112v-0.1657q0,-0.3708,-0.1573,-0.5309t-0.4944,-0.1601q-0.3399,0,-0.4944,0.1152t-0.1854,0.368l-0.5281,-0.0478q0.1292,-0.8202,1.2191,-0.8202q0.573,0,0.8624,0.2626t0.2893,0.7598v1.309q0,0.2247,0.059,0.3385t0.2247,0.1138q0.073,0,0.1657,-0.0197v0.3146q-0.191,0.0449,-0.3904,0.0449q-0.2809,0,-0.4087,-0.1475t-0.1447,-0.4621h-0.0169q-0.1938,0.3483,-0.4508,0.493t-0.625,0.1447zM1.2781,15.677q0.2781,0,0.4944,-0.1264t0.3413,-0.3469t0.125,-0.4537v-0.25l-0.5534,0.0112q-0.3567,0.0056,-0.5407,0.073t-0.2823,0.2079t-0.0983,0.368q0,0.2472,0.1334,0.382t0.3806,0.1348zM3.1994,17.1236q-0.177,0.0758,-0.3904,0.0758q-0.2949,0,-0.4438,-0.1433t-0.1489,-0.382q0,-0.1966,0.1222,-0.382t0.3132,-0.2921h0.3736q-0.0702,0.0393,-0.1433,0.1025t-0.1334,0.1461t-0.0983,0.1812t-0.0379,0.2079q0,0.118,0.0688,0.1854t0.1952,0.0674q0.1517,0,0.323,-0.0674v0.3006z",
get width() {
return r(1139);
},
height: 16,
char: "ą"
},
XĆ: {
getPath: () => "M2.2247,12.4213q-0.6573,0,-1.0225,0.4228t-0.3652,1.1587q0,0.7275,0.3806,1.1699t1.0295,0.4424q0.8315,0,1.25,-0.823l0.4382,0.2191q-0.2444,0.5112,-0.6868,0.7781t-1.0267,0.2669q-0.5983,0,-1.0351,-0.2486t-0.6657,-0.7107t-0.2289,-1.0941q0,-0.9466,0.5112,-1.4831t1.4157,-0.5365q0.632,0,1.0562,0.2472t0.6236,0.7331l-0.5084,0.1685q-0.1376,-0.3455,-0.4424,-0.5281t-0.7233,-0.1826zM1.8736,11.7022v-0.0562l0.6096,-0.6348h0.5815v0.0815l-0.8708,0.6096h-0.3202z",
get width() {
return r(1479);
},
height: 16,
char: "Ć"
},
Xć: {
getPath: () => "M0.7725,14.4663q0,0.6067,0.191,0.8989t0.5758,0.2921q0.2697,0,0.4508,-0.1461t0.2233,-0.4494l0.5112,0.0337q-0.059,0.4382,-0.3736,0.6994t-0.7978,0.2612q-0.6376,0,-0.9733,-0.4031t-0.3357,-1.1756q0,-0.7669,0.3371,-1.1699t0.9663,-0.4031q0.4663,0,0.7739,0.2416t0.3862,0.6657l-0.5197,0.0393q-0.0393,-0.2528,-0.1994,-0.4017t-0.4551,-0.1489q-0.4017,0,-0.5815,0.2669t-0.1798,0.8989zM1.2107,12.6264v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264z",
get width() {
return r(1024);
},
height: 16,
char: "ć"
},
XČ: {
getPath: () => "M2.2247,12.4213q-0.6573,0,-1.0225,0.4228t-0.3652,1.1587q0,0.7275,0.3806,1.1699t1.0295,0.4424q0.8315,0,1.25,-0.823l0.4382,0.2191q-0.2444,0.5112,-0.6868,0.7781t-1.0267,0.2669q-0.5983,0,-1.0351,-0.2486t-0.6657,-0.7107t-0.2289,-1.0941q0,-0.9466,0.5112,-1.4831t1.4157,-0.5365q0.632,0,1.0562,0.2472t0.6236,0.7331l-0.5084,0.1685q-0.1376,-0.3455,-0.4424,-0.5281t-0.7233,-0.1826zM2.5225,11.7022h-0.573l-0.6573,-0.6713v-0.059h0.2921l0.6517,0.3904h0.0056l0.6152,-0.3904h0.2949v0.059z",
get width() {
return r(1479);
},
height: 16,
char: "Č"
},
Xč: {
getPath: () => "M0.7725,14.4663q0,0.6067,0.191,0.8989t0.5758,0.2921q0.2697,0,0.4508,-0.1461t0.2233,-0.4494l0.5112,0.0337q-0.059,0.4382,-0.3736,0.6994t-0.7978,0.2612q-0.6376,0,-0.9733,-0.4031t-0.3357,-1.1756q0,-0.7669,0.3371,-1.1699t0.9663,-0.4031q0.4663,0,0.7739,0.2416t0.3862,0.6657l-0.5197,0.0393q-0.0393,-0.2528,-0.1994,-0.4017t-0.4551,-0.1489q-0.4017,0,-0.5815,0.2669t-0.1798,0.8989zM1.8315,12.6264h-0.573l-0.6573,-0.7584v-0.0562h0.2921l0.6517,0.4747h0.0056l0.6152,-0.4747h0.2949v0.0562z",
get width() {
return r(1024);
},
height: 16,
char: "č"
},
XĒ: {
getPath: () => "M0.4719,16v-3.9579h3.0028v0.4382h-2.4663v1.2697h2.2978v0.4326h-2.2978v1.3792h2.5815v0.4382h-3.118zM2.7472,11.6039h-1.5421v-0.3567h1.5421v0.3567z",
get width() {
return r(1366);
},
height: 16,
char: "Ē"
},
Xē: {
getPath: () => "M0.7753,14.5871q0,0.5225,0.2163,0.8062t0.632,0.2837q0.3287,0,0.5267,-0.132t0.2683,-0.3343l0.4438,0.1264q-0.2725,0.7191,-1.2388,0.7191q-0.6742,0,-1.0267,-0.4017t-0.3525,-1.1938q0,-0.7528,0.3525,-1.1545t1.007,-0.4017q1.3399,0,1.3399,1.6152v0.0674h-2.1685zM2.4213,14.1994q-0.0421,-0.4803,-0.2444,-0.7008t-0.5815,-0.2205q-0.368,0,-0.5829,0.2458t-0.2317,0.6756h1.6404zM2.3736,12.5281h-1.5421v-0.3567h1.5421v0.3567z",
get width() {
return r(1139);
},
height: 16,
char: "ē"
},
XĖ: {
getPath: () => "M0.4719,16v-3.9579h3.0028v0.4382h-2.4663v1.2697h2.2978v0.4326h-2.2978v1.3792h2.5815v0.4382h-3.118zM1.7219,11.4916v-0.4831h0.5056v0.4831h-0.5056z",
get width() {
return r(1366);
},
height: 16,
char: "Ė"
},
Xė: {
getPath: () => "M0.7753,14.5871q0,0.5225,0.2163,0.8062t0.632,0.2837q0.3287,0,0.5267,-0.132t0.2683,-0.3343l0.4438,0.1264q-0.2725,0.7191,-1.2388,0.7191q-0.6742,0,-1.0267,-0.4017t-0.3525,-1.1938q0,-0.7528,0.3525,-1.1545t1.007,-0.4017q1.3399,0,1.3399,1.6152v0.0674h-2.1685zM2.4213,14.1994q-0.0421,-0.4803,-0.2444,-0.7008t-0.5815,-0.2205q-0.368,0,-0.5829,0.2458t-0.2317,0.6756h1.6404zM1.3483,12.3146v-0.4831h0.5056v0.4831h-0.5056z",
get width() {
return r(1139);
},
height: 16,
char: "ė"
},
XĘ: {
getPath: () => "M0.4719,16v-3.9579h3.0028v0.4382h-2.4663v1.2697h2.2978v0.4326h-2.2978v1.3792h2.5815v0.4382h-3.118zM3.5899,17.1236q-0.177,0.0758,-0.3904,0.0758q-0.2949,0,-0.4438,-0.1433t-0.1489,-0.382q0,-0.1966,0.1222,-0.382t0.3132,-0.2921h0.3736q-0.0702,0.0393,-0.1433,0.1025t-0.1334,0.1461t-0.0983,0.1812t-0.0379,0.2079q0,0.118,0.0688,0.1854t0.1952,0.0674q0.1517,0,0.323,-0.0674v0.3006z",
get width() {
return r(1366);
},
height: 16,
char: "Ę"
},
Xę: {
getPath: () => "M0.7753,14.5871q0,0.5225,0.2163,0.8062t0.632,0.2837q0.3287,0,0.5267,-0.132t0.2683,-0.3343l0.4438,0.1264q-0.2725,0.7191,-1.2388,0.7191q-0.6742,0,-1.0267,-0.4017t-0.3525,-1.1938q0,-0.7528,0.3525,-1.1545t1.007,-0.4017q1.3399,0,1.3399,1.6152v0.0674h-2.1685zM2.4213,14.1994q-0.0421,-0.4803,-0.2444,-0.7008t-0.5815,-0.2205q-0.368,0,-0.5829,0.2458t-0.2317,0.6756h1.6404zM2.2781,17.1236q-0.177,0.0758,-0.3904,0.0758q-0.2949,0,-0.4438,-0.1433t-0.1489,-0.382q0,-0.1966,0.1222,-0.382t0.3132,-0.2921h0.3736q-0.0702,0.0393,-0.1433,0.1025t-0.1334,0.1461t-0.0983,0.1812t-0.0379,0.2079q0,0.118,0.0688,0.1854t0.1952,0.0674q0.1517,0,0.323,-0.0674v0.3006z",
get width() {
return r(1139);
},
height: 16,
char: "ę"
},
XĢ: {
getPath: () => "M0.2893,14.0028q0,-0.9635,0.5169,-1.4916t1.4522,-0.5281q0.6573,0,1.0674,0.2219t0.632,0.7107l-0.5112,0.1517q-0.1685,-0.3371,-0.4649,-0.4916t-0.7374,-0.1545q-0.6854,0,-1.0478,0.4143t-0.3624,1.1671q0,0.75,0.3848,1.184t1.0646,0.434q0.3876,0,0.7233,-0.118t0.5435,-0.3202v-0.7135h-1.1826v-0.4494h1.677v1.3652q-0.3146,0.3202,-0.7711,0.4958t-0.9902,0.1756q-0.6208,0,-1.0702,-0.2472t-0.6868,-0.7121t-0.2374,-1.0941zM2.5787,16.5421q0,0.2444,-0.0618,0.3947t-0.1742,0.2823h-0.3287q0.1264,-0.1348,0.1952,-0.2556t0.0688,-0.25h-0.2472v-0.4382h0.5478v0.2669z",
get width() {
return r(1593);
},
height: 16,
char: "Ģ"
},
Xģ: {
getPath: () => "M1.5393,17.1938q-0.4972,0,-0.7921,-0.1952t-0.3792,-0.5548l0.5084,-0.073q0.0506,0.2107,0.2233,0.3244t0.4537,0.1138q0.7556,0,0.7556,-0.8848v-0.4888h-0.0056q-0.1433,0.2921,-0.3933,0.4396t-0.5843,0.1475q-0.559,0,-0.8216,-0.3708t-0.2626,-1.1657q0,-0.8062,0.2823,-1.1896t0.8581,-0.3834q0.323,0,0.5604,0.1475t0.3666,0.4199h0.0056q0,-0.0843,0.0112,-0.2921t0.0225,-0.2275h0.4803q-0.0169,0.1517,-0.0169,0.6292v2.323q0,1.2809,-1.2725,1.2809zM2.309,14.4803q0,-0.3708,-0.1011,-0.639t-0.2851,-0.4101t-0.4171,-0.1419q-0.3876,0,-0.5646,0.2809t-0.177,0.9101q0,0.6236,0.1657,0.8961t0.5674,0.2725q0.2388,0,0.4242,-0.1404t0.2865,-0.4031t0.1011,-0.625zM1.2416,12.3006q0,-0.2444,0.0618,-0.4087t0.1742,-0.2963h0.3287q-0.264,0.2809,-0.264,0.5337h0.2472v0.4691h-0.5478v-0.2978z",
get width() {
return r(1139);
},
height: 16,
char: "ģ"
},
XĪ: {
getPath: () => "M0.5309,16v-3.9579h0.5365v3.9579h-0.5365zM1.5758,11.6039h-1.5421v-0.3567h1.5421v0.3567z",
get width() {
return r(569);
},
height: 16,
char: "Ī"
},
Xī: {
getPath: () => "M0.5449,16v-3.0393h0.5056v3.0393h-0.5056zM1.5758,12.5281h-1.5421v-0.3567h1.5421v0.3567z",
get width() {
return r(569);
},
height: 16,
char: "ī"
},
XĮ: {
getPath: () => "M0.5309,16v-3.9579h0.5365v3.9579h-0.5365zM1.2416,17.1236q-0.177,0.0758,-0.3904,0.0758q-0.2949,0,-0.4438,-0.1433t-0.1489,-0.382q0,-0.1966,0.1222,-0.382t0.3132,-0.2921h0.3736q-0.0702,0.0393,-0.1433,0.1025t-0.1334,0.1461t-0.0983,0.1812t-0.0379,0.2079q0,0.118,0.0688,0.1854t0.1952,0.0674q0.1517,0,0.323,-0.0674v0.3006z",
get width() {
return r(569);
},
height: 16,
char: "Į"
},
Xį: {
getPath: () => "M0.3848,12.3146v-0.4831h0.5056v0.4831h-0.5056zM0.3848,16v-3.0393h0.5056v3.0393h-0.5056zM1.0702,17.1236q-0.177,0.0758,-0.3904,0.0758q-0.2949,0,-0.4438,-0.1433t-0.1489,-0.382q0,-0.1966,0.1222,-0.382t0.3132,-0.2921h0.3736q-0.0702,0.0393,-0.1433,0.1025t-0.1334,0.1461t-0.0983,0.1812t-0.0379,0.2079q0,0.118,0.0688,0.1854t0.1952,0.0674q0.1517,0,0.323,-0.0674v0.3006z",
get width() {
return r(455);
},
height: 16,
char: "į"
},
XĶ: {
getPath: () => "M3.1067,16l-1.5815,-1.9101l-0.5169,0.3933v1.5169h-0.5365v-3.9579h0.5365v1.9831l1.9073,-1.9831h0.632l-1.6854,1.7191l1.9101,2.2388h-0.6657zM2.2612,16.5421q0,0.2444,-0.0618,0.3947t-0.1742,0.2823h-0.3287q0.1264,-0.1348,0.1952,-0.2556t0.0688,-0.25h-0.2472v-0.4382h0.5478v0.2669z",
get width() {
return r(1366);
},
height: 16,
char: "Ķ"
},
Xķ: {
getPath: () => "M2.2921,16l-1.0281,-1.3876l-0.3708,0.3062v1.0815h-0.5056v-4.1685h0.5056v2.6039l1.3343,-1.4747h0.5927l-1.2331,1.3062l1.2978,1.7331h-0.5927zM1.8596,16.5421q0,0.2444,-0.0618,0.3947t-0.1742,0.2823h-0.3287q0.1264,-0.1348,0.1952,-0.2556t0.0688,-0.25h-0.2472v-0.4382h0.5478v0.2669z",
get width() {
return r(1024);
},
height: 16,
char: "ķ"
},
XĻ: {
getPath: () => "M0.4719,16v-3.9579h0.5365v3.5197h2v0.4382h-2.5365zM2.014,16.5421q0,0.2444,-0.0618,0.3947t-0.1742,0.2823h-0.3287q0.1264,-0.1348,0.1952,-0.2556t0.0688,-0.25h-0.2472v-0.4382h0.5478v0.2669z",
get width() {
return r(1139);
},
height: 16,
char: "Ļ",
kerningRules: {
T: i(152),
V: i(152),
W: i(152),
y: i(76),
Y: i(152)
}
},
Xļ: {
getPath: () => "M0.3876,16v-4.1685h0.5056v4.1685h-0.5056zM0.9185,16.5421q0,0.2444,-0.0618,0.3947t-0.1742,0.2823h-0.3287q0.1264,-0.1348,0.1952,-0.2556t0.0688,-0.25h-0.2472v-0.4382h0.5478v0.2669z",
get width() {
return r(455);
},
height: 16,
char: "ļ"
},
XŁ: {
getPath: () => "M1.7303,13.7612l-0.7219,0.4185v1.382h2v0.4382h-2.5365v-1.5112l-0.4157,0.2388v-0.4438l0.4157,-0.2388v-2.0028h0.5365v1.6938l0.7219,-0.4157v0.441z",
get width() {
return r(1139);
},
height: 16,
char: "Ł",
kerningRules: {
T: i(152),
V: i(152),
W: i(152),
y: i(76),
Y: i(152)
}
},
Xł: {
getPath: () => "M0.3876,16v-1.5225l-0.3427,0.191v-0.4438l0.3427,-0.191v-2.2022h0.5056v1.9101l0.3483,-0.2022v0.4466l-0.3483,0.1994v1.8146h-0.5056z",
get width() {
return r(455);
},
height: 16,
char: "ł"
},
XŃ: {
getPath: () => "M3.0393,16l-2.118,-3.3708l0.014,0.2725l0.014,0.4691v2.6292h-0.4775v-3.9579h0.6236l2.1404,3.3933q-0.0337,-0.5506,-0.0337,-0.7978v-2.5955h0.4831v3.9579h-0.6461zM1.6882,11.7022v-0.0562l0.6096,-0.6348h0.5815v0.0815l-0.8708,0.6096h-0.3202z",
get width() {
return r(1479);
},
height: 16,
char: "Ń"
},
Xń: {
getPath: () => "M2.3287,16v-1.927q0,-0.3006,-0.059,-0.4663t-0.1882,-0.2388t-0.3792,-0.073q-0.3652,0,-0.5758,0.25t-0.2107,0.6938v1.7612h-0.5056v-2.3904q0,-0.5309,-0.0169,-0.6489h0.4775q0.0028,0.014,0.0056,0.0758t0.007,0.1419t0.0098,0.302h0.0084q0.1742,-0.3146,0.4031,-0.4452t0.5688,-0.1306q0.5,0,0.7317,0.2486t0.2317,0.8216v2.0253h-0.5084zM1.2921,12.6264v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264z",
get width() {
return r(1139);
},
height: 16,
char: "ń"
},
XŅ: {
getPath: () => "M3.0393,16l-2.118,-3.3708l0.014,0.2725l0.014,0.4691v2.6292h-0.4775v-3.9579h0.6236l2.1404,3.3933q-0.0337,-0.5506,-0.0337,-0.7978v-2.5955h0.4831v3.9579h-0.6461zM2.3483,16.5421q0,0.2444,-0.0618,0.3947t-0.1742,0.2823h-0.3287q0.1264,-0.1348,0.1952,-0.2556t0.0688,-0.25h-0.2472v-0.4382h0.5478v0.2669z",
get width() {
return r(1479);
},
height: 16,
char: "Ņ"
},
Xņ: {
getPath: () => "M2.3287,16v-1.927q0,-0.3006,-0.059,-0.4663t-0.1882,-0.2388t-0.3792,-0.073q-0.3652,0,-0.5758,0.25t-0.2107,0.6938v1.7612h-0.5056v-2.3904q0,-0.5309,-0.0169,-0.6489h0.4775q0.0028,0.014,0.0056,0.0758t0.007,0.1419t0.0098,0.302h0.0084q0.1742,-0.3146,0.4031,-0.4452t0.5688,-0.1306q0.5,0,0.7317,0.2486t0.2317,0.8216v2.0253h-0.5084zM1.8961,16.5421q0,0.2444,-0.0618,0.3947t-0.1742,0.2823h-0.3287q0.1264,-0.1348,0.1952,-0.2556t0.0688,-0.25h-0.2472v-0.4382h0.5478v0.2669z",
get width() {
return r(1139);
},
height: 16,
char: "ņ"
},
XŐ: {
getPath: () => "M4.1994,14.0028q0,0.6208,-0.2374,1.0871t-0.6812,0.7163t-1.0478,0.25q-0.6096,0,-1.052,-0.2472t-0.6756,-0.7149t-0.2331,-1.0913q0,-0.9494,0.5197,-1.4846t1.4466,-0.5351q0.6039,0,1.0478,0.2402t0.6784,0.698t0.2346,1.0815zM3.6517,14.0028q0,-0.7388,-0.3694,-1.1601t-1.0435,-0.4213q-0.6798,0,-1.0506,0.4157t-0.3708,1.1657q0,0.7444,0.375,1.1812t1.0407,0.4368q0.6854,0,1.052,-0.4228t0.3666,-1.1952zM1.4438,11.7022v-0.0562l0.5534,-0.6376h0.5815v0.0815l-0.8708,0.6124h-0.264zM2.4185,11.7022v-0.0562l0.5534,-0.6376h0.5815v0.0815l-0.8708,0.6124h-0.264z",
get width() {
return r(1593);
},
height: 16,
char: "Ő"
},
Xő: {
getPath: () => "M2.9579,14.4775q0,0.7978,-0.3511,1.1882t-1.0197,0.3904q-0.6657,0,-1.0056,-0.4059t-0.3399,-1.1728q0,-1.573,1.3624,-1.573q0.6966,0,1.0253,0.3834t0.3287,1.1896zM2.427,14.4775q0,-0.6292,-0.1868,-0.9143t-0.6278,-0.2851q-0.4438,0,-0.6419,0.2907t-0.198,0.9087q0,0.6011,0.1952,0.9031t0.6138,0.302q0.4551,0,0.6503,-0.2921t0.1952,-0.9129zM0.8062,12.6264v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264zM1.7809,12.6264v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264z",
get width() {
return r(1139);
},
height: 16,
char: "ő"
},
XŒ: {
getPath: () => "M2.8062,16q-0.1882,0.0281,-0.5899,0.0281q-0.9073,0,-1.4256,-0.5421t-0.5183,-1.4831q0,-0.9326,0.5169,-1.4621t1.4326,-0.5295q0.3006,0,0.5955,0.0309h2.5674v0.4382h-2.2556v1.2697h2.0871v0.4326h-2.0871v1.3792h2.3708v0.4382h-2.6938zM2.2163,15.5927q0.2303,0,0.3764,-0.0112v-3.1208q-0.1236,-0.0112,-0.2261,-0.0112h-0.1447q-0.6882,0,-1.0463,0.4017t-0.3581,1.1517q0,0.7528,0.3694,1.1713t1.0295,0.4185z",
get width() {
return r(2048);
},
height: 16,
char: "Œ"
},
Xœ: {
getPath: () => "M3.0056,14.5871q0,0.5225,0.2163,0.8062t0.632,0.2837q0.3287,0,0.5267,-0.132t0.2683,-0.3343l0.4438,0.1264q-0.2725,0.7191,-1.2388,0.7191q-0.7725,0,-1.1124,-0.514q-0.3483,0.514,-1.1264,0.514q-0.6685,0,-1.0211,-0.4059t-0.3525,-1.1728q0,-0.7837,0.3553,-1.1784t1.0351,-0.3947q0.7893,0,1.118,0.4972q0.3539,-0.4972,1.0843,-0.4972q1.3399,0,1.3399,1.6152v0.0674h-2.1685zM2.4747,14.4775q0,-0.6152,-0.1938,-0.9073t-0.6404,-0.2921q-0.4551,0,-0.6615,0.2992t-0.2065,0.9003q0,1.2051,0.8371,1.2051q0.4607,0,0.6629,-0.2921t0.2022,-0.9129zM4.6517,14.1994q-0.0421,-0.4803,-0.2444,-0.7008t-0.5815,-0.2205q-0.368,0,-0.5829,0.2458t-0.2317,0.6756h1.6404z",
get width() {
return r(1933);
},
height: 16,
char: "œ"
},
XŚ: {
getPath: () => "M3.573,14.9073q0,0.5478,-0.4284,0.8483t-1.2065,0.3006q-1.4466,0,-1.677,-1.0056l0.5197,-0.1039q0.0899,0.3567,0.382,0.5239t0.7949,0.1671q0.5197,0,0.802,-0.1784t0.2823,-0.5239q0,-0.1938,-0.0885,-0.3146t-0.2486,-0.1994t-0.382,-0.132t-0.4916,-0.1152q-0.4691,-0.1039,-0.7121,-0.2079t-0.3834,-0.2317t-0.2149,-0.2992t-0.0744,-0.3933q0,-0.5084,0.389,-0.7837t1.1138,-0.2753q0.6742,0,1.0309,0.2065t0.5,0.7037l-0.5281,0.0927q-0.0871,-0.3146,-0.3315,-0.4565t-0.677,-0.1419q-0.4747,0,-0.7247,0.1573t-0.25,0.4691q0,0.1826,0.0969,0.302t0.2795,0.2022t0.7275,0.2037q0.1826,0.0421,0.3638,0.0857t0.3469,0.1039t0.3104,0.1419t0.2514,0.1994t0.1671,0.2781t0.0604,0.3764zM1.5787,11.7022v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264z",
get width() {
return r(1366);
},
height: 16,
char: "Ś"
},
Xś: {
getPath: () => "M2.6685,15.1601q0,0.4298,-0.3244,0.6629t-0.9087,0.2331q-0.5674,0,-0.875,-0.1868t-0.4003,-0.5829l0.4466,-0.0871q0.0646,0.2444,0.2669,0.3581t0.5618,0.1138q0.3848,0,0.5632,-0.118t0.1784,-0.3539q0,-0.1798,-0.1236,-0.2921t-0.3989,-0.1854l-0.3624,-0.0955q-0.4354,-0.1124,-0.6194,-0.2205t-0.2879,-0.2626t-0.1039,-0.3792q0,-0.4157,0.2963,-0.6334t0.8638,-0.2177q0.5028,0,0.7992,0.177t0.375,0.5674l-0.4551,0.0562q-0.0421,-0.2022,-0.2261,-0.3104t-0.493,-0.1081q-0.3427,0,-0.5056,0.1039t-0.1629,0.3146q0,0.1292,0.0674,0.2135t0.1994,0.1433t0.5562,0.1629q0.4017,0.1011,0.5787,0.1868t0.2795,0.1896t0.1587,0.2402t0.0562,0.3104zM1.0815,12.6264v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264z",
get width() {
return r(1024);
},
height: 16,
char: "ś"
},
XŠ: {
getPath: () => "M3.573,14.9073q0,0.5478,-0.4284,0.8483t-1.2065,0.3006q-1.4466,0,-1.677,-1.0056l0.5197,-0.1039q0.0899,0.3567,0.382,0.5239t0.7949,0.1671q0.5197,0,0.802,-0.1784t0.2823,-0.5239q0,-0.1938,-0.0885,-0.3146t-0.2486,-0.1994t-0.382,-0.132t-0.4916,-0.1152q-0.4691,-0.1039,-0.7121,-0.2079t-0.3834,-0.2317t-0.2149,-0.2992t-0.0744,-0.3933q0,-0.5084,0.389,-0.7837t1.1138,-0.2753q0.6742,0,1.0309,0.2065t0.5,0.7037l-0.5281,0.0927q-0.0871,-0.3146,-0.3315,-0.4565t-0.677,-0.1419q-0.4747,0,-0.7247,0.1573t-0.25,0.4691q0,0.1826,0.0969,0.302t0.2795,0.2022t0.7275,0.2037q0.1826,0.0421,0.3638,0.0857t0.3469,0.1039t0.3104,0.1419t0.2514,0.1994t0.1671,0.2781t0.0604,0.3764zM2.2725,11.7022h-0.573l-0.6573,-0.6713v-0.059h0.2921l0.6517,0.3904h0.0056l0.6152,-0.3904h0.2949v0.059z",
get width() {
return r(1366);
},
height: 16,
char: "Š"
},
Xš: {
getPath: () => "M2.6685,15.1601q0,0.4298,-0.3244,0.6629t-0.9087,0.2331q-0.5674,0,-0.875,-0.1868t-0.4003,-0.5829l0.4466,-0.0871q0.0646,0.2444,0.2669,0.3581t0.5618,0.1138q0.3848,0,0.5632,-0.118t0.1784,-0.3539q0,-0.1798,-0.1236,-0.2921t-0.3989,-0.1854l-0.3624,-0.0955q-0.4354,-0.1124,-0.6194,-0.2205t-0.2879,-0.2626t-0.1039,-0.3792q0,-0.4157,0.2963,-0.6334t0.8638,-0.2177q0.5028,0,0.7992,0.177t0.375,0.5674l-0.4551,0.0562q-0.0421,-0.2022,-0.2261,-0.3104t-0.493,-0.1081q-0.3427,0,-0.5056,0.1039t-0.1629,0.3146q0,0.1292,0.0674,0.2135t0.1994,0.1433t0.5562,0.1629q0.4017,0.1011,0.5787,0.1868t0.2795,0.1896t0.1587,0.2402t0.0562,0.3104zM1.7163,12.6264h-0.573l-0.6573,-0.7584v-0.0562h0.2921l0.6517,0.4747h0.0056l0.6152,-0.4747h0.2949v0.0562z",
get width() {
return r(1024);
},
height: 16,
char: "š"
},
XŪ: {
getPath: () => "M2.0534,16.0562q-0.486,0,-0.8483,-0.177t-0.5618,-0.514t-0.1994,-0.8034v-2.5197h0.5365v2.4747q0,0.5421,0.2753,0.823t0.7949,0.2809q0.5337,0,0.8301,-0.2907t0.2963,-0.8497v-2.4382h0.5337v2.4691q0,0.4803,-0.2037,0.8287t-0.5758,0.5323t-0.8778,0.184zM2.8511,11.6039h-1.5421v-0.3567h1.5421v0.3567z",
get width() {
return r(1479);
},
height: 16,
char: "Ū"
},
Xū: {
getPath: () => "M0.882,12.9607v1.927q0,0.3006,0.059,0.4663t0.1882,0.2388t0.3792,0.073q0.3652,0,0.5758,-0.25t0.2107,-0.6938v-1.7612h0.5056v2.3904q0,0.5309,0.0169,0.6489h-0.4775q-0.0028,-0.014,-0.0056,-0.0758t-0.007,-0.1419t-0.0098,-0.302h-0.0084q-0.1742,0.3146,-0.4031,0.4452t-0.5688,0.1306q-0.5,0,-0.7317,-0.2486t-0.2317,-0.8216v-2.0253h0.5084zM2.3596,12.5281h-1.5421v-0.3567h1.5421v0.3567z",
get width() {
return r(1139);
},
height: 16,
char: "ū"
},
XŰ: {
getPath: () => "M2.0534,16.0562q-0.486,0,-0.8483,-0.177t-0.5618,-0.514t-0.1994,-0.8034v-2.5197h0.5365v2.4747q0,0.5421,0.2753,0.823t0.7949,0.2809q0.5337,0,0.8301,-0.2907t0.2963,-0.8497v-2.4382h0.5337v2.4691q0,0.4803,-0.2037,0.8287t-0.5758,0.5323t-0.8778,0.184zM1.25,11.7022v-0.0562l0.5534,-0.6376h0.5815v0.0815l-0.8708,0.6124h-0.264zM2.2247,11.7022v-0.0562l0.5534,-0.6376h0.5815v0.0815l-0.8708,0.6124h-0.264z",
get width() {
return r(1479);
},
height: 16,
char: "Ű"
},
Xű: {
getPath: () => "M0.882,12.9607v1.927q0,0.3006,0.059,0.4663t0.1882,0.2388t0.3792,0.073q0.3652,0,0.5758,-0.25t0.2107,-0.6938v-1.7612h0.5056v2.3904q0,0.5309,0.0169,0.6489h-0.4775q-0.0028,-0.014,-0.0056,-0.0758t-0.007,-0.1419t-0.0098,-0.302h-0.0084q-0.1742,0.3146,-0.4031,0.4452t-0.5688,0.1306q-0.5,0,-0.7317,-0.2486t-0.2317,-0.8216v-2.0253h0.5084zM0.7949,12.6264v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264zM1.7697,12.6264v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264z",
get width() {
return r(1139);
},
height: 16,
char: "ű"
},
XŲ: {
getPath: () => "M2.0534,16.0562q-0.486,0,-0.8483,-0.177t-0.5618,-0.514t-0.1994,-0.8034v-2.5197h0.5365v2.4747q0,0.5421,0.2753,0.823t0.7949,0.2809q0.5337,0,0.8301,-0.2907t0.2963,-0.8497v-2.4382h0.5337v2.4691q0,0.4803,-0.2037,0.8287t-0.5758,0.5323t-0.8778,0.184zM2.736,17.1236q-0.177,0.0758,-0.3904,0.0758q-0.2949,0,-0.4438,-0.1433t-0.1489,-0.382q0,-0.1966,0.1222,-0.382t0.3132,-0.2921h0.3736q-0.0702,0.0393,-0.1433,0.1025t-0.1334,0.1461t-0.0983,0.1812t-0.0379,0.2079q0,0.118,0.0688,0.1854t0.1952,0.0674q0.1517,0,0.323,-0.0674v0.3006z",
get width() {
return r(1479);
},
height: 16,
char: "Ų"
},
Xų: {
getPath: () => "M0.882,12.9607v1.927q0,0.3006,0.059,0.4663t0.1882,0.2388t0.3792,0.073q0.3652,0,0.5758,-0.25t0.2107,-0.6938v-1.7612h0.5056v2.3904q0,0.5309,0.0169,0.6489h-0.4775q-0.0028,-0.014,-0.0056,-0.0758t-0.007,-0.1419t-0.0098,-0.302h-0.0084q-0.1742,0.3146,-0.4031,0.4452t-0.5688,0.1306q-0.5,0,-0.7317,-0.2486t-0.2317,-0.8216v-2.0253h0.5084zM2.8904,17.1236q-0.177,0.0758,-0.3904,0.0758q-0.2949,0,-0.4438,-0.1433t-0.1489,-0.382q0,-0.1966,0.1222,-0.382t0.3132,-0.2921h0.3736q-0.0702,0.0393,-0.1433,0.1025t-0.1334,0.1461t-0.0983,0.1812t-0.0379,0.2079q0,0.118,0.0688,0.1854t0.1952,0.0674q0.1517,0,0.323,-0.0674v0.3006z",
get width() {
return r(1139);
},
height: 16,
char: "ų"
},
XŸ: {
getPath: () => "M2.1826,14.3596v1.6404h-0.5337v-1.6404l-1.5225,-2.3174h0.5899l1.2051,1.8848l1.1994,-1.8848h0.5899zM2.2444,11.7022v-0.5169h0.4579v0.5169h-0.4579zM1.1376,11.7022v-0.5169h0.4635v0.5169h-0.4635z",
get width() {
return r(1366);
},
height: 16,
char: "Ÿ",
kerningRules: {
a: i(152),
A: i(152),
e: i(188),
i: i(76),
o: i(188),
p: i(152),
q: i(188),
u: i(113),
v: i(113)
}
},
XŹ: {
getPath: () => "M3.3343,16h-3.1517v-0.4017l2.4101,-3.118h-2.2051v-0.4382h2.8146v0.3904l-2.4101,3.1292h2.5421v0.4382zM1.3708,11.7022v-0.0562l0.6096,-0.6348h0.5815v0.0815l-0.8708,0.6096h-0.3202z",
get width() {
return r(1251);
},
height: 16,
char: "Ź"
},
Xź: {
getPath: () => "M0.2331,16v-0.3848l1.6994,-2.264h-1.6039v-0.3904h2.2022v0.3848l-1.7022,2.264h1.7612v0.3904h-2.3567zM1.0702,12.6264v-0.0562l0.6096,-0.8062h0.5815v0.0815l-0.927,0.7809h-0.264z",
get width() {
return r(1024);
},
height: 16,
char: "ź"
},
XŻ: {
getPath: () => "M3.3343,16h-3.1517v-0.4017l2.4101,-3.118h-2.2051v-0.4382h2.8146v0.3904l-2.4101,3.1292h2.5421v0.4382zM1.5056,11.4916v-0.4831h0.5056v0.4831h-0.5056z",
get width() {
return r(1251);
},
height: 16,
char: "Ż"
},
Xż: {
getPath: () => "M0.2331,16v-0.3848l1.6994,-2.264h-1.6039v-0.3904h2.2022v0.3848l-1.7022,2.264h1.7612v0.3904h-2.3567zM1.1489,12.3146v-0.4831h0.5056v0.4831h-0.5056z",
get width() {
return r(1024);
},
height: 16,
char: "ż"
},
XŽ: {
getPath: () => "M3.3343,16h-3.1517v-0.4017l2.4101,-3.118h-2.2051v-0.4382h2.8146v0.3904l-2.4101,3.1292h2.5421v0.4382zM2.1067,11.7022h-0.573l-0.6573,-0.6713v-0.059h0.2921l0.6517,0.3904h0.0056l0.6152,-0.3904h0.2949v0.059z",
get width() {
return r(1251);
},
height: 16,
char: "Ž"
},
Xž: {
getPath: () => "M0.2331,16v-0.3848l1.6994,-2.264h-1.6039v-0.3904h2.2022v0.3848l-1.7022,2.264h1.7612v0.3904h-2.3567zM1.6685,12.6264h-0.573l-0.6573,-0.7584v-0.0562h0.2921l0.6517,0.4747h0.0056l0.6152,-0.4747h0.2949v0.0562z",
get width() {
return r(1024);
},
height: 16,
char: "ž"
},
Xа: {
getPath: () => "M1.1629,16.0562q-0.4579,0,-0.6882,-0.2416t-0.2303,-0.6629q0,-0.4719,0.3104,-0.7247t1.0014,-0.2697l0.6826,-0.0112v-0.1657q0,-0.3708,-0.1573,-0.5309t-0.4944,-0.1601q-0.3399,0,-0.4944,0.1152t-0.1854,0.368l-0.5281,-0.0478q0.1292,-0.8202,1.2191,-0.8202q0.573,0,0.8624,0.2626t0.2893,0.7598v1.309q0,0.2247,0.059,0.3385t0.2247,0.1138q0.073,0,0.1657,-0.0197v0.3146q-0.191,0.0449,-0.3904,0.0449q-0.2809,0,-0.4087,-0.1475t-0.1447,-0.4621h-0.0169q-0.1938,0.3483,-0.4508,0.493t-0.625,0.1447zM1.2781,15.677q0.2781,0,0.4944,-0.1264t0.3413,-0.3469t0.125,-0.4537v-0.25l-0.5534,0.0112q-0.3567,0.0056,-0.5407,0.073t-0.2823,0.2079t-0.0983,0.368q0,0.2472,0.1334,0.382t0.3806,0.1348z",
get width() {
return r(1139);
},
height: 16,
char: "а"
},
Xб: {
getPath: () => "M2.5225,14.5899q0,-0.5674,-0.1854,-0.8357t-0.6039,-0.2683q-0.4466,0,-0.6559,0.2725t-0.2093,0.8315q0,0.5449,0.1952,0.8188t0.6138,0.2739q0.4522,0,0.6489,-0.2626t0.1966,-0.8301zM1.8399,13.1152q0.6236,0,0.9185,0.3666t0.2949,1.1025q0,0.7444,-0.3511,1.1081t-1.0197,0.3638q-0.691,0,-1.0183,-0.4522t-0.3272,-1.3904q0,-0.4775,0.0646,-0.8385t0.2022,-0.6222t0.3553,-0.4354t0.5478,-0.2809t1.4031,-0.2556v0.4522q-1.177,0.1517,-1.5239,0.2893t-0.4874,0.4382t-0.1517,0.8989q0.1208,-0.3511,0.4045,-0.5478t0.6882,-0.1966z",
get width() {
return r(1173);
},
height: 16,
char: "б"
},
Xв: {
getPath: () => "M1.5843,12.9607q0.5618,0,0.8427,0.1966t0.2809,0.5646q0,0.2612,-0.1601,0.4354t-0.4663,0.2331v0.0197q0.3624,0.0478,0.5435,0.2303t0.1812,0.4831q0,0.4129,-0.3076,0.6447t-0.8497,0.2317h-1.25v-3.0393h1.1854zM0.9045,15.6264h0.6629q0.3876,0,0.5449,-0.1194t0.1573,-0.3806q0,-0.2837,-0.1671,-0.4003t-0.5688,-0.1166h-0.6292v1.0169zM0.9045,13.3455v0.8989h0.6067q0.3596,0,0.5126,-0.1011t0.1531,-0.3539q0,-0.2303,-0.1433,-0.3371t-0.4831,-0.1067h-0.6461z",
get width() {
return r(1088);
},
height: 16,
char: "в"
},
Xг: {
getPath: () => "M1.9298,12.9607v0.368h-1.0253v2.6713h-0.5056v-3.0393h1.5309z",
get width() {
return r(747);
},
height: 16,
char: "г"
},
Xд: {
getPath: () => "M2.3427,13.3287h-0.8596q-0.1039,0.764,-0.2303,1.3301t-0.3062,0.9733h1.3961v-2.3034zM3.2584,17.1461h-0.4579v-1.1461h-2.2865v1.1461h-0.4579v-1.514h0.3343q0.2107,-0.3511,0.3652,-0.9972t0.2837,-1.6742h1.809v2.6713h0.4101v1.514z",
get width() {
return r(1195);
},
height: 16,
char: "д"
},
Xе: {
getPath: () => "M0.7753,14.5871q0,0.5225,0.2163,0.8062t0.632,0.2837q0.3287,0,0.5267,-0.132t0.2683,-0.3343l0.4438,0.1264q-0.2725,0.7191,-1.2388,0.7191q-0.6742,0,-1.0267,-0.4017t-0.3525,-1.1938q0,-0.7528,0.3525,-1.1545t1.007,-0.4017q1.3399,0,1.3399,1.6152v0.0674h-2.1685zM2.4213,14.1994q-0.0421,-0.4803,-0.2444,-0.7008t-0.5815,-0.2205q-0.368,0,-0.5829,0.2458t-0.2317,0.6756h1.6404z",
get width() {
return r(1139);
},
height: 16,
char: "е"
},
Xё: {
getPath: () => "M0.7753,14.5871q0,0.5225,0.2163,0.8062t0.632,0.2837q0.3287,0,0.5267,-0.132t0.2683,-0.3343l0.4438,0.1264q-0.2725,0.7191,-1.2388,0.7191q-0.6742,0,-1.0267,-0.4017t-0.3525,-1.1938q0,-0.7528,0.3525,-1.1545t1.007,-0.4017q1.3399,0,1.3399,1.6152v0.0674h-2.1685zM2.4213,14.1994q-0.0421,-0.4803,-0.2444,-0.7008t-0.5815,-0.2205q-0.368,0,-0.5829,0.2458t-0.2317,0.6756h1.6404zM1.9298,12.5758v-0.5169h0.4579v0.5169h-0.4579zM0.823,12.5758v-0.5169h0.4635v0.5169h-0.4635z",
get width() {
return r(1139);
},
height: 16,
char: "ё"
},
Xж: {
getPath: () => "M1.6713,14.6601q-0.073,0,-0.1643,-0.0169t-0.1447,-0.0393l-0.7809,1.3961h-0.5618l0.9916,-1.6629q-0.0983,-0.0815,-0.3596,-0.4635l-0.6067,-0.9129h0.5281l0.4157,0.6713q0.1854,0.2978,0.2865,0.4284t0.184,0.1812t0.2121,0.0506v-1.3315h0.5056v1.3315q0.0843,0,0.1517,-0.0225t0.1404,-0.0941t0.1657,-0.2008t0.6404,-1.014h0.5281l-0.6067,0.9129q-0.2612,0.382,-0.3596,0.4635l0.9916,1.6629h-0.5618l-0.7809,-1.3961q-0.0534,0.0225,-0.1447,0.0393t-0.1643,0.0169v1.3399h-0.5056v-1.3399z",
get width() {
return r(1370);
},
height: 16,
char: "ж"
},
Xз: {
getPath: () => "M1.2865,16.0562q-0.4691,0,-0.7458,-0.1756t-0.4031,-0.5379l0.4466,-0.1236q0.1489,0.4607,0.7135,0.4607q0.2697,0,0.4284,-0.132t0.1587,-0.3876q0,-0.5618,-0.9298,-0.5618v-0.3848q0.4522,0,0.6657,-0.118t0.2135,-0.3652q0,-0.2079,-0.139,-0.3287t-0.4003,-0.1208q-0.25,0,-0.4087,0.1039t-0.1924,0.3006l-0.4551,-0.0562q0.1292,-0.7247,1.059,-0.7247q0.4719,0,0.7612,0.2233t0.2893,0.5772q0,0.2837,-0.2037,0.4747t-0.493,0.2163v0.0056q0.3399,0.0365,0.5548,0.2374t0.2149,0.507q0,0.427,-0.302,0.6685t-0.8329,0.2416z",
get width() {
return r(939);
},
height: 16,
char: "з"
},
Xи: {
getPath: () => "M0.8876,12.9607v1.6629l-0.0281,0.7781l1.4017,-2.441h0.5534v3.0393h-0.4831v-1.8539q0,-0.1011,0.0098,-0.3062t0.0183,-0.2921l-1.4213,2.4522h-0.5393v-3.0393h0.4888z",
get width() {
return r(1144);
},
height: 16,
char: "и"
},
Xй: {
getPath: () => "M0.8876,12.9607v1.6629l-0.0281,0.7781l1.4017,-2.441h0.5534v3.0393h-0.4831v-1.8539q0,-0.1011,0.0098,-0.3062t0.0183,-0.2921l-1.4213,2.4522h-0.5393v-3.0393h0.4888zM1.6124,12.6292q-1,0,-1.0309,-0.8989h0.4607q0.0337,0.559,0.5702,0.559t0.5702,-0.559h0.4607q-0.0309,0.8989,-1.0309,0.8989z",
get width() {
return r(1144);
},
height: 16,
char: "й"
},
Xк: {
getPath: () => "M0.3876,12.9607h0.5056v1.3315q0.0843,0,0.1517,-0.0225t0.1404,-0.0941t0.1657,-0.2008t0.6404,-1.014h0.5281l-0.6067,0.9129q-0.2612,0.382,-0.3596,0.4635l0.9916,1.6629h-0.5618l-0.7809,-1.3961q-0.0534,0.0225,-0.1447,0.0393t-0.1643,0.0169v1.3399h-0.5056v-3.0393z",
get width() {
return r(896);
},
height: 16,
char: "к"
},
Xл: {
getPath: () => "M2.4494,16v-2.6713h-1.0534q-0.1657,1.2247,-0.2556,1.6531t-0.1938,0.6475t-0.257,0.323t-0.3947,0.1039q-0.1404,0,-0.264,-0.0365v-0.3624q0.0702,0.0253,0.191,0.0253q0.1545,0,0.2486,-0.1545t0.1713,-0.5337t0.1756,-1.1208l0.1236,-0.9129h2.0169v3.0393h-0.5084z",
get width() {
return r(1195);
},
height: 16,
char: "л"
},
Xм: {
getPath: () => "M2.2107,16h-0.4298l-0.9101,-2.6713q0.0169,0.4382,0.0169,0.6376v2.0337h-0.4888v-3.0393h0.7865l0.618,1.8567q0.1461,0.4017,0.191,0.8034q0.0618,-0.4522,0.191,-0.8034l0.618,-1.8567h0.7556v3.0393h-0.486v-2.0337l0.0084,-0.3202l0.014,-0.323z",
get width() {
return r(1408);
},
height: 16,
char: "м"
},
Xн: {
getPath: () => "M0.9045,12.9607v1.2865h1.368v-1.2865h0.5056v3.0393h-0.5056v-1.3848h-1.368v1.3848h-0.5056v-3.0393h0.5056z",
get width() {
return r(1131);
},
height: 16,
char: "н"
},
Xо: {
getPath: () => "M2.9579,14.4775q0,0.7978,-0.3511,1.1882t-1.0197,0.3904q-0.6657,0,-1.0056,-0.4059t-0.3399,-1.1728q0,-1.573,1.3624,-1.573q0.6966,0,1.0253,0.3834t0.3287,1.1896zM2.427,14.4775q0,-0.6292,-0.1868,-0.9143t-0.6278,-0.2851q-0.4438,0,-0.6419,0.2907t-0.198,0.9087q0,0.6011,0.1952,0.9031t0.6138,0.302q0.4551,0,0.6503,-0.2921t0.1952,-0.9129z",
get width() {
return r(1139);
},
height: 16,
char: "о"
},
Xп: {
getPath: () => "M2.7163,12.9607v3.0393h-0.5056v-2.6713h-1.3062v2.6713h-0.5056v-3.0393h2.3174z",
get width() {
return r(1109);
},
height: 16,
char: "п"
},
Xр: {
getPath: () => "M2.9579,14.4663q0,1.5899,-1.118,1.5899q-0.7022,0,-0.9438,-0.5281h-0.014q0.0112,0.0225,0.0112,0.4775v1.1882h-0.5056v-3.6124q0,-0.4691,-0.0169,-0.6208h0.4888q0.0028,0.0112,0.0084,0.0801t0.0126,0.2121t0.007,0.1966h0.0112q0.1348,-0.2809,0.3567,-0.4115t0.5843,-0.1306q0.5618,0,0.8399,0.3764t0.2781,1.1826zM2.427,14.4775q0,-0.6348,-0.1713,-0.9073t-0.5449,-0.2725q-0.3006,0,-0.4705,0.1264t-0.2584,0.3947t-0.0885,0.698q0,0.5983,0.191,0.882t0.6208,0.2837q0.3764,0,0.5492,-0.2767t0.1728,-0.9284z",
get width() {
return r(1139);
},
height: 16,
char: "р"
},
Xс: {
getPath: () => "M0.7725,14.4663q0,0.6067,0.191,0.8989t0.5758,0.2921q0.2697,0,0.4508,-0.1461t0.2233,-0.4494l0.5112,0.0337q-0.059,0.4382,-0.3736,0.6994t-0.7978,0.2612q-0.6376,0,-0.9733,-0.4031t-0.3357,-1.1756q0,-0.7669,0.3371,-1.1699t0.9663,-0.4031q0.4663,0,0.7739,0.2416t0.3862,0.6657l-0.5197,0.0393q-0.0393,-0.2528,-0.1994,-0.4017t-0.4551,-0.1489q-0.4017,0,-0.5815,0.2669t-0.1798,0.8989z",
get width() {
return r(1024);
},
height: 16,
char: "с"
},
Xт: {
getPath: () => "M0.0983,12.9607h2.4382v0.368h-0.9663v2.6713h-0.5056v-2.6713h-0.9663v-0.368z",
get width() {
return r(938);
},
height: 16,
char: "т"
},
Xу: {
getPath: () => "M0.5365,17.1938q-0.2079,0,-0.3483,-0.0309v-0.3792q0.1067,0.0169,0.236,0.0169q0.4719,0,0.7472,-0.6938l0.0478,-0.1208l-1.2051,-3.0253h0.5393l0.6404,1.6798q0.014,0.0393,0.0337,0.0941t0.1264,0.3666t0.1152,0.3483l0.1966,-0.5534l0.6657,-1.9354h0.5337l-1.1685,3.0393q-0.1882,0.486,-0.3511,0.7233t-0.361,0.3539t-0.448,0.1166z",
get width() {
return r(1024);
},
height: 16,
char: "у"
},
Xф: {
getPath: () => "M4.4888,14.4663q0,0.7978,-0.2598,1.1938t-0.7654,0.3961q-0.6348,0,-0.8567,-0.5281h-0.0169q0.014,0.2444,0.014,0.4775v1.1882h-0.4775v-1.1882q0,-0.3062,0.014,-0.4944h-0.014q-0.1292,0.2921,-0.3385,0.4185t-0.5211,0.1264q-0.5225,0,-0.7739,-0.3862t-0.2514,-1.1756q0,-1.5899,1.0253,-1.5899q0.3146,0,0.5239,0.1264t0.3357,0.4017h0.014l-0.014,-0.4242v-1.177h0.4775v1.1798l-0.0084,0.4382h0.014q0.1292,-0.2921,0.3315,-0.4171t0.5225,-0.125q0.514,0,0.7697,0.3834t0.2556,1.1756zM0.7725,14.4775q0,0.632,0.1531,0.9101t0.4846,0.2781q0.3652,0,0.5365,-0.2767t0.1798,-0.8778v-0.0674q0,-0.5927,-0.1671,-0.8792t-0.5435,-0.2865q-0.3399,0,-0.4916,0.2893t-0.1517,0.9101zM3.9579,14.4775q0,-0.6124,-0.1503,-0.8961t-0.4874,-0.2837q-0.264,0,-0.4129,0.1292t-0.2261,0.3947t-0.0772,0.6952v0.0646q0.0056,0.5646,0.177,0.8329t0.5337,0.2683q0.3343,0,0.4888,-0.2879t0.1545,-0.9171z",
get width() {
return r(1685);
},
height: 16,
char: "ф"
},
Xх: {
getPath: () => "M2.25,16l-0.8174,-1.2472l-0.823,1.2472h-0.5449l1.0815,-1.5618l-1.0309,-1.4775h0.559l0.7584,1.1826l0.7528,-1.1826h0.5646l-1.0309,1.4719l1.0955,1.5674h-0.5646z",
get width() {
return r(1024);
},
height: 16,
char: "х"
},
Xц: {
getPath: () => "M0.9045,12.9607v2.6713h1.3399v-2.6713h0.5056v2.6713h0.4129v1.514h-0.4579v-1.1461h-2.3062v-3.0393h0.5056z",
get width() {
return r(1173);
},
height: 16,
char: "ц"
},
Xч: {
getPath: () => "M0.8483,12.9607v1.1292q0,0.4551,0.4663,0.4551q0.309,0,0.7753,-0.132v-1.4522h0.5056v3.0393h-0.5056v-1.2949l-0.2191,0.0843q-0.4101,0.1573,-0.764,0.1573q-0.3624,0,-0.5632,-0.2177t-0.2008,-0.6138v-1.1545h0.5056z",
get width() {
return r(1067);
},
height: 16,
char: "ч"
},
Xш: {
getPath: () => "M0.3989,16v-3.0393h0.5056v2.6713h1.1517v-2.6713h0.5056v2.6713h1.1489v-2.6713h0.5056v3.0393h-3.8174z",
get width() {
return r(1643);
},
height: 16,
char: "ш"
},
Xщ: {
getPath: () => "M0.3989,16v-3.0393h0.5056v2.6713h1.1376v-2.6713h0.5056v2.6713h1.1348v-2.6713h0.5056v2.6713h0.4129v1.514h-0.4579v-1.1461h-3.7444z",
get width() {
return r(1685);
},
height: 16,
char: "щ"
},
Xъ: {
getPath: () => "M2.1938,14.2472q0.5758,0,0.8708,0.2065t0.2949,0.6531q0,0.4326,-0.3034,0.6629t-0.8596,0.2303h-1.1489v-2.6713h-0.9213v-0.368h1.427v1.2865h0.6404zM1.5534,15.6433h0.5674q0.3652,0,0.5337,-0.1292t0.1685,-0.4073q0,-0.264,-0.1629,-0.3862t-0.5365,-0.1222h-0.5702v1.0449z",
get width() {
return r(1280);
},
height: 16,
char: "ъ"
},
Xы: {
getPath: () => "M1.5449,14.2472q0.5758,0,0.8708,0.2065t0.2949,0.6531q0,0.4326,-0.3034,0.6629t-0.8596,0.2303h-1.1489v-3.0393h0.5056v1.2865h0.6404zM0.9045,15.6433h0.5674q0.3652,0,0.5337,-0.1292t0.1685,-0.4073q0,-0.264,-0.1629,-0.3862t-0.5365,-0.1222h-0.5702v1.0449zM3.2303,16v-3.0393h0.5056v3.0393h-0.5056z",
get width() {
return r(1472);
},
height: 16,
char: "ы"
},
Xь: {
getPath: () => "M1.5955,14.2472q0.5758,0,0.8708,0.2065t0.2949,0.6531q0,0.4326,-0.3034,0.6629t-0.8596,0.2303h-1.1994v-3.0393h0.5056v1.2865h0.691zM0.9045,15.6433h0.618q0.3652,0,0.5337,-0.1292t0.1685,-0.4073q0,-0.264,-0.1629,-0.3862t-0.5365,-0.1222h-0.6208v1.0449z",
get width() {
return r(1067);
},
height: 16,
char: "ь"
},
Xэ: {
getPath: () => "M0.1545,15.1152l0.5112,-0.0337q0.0449,0.3034,0.2317,0.4494t0.4677,0.1461q0.3624,0,0.5618,-0.2486t0.2331,-0.7823h-1.1601v-0.368h1.1601q-0.0225,-0.5309,-0.2121,-0.764t-0.5772,-0.2331q-0.5899,0,-0.6798,0.5506l-0.5197,-0.0393q0.0787,-0.4185,0.3919,-0.6531t0.7935,-0.2346q0.6461,0,0.9902,0.4045t0.3441,1.1685q0,0.7753,-0.3441,1.177t-0.9958,0.4017q-0.4972,0,-0.8174,-0.2528t-0.3792,-0.6882z",
get width() {
return r(1045);
},
height: 16,
char: "э"
},
Xю: {
getPath: () => "M4.073,14.4775q0,0.7978,-0.3301,1.1882t-0.9565,0.3904q-0.5955,0,-0.9143,-0.3694t-0.3441,-1.0716h-0.6236v1.3848h-0.5056v-3.0393h0.5056v1.2865h0.6264q0.0927,-1.3427,1.2725,-1.3427q0.6657,0,0.9677,0.3933t0.302,1.1798zM3.5421,14.4775q0,-0.6292,-0.1685,-0.9143t-0.5618,-0.2851q-0.3989,0,-0.5772,0.2907t-0.1784,0.9087q0,0.6124,0.177,0.9087t0.5506,0.2963q0.4101,0,0.5843,-0.2935t0.1742,-0.9115z",
get width() {
return r(1536);
},
height: 16,
char: "ю"
},
Xя: {
getPath: () => "M1.5028,14.7135l-0.8848,1.2865h-0.5702l0.9663,-1.323q-0.6994,-0.1433,-0.6994,-0.8764q0,-0.4185,0.3034,-0.6292t0.8848,-0.2107h1.2135v3.0393h-0.5056v-1.2865h-0.7079zM2.2107,13.3174h-0.6573q-0.3652,0,-0.5337,0.1292t-0.1685,0.3904q0,0.264,0.1503,0.3947t0.4986,0.1306h0.7107v-1.0449z",
get width() {
return r(1109);
},
height: 16,
char: "я"
},
XА: {
getPath: () => "M3.2781,16l-0.4522,-1.1573h-1.8034l-0.4551,1.1573h-0.5562l1.6152,-3.9579h0.6096l1.5899,3.9579h-0.5478zM1.9242,12.4466l-0.0253,0.0787q-0.0702,0.2331,-0.2079,0.5983l-0.5056,1.3006h1.4803l-0.5084,-1.3062q-0.0787,-0.1938,-0.1573,-0.4382z",
get width() {
return r(1366);
},
height: 16,
char: "А"
},
XБ: {
getPath: () => "M3.4775,14.8399q0,0.5253,-0.3624,0.8427t-1,0.3174h-1.6433v-3.9579h2.6011v0.4382h-2.0646v1.236h1.073q0.6629,0,1.0295,0.2949t0.3666,0.8287zM2.9382,14.8455q0,-0.3399,-0.2303,-0.5211t-0.691,-0.1812h-1.0084v1.4326h1.0309q0.4607,0,0.6798,-0.191t0.2191,-0.5393z",
get width() {
return r(1344);
},
height: 16,
char: "Б"
},
XВ: {
getPath: () => "M3.5337,14.8848q0,0.5281,-0.3848,0.8216t-1.0702,0.2935h-1.6067v-3.9579h1.4382q1.3933,0,1.3933,0.9607q0,0.3511,-0.1966,0.5899t-0.5562,0.3202q0.4719,0.0562,0.7275,0.316t0.2556,0.6559zM2.764,13.0674q0,-0.3202,-0.2191,-0.4579t-0.6348,-0.1376h-0.9017v1.2528h0.9017q0.4298,0,0.6419,-0.1615t0.2121,-0.4958zM2.9916,14.8427q0,-0.6994,-0.9831,-0.6994h-1v1.427h1.0421q0.4916,0,0.7163,-0.1826t0.2247,-0.5449z",
get width() {
return r(1366);
},
height: 16,
char: "В"
},
XГ: {
getPath: () => "M3.0084,12.0393v0.4382h-2v3.5197h-0.5365v-3.9579h2.5365z",
get width() {
return r(1109);
},
height: 16,
char: "Г"
},
XД: {
getPath: () => "M3.2978,15.5506h0.4916v1.5955h-0.5056v-1.1461h-2.736v1.1461h-0.5056v-1.5955h0.4045q0.2191,-0.2725,0.3722,-0.7654t0.257,-1.3104l0.1882,-1.4326h2.0337v3.5084zM2.7753,15.5506v-3.059h-1.0534l-0.1376,1.0337q-0.1039,0.7697,-0.2303,1.2556t-0.3034,0.7697h1.7247z",
get width() {
return r(1387);
},
height: 16,
char: "Д"
},
XЕ: {
getPath: () => "M0.4719,16v-3.9579h3.0028v0.4382h-2.4663v1.2697h2.2978v0.4326h-2.2978v1.3792h2.5815v0.4382h-3.118z",
get width() {
return r(1366);
},
height: 16,
char: "Е"
},
XЁ: {
getPath: () => "M0.4719,16v-3.9579h3.0028v0.4382h-2.4663v1.2697h2.2978v0.4326h-2.2978v1.3792h2.5815v0.4382h-3.118zM2.2921,11.7022v-0.5169h0.4579v0.5169h-0.4579zM1.1854,11.7022v-0.5169h0.4635v0.5169h-0.4635z",
get width() {
return r(1367);
},
height: 16,
char: "Ё"
},
XЖ: {
getPath: () => "M2.3876,14.1882q-0.1039,0,-0.2598,-0.0365t-0.2261,-0.0702l-1.1994,1.9185h-0.6236l1.4298,-2.177q-0.1348,-0.0983,-0.5028,-0.6292l-0.7949,-1.1517h0.5618l0.5758,0.8567q0.3118,0.4691,0.4466,0.6194t0.2584,0.2065t0.3343,0.0562v-1.7388h0.5365v1.7388q0.2107,0,0.3371,-0.0576t0.264,-0.2135t0.4382,-0.611l0.5758,-0.8567h0.5618l-0.7949,1.1517q-0.368,0.5309,-0.5028,0.6292l1.4298,2.177h-0.6236l-1.1994,-1.9185q-0.0702,0.0337,-0.2233,0.0702t-0.2626,0.0365v1.8118h-0.5365v-1.8118z",
get width() {
return r(1891);
},
height: 16,
char: "Ж"
},
XЗ: {
getPath: () => "M1.7444,16.0562q-0.573,0,-0.9438,-0.2261t-0.6124,-0.7514l0.4635,-0.2163q0.3343,0.764,1.073,0.764q0.4298,0,0.677,-0.1994t0.2472,-0.559q0,-0.3736,-0.2697,-0.5393t-0.8371,-0.1657h-0.1994v-0.4157h0.1994q0.5084,0,0.7514,-0.1671t0.243,-0.5126q0,-0.3006,-0.2037,-0.4733t-0.5829,-0.1728q-0.3539,0,-0.5955,0.1643t-0.3848,0.5295l-0.5,-0.1713q0.1966,-0.486,0.5674,-0.7219t0.9326,-0.236q0.5955,0,0.9494,0.2795t0.3539,0.7542q0,0.3567,-0.2022,0.5899t-0.5843,0.323q0.427,0.0646,0.6657,0.3104t0.2388,0.6166q0,0.5478,-0.389,0.8722t-1.0576,0.3244z",
get width() {
return r(1237);
},
height: 16,
char: "З"
},
XИ: {
getPath: () => "M0.4719,16v-3.9579h0.4831v2.5955q0,0.3202,-0.0225,0.7697l2.1067,-3.3652h0.6236v3.9579h-0.4775v-2.6292q0,-0.3427,0.0169,-0.7135l-2.0843,3.3427h-0.6461z",
get width() {
return r(1472);
},
height: 16,
char: "И"
},
XЙ: {
getPath: () => "M0.4719,16v-3.9579h0.4831v2.5955q0,0.3202,-0.0225,0.7697l2.1067,-3.3652h0.6236v3.9579h-0.4775v-2.6292q0,-0.3427,0.0169,-0.7135l-2.0843,3.3427h-0.6461zM2.0843,11.7022q-1,0,-1.0309,-0.8989h0.4607q0.0337,0.559,0.5702,0.559t0.5702,-0.559h0.4607q-0.0309,0.8989,-1.0309,0.8989z",
get width() {
return r(1472);
},
height: 16,
char: "Й"
},
XК: {
getPath: () => "M0.4719,12.0421h0.5365v1.7388q0.2107,0,0.3371,-0.0576t0.264,-0.2135t0.4382,-0.611l0.5758,-0.8567h0.5618l-0.7949,1.1517q-0.368,0.5309,-0.5028,0.6292l1.4298,2.177h-0.6236l-1.1994,-1.9185q-0.0702,0.0337,-0.2233,0.0702t-0.2626,0.0365v1.8118h-0.5365v-3.9579z",
get width() {
return r(1193);
},
height: 16,
char: "К"
},
XЛ: {
getPath: () => "M2.7837,12.4916h-1.1742l-0.1376,1.0337q-0.1433,1.118,-0.2767,1.6096t-0.3357,0.7008t-0.5674,0.2093q-0.1629,0,-0.2416,-0.0281v-0.427q0.0534,0.0197,0.1573,0.0197q0.1489,0,0.243,-0.0913t0.1756,-0.3034t0.1629,-0.6292t0.1629,-1.0281t0.1994,-1.5154h2.1545v3.9579h-0.5225v-3.5084z",
get width() {
return r(1344);
},
height: 16,
char: "Л"
},
XМ: {
getPath: () => "M3.8371,16v-2.6404q0,-0.4382,0.0253,-0.8427q-0.1376,0.5028,-0.2472,0.7865l-1.0225,2.6966h-0.3764l-1.0365,-2.6966l-0.1573,-0.4775l-0.0927,-0.309l0.0084,0.3118l0.0112,0.5309v2.6404h-0.4775v-3.9579h0.7051l1.0534,2.7444q0.0562,0.1657,0.1081,0.3553t0.0688,0.2739q0.0225,-0.1124,0.0941,-0.3413t0.0969,-0.2879l1.0337,-2.7444h0.6882v3.9579h-0.4831z",
get width() {
return r(1706);
},
height: 16,
char: "М"
},
XН: {
getPath: () => "M3.1489,16v-1.8343h-2.1404v1.8343h-0.5365v-3.9579h0.5365v1.6742h2.1404v-1.6742h0.5365v3.9579h-0.5365z",
get width() {
return r(1479);
},
height: 16,
char: "Н"
},
XО: {
getPath: () => "M4.1994,14.0028q0,0.6208,-0.2374,1.0871t-0.6812,0.7163t-1.0478,0.25q-0.6096,0,-1.052,-0.2472t-0.6756,-0.7149t-0.2331,-1.0913q0,-0.9494,0.5197,-1.4846t1.4466,-0.5351q0.6039,0,1.0478,0.2402t0.6784,0.698t0.2346,1.0815zM3.6517,14.0028q0,-0.7388,-0.3694,-1.1601t-1.0435,-0.4213q-0.6798,0,-1.0506,0.4157t-0.3708,1.1657q0,0.7444,0.375,1.1812t1.0407,0.4368q0.6854,0,1.052,-0.4228t0.3666,-1.1952z",
get width() {
return r(1593);
},
height: 16,
char: "О"
},
XП: {
getPath: () => "M3.1433,16v-3.5056h-2.1404v3.5056h-0.5365v-3.9579h3.2135v3.9579h-0.5365z",
get width() {
return r(1472);
},
height: 16,
char: "П"
},
XР: {
getPath: () => "M3.5337,13.2331q0,0.5618,-0.3666,0.8933t-0.9958,0.3315h-1.1629v1.5421h-0.5365v-3.9579h1.6657q0.6657,0,1.0309,0.3118t0.3652,0.8792zM2.9944,13.2388q0,-0.7669,-0.9213,-0.7669h-1.0646v1.5618h1.0871q0.8989,0,0.8989,-0.7949z",
get width() {
return r(1366);
},
height: 16,
char: "Р"
},
XС: {
getPath: () => "M2.2247,12.4213q-0.6573,0,-1.0225,0.4228t-0.3652,1.1587q0,0.7275,0.3806,1.1699t1.0295,0.4424q0.8315,0,1.25,-0.823l0.4382,0.2191q-0.2444,0.5112,-0.6868,0.7781t-1.0267,0.2669q-0.5983,0,-1.0351,-0.2486t-0.6657,-0.7107t-0.2289,-1.0941q0,-0.9466,0.5112,-1.4831t1.4157,-0.5365q0.632,0,1.0562,0.2472t0.6236,0.7331l-0.5084,0.1685q-0.1376,-0.3455,-0.4424,-0.5281t-0.7233,-0.1826z",
get width() {
return r(1479);
},
height: 16,
char: "С"
},
XТ: {
getPath: () => "M2.0225,12.4803v3.5197h-0.5337v-3.5197h-1.3596v-0.4382h3.2528v0.4382h-1.3596z",
get width() {
return r(1251);
},
height: 16,
char: "Т"
},
XУ: {
getPath: () => "M0.9326,16.0562q-0.1742,0,-0.3638,-0.0534t-0.3188,-0.1433l0.2275,-0.4045q0.264,0.1657,0.4663,0.1657q0.1433,0,0.2402,-0.0548t0.1952,-0.1882t0.3848,-0.6559l-1.6096,-2.6798h0.6124l1.2612,2.2022l1.0787,-2.2022h0.5758l-1.6208,3.0646q-0.2388,0.4494,-0.3876,0.6208t-0.3244,0.25t-0.4171,0.0787z",
get width() {
return r(1301);
},
height: 16,
char: "У"
},
XФ: {
getPath: () => "M4.0421,13.9326q0,0.4298,-0.1784,0.7626t-0.5126,0.5154t-0.7837,0.1826h-0.1124v0.6376h-0.5365v-0.6376h-0.1124q-0.4522,0,-0.7865,-0.184t-0.5112,-0.5169t-0.177,-0.7598q0,-0.6685,0.3919,-1.0379t1.1138,-0.3694h0.0815v-0.5112h0.5365v0.5112h0.0787q0.7247,0,1.1166,0.3708t0.3919,1.0365zM3.5028,13.9438q0,-1.0309,-1.0337,-1.0309h-0.014v2.0955h0.0365q0.4888,0,0.75,-0.2697t0.2612,-0.7949zM0.8708,13.9438q0,0.5253,0.2612,0.7949t0.75,0.2697h0.0365v-2.0955h-0.0253q-0.5112,0,-0.7669,0.2528t-0.2556,0.7781z",
get width() {
return r(1557);
},
height: 16,
char: "Ф"
},
XХ: {
getPath: () => "M3.1236,16l-1.1882,-1.7303l-1.2135,1.7303h-0.5927l1.5056,-2.0562l-1.3904,-1.9017h0.5927l1.1011,1.5534l1.0702,-1.5534h0.5927l-1.3539,1.882l1.4691,2.0758h-0.5927z",
get width() {
return r(1366);
},
height: 16,
char: "Х"
},
XЦ: {
getPath: () => "M4.1489,15.5506v1.5955h-0.5056v-1.1461h-3.1713v-3.9579h0.5365v3.5084h2.1264v-3.5084h0.5225v3.5084h0.4916z",
get width() {
return r(1515);
},
height: 16,
char: "Ц"
},
XЧ: {
getPath: () => "M2.8315,14.573q-0.4354,0.0955,-0.691,0.1292t-0.4551,0.0337q-0.6236,0,-0.9298,-0.2542t-0.3062,-0.7711v-1.6685h0.5337v1.6124q0,0.3455,0.1826,0.4972t0.559,0.1517q0.4185,0,1.1067,-0.1376v-2.1236h0.5337v3.9579h-0.5337v-1.427z",
get width() {
return r(1365);
},
height: 16,
char: "Ч"
},
XШ: {
getPath: () => "M0.4719,16v-3.9579h0.5365v3.5084h1.3736v-3.5084h0.5225v3.5084h1.3736v-3.5084h0.5225v3.9579h-4.3287z",
get width() {
return r(1877);
},
height: 16,
char: "Ш"
},
XЩ: {
getPath: () => "M5.1657,15.5506v1.5955h-0.5056v-1.1461h-4.1882v-3.9579h0.5365v3.5084h1.3118v-3.5084h0.5225v3.5084h1.309v-3.5084h0.5225v3.5084h0.4916z",
get width() {
return r(1920);
},
height: 16,
char: "Щ"
},
XЪ: {
getPath: () => "M1.9551,13.7163h0.9045q0.6629,0,1.0295,0.2949t0.3666,0.8287q0,0.5253,-0.3624,0.8427t-1,0.3174h-1.4747v-3.5197h-1.2893v-0.4382h1.8258v1.6742zM3.7163,14.8455q0,-0.3399,-0.2303,-0.5211t-0.691,-0.1812h-0.8399v1.4326h0.8624q0.4607,0,0.6798,-0.191t0.2191,-0.5393z",
get width() {
return r(1621);
},
height: 16,
char: "Ъ"
},
XЫ: {
getPath: () => "M3.4775,14.8399q0,0.5253,-0.3624,0.8427t-1,0.3174h-1.6433v-3.9579h0.5365v1.6742h1.073q0.6629,0,1.0295,0.2949t0.3666,0.8287zM2.9382,14.8455q0,-0.3399,-0.2303,-0.5211t-0.691,-0.1812h-1.0084v1.4326h1.0309q0.4607,0,0.6798,-0.191t0.2191,-0.5393zM4.0843,16v-3.9579h0.5365v3.9579h-0.5365z",
get width() {
return r(1813);
},
height: 16,
char: "Ы"
},
XЬ: {
getPath: () => "M3.4775,14.8399q0,0.5253,-0.3624,0.8427t-1,0.3174h-1.6433v-3.9579h0.5365v1.6742h1.073q0.6629,0,1.0295,0.2949t0.3666,0.8287zM2.9382,14.8567q0,-0.3399,-0.2303,-0.5239t-0.691,-0.184h-1.0084v1.427h1.0309q0.8989,0,0.8989,-0.7191z",
get width() {
return r(1344);
},
height: 16,
char: "Ь"
},
XЭ: {
getPath: () => "M2.0028,12.4213q-0.427,0,-0.7331,0.1896t-0.4326,0.5211l-0.5084,-0.1685q0.1994,-0.486,0.6236,-0.7331t1.0562,-0.2472q0.9045,0,1.4157,0.5365t0.5112,1.4831q0,0.6264,-0.2275,1.0899t-0.6615,0.7135t-1.0379,0.25q-1.1966,0,-1.7135,-1.0449l0.4382,-0.2191q0.1938,0.3933,0.5169,0.6081t0.7303,0.2149q0.5983,0,0.9733,-0.3806t0.4284,-1.0267h-1.8371v-0.4326h1.8371q-0.059,-0.6433,-0.4199,-0.9986t-0.9593,-0.3553z",
get width() {
return r(1472);
},
height: 16,
char: "Э"
},
XЮ: {
getPath: () => "M5.5365,14.0028q0,0.6208,-0.2247,1.0885t-0.6461,0.7163t-0.9831,0.2486q-0.8287,0,-1.316,-0.5028t-0.5295,-1.3876h-0.8287v1.8343h-0.5365v-3.9579h0.5365v1.6742h0.8371q0.0758,-0.8202,0.5576,-1.2767t1.2851,-0.4565q0.8708,0,1.3596,0.5379t0.4888,1.4817zM4.9888,14.0028q0,-0.7388,-0.3413,-1.1601t-0.9593,-0.4213q-0.6264,0,-0.9677,0.4157t-0.3413,1.1657q0,0.7444,0.3469,1.1812t0.9565,0.4368q0.6264,0,0.9663,-0.4199t0.3399,-1.198z",
get width() {
return r(2069);
},
height: 16,
char: "Ю"
},
XЯ: {
getPath: () => "M0.2697,16l1.1236,-1.7051q-0.4522,-0.0787,-0.7093,-0.3792t-0.257,-0.7416q0,-0.5337,0.3624,-0.8329t1.0337,-0.2992h1.8624v3.9579h-0.5365v-1.6433h-1.2331l-1.0281,1.6433h-0.618zM0.9663,13.1798q0,0.3567,0.2317,0.5548t0.6559,0.198h1.2949v-1.4607h-1.2725q-0.441,0,-0.6756,0.1812t-0.2346,0.5267z",
get width() {
return r(1479);
},
height: 16,
char: "Я"
}
};
for (let r of Object.values(o)) r.specialRule = "external glyph", r.leftSideBearing = parseFloat((e / n).toFixed(7)), r.rightSideBearing = parseFloat((t / n).toFixed(7));
//#endregion
//#region src/lib/bliss-constants.js
var s = "1.0.0", c = /* @__PURE__ */ new Set(/* @__PURE__ */ "stroke-width.dot-extra-width.sdot-extra-width.dot-width.sdot-width.char-space.word-space.external-glyph-space.margin.margin-top.margin-bottom.margin-left.margin-right.min-width.center.crop.crop-top.crop-bottom.crop-left.crop-right.grid.grid-color.grid-major-color.grid-medium-color.grid-minor-color.grid-sky-color.grid-earth-color.grid-stroke-width.grid-major-stroke-width.grid-medium-stroke-width.grid-minor-stroke-width.grid-sky-stroke-width.grid-earth-stroke-width.color.background.background-top.background-mid.background-bottom.text.svg-desc.svg-title.svg-height.error-placeholder.key".split(".")), l = (e) => /^[a-zA-Z][a-zA-Z0-9-]*$/.test(e) && !/^on/i.test(e), u = (e) => String(e).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'"), d = (e) => e.replace(/[A-Z]/g, (e) => "-" + e.toLowerCase()), f = (e) => {
let t = String(e);
return /[;\[\]|"']/.test(t) || /^\s|\s$/.test(t) ? `"${t.replace(/"/g, "\\\"")}"` : t;
}, p = String.raw`(?:(?=(?<atom>"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|[^\]]))\k<atom>)*`;
function m() {
let e = "";
for (let t = 0; t < 8; t++) e += "abcdefghijklmnopqrstuvwxyz0123456789"[Math.floor(Math.random() * 36)];
return e;
}
var h = /* @__PURE__ */ new Set(/* @__PURE__ */ "margin.margin-top.margin-bottom.margin-left.margin-right.crop.crop-top.crop-bottom.crop-left.crop-right.grid.grid-color.grid-major-color.grid-medium-color.grid-minor-color.grid-sky-color.grid-earth-color.grid-stroke-width.grid-major-stroke-width.grid-medium-stroke-width.grid-minor-stroke-width.grid-sky-stroke-width.grid-earth-stroke-width.background.background-top.background-mid.background-bottom.center.min-width.char-space.word-space.external-glyph-space.svg-title.svg-desc.svg-height.error-placeholder".split(".")), g = /* @__PURE__ */ new Set(/* @__PURE__ */ "grid.gridSkyColor.gridEarthColor.gridMajorColor.gridMediumColor.gridMinorColor.gridSkyStrokeWidth.gridEarthStrokeWidth.gridMajorStrokeWidth.gridMediumStrokeWidth.gridMinorStrokeWidth.cropTop.cropBottom.cropLeft.cropRight.marginTop.marginBottom.marginLeft.marginRight.dotExtraWidth.sdotExtraWidth.dotWidth.sdotWidth.background.backgroundTop.backgroundMid.backgroundBottom.charSpace.wordSpace.externalGlyphSpace.minWidth.center.autoVertical.cropCompact.text.svgDesc.svgTitle.svgHeight.errorPlaceholder.key.x.y.relativeKerning.absoluteKerning".split(".")), _ = 1.5, v = Object.freeze({
MALFORMED_GLOBAL_OPTIONS: "MALFORMED_GLOBAL_OPTIONS",
MALFORMED_GROUP_OPTIONS: "MALFORMED_GROUP_OPTIONS",
MALFORMED_WORD_INDICATOR: "MALFORMED_WORD_INDICATOR",
MALFORMED_COORDINATES: "MALFORMED_COORDINATES",
MALFORMED_KERNING_VALUE: "MALFORMED_KERNING_VALUE",
MISPLACED_HEAD_MARKER: "MISPLACED_HEAD_MARKER",
MISPLACED_CHARACTER_INDICATOR: "MISPLACED_CHARACTER_INDICATOR",
MISPLACED_WORD_INDICATOR: "MISPLACED_WORD_INDICATOR",
MISPLACED_PART_OPTION: "MISPLACED_PART_OPTION",
MISPLACED_CHARACTER_OPTION: "MISPLACED_CHARACTER_OPTION",
MISPLACED_GROUP_OPTION: "MISPLACED_GROUP_OPTION",
MISPLACED_GLOBAL_OPTION: "MISPLACED_GLOBAL_OPTION",
MISPLACED_SPACE_DECORATION: "MISPLACED_SPACE_DECORATION",
MISPLACED_INDICATOR_PART: "MISPLACED_INDICATOR_PART",
MISPLACED_SPACE: "MISPLACED_SPACE",
MULTIPLE_HEAD_MARKERS: "MULTIPLE_HEAD_MARKERS",
MULTIPLE_OPTION_BRACKETS: "MULTIPLE_OPTION_BRACKETS",
DUPLICATE_KEY: "DUPLICATE_KEY",
UNKNOWN_CODE: "UNKNOWN_CODE",
DROPPED_WORD_INDICATOR: "DROPPED_WORD_INDICATOR",
UNSUPPORTED_TEXT_BLOCKS: "UNSUPPORTED_TEXT_BLOCKS",
NOOP_INDICATOR_MUTATION: "NOOP_INDICATOR_MUTATION",
COMPOSITE_AS_PART: "COMPOSITE_AS_PART",
WORD_AS_PART: "WORD_AS_PART",
NON_INDICATOR_AS_WORD_INDICATOR: "NON_INDICATOR_AS_WORD_INDICATOR",
NON_INDICATOR_AS_CHARACTER_INDICATOR: "NON_INDICATOR_AS_CHARACTER_INDICATOR"
}), y = {
thing: "B97",
abstract: "B6436"
};
//#endregion
//#region src/lib/bliss-shape-creators.js
function b(e) {
return !!o[`X${e}`];
}
function x(e) {
return {
getPath: (t, n, r = {}) => {
let i = u(r.color || "#000000"), a = u(e);
return `"/><text x="${t - .3}" y="${n + 16}" font-family="Liberation Sans, sans-serif" font-size="5.7" stroke-width="0" fill="${i}">${a}</text><path d="`;
},
width: [...e].reduce((e, t) => {
let n = o[`X${t}`];
return e + (n ? n.width : 2.5);
}, 0) + (e.length - 1) * .7640449438202247,
y: 11,
height: 5,
isExternalGlyph: !0,
...e.length === 1 ? {
char: e,
glyphCode: `XTXT_${e}`
} : { codeName: `XTXT_${e}` }
};
}
function S() {
return {
getPath: () => "",
width: 0,
height: 0
};
}
function C(e) {
return {
getPath: () => "",
width: 0,
height: 0,
advanceWidth: e
};
}
function w(e) {
let t = e;
return {
getPath: (n, r) => `M${0 + n},${t + r}a${e},${e} 0 1,1 ${e * 2},0a${e},${e} 0 1,1 ${-e * 2},0`,
width: e * 2,
height: e * 2
};
}
function T(e, t) {
let { initialX: n, initialY: r, endX: i, endY: a, sweepFlag: o, width: s, height: c } = {
N: {
initialX: 0,
initialY: e,
endX: e * 2,
endY: 0,
sweepFlag: 1,
width: e * 2,
height: e
},
S: {
initialX: 0,
initialY: 0,
endX: e * 2,
endY: 0,
sweepFlag: 0,
width: e * 2,
height: e
},
W: {
initialX: e,
initialY: 0,
endX: 0,
endY: e * 2,
sweepFlag: 0,
width: e,
height: e * 2
},
E: {
initialX: 0,
initialY: 0,
endX: 0,
endY: e * 2,
sweepFlag: 1,
width: e,
height: e * 2
}
}[t];
return {
getPath: (t, s) => `M${n + t},${r + s}a${e},${e} 0 1,${o} ${i},${a}`,
width: s,
height: c
};
}
function E(e, t) {
let { initialX: n, initialY: r, endX: i, endY: a, sweepFlag: o } = {
NW: {
initialX: 0,
initialY: e,
endX: e,
endY: -e,
sweepFlag: 1
},
NE: {
initialX: 0,
initialY: 0,
endX: e,
endY: e,
sweepFlag: 1
},
SW: {
initialX: 0,
initialY: 0,
endX: e,
endY: e,
sweepFlag: 0
},
SE: {
initialX: 0,
initialY: e,
endX: e,
endY: -e,
sweepFlag: 0
}
}[t];
return {
getPath: (t, s) => `M${n + t},${r + s}a${e},${e} 0 0,${o} ${i},${a}`,
width: e,
height: e
};
}
function D(e, t) {
let { initialX: n, initialY: r, endX: i, endY: a, sweepFlag: o } = {
NW: {
initialX: e,
initialY: 0,
endX: -e,
endY: e,
sweepFlag: 1
},
NE: {
initialX: e * 2,
initialY: e,
endX: -e,
endY: -e,
sweepFlag: 1
},
SW: {
initialX: 0,
initialY: e,
endX: e,
endY: e,
sweepFlag: 1
},
SE: {
initialX: e,
initialY: e * 2,
endX: e,
endY: -e,
sweepFlag: 1
}
}[t];
return {
getPath: (t, s) => `M${n + t},${r + s}a${e},${e} 0 1,${o} ${i},${a}`,
width: e * 2,
height: e * 2
};
}
function O(e, t) {
let n = e * 5 / 8 / 2, { initialX: r, initialY: i, endX: a, endY: o, firstSweepFlag: s, secondSweepFlag: c, width: l, height: u } = {
N: {
initialX: 0,
initialY: e / 8,
endX: e / 2,
endY: 0,
firstSweepFlag: 1,
secondSweepFlag: 0,
width: e,
height: e / 4
},
S: {
initialX: 0,
initialY: e / 8,
endX: e / 2,
endY: 0,
firstSweepFlag: 0,
secondSweepFlag: 1,
width: e,
height: e / 4
},
W: {
initialX: e / 8,
initialY: 0,
endX: 0,
endY: e / 2,
firstSweepFlag: 0,
secondSweepFlag: 1,
width: e / 4,
height: e
},
E: {
initialX: e / 8,
initialY: 0,
endX: 0,
endY: e / 2,
firstSweepFlag: 1,
secondSweepFlag: 0,
width: e / 4,
height: e
}
}[t];
return {
getPath: (e, t) => `M${r + e},${i + t}a${n},${n} 0 0,${s} ${a},${o}a${n},${n} 0 0,${c} ${a},${o}`,
width: l,
height: u
};
}
function k(e, t) {
let n = e * 5 / 8, { initialX: r, initialY: i, endX: a, endY: o, sweepFlag: s, width: c, height: l } = {
N: {
initialX: 0,
initialY: e / 4,
endX: e,
endY: 0,
sweepFlag: 1,
width: e,
height: e / 4
},
S: {
initialX: 0,
initialY: 0,
endX: e,
endY: 0,
sweepFlag: 0,
width: e,
height: e / 4
},
W: {
initialX: e / 4,
initialY: 0,
endX: 0,
endY: e,
sweepFlag: 0,
width: e / 4,
height: e
},
E: {
initialX: 0,
initialY: 0,
endX: 0,
endY: e,
sweepFlag: 1,
width: e / 4,
height: e
}
}[t];
return {
getPath: (e, t) => `M${r + e},${i + t}a${n},${n} 0 0,${s} ${a},${o}`,
width: c,
height: l
};
}
function A(e, t) {
let n = e * 5 / 4, { initialX: r, initialY: i, endX: a, endY: o, sweepFlag: s } = {
NW: {
initialX: 0,
initialY: e / 2,
endX: e,
endY: -e / 2,
sweepFlag: 1
},
NE: {
initialX: 0,
initialY: 0,
endX: e,
endY: e / 2,
sweepFlag: 1
},
SW: {
initialX: 0,
initialY: 0,
endX: e,
endY: e / 2,
sweepFlag: 0
},
SE: {
initialX: 0,
initialY: e / 2,
endX: e,
endY: -e / 2,
sweepFlag: 0
}
}[t];
return {
getPath: (e, t) => `M${r + e},${i + t}a${n},${n} 0 0,${s} ${a},${o}`,
width: e,
height: e / 2
};
}
function j(e, t) {
let n = e * 5 / 4, { initialX: r, initialY: i, endX: a, endY: o, sweepFlag: s } = {
NW: {
initialX: e / 2,
initialY: 0,
endX: -e / 2,
endY: e,
sweepFlag: 0
},
NE: {
initialX: 0,
initialY: 0,
endX: e / 2,
endY: e,
sweepFlag: 1
},
SW: {
initialX: 0,
initialY: 0,
endX: e / 2,
endY: e,
sweepFlag: 0
},
SE: {
initialX: e / 2,
initialY: 0,
endX: -e / 2,
endY: e,
sweepFlag: 1
}
}[t];
return {
getPath: (e, t) => `M${r + e},${i + t}a${n},${n} 0 0,${s} ${a},${o}`,
width: e / 2,
height: e
};
}
function M(e) {
return {
getPath: (t, n) => `M${t},${n}v${e}`,
width: 0,
height: e
};
}
function N(e) {
return {
getPath: (t, n) => `M${t},${n}h${e}`,
width: e,
height: 0
};
}
function P(e, t) {
return {
getPath: (n, r) => `M${n},${r + t}l${e},${-t}`,
width: e,
height: t
};
}
function F(e, t) {
return {
getPath: (n, r) => `M${n},${r}l${e},${t}`,
width: e,
height: t
};
}
function I(e, t) {
let n = e / 2 * (1 - Math.SQRT1_2), r = n, { initialX: i, initialY: a, endX: o, endY: s } = {
NW: {
initialX: 0,
initialY: 0,
endX: n,
endY: r
},
NE: {
initialX: e - n,
initialY: r,
endX: n,
endY: -r
},
SW: {
initialX: 0,
initialY: e,
endX: n,
endY: -r
},
SE: {
initialX: e - n,
initialY: e - r,
endX: n,
endY: r
}
}[t];
return {
getPath: (e, t) => `M${i + e},${a + t}l${o},${s}`,
width: e,
height: e
};
}
function L(e) {
let t = e * 2 * Math.SQRT1_2, n = t;
return {
getPath: (r, i) => `M${e - t / 2 + r},${e + n / 2 + i}l${t},${-n}`,
width: e * 2,
height: e * 2
};
}
function ee(e) {
let t = e * 2 * Math.SQRT1_2, n = t;
return {
getPath: (r, i) => `M${e - t / 2 + r},${e - n / 2 + i}l${t},${n}`,
width: e * 2,
height: e * 2
};
}
function te(e) {
let t = e / 4;
return {
getPath: (n, r) => `M${n},${r + t}a${t},${t} 0 1,1 ${t * 2},0a${t},${t} 0 1,1 ${t * 2},0q0,${e * 3 / 8} ${-(e / 2)},${e * 3 / 4}q${-(e / 2)},${-(e * 3 / 8)} ${-(e / 2)},${-(e * 3 / 4)}`,
width: e,
height: e
};
}
function R(e) {
let t = e / 4;
return {
getPath: (n, r) => `M${n},${r + t}a${t},${t} 0 1,1 ${t * 2},0q0,${e * 3 / 8} ${-(e / 2)},${e * 3 / 4}`,
width: e / 2,
height: e
};
}
function z(e = .5, t = .333) {
let n = {
getDotData: (n, r, i = {
baseStrokeWidth: e,
extraDotWidth: t
}) => {
let a = i.dotWidth === void 0 ? (i.baseStrokeWidth + i.extraDotWidth) / 2 : i.dotWidth / 2, o = a / 2;
return {
closePath: "\"/>",
openWrapper: `<g stroke-width="${a}">`,
openDotPath: "<path d=\"",
dotPath: `M${n - o},${r}a${o},${o} 0 1,1 ${o * 2},0a${o},${o} 0 1,1 ${-o * 2},0`,
closeDotPath: "\"/>",
closeWrapper: "</g>",
openPath: "<path d=\""
};
},
width: 0,
height: 0
};
return n.getPath = (r, i, a = {
baseStrokeWidth: e,
extraDotWidth: t
}) => {
let { closePath: o, openWrapper: s, openDotPath: c, dotPath: l, closeDotPath: u, closeWrapper: d, openPath: f } = n.getDotData(r, i, a);
return `${o}${s}${c}${l}${u}${d}${f}`;
}, n;
}
function ne(e = .5, t = .333) {
let n = {
getCommaData: (n, r, i = {
baseStrokeWidth: e,
extraDotWidth: t
}) => {
let a = i.dotWidth === void 0 ? (i.baseStrokeWidth + i.extraDotWidth) / 2 : i.dotWidth / 2, o = a / 2, s = a * 2 / 3, c = s + n, l = r, u = s * -2, d = s * 4, f = s / 4, p = s * 2.5;
return {
closePath: "\"/>",
openDotWrapper: `<g stroke-width="${a}">`,
openDotPath: "<path d=\"",
dotPath: `M${n - o},${r}a${o},${o} 0 1,1 ${o * 2},0a${o},${o} 0 1,1 ${-o * 2},0`,
closeDotPath: "\"/>",
closeDotWrapper: "</g>",
openCommaWrapper: `<g stroke-width="${s}">`,
openCommaPath: "<path d=\"",
commaPath: `M${c},${l}q${f},${p} ${u},${d}`,
closeCommaPath: "\"/>",
closeCommaWrapper: "</g>",
openPath: "<path d=\""
};
},
width: 0,
height: (e + t) * 4 / 3
};
return n.getPath = (r, i, a = {
baseStrokeWidth: e,
extraDotWidth: t
}) => {
let { closePath: o, openDotWrapper: s, openDotPath: c, dotPath: l, closeDotPath: u, closeDotWrapper: d, openCommaWrapper: f, openCommaPath: p, commaPath: m, closeCommaPath: h, closeCommaWrapper: g, openPath: _ } = n.getCommaData(r, i, a);
return `${o}${s}${c}${l}${u}${d}${f}${p}${m}${h}${g}${_}`;
}, n;
}
function re(e) {
let t = e * 5 / 8, n = e, r = e / 4, i = -e / 2, a = e / 4, o = -e / 2;
return {
getPath: (e, s) => `M${0 + e},${n + s}a${t},${t} 0 0,1 ${r},${i}a${t},${t} 0 0,0 ${a},${o}`,
width: e / 2,
height: e
};
}
function ie(e) {
let t = o[`X${e}`], n = -t.leftSideBearing, r = t?.getPath() || "", i = (e) => parseFloat(e.toFixed(4)), a = t.height || 0;
return {
getPath: (e, t, a = {}) => {
let o = r.replace(/M(-?\d+\.?\d*),(-?\d+\.?\d*)/g, (r, a, o) => `M${i(parseFloat(a) + e + n)},${i(parseFloat(o) + t + -.015)}`);
return `"/>${`<path stroke="none" fill="${a.color || "#000000"}" d="`}${o}"/><path d="`;
},
width: t.width || 0,
y: 11,
height: a - 11,
isExternalGlyph: !0,
char: t.char,
glyphCode: `X${t.char}`,
kerningRules: { ...t.kerningRules }
};
}
//#endregion
//#region src/lib/bliss-glyph-data.js
var B = {
B9: -1,
B10: -1,
B11: -1,
B12: -1,
B13: -1,
B14: -1,
B15: -1,
B16: -1,
B17: -1,
B18: -1
}, V = {
B19: -1,
B20: -1,
B21: -1,
B22: -1,
B23: -1,
B24: -1,
B25: -1,
B26: -1,
B27: -1,
B28: -1
}, ae = {
B1: {
codeString: "VL6:0,8;DOT:0,16",
shrinksPrecedingWordSpace: !0
},
B2: {
codeString: "C2:0,8;DL4-8N:0,8;C2:2,14",
shrinksPrecedingWordSpace: !0
},
B3: {
codeString: "OC4SW:0,8;VL2:2,12;DOT:2,16",
shrinksPrecedingWordSpace: !0
},
B4: {
codeString: "DOT:0,16",
shrinksPrecedingWordSpace: !0
},
B5: {
codeString: "COMMA:0,16",
shrinksPrecedingWordSpace: !0
},
B6: {
codeString: "DOT:0,14;DOT:0,16",
shrinksPrecedingWordSpace: !0
},
B7: {
codeString: "COMMA:0,8",
shrinksPrecedingWordSpace: !0
},
B8: { codeString: "C2:0,8" },
B9: {
codeString: "HC2N:0,12;VL2:0,13;HC2S:0,15;VL2:2,13",
kerningRules: B
},
B10: {
codeString: "DL1N:0,12;VL4:1,12;HL2:0,16",
kerningRules: B
},
B11: {
codeString: "HC2N:0,12;DL2-3N:0,13;HL2:0,16",
kerningRules: B
},
B12: {
codeString: "OC2SW:0,12;OC2NW:0,14",
kerningRules: B
},
B13: {
codeString: "VL2:0,12;HL2:0,14;VL4:2,12",
kerningRules: B
},
B14: {
codeString: "HL2:0,12;VL2:0,12;HL1:0,14;HL1:0,16;HC2E:1,14",
kerningRules: B
},
B15: {
codeString: "HC2N:0,12;VL2:0,13;C2:0,14",
kerningRules: B
},
B16: {
codeString: "HL2:0,12;DL1-4N:1,12",
kerningRules: B
},
B17: {
codeString: "C2:0,12;C2:0,14",
kerningRules: B
},
B18: {
codeString: "C2:0,12;HC2S:0,15;VL2:2,13",
kerningRules: B
},
B19: {
codeString: "HC1N:0,14;VL1:0,14.5;HC1S:0,15.5;VL1:1,14.5",
kerningRules: V
},
B20: {
codeString: "DL.5N:0,14;VL2:0.5,14;HL1:0,16",
kerningRules: V
},
B21: {
codeString: "HC1N:0,14;DL1-1.5N:0,14.5;HL1:0,16",
kerningRules: V
},
B22: {
codeString: "OC1SW:0,14;OC1NW:0,15",
kerningRules: V
},
B23: {
codeString: "VL1:0,14;HL1:0,15;VL2:1,14",
kerningRules: V
},
B24: {
codeString: "HL1:0,14;VL1:0,14;HL.5:0,15;HL.5:0,16;HC1E:0.5,15",
kerningRules: V
},
B25: {
codeString: "HC1N:0,14;VL1:0,14.5;C1:0,15",
kerningRules: V
},
B26: {
codeString: "HL1:0,14;DL.5-2N:0.5,14",
kerningRules: V
},
B27: {
codeString: "C1:0,14;C1:0,15",
kerningRules: V
},
B28: {
codeString: "C1:0,14;HC1S:0,15.5;VL1:1,14.5",
kerningRules: V
},
B81: {
codeString: "AA2N:0,4",
isIndicator: !0,
indicatorRole: "verbal",
name: "INDICATOR ACTION"
},
B82: {
codeString: "AA2E:0,4",
isIndicator: !0,
indicatorRole: "verbal",
name: "INDICATOR ACTIVE"
},
B83: {
codeString: "OC1SW:0,4;VL.25:0.5,5;SDOT:0.5,6",
isIndicator: !0,
indicatorRole: "verbal",
width: 1,
name: "INDICATOR PRESENT CONDITIONAL"
},
B84: {
codeString: "B86;SDOT:3,4",
isIndicator: !0,
indicatorRole: "adjectival",
anchorOffsetX: -.5,
width: 3,
name: "INDICATOR DESCRIPTION AFTER THE FACT"
},
B85: {
codeString: "SDOT:0,4;B86:1,0",
isIndicator: !0,
indicatorRole: "adjectival",
anchorOffsetX: .5,
width: 3,
name: "INDICATOR DESCRIPTION BEFORE THE FACT"
},
B86: {
codeString: "AA2S:0,4",
isIndicator: !0,
indicatorRole: "adjectival",
name: "INDICATOR DESCRIPTION"
},
B87: {
codeString: "HW2W:0,4",
isIndicator: !0,
indicatorRole: "verbal",
width: .5,
name: "INDICATOR FUTURE"
},
B88: {
codeString: "B83;B87:2,0",
isIndicator: !0,
indicatorRole: "verbal",
width: 2.5,
name: "INDICATOR FUTURE CONDITIONAL"
},
B89: {
codeString: "B91;B87:3,0",
isIndicator: !0,
indicatorRole: "verbal",
width: 3.5,
name: "INDICATOR FUTURE PASSIVE"
},
B90: {
codeString: "B91;B88:3,0",
isIndicator: !0,
indicatorRole: "verbal",
width: 5.5,
name: "INDICATOR FUTURE PASSIVE CONDITIONAL"
},
B91: {
codeString: "AA2W:0,4",
isIndicator: !0,
indicatorRole: "verbal",
name: "INDICATOR PASSIVE"
},
B92: {
codeString: "HW2E:0,4",
isIndicator: !0,
indicatorRole: "verbal",
width: .5,
name: "INDICATOR PAST"
},
B93: {
codeString: "B83;B92:2,0",
isIndicator: !0,
indicatorRole: "verbal",
width: 2.5,
name: "INDICATOR PAST CONDITIONAL"
},
B94: {
codeString: "B91;B93:3,0",
isIndicator: !0,
indicatorRole: "verbal",
width: 5.5,
name: "INDICATOR PAST PASSIVE CONDITIONAL"
},
B95: {
codeString: "B91;B92:3,0",
isIndicator: !0,
indicatorRole: "verbal",
width: 3.5,
name: "INDICATOR PAST PASSIVE"
},
B96: {
codeString: "B91;B83:3,0",
isIndicator: !0,
indicatorRole: "verbal",
width: 4,
name: "INDICATOR PRESENT PASSIVE CONDITIONAL"
},
B97: {
codeString: "S2:0,4",
isIndicator: !0,
semanticIndicator: "thing",
indicatorRole: "nominal",
name: "INDICATOR THING"
},
B98: {
codeString: "B97;B99:3,0",
isIndicator: !0,
semanticIndicator: "thing",
indicatorRole: "nominal",
width: 5,
name: "INDICATOR PLURAL THING"
},
B99: {
codeString: "DC2:0,4",
isIndicator: !0,
indicatorRole: "nominal",
name: "INDICATOR PLURAL"
},
B100: { codeString: "DL2S:0,11" },
B101: {
codeString: "B270;B297:2,0",
anchorOffsetX: 1
},
B102: { codeString: "RA4E:0,10" },
B103: { codeString: "B239;VL6:2,8;HL4:2,8;VL6:6,8" },
B104: { codeString: "VL6:2,10;HL4:0,12;HL4:0,14" },
B105: { codeString: "AA8N:0,8" },
B106: { codeString: "AA4N:0,12" },
B107: { codeString: "SC8:0,8" },
B108: { codeString: "B325;HL4:0,8;HL4:0,16" },
B109: {
codeString: "B428;B270:2,0",
anchorOffsetX: -1
},
B110: { codeString: "B270;B270:2,0" },
B111: { codeString: "RA4W:0,10;RA4W:2,10" },
B112: { codeString: "HW4E:0,12" },
B113: { codeString: "B335;B335:0,4" },
B114: { codeString: "B597;B473:4,0" },
B115: { codeString: "B708;B700:2,0" },
B116: { codeString: "RA8S:0,8;VL4:4,12;HL8:0,16" },
B117: { codeString: "B291;B459" },
B118: { codeString: "Xa;Xb:3.2354,0;Xc:6.4708,0" },
B119: {
codeString: "P4W:0,6;P4E:4,10;P4W:0,14",
anchorOffsetY: -2
},
B120: { codeString: "SC4:0,10" },
B121: { codeString: "DL8N:0,8;HL8:0,16" },
B122: { codeString: "HL8:0,12;AA4N:0,12;AA4N:4,12" },
B123: { codeString: "B122;B737:4,2" },
B124: {
codeString: "HC4W:0,8;B122:2,0",
anchorOffsetX: 1
},
B125: { codeString: "B122;B737:4,0" },
B126: {
codeString: "B122;HC2N:0,15;HC2N:4,15;HC2N:8,15",
anchorOffsetX: -1
},
B127: { codeString: "B122;B695:0,6" },
B128: {
codeString: "P4E:0,14;B514:3,0",
anchorOffsetX: 1.5
},
B129: { codeString: "B291;B699:3,0" },
B130: { codeString: "B281;B100:3,0" },
B131: { codeString: "HC4N:0,10;HC4N:4,10;HC8S:0,12;QC4NW:4,8" },
B132: { codeString: "RA4SW:0,8" },
B133: { codeString: "B212;HL4:0,10;VL2:4,10" },
B134: { codeString: "B255;B270" },
B135: {
codeString: "RA4E:0,10;B270:4,0",
anchorOffsetX: -1
},
B136: { codeString: "LARRC8SC:0,8;B5840:3,0" },
B137: { codeString: "B257;B11:7,0;B500:8,0" },
B138: {
codeString: "QC4NW:3,4;VQW4NW:1,8;VQW4NE:3,8;HW4W:0,12;HW4E:5,12;B528:2.5,0;HL4:1,16",
anchorOffsetX: -.5,
anchorOffsetY: -4
},
B139: {
codeString: "VL4:0,10;P4E:8,10",
anchorOffsetX: -1
},
B140: { codeString: "C4:0,12;VL4:4,12;HL4:4,14;VL4:8,12" },
B141: { codeString: "C4:0,12;AA4W:4,12" },
B142: { codeString: "C4:0,12;AT4W:4,12" },
B143: {
codeString: "P4E:0,6;B518:3,0",
anchorOffsetX: 1.5,
anchorOffsetY: -1
},
B144: { codeString: "B335;B145:0,4" },
B145: { codeString: "LARR8W:0,10" },
B146: { codeString: "VL4:0,8;HL8:0,8;VL4:8,8;HC8S:0,12" },
B147: { codeString: "HC4N:2,10;R84:0,12" },
B148: { codeString: "C4:0,12;HL4:0,14" },
B149: {
codeString: "C8:0,4;QC4SE:0,12",
anchorOffsetY: -4
},
B150: {
codeString: "QC4NW:0,4;HW8E:0,8;HC8E:0,8",
anchorOffsetY: -4
},
B151: { codeString: "B612;B428:12,0" },
B152: { codeString: "B122;B708" },
B153: { codeString: "B281;B695:8,4" },
B154: { codeString: "B801;C4:1,10" },
B155: {
codeString: "B1139;P4W:7,16",
anchorOffsetX: -.5
},
B156: { codeString: "VL8:0,8;HL8:0,12;DL4N:4,8;VL8:8,8" },
B157: { codeString: "B400;HC8N:2,8;HL8:2,12" },
B158: {
codeString: "B270;B428:2,0",
anchorOffsetX: 1
},
B159: { codeString: "B428;B335" },
B160: { codeString: "B120:0,4" },
B161: {
codeString: "C4:0,10;QC4NE:4,12",
anchorOffsetX: -2
},
B162: { codeString: "B428;B270:2,0;B428:4,0" },
B163: { codeString: "B708;AA2N:3,12" },
B164: { codeString: "B163;B695:0,6" },
B165: { codeString: "HW8W:0,8;HL8:2,8;HL2:2,16;HL2:8,16;HW8E:10,8;B140:2,-2;LARR4S:4,16" },
B166: { codeString: "B548;B622:3,0" },
B167: { codeString: "B712;B509" },
B168: { codeString: "S4:0,10;DL2N:0,8;HL4:2,8;DL2N:4,8;VL4:6,8;DL2N:4,12" },
B169: { codeString: "B639;P4N:2,13" },
B170: { codeString: "VL4:4,8;HL8:0,12;B239" },
B171: { codeString: "HW8W:0,8;HL8:2,8;HL8:2,16;HW8E:10,8" },
B172: { codeString: "DOT:0,8;VL4:0,10;DOT:0,16" },
B173: { codeString: "B497;OR48W:4,8" },
B174: { codeString: "VL4:2,8;C4:0,12" },
B175: { codeString: "B291;P4N:2,17" },
B176: { codeString: "C4:0,10;C4:4,10;RA4N:2,14" },
B177: {
codeString: "S8:0,8;DL4N:0,4;HL8:4,4;DL4N:8,4;VL8:12,4;DL4N:8,12",
anchorOffsetY: -4
},
B178: { codeString: "C4:0,8;B106" },
B179: {
codeString: "B666;P4W:9,10",
anchorOffsetX: -1.5
},
B180: { codeString: "HW4W:0,12;HL8:1,12;HL8:1,16;HW4E:9,12" },
B181: { codeString: "B171;P4N:2,12;P4N:6,12" },
B182: { codeString: "B1154;HC8N:4,12;B1154:12,0" },
B183: { codeString: "OR84S:0,12;VL8:4,8" },
B184: { codeString: "OR84N:0,8;VL8:4,8" },
B185: {
codeString: "B345;P4W:5,10",
anchorOffsetX: -1.5
},
B186: { codeString: "B123;HC4N:0,10" },
B187: {
codeString: "B1137;P4W:7,16",
anchorOffsetX: -.5
},
B188: { codeString: "B892;DL2N:9,9;DL2S:10,10" },
B189: { codeString: "B884;B188:10,0;HL10:12,16" },
B190: { codeString: "QC4SE:0,10;VL6:4,10;QC4SW:4,10" },
B191: { codeString: "B451:2,0;B239" },
B192: { codeString: "HL4:0,12;VL4:4,10" },
B193: { codeString: "HW8W:0,8;HW8E:2,8;HW8W:4,8;HW8E:6,8" },
B194: {
codeString: "P4E:0,10;B518:3,0",
anchorOffsetX: 1.5
},
B195: { codeString: "RA4W:0,10" },
B196: { codeString: "B422;HC4N:2,10" },
B197: {
codeString: "B391;HC4N:0,10;HC4N:4,10",
anchorOffsetX: -3
},
B198: { codeString: "B291;B424" },
B199: {
codeString: "VL4:0,8;B688;RA8N:0,4;VL4:8,8",
anchorOffsetY: -4
},
B200: { codeString: "C4:0,8;VL4:0,10;VL4:4,10;HC4S:0,14" },
B201: {
codeString: "B700:3,0;B939",
anchorOffsetX: 1
},
B202: { codeString: "B688;DL2N:5,9;DL2S:6,10" },
B203: { codeString: "QC4NW:4,12;B281;AA4S:2,16" },
B204: {
codeString: "B1099;LARR4E:4,8",
anchorOffsetX: -2
},
B205: { codeString: "HL14:0,8;VL8:0,8;C4:2,10;HL6:4,10;C4:8,10;VL8:14,8;HL14:0,16" },
B206: { codeString: "RT8E:0,8" },
B207: { codeString: "B644;DOT:2,14" },
B208: { codeString: "B572;P4N:2,9" },
B209: { codeString: "B1119;VL6:2,8;VL8:4,8;VL6:6,8;HC4S:2,14" },
B210: { codeString: "HC4N:0,10;VL2:0,12;HC4S:0,14;VL10:2,8" },
B211: { codeString: "B265;B357:6,0" },
B212: { codeString: "VL8:0,8;HL4:0,12;VL4:4,12" },
B213: { codeString: "B423;B695" },
B214: {
codeString: "B306;P4W:9,10",
anchorOffsetX: -1.5
},
B215: { codeString: "RA4NE:0,12;QC4SW:0,12" },
B216: {
codeString: "DL8N:0,8;VL4:8,8;B651:6,2",
anchorOffsetX: 3
},
B217: { codeString: "B338;B528:1.5,0;HW4W:5,8;C4:4,12;B528:5.5,0" },
B218: { codeString: "B171;P4N:4,12" },
B219: { codeString: "S8:0,8;HL8:0,12;DOT:4,10;DOT:4,14" },
B220: { codeString: "C4:0,8;B956" },
B221: {
codeString: "B1132;P4W:9,6",
anchorOffsetX: -1.5
},
B222: { codeString: "B306;P4N:2,17" },
B223: { codeString: "B368:0,-4;HL4:0,12;B303:0,2" },
B224: { codeString: "B1085;P4N:4,17" },
B225: { codeString: "B281;B433:2,0" },
B226: {
codeString: "B126;P4W:11,14",
anchorOffsetX: -2.5
},
B227: {
codeString: "B978;P4W:8,12",
anchorOffsetX: -1
},
B228: { codeString: "VL8:2,8;VL8:6,8;HL8:0,10;HL8:0,14" },
B229: { codeString: "B228;B548" },
B230: {
codeString: "B597;W8N:0,7",
anchorOffsetY: -1
},
B231: { codeString: "OR84N:0,12;VL4:4,12" },
B232: { codeString: "C4:0,10;C4:2,10" },
B233: {
codeString: "C2:0,4;C2:1,4",
anchorOffsetY: -4
},
B234: { codeString: "B622:0,4;B255:1,0" },
B235: { codeString: "HC4N:0,8;HC4N:4,8;VL6:0,10;VL6:4,10;VL6:8,10;HL8:0,16" },
B236: {
codeString: "W8S:0,11;B285:6,0",
anchorOffsetX: 3
},
B237: { codeString: "RA8N:0,8;HC8S:0,12" },
B238: {
codeString: "B447;B447:0,-4",
anchorOffsetY: -4
},
B239: { codeString: "HC8S:0,12" },
B240: { codeString: "B687;DOT:4,10;DOT:4,12;DOT:4,14" },
B241: {
codeString: "B572;P4W:9,14",
anchorOffsetX: -1.5
},
B242: { codeString: "DL4S:0,8;OR84S:4,12" },
B243: { codeString: "B281;B322:4,0" },
B244: { codeString: "B281;B666" },
B245: { codeString: "B433;B710:4,0" },
B246: { codeString: "B433;B548:2,0;B710:8,0" },
B247: { codeString: "AT8N:0,8" },
B248: { codeString: "VL8:2,8;HL4:0,10" },
B249: { codeString: "B171;P4N:4,17" },
B250: { codeString: "RA4N:0,8;B651;RA4S:0,14" },
B251: {
codeString: "B352;HC4E:4,10",
anchorOffsetX: -1
},
B252: { codeString: "S8:0,8;DOT:2,12;VL8:4,8;DOT:6,12" },
B253: {
codeString: "B161;C4:0,14;HW4N:4,15",
anchorOffsetX: -2
},
B254: { codeString: "OS8S:0,8;QC4SE:0,8;QC4SW:4,8" },
B255: { codeString: "HC8E:0,8" },
B256: { codeString: "B247;B401:4,0" },
B257: { codeString: "B548;B314:2,0" },
B258: { codeString: "B281;B636" },
B259: { codeString: "B423;B939" },
B260: { codeString: "B447;B292" },
B261: {
codeString: "B213;LARR8E:8,10",
anchorOffsetX: -4
},
B262: { codeString: "B939;B578:2,0" },
B263: { codeString: "C4:0,12;HW4E:5,12" },
B264: { codeString: "B939;B562" },
B265: { codeString: "DL4S:0,12;HL8:4,16;DL4N:12,12" },
B266: { codeString: "DOT:4,10;HL8:0,12;DOT:4,14" },
B267: {
codeString: "VL12:2,6;OC4SE:0,8;OC4NW:0,12",
anchorOffsetY: -2
},
B268: {
codeString: "HC4E:0,14;B851:2,0",
anchorOffsetX: 1
},
B269: { codeString: "OS8S:0,8" },
B270: { codeString: "DOT:0,12" },
B271: { codeString: "LARR8S:0,8" },
B272: { codeString: "RA4SW:0,12;DL8N:0,8" },
B273: { codeString: "DL8S:0,8;RA4SE:4,12" },
B274: {
codeString: "B219;P4W:9,8",
anchorOffsetX: -1.5
},
B275: { codeString: "B695;B329:2,0" },
B276: {
codeString: "B391;HC4N:2,10",
anchorOffsetX: -3
},
B277: {
codeString: "B426;B270:4,-6",
anchorOffsetY: -2
},
B278: { codeString: "E:0,8" },
B279: { codeString: "B651;B278:2,0" },
B280: { codeString: "DL8S:0,8;C8:0,8" },
B281: { codeString: "HL8:0,16" },
B282: { codeString: "B636;P4E:5,10" },
B283: { codeString: "B639;P4S:6,9" },
B284: { codeString: "B559;OR48W:0,8" },
B285: { codeString: "C8:0,8;HW4N:2,11;HW4S:2,12" },
B286: { codeString: "B270;RA4E:0,10" },
B287: {
codeString: "P4E:0,10;B132:3,0",
anchorOffsetX: 1.5
},
B288: { codeString: "DL4N:0,8;HL4:0,12;DL4N:0,12" },
B289: { codeString: "DL8-4S:0,10;VL4:8,10;DL8-4S:8,10" },
B290: { codeString: "B171;B894:4,0" },
B291: { codeString: "S8:0,8" },
B292: { codeString: "B335;B428:8,0" },
B293: { codeString: "B289;B636:4,0" },
B294: { codeString: "B712;B695" },
B295: { codeString: "B518;DL2N:0,10" },
B296: {
codeString: "VL2:2,6;HW8W:0,8;HW8E:2,8",
anchorOffsetY: -2
},
B297: { codeString: "AA8S:0,8" },
B298: { codeString: "B281;VQW4NE:4,12;QC4NE:4,12" },
B299: { codeString: "B894;B1154" },
B300: { codeString: "B666;QC4SE:0,10;QC4SW:4,10" },
B301: { codeString: "B447;B1042:2,0" },
B302: {
codeString: "LARR4W:0,10;LARR4N:4,6;B651:4,0;LARR4E:8,10;LARR4S:4,14",
anchorOffsetY: -2
},
B303: { codeString: "C4:0,10;DOT:2,12" },
B304: {
codeString: "B1138;P4W:5,6",
anchorOffsetX: -1.5,
anchorOffsetY: -2
},
B305: {
codeString: "B303;P4S:0,7",
anchorOffsetY: -1
},
B306: { codeString: "B376;DOT:2,10;DOT:6,10" },
B307: { codeString: "B447;B299:2,0" },
B308: { codeString: "B393;B704:10,0" },
B309: { codeString: "B513;B548:2,0;B513:8,0" },
B310: { codeString: "HC8N:0,8;RA8S:0,12" },
B311: { codeString: "B548;B317" },
B312: { codeString: "B548;B433:2,0" },
B313: { codeString: "H:0,8" },
B314: { codeString: "AT4N:0,12" },
B315: {
codeString: "B1135;P4W:17,12",
anchorOffsetX: -1.5
},
B316: { codeString: "B171;B140:2,-2" },
B317: { codeString: "B357;B281" },
B318: {
codeString: "B374;P4W:5,6",
anchorOffsetX: -1.5,
anchorOffsetY: -1
},
B319: { codeString: "W8E:0,8" },
B320: { codeString: "B484;B319:3,0" },
B321: { codeString: "HC8S:0,12;HC8N:0,12" },
B322: { codeString: "VL8:0,8;OS4W:0,8" },
B323: { codeString: "B572;P4N:2,17" },
B324: { codeString: "B572;P4S:2,13" },
B325: { codeString: "C4:0,8;VL4:2,12" },
B326: {
codeString: "B1137;P4W:7,8",
anchorOffsetX: -.5
},
B327: { codeString: "B400;B708:2,0" },
B328: { codeString: "B597;B695" },
B329: { codeString: "B457;B1154" },
B330: {
codeString: "B418;P4S:8,13",
anchorOffsetX: -2
},
B331: { codeString: "P4N:0,8;P4S:0,14" },
B332: { codeString: "RA4E:0,10;RA4E:2,10" },
B333: {
codeString: "B306;P4S:2,7",
anchorOffsetY: -1
},
B334: { codeString: "DL6N:0,10;DL4S:2,10;DL2N:2,8;DL2N:6,12" },
B335: { codeString: "LARR8E:0,10" },
B336: { codeString: "B484;B313" },
B337: { codeString: "VL4:0,10;P4E:2,10" },
B338: {
codeString: "QC4NW:2,8;C4:0,12",
anchorOffsetX: -1
},
B339: { codeString: "B293;B291:4,0" },
B340: {
codeString: "B1141;P4W:7,8",
anchorOffsetX: -.5
},
B341: { codeString: "HW8W:0,8" },
B342: { codeString: "B392;B700;B700:4,0" },
B343: { codeString: "B239;B694" },
B344: { codeString: "B281;B325:2,0" },
B345: { codeString: "B678;C4:0,10" },
B346: {
codeString: "LARR4E:0,10;LARR4S:4,6;LARR4N:4,14;LARR4W:8,10",
anchorOffsetY: -2
},
B347: { codeString: "B106;B314:4,0" },
B348: { codeString: "B368;B457:0,-2" },
B349: { codeString: "B518;P4W:1,10" },
B350: {
codeString: "B122;VL8:8,4;HL4:8,4",
anchorOffsetX: -2,
anchorOffsetY: -4
},
B351: { codeString: "C4:0,8;B314" },
B352: { codeString: "OR48N:0,8" },
B353: { codeString: "B303;HC4N:4,10;B303:8,0" },
B354: { codeString: "OS8S:0,8;B148:2,0" },
B355: {
codeString: "AA8N:0,4;HL2:0,12;HL2:6,12;B247",
anchorOffsetY: -4
},
B356: { codeString: "B239;B651:2,0" },
B357: { codeString: "B366;B366:4,0" },
B358: { codeString: "B312;B500:8,0" },
B359: { codeString: "B312;B455:8,0" },
B360: { codeString: "B312;B312:8,0" },
B361: { codeString: "B455;B500:8,0" },
B362: { codeString: "B455;B455:8,0" },
B363: { codeString: "B455;B312:8,0" },
B364: { codeString: "B500;B500:8,0" },
B365: { codeString: "C4:0,10;C4:4,10;C4:2,14;QC4NW:4,8" },
B366: { codeString: "QC4NW:0,12" },
B367: { codeString: "B281;HL8:0,20;VL2:8,18" },
B368: { codeString: "DC4:0,12" },
B369: { codeString: "HL12:0,12;HC4S:1,12" },
B370: { codeString: "B394;B271:2,0" },
B371: { codeString: "HW2W:0,10;HW2W:2,10;HW2W:4,10" },
B372: {
codeString: "B1143;P4W:7,4",
anchorOffsetX: -.5,
anchorOffsetY: -3
},
B373: { codeString: "DL6N:0,10;DL4S:4,8" },
B374: { codeString: "DL4S:0,12;VL8:4,8" },
B375: { codeString: "B239;HL8:0,12;HC4N:2,10" },
B376: { codeString: "C8:0,8;VL4:4,10;HL4:2,14" },
B377: { codeString: "B132;VL8:4,8" },
B378: { codeString: "P4W:0,10;B319:3,0;P4E:6,10" },
B379: {
codeString: "B122:4,0;DL4S:0,8;DL4S:4,8;DL4S:8,8",
anchorOffsetX: 2
},
B380: {
codeString: "P4E:0,14;B418:3,0",
anchorOffsetX: -.5
},
B381: { codeString: "B983;B700:2,0" },
B382: {
codeString: "DL4-8N:0,8;B513:2,0",
anchorOffsetX: 1
},
B383: {
codeString: "RA4E:0,10;B270:4,0;B270:6,0",
anchorOffsetX: 2
},
B384: {
codeString: "B418;P4W:5,6",
anchorOffsetX: -2,
anchorOffsetY: -2
},
B385: {
codeString: "B127;DL4N:8,8;DL2S:12,8",
anchorOffsetX: -3
},
B386: { codeString: "B1154;B239:4,4;B1154:12,0" },
B387: { codeString: "HL8:0,12;RA4S:8,12" },
B388: {
codeString: "B454;P4W:9,14",
anchorOffsetX: -1.5
},
B389: { codeString: "HL8:0,12;HC4N:4,10;QC4SE:8,8;QC4NE:8,12" },
B390: {
codeString: "B123;P4W:9,8",
anchorOffsetX: -1.5
},
B391: {
codeString: "B122;DL4N:8,8;DL2S:12,8",
anchorOffsetX: -3
},
B392: { codeString: "B878;B548" },
B393: {
codeString: "B433;B548:2,0",
anchorOffsetX: 1
},
B394: { codeString: "B695;B651:2,0" },
B395: { codeString: "AT4S:0,12;HC4N:0,10" },
B396: {
codeString: "B418;QC4SE:0,16;QC4SE:8,16",
anchorOffsetX: -2
},
B397: { codeString: "B447;B271:2,0" },
B398: { codeString: "B291;B270:4,0" },
B399: { codeString: "VL4:0,10;HL4:0,12;R84:4,10;HL4:12,12" },
B400: { codeString: "AA4N:0,12;AA4N:4,12;AA4N:8,12" },
B401: { codeString: "VL3:0,10;DOT:0,14" },
B402: {
codeString: "B335;B291:4,0",
anchorOffsetX: 2
},
B403: { codeString: "QC4NW:0,12;HC4N:4,10;HL4:4,12;VL4:8,12;HL8:0,16" },
B404: { codeString: "B695:0,4;B281:8,0;B695:16,4" },
B405: { codeString: "VL4:0,12" },
B406: {
codeString: "P4E:0,14;B1002:3,0",
anchorOffsetX: 1.5
},
B407: { codeString: "HL8:0,12;HC4S:0,12;VL4:8,12" },
B408: { codeString: "B457;B457:4,0" },
B409: {
codeString: "DS8:0,4;QC4SE:0,12",
anchorOffsetY: -4
},
B410: {
codeString: "B514;P4W:5,14",
anchorOffsetX: -1.5
},
B411: { codeString: "DL4S:0,12;DL8N:0,8" },
B412: { codeString: "B447;OR84N:0,12" },
B413: { codeString: "VL8:0,8;HL4:0,10;HL4:0,14;VL8:4,8" },
B414: { codeString: "B457;B278:2,0" },
B415: { codeString: "B281;B366:4,0" },
B416: { codeString: "HW8W:0,8;VL8:2,8;HW8E:2,8" },
B417: {
codeString: "B418;P4W:7,10",
anchorOffsetX: -2
},
B418: {
codeString: "AA8N:0,8;HL4:0,16;HL4:8,16",
anchorOffsetX: -2
},
B419: {
codeString: "QC4NW:2,4;HW8W:0,8;HW8E:2,8",
anchorOffsetX: -1,
anchorOffsetY: -4
},
B420: { codeString: "VL4:0,10;HL8:0,12;VL4:8,10" },
B421: { codeString: "B291;RA8S:0,8" },
B422: { codeString: "B281;QC4NE:0,12;B366:4,0" },
B423: { codeString: "B636;VL8:4,8" },
B424: { codeString: "B636;B303:2,0" },
B425: { codeString: "B597;B288:4,0" },
B426: { codeString: "VL8:0,8;B655;VL8:8,8" },
B427: { codeString: "B428;B428:8,0" },
B428: { codeString: "VL8:0,8" },
B429: {
codeString: "P4S:0,7;B457;P4N:0,15",
anchorOffsetY: -1
},
B430: { codeString: "B818;HC4E:0,8;HC4W:6,8" },
B431: { codeString: "HL4:0,12;B313:4,0;B335:8,0" },
B432: { codeString: "B636;B700:2,0" },
B433: { codeString: "VL4:2,8;B106" },
B434: { codeString: "B518;DL2S:0,12" },
B435: { codeString: "W8E:0,8;QC4NW:1,4;B528:1.5,0;HC8E:1,8" },
B436: { codeString: "HL2:0,10;RA4N:2,8;HL2:6,10;RA4E:0,10;RA4W:6,10;HL8:0,14;VL2:4,14" },
B437: { codeString: "B548;B232:1,2" },
B438: { codeString: "B651;B1154" },
B439: { codeString: "B580;B829:3,0" },
B440: { codeString: "B509;B447;B457:2,0" },
B441: { codeString: "B420;VL4:4,10" },
B442: {
codeString: "C8:0,8;C4:2,10;QC4NW:4,4",
anchorOffsetY: -4
},
B443: {
codeString: "VL4:0,8;VL4:2,8;VL4:4,8;VL4:6,8;VL10:8,6;VL4:10,8;VL4:12,8;VL4:14,8;VL4:16,8;HL16:0,12;HL4:6,16",
anchorOffsetY: -2
},
B444: {
codeString: "B457:0,-6;VL8:2,8;B1154",
anchorOffsetY: -4
},
B445: { codeString: "B289;B291:4,0" },
B446: { codeString: "B291;P4S:2,10" },
B447: { codeString: "HC8N:0,8" },
B448: { codeString: "B456;B270:6,2" },
B449: { codeString: "HL4:0,12" },
B450: { codeString: "DL4S:0,8;ARR4SW:0,12" },
B451: { codeString: "C4:0,8;C4:0,12;VL8:2,8" },
B452: { codeString: "VL8:0,8;HC8E:0,8" },
B453: { codeString: "HW8E:0,8;HC8E:0,8" },
B454: { codeString: "HC8N:0,12;B281" },
B455: { codeString: "B548;B710:2,0" },
B456: { codeString: "RT8SE:0,8" },
B457: { codeString: "C4:0,10" },
B458: { codeString: "B695:0,4;HL12:0,16" },
B459: { codeString: "DC8:0,8" },
B460: {
codeString: "B718;P4W:5,10",
anchorOffsetX: -1.5
},
B461: { codeString: "HC4N:0,10;HL4:0,12;VL4:2,12" },
B462: { codeString: "VL6:4,8;C4:0,12" },
B463: { codeString: "HL4:0,8;VL8:2,8" },
B464: { codeString: "B509;B457:2,0" },
B465: { codeString: "B1142;P4W:6,16" },
B466: {
codeString: "B171;P4S:4,5",
anchorOffsetY: -3
},
B467: {
codeString: "HL4:0,16;DL4-8N:2,8",
anchorOffsetX: -1
},
B468: { codeString: "VL8:0,8;HC4E:0,8" },
B469: { codeString: "B303;B278:2,0" },
B470: { codeString: "B281;B453:4,0" },
B471: { codeString: "B440;B939" },
B472: { codeString: "B636;P4N:2,9" },
B473: { codeString: "DL4-8N:0,8;HL4:0,16" },
B474: { codeString: "B112;B648:3,0" },
B475: { codeString: "B449:2,0;B281" },
B476: { codeString: "P4W:0,10;B477:3,0;P4E:12,10" },
B477: { codeString: "B136;P2E:1,11" },
B478: { codeString: "DL4-8N:1,8;HL8:2,10;DL4-8N:5,8;HL8:0,14" },
B479: { codeString: "B548;B347" },
B480: { codeString: "B695;B695:0,4" },
B481: {
codeString: "QC4NW:1,8;HW4W:0,12;HW4E:1,12",
anchorOffsetX: -1.5
},
B482: { codeString: "B1154;P4S:0,14" },
B483: { codeString: "B281;C4:2,16;HW4W:3,16;HW4E:4,16" },
B484: { codeString: "OS8N:0,8" },
B485: { codeString: "B447;B457:2,0" },
B486: { codeString: "DL2N:0,8;VL8:2,8;DL2N:2,14" },
B487: { codeString: "B558;B558:4,0" },
B488: { codeString: "RA4W:0,10;B270:2,0" },
B489: {
codeString: "B338;HW4W:1,12;HW4E:2,12",
anchorOffsetX: -1
},
B490: {
codeString: "B291;B270:10,0",
anchorOffsetX: -1
},
B491: {
codeString: "B291;B335:4,0",
anchorOffsetX: -2
},
B492: { codeString: "B291;B271:2,4" },
B493: { codeString: "B634;B270:4,-2" },
B494: { codeString: "HW8N:0,12;HL8:0,14;HW8S:0,14;B695:0,6" },
B495: { codeString: "HC4N:2,10;HL8:0,12;DL2-4S:0,12;HL4:2,16;DL2-4N:6,12" },
B496: { codeString: "HC4N:0,8;HC4N:4,8;VL6:4,10" },
B497: { codeString: "R48:0,8" },
B498: { codeString: "B428;B428:2,0" },
B499: { codeString: "HL12:0,8;VL8:0,8;RA8E:0,8;RA8W:8,8;VL8:12,8;HL12:0,16" },
B500: { codeString: "B548;B513:2,0" },
B501: { codeString: "B325;B281:2,0;B666:6,0" },
B502: { codeString: "DOT:2,10;HL4:0,12;DOT:2,14" },
B503: { codeString: "HW8E:0,8" },
B504: {
codeString: "B122;P4W:9,14",
anchorOffsetX: -1.5
},
B505: { codeString: "B712;B313" },
B506: { codeString: "QC4NW:4,8;HC4N:0,10;HC4N:4,10;HC8S:0,12;B528:3.5,0" },
B507: {
codeString: "QC4NW:3,4;VQW4NW:1,8;VQW4NE:3,8;HW4W:0,12;HW4E:5,12;HL4:1,16",
anchorOffsetX: -.5,
anchorOffsetY: -4
},
B508: { codeString: "B801;C2:2,9;C2:2,13" },
B509: { codeString: "DL8S:0,8" },
B510: {
codeString: "B434;P4W:3,12",
anchorOffsetX: -.5
},
B511: {
codeString: "QC4NW:2,4;VL2:2,8;HC2N:0,9;HC2N:2,9;VL4:0,10;VL4:4,10;HC4S:0,14",
anchorOffsetX: -1,
anchorOffsetY: -4
},
B512: { codeString: "HL8:0,16;VL8:4,8" },
B513: { codeString: "HL4:0,16;VL8:2,8" },
B514: { codeString: "VL4:0,8;DL4S:0,12;HL4:0,16" },
B515: { codeString: "HL8:0,16;VL4:8,12" },
B516: { codeString: "RA8N:0,12;VL4:8,12" },
B517: { codeString: "VL4:0,8;HL4:0,12;VL4:4,12" },
B518: { codeString: "VL8:0,8;HL4:0,16" },
B519: { codeString: "RA8E:0,8;HL4:0,16" },
B520: { codeString: "OR84S:0,12;HL2:8,16;B695:10,4;B170:10,0" },
B521: {
codeString: "HC4S:0,8;HC4W:2,8;B122:4,0",
anchorOffsetX: 2
},
B522: {
codeString: "B156;P4S:6,5",
anchorOffsetX: -1,
anchorOffsetY: -3
},
B523: {
codeString: "B1140;P4W:9,10",
anchorOffsetX: -1.5
},
B524: { codeString: "HL4:0,12;VL4:2,12" },
B525: {
codeString: "QC4NE:0,4;VL4:4,4;QC4NW:4,4;HC4N:2,8;VL4:2,10;VL4:6,10;HC4S:2,14",
anchorOffsetY: -4
},
B526: {
codeString: "B1086;P4W:13,12",
anchorOffsetX: -1.5
},
B527: { codeString: "C4:0,12;HL8:2,12;HL8:2,16" },
B528: { codeString: "HW2W:0,13;HW2E:0.5,13" },
B529: { codeString: "B180;HL8:1,14" },
B530: {
codeString: "DL4S:0,8;OR48N:4,8;HC4E:8,10",
anchorOffsetX: 1
},
B531: { codeString: "B281;P4S:2,14" },
B532: { codeString: "B447;B840" },
B533: {
codeString: "B325;QC4NW:2,12",
anchorOffsetX: -1
},
B534: { codeString: "B884;B688:10,0;HL6:12,16" },
B535: { codeString: "HC4W:0,8;DC4:2,12;HC4E:6,8" },
B536: { codeString: "B411;B281" },
B537: {
codeString: "B338;B528:1.5,0",
anchorOffsetX: -1
},
B538: {
codeString: "B411;P4W:9,6",
anchorOffsetX: -1.5
},
B539: { codeString: "B878;B695" },
B540: {
codeString: "B559;B270:6,0",
anchorOffsetX: -1
},
B541: { codeString: "B620;VL8:0,8;HL8:0,16" },
B542: {
codeString: "OR84N:0,12;DL4N:8,8",
anchorOffsetX: -2
},
B543: { codeString: "HW2N:1,9.5;VL6:1,10;HL2:0,12;HL3:1,16;HC2E:4,14" },
B544: { codeString: "DOT:0,16;DOT:4,12;DOT:4,16" },
B545: { codeString: "B289;B105:4,0" },
B546: { codeString: "B503;B341:4,0" },
B547: {
codeString: "B198;LARR4E:8,10",
anchorOffsetX: -2
},
B548: { codeString: "RA8N:0,8" },
B549: { codeString: "B1129;P4W:9,16" },
B550: { codeString: "HL16:0,16;HL8:8,8;VL8:16,8" },
B551: { codeString: "B559;B559:4,0" },
B552: { codeString: "AT8N:0,8;DL8-4S:4,8;DL4N:8,12" },
B553: { codeString: "B484;B699:3,0" },
B554: { codeString: "B335:4,0;B335:0,4" },
B555: { codeString: "DL4N:0,12;DLOC4SW:4,8;C4:4,8;SC4:4,8" },
B556: { codeString: "B695;B271:2,0" },
B557: {
codeString: "C2:0,11;C2:2,10;C2:2,12;QC4NE:4,12",
anchorOffsetX: -2
},
B558: { codeString: "RA8W:0,8" },
B559: { codeString: "RA8E:0,8" },
B560: { codeString: "B548;B513:6,0;B548:8,0" },
B561: { codeString: "COMMA:0,12;COMMA:2,12" },
B562: { codeString: "B313;B281" },
B563: {
codeString: "B428;B145:2,0",
anchorOffsetX: 1
},
B564: {
codeString: "B391;QC2SE:14,8",
anchorOffsetX: -4
},
B565: { codeString: "B695:0,4;B357:2,0" },
B566: { codeString: "RA8SW:0,8;RA2NE:0,14" },
B567: { codeString: "C8:0,8;C4:2,10" },
B568: { codeString: "B335;B695:0,4" },
B569: { codeString: "B1148;P4S:2,13" },
B570: { codeString: "HW4W:0,12;HL4:1,12;HL4:1,16;HW4E:5,12" },
B571: {
codeString: "B418;B700:0,4;B700:8,4",
anchorOffsetX: -2
},
B572: { codeString: "OS8W:0,8" },
B573: { codeString: "B1119;QC4SW:4,16" },
B574: { codeString: "VL4:0,8;B239;VL4:8,8" },
B575: { codeString: "VL8:0,8;DL4S:0,8;HL4:0,12" },
B576: { codeString: "B170;DL4S:4,8" },
B577: { codeString: "B265;QC4NE:4,12;QC4NW:8,12" },
B578: { codeString: "HL4:0,10;HL4:0,14" },
B579: { codeString: "DL12N:0,8;RA4SE:4,12;RA4SE:8,8" },
B580: { codeString: "B447;B247" },
B581: { codeString: "C4:0,12;VL8:4,8;C4:4,12" },
B582: { codeString: "VL8:0,8;W8E:2,8;VL8:6,8" },
B583: { codeString: "B291;B457:2,0" },
B584: { codeString: "B281;DOT:2,18;DOT:6,18" },
B585: { codeString: "DL8-4N:0,10;AT4N:2,12" },
B586: { codeString: "C4:2,8;C4:0,12;C4:4,12;VL2:4,14;QC4SE:0,16" },
B587: { codeString: "OS8S:0,8;HL8:0,12" },
B588: {
codeString: "B1006;P4W:9,10",
anchorOffsetX: -1.5
},
B589: {
codeString: "B171;P4S:8,5",
anchorOffsetY: -3
},
B590: { codeString: "HL4:0,8;VL6:2,8;HL4:0,14;HC4S:0,14" },
B591: { codeString: "B572;B556" },
B592: {
codeString: "B171;P4W:13,10",
anchorOffsetX: -1.5
},
B593: {
codeString: "B291;P4W:9,10",
anchorOffsetX: -1.5
},
B594: { codeString: "B239;B271:2,4" },
B595: { codeString: "B239;B695" },
B596: {
codeString: "B688;QC4SE:8,8",
anchorOffsetX: -2
},
B597: { codeString: "HL8:0,8" },
B598: { codeString: "B1084;OS4S:0,12" },
B599: { codeString: "B291;B303:2,0" },
B600: { codeString: "B473;B1154:0,2" },
B601: { codeString: "HL8:0,16;HC4N:4,14;DL4N:8,12" },
B602: { codeString: "HC4N:0,12;HC4S:4,14;HC4N:8,12" },
B603: { codeString: "B602;B695:2,6" },
B604: { codeString: "B695;VL6:4,8;B622:3,4" },
B605: { codeString: "B604;P4W:6,14" },
B606: { codeString: "B651:0,2;B651:4,-2" },
B607: { codeString: "B548;B106:2,0" },
B608: { codeString: "B278;B1154" },
B609: { codeString: "B265;B695:4,0" },
B610: { codeString: "B636;P4S:2,13" },
B611: { codeString: "RA8SW:0,8;DL4N:0,12" },
B612: { codeString: "W8S:0,11;HW4N:8,11;HW4S:8,12" },
B613: { codeString: "C4:2,10;HC8N:0,12;HW4E:4,12" },
B614: { codeString: "DL4N:0,12;DLOC4SW:4,8;C4:4,8" },
B615: { codeString: "DL4-8S:0,8;HL4:4,16" },
B616: {
codeString: "B513;B548:2,0",
anchorOffsetX: 1
},
B617: { codeString: "B482;B457" },
B618: { codeString: "B1119;C8:0,8;C4:2,10" },
B619: { codeString: "RA4NW:0,12;RA4NW:4,8" },
B620: { codeString: "HL8:0,8;VL4:4,8;HL4:4,12;VL8:8,8" },
B621: { codeString: "AT8N:0,8;AT8S:0,10" },
B622: { codeString: "VL4:1,10;DC2:0,11" },
B623: { codeString: "B695;B678:2,0" },
B624: { codeString: "B572;B623" },
B625: {
codeString: "B325;P4W:3,12",
anchorOffsetX: -.5
},
B626: {
codeString: "B393;B455:10,0",
anchorOffsetX: 1
},
B627: { codeString: "B704;B312:8,0" },
B628: { codeString: "B171;P4S:4,10" },
B629: { codeString: "RT4SE:0,12" },
B630: { codeString: "B291;B319:3,0" },
B631: {
codeString: "B161;DOT:1,12;DOT:3,12;DOT:2,13",
anchorOffsetX: -2
},
B632: { codeString: "B1150;P4S:2,13" },
B633: { codeString: "DOT:0,8;HL4:2,8;DOT:8,8;VL4:0,10;VL4:8,10;DOT:0,16;HL4:2,16;DOT:8,16" },
B634: { codeString: "HL8:0,12" },
B635: {
codeString: "B1063;B335:4,0",
anchorOffsetY: -2
},
B636: { codeString: "C8:0,8" },
B637: { codeString: "B695:0,4;B1154" },
B638: {
codeString: "B851;W8W:7,8;DL2S:8,8",
anchorOffsetX: -1
},
B639: { codeString: "OR84S:0,12" },
B640: {
codeString: "P4E:0,8;B124:3,0",
anchorOffsetX: 2.5
},
B641: {
codeString: "B201:0,-4;HL15:0,12;B700:3,0;B700:7,0;B700:11,0;DL2N:12,9;DL2S:13,10",
anchorOffsetX: 1.5,
anchorOffsetY: -4
},
B642: { codeString: "B473;B457" },
B643: { codeString: "B108;HL4:0,12" },
B644: { codeString: "B1121;B1121:4,0" },
B645: { codeString: "B927;DOT:2,18" },
B646: {
codeString: "B270:0,2;B647:1,0",
anchorOffsetX: .5
},
B647: { codeString: "DL2N:0,11" },
B648: { codeString: "HW4W:0,12" },
B649: {
codeString: "B270;B270:2,0;RA4W:4,10",
anchorOffsetX: -2
},
B650: { codeString: "RT4E:0,10" },
B651: { codeString: "S4:0,10" },
B652: {
codeString: "B647;B270:3,-2",
anchorOffsetX: -.5
},
B653: { codeString: "B335;B428:4,0" },
B654: {
codeString: "P4E:0,10;B374:3,0",
anchorOffsetX: 1.5
},
B655: { codeString: "C8:0,8;RA4SW:4,8" },
B656: {
codeString: "B700;P4W:5,12",
anchorOffsetX: -1.5
},
B657: {
codeString: "P4E:0,10;VL4:4,10",
anchorOffsetX: -1
},
B658: {
codeString: "B418;P4W:13,14",
anchorOffsetX: -3.5
},
B659: { codeString: "B695:0,4;B212:2,0" },
B660: {
codeString: "B374;B651:2,0",
anchorOffsetX: 1
},
B661: {
codeString: "B291;P4S:2,5",
anchorOffsetY: -3
},
B662: { codeString: "AT4S:0,12;VL2:2,10" },
B663: {
codeString: "VL2:2,6;VL2:6,6;S8:0,8;VL2:2,16;VL2:6,16",
anchorOffsetY: -2
},
B664: { codeString: "B827;HL4:8,12;B700:8,0;DL2N:9,9;DL2S:10,10" },
B665: { codeString: "RA2NE:0,14;HL8:2,16;RA2NW:10,14" },
B666: { codeString: "QC4SE:0,8;VL8:4,8;QC4SW:4,8" },
B667: { codeString: "B281;B700:2,0" },
B668: { codeString: "B188;OS4S:0,8" },
B669: { codeString: "B666;P4W:5,12" },
B670: { codeString: "B447;B1048" },
B671: { codeString: "B281;C4:2,16;B416:2,0" },
B672: {
codeString: "B122;HC8N:0,8;DL4N:8,8",
anchorOffsetX: -2
},
B673: { codeString: "B447;B502:2,0" },
B674: { codeString: "B548;VL6:4,8;HC4S:4,14" },
B675: { codeString: "B607;B11:7,0;B500:8,0" },
B676: { codeString: "B634;B270:4,2" },
B677: { codeString: "VL4:2,10;P4E:0,10" },
B678: { codeString: "LARR8N:0,8" },
B679: { codeString: "DL8S:0,8;RA4NW:0,8" },
B680: { codeString: "DL8N:0,8;RA4NE:4,8" },
B681: { codeString: "B171;B314:4,-2" },
B682: { codeString: "HW8W:0,8;HL8:2,8;HL2:2,16;HL2:8,16;HW8E:10,8;B314:4,-2;P4N:4,16" },
B683: { codeString: "B1144;P4S:10,13" },
B684: { codeString: "C4:2,12;B1119" },
B685: { codeString: "QC4NW:4,12;B281;C4:2,16" },
B686: { codeString: "B685;HW4W:3,16;HW4E:4,16" },
B687: { codeString: "HC4N:2,8;VL4:2,10;VL4:6,10;HC4S:2,14;B1119" },
B688: { codeString: "HL8:0,12;B700;B700:4,0" },
B689: {
codeString: "DL4S:0,8;B688:4,0",
anchorOffsetX: 1.5
},
B690: { codeString: "B171:3,0;P4E:0,10;P4W:16,10" },
B691: {
codeString: "B572;P4W:9,10",
anchorOffsetX: -1.5
},
B692: { codeString: "DC2:0,8;VL8:1,8" },
B693: { codeString: "B411;DL4N:8,12;DL8S:4,8" },
B694: { codeString: "B939;B651:2,0" },
B695: { codeString: "W8N:0,11" },
B696: { codeString: "B636;B556" },
B697: { codeString: "HL8:0,12;AT4N:2,12" },
B698: { codeString: "B636;P4W:1,10" },
B699: { codeString: "OC2SW:0,10;VL1:1,12;DOT:1,14" },
B700: { codeString: "C4:0,12;DLIC4N:0,12;DLIC4S:0,12" },
B701: { codeString: "B212;B700" },
B702: { codeString: "B281;B561:3,0" },
B703: { codeString: "B281;B699:3,0" },
B704: {
codeString: "B548;B710:6,0",
anchorOffsetX: -1
},
B705: {
codeString: "B114;B335:4,0",
anchorOffsetX: -2
},
B706: { codeString: "B291;SC8:0,8" },
B707: { codeString: "B291;VL8:2,8;VL8:6,8;HL8:0,10;HL8:0,14" },
B708: { codeString: "QC4NE:0,8;QC4NW:4,8" },
B709: {
codeString: "B120:0,-4",
anchorOffsetY: -2
},
B710: { codeString: "VL4:2,8;B314" },
B711: { codeString: "B106;B106:0,-4" },
B712: { codeString: "B597;B281" },
B713: { codeString: "HL12:0,16;B602:0,4" },
B714: {
codeString: "B132;P4W:1,6",
anchorOffsetY: -2
},
B715: { codeString: "B1135;P4S:10,13" },
B716: {
codeString: "LARRC8EC:0,8",
anchorOffsetX: -1
},
B717: { codeString: "AA4S:0,8;HL4:0,12;HL4:0,14;VL4:2,12" },
B718: { codeString: "B132;HC4N:0,10" },
B719: { codeString: "B377;B106" },
B720: { codeString: "VL8:4,8;DL4N:0,8;HL4:0,12" },
B721: { codeString: "B170;DL4N:0,8" },
B722: { codeString: "B695;B617:2,0" },
B723: { codeString: "B678;B271:4,0" },
B724: {
codeString: "VL8:0,8;HW4N:0,7;HW4S:0,8;HW4S:0,16;VL8:4,8",
anchorOffsetY: -1
},
B725: {
codeString: "B313;B355",
anchorOffsetY: -4
},
B726: { codeString: "B313;B247" },
B727: {
codeString: "B313;B733",
anchorOffsetY: -4
},
B728: {
codeString: "B513;B737:0,-2",
anchorOffsetY: -2
},
B729: { codeString: "B708;B513:2,0" },
B730: { codeString: "B246;B622:5,0" },
B731: { codeString: "HC2W:0,14;HL8:1,14;HL8:1,16;HC2E:9,14" },
B732: { codeString: "B570;HL6:0,14" },
B733: {
codeString: "B447:0,-4;B247",
anchorOffsetY: -4
},
B734: {
codeString: "P4W:0,10;B355:3,0;P4E:12,10",
anchorOffsetY: -4
},
B735: { codeString: "B313;B894:2,0" },
B736: {
codeString: "B803;B513:2,0",
anchorOffsetX: -2
},
B737: { codeString: "HC4S:0,8" },
B738: { codeString: "HW4W:0,8;HW4E:3,8" },
B739: { codeString: "B500;B548:8,0" },
B740: { codeString: "B455;B548:8,0" },
B741: { codeString: "B312;B548:8,0" },
B742: { codeString: "B739;B622:11,0" },
B743: { codeString: "B712;B303:2,0" },
B744: { codeString: "HL12:0,10;VL6:0,10;VL2:10,12;HL8:2,14;VL6:12,10;HL12:0,16" },
B745: { codeString: "W8E:0,8;W8W:6,8;HL6:1,16" },
B746: { codeString: "B412;B699:3,0" },
B747: { codeString: "RT8S:0,8;VL4:4,12;HL8:0,16" },
B748: { codeString: "C8:0,8;B894:2,0" },
B749: {
codeString: "HL4:0,11;HL4:0,13;HC4N:2,8;VL4:2,10;HC4S:2,14",
anchorOffsetX: 1
},
B750: { codeString: "B467;HL4:8,16;DL4-8S:6,8" },
B751: { codeString: "B447;B106:2,0" },
B752: {
codeString: "HC8N:0,8;HL12:0,12",
anchorOffsetX: -2
},
B753: { codeString: "B167;B457:2,0" },
B754: { codeString: "HW8N:0,12;HL8:0,14;HW8S:0,14" },
B755: { codeString: "HL4:0,8;VL8:0,8;VL8:2,8;VL8:4,8" },
B756: { codeString: "B731:0,-4;B700:1,0;B700:5,0" },
B757: { codeString: "B518:2,0;B700" },
B758: { codeString: "B292;B335:8,0" },
B759: { codeString: "C4:0,10;C4:3,10;C4:6,10" },
B760: { codeString: "HC8E:0,8;LARR8E:0,10" },
B761: { codeString: "B695:0,4;P4S:0,12" },
B762: {
codeString: "B720;P4W:5,12",
anchorOffsetX: -1.5
},
B763: {
codeString: "B720:1,0;P4N:0,13",
anchorOffsetX: .5
},
B764: {
codeString: "B170;P4S:5,9",
anchorOffsetX: -.5
},
B765: {
codeString: "B170;P4W:9,10",
anchorOffsetX: -1.5
},
B766: {
codeString: "P4E:0,10;B170:3,0",
anchorOffsetX: 1.5
},
B767: { codeString: "B170;P4N:2,17" },
B768: { codeString: "B170;P4N:2,13" },
B769: { codeString: "B170;VL4:0,12" },
B770: { codeString: "B695:0,4;DL4N:1,12;DL4N:3,14;DL2S:1,16;DL2S:5,12;DL5N:6,8" },
B771: {
codeString: "B695:0,4;DL4N:1,12;DL4N:3,14;DL2S:1,16;DL2S:5,12;DL2N:6,11;DL4N:7,6;DL4N:9,8;DL2S:7,10;DL2S:11,6",
anchorOffsetY: -2
},
B772: { codeString: "B170;RA4NW:0,8" },
B773: {
codeString: "HC8N:0,4;B1040",
anchorOffsetY: -4
},
B774: {
codeString: "C8:0,4;OR42N:2,12",
anchorOffsetY: -4
},
B775: { codeString: "B392;B270:4,0" },
B776: { codeString: "B265;HC8N:4,12" },
B777: { codeString: "DOT:0,10;DOT:0,14;DOT:4,10;DOT:4,14" },
B778: { codeString: "S4:0,8;VL4:2,12" },
B779: { codeString: "HC4N:0,8;VL4:0,10;VL4:4,10;HL4:0,14;VL2:2,14" },
B780: {
codeString: "B395;P4W:4,8",
anchorOffsetX: -1
},
B781: { codeString: "R84:0,10;RA4E:0,10;RA4W:6,10" },
B782: { codeString: "RT4E:0,10;S4:2,10;RT4W:6,10" },
B783: {
codeString: "LARRHC8NC:0,8;LARRHC8SC:2,12",
anchorOffsetX: -2
},
B784: { codeString: "B450;B428:4,0" },
B785: { codeString: "ARR4NW:0,8;ARR4SW:0,12;B428:4,0" },
B786: {
codeString: "B374;B457:2,0",
anchorOffsetX: 1
},
B787: { codeString: "DL4S:0,8;DL4N:5,8;VL4:4,12;VL4:5,12" },
B788: {
codeString: "B630;P4S:2,5",
anchorOffsetY: -3
},
B789: {
codeString: "OS4N:0,12;HC4E:4,12",
anchorOffsetX: -1
},
B790: {
codeString: "OS4N:0,12;DL4N:4,8",
anchorOffsetX: -2
},
B791: { codeString: "HL8:0,10;HC4N:2,8" },
B792: { codeString: "HC4W:0,8;OS8N:2,8;HC4E:10,8" },
B793: { codeString: "HL2:0,14;R84:2,12;HL2:10,14" },
B794: {
codeString: "B280;P4W:8,7",
anchorOffsetX: -1
},
B795: {
codeString: "B280;P4W:9,14",
anchorOffsetX: -1.5
},
B796: {
codeString: "B280:3,0;P4E:0,6",
anchorOffsetX: 1.5
},
B797: { codeString: "B695:0,4;B456:8,0" },
B798: { codeString: "OR84N:0,8;RA4S:0,8;RA4S:4,8" },
B799: { codeString: "B281;B695:8,4;B281:16,0" },
B800: { codeString: "HL12:0,12;C8:2,8" },
B801: { codeString: "HW8W:0,8;HW8E:4,8" },
B802: { codeString: "B447;B699:3,0" },
B803: {
codeString: "B447;LARR4E:8,10",
anchorOffsetX: -2
},
B804: { codeString: "B377;B447" },
B805: {
codeString: "B1130;P4W:8,8",
anchorOffsetX: -1
},
B806: {
codeString: "B1131;P4W:9,15",
anchorOffsetX: -1.5
},
B807: {
codeString: "B321;QC2SW:8,12",
anchorOffsetX: -1
},
B808: {
codeString: "B1134;P4W:9,13",
anchorOffsetX: -1.5
},
B809: {
codeString: "B1133;P4W:9,15",
anchorOffsetX: -1.5
},
B810: {
codeString: "B123;QC2SW:8,12",
anchorOffsetX: -1
},
B811: { codeString: "B566;P4N:2,17" },
B812: { codeString: "B851;VL2:0,16;VL2:4,16;VL2:8,16" },
B813: { codeString: "B447;HL4:2,12;AT4N:2,12" },
B814: { codeString: "R84:0,10;VL4:4,10" },
B815: { codeString: "B291;B723" },
B816: { codeString: "B817;B548:8,0;HL8:8,16;VL8:12,8;VL4:16,12" },
B817: { codeString: "B392;VL8:4,8" },
B818: { codeString: "B321;VL4:0,8;VL4:8,8" },
B819: { codeString: "B550;B191:8,0" },
B820: {
codeString: "B803;B451:2,0",
anchorOffsetX: -2
},
B821: {
codeString: "OR48N:0,8;RA4N:0,6",
anchorOffsetY: -2
},
B822: {
codeString: "B566:3,0;P4E:0,10",
anchorOffsetX: 1.5
},
B823: { codeString: "B428;B120:2,0;B428:8,0" },
B824: { codeString: "R84:0,10" },
B825: { codeString: "RA4N:0,6;VL8:0,8;HL16:0,16;VL4:4,8;RA8N:4,8;VL4:12,8;RA4N:12,6;VL8:16,8" },
B826: { codeString: "B447;B206:4,0" },
B827: { codeString: "C8:0,8;DLIC8N:0,8;DLIC8S:0,8" },
B828: { codeString: "B447;B829:3,0" },
B829: { codeString: "VL2:1,10;C2:0,13" },
B830: {
codeString: "HL12:0,12;AA4N:4,12;AA4N:8,12;VL4:12,8;HL2:12,8",
anchorOffsetX: 1
},
B831: { codeString: "LARR8W:0,10;VL4:8,8" },
B832: { codeString: "B239;B829:3,0" },
B833: { codeString: "HC4N:0,10;R84:0,12" },
B834: { codeString: "B122;B845" },
B835: { codeString: "B447;B678:2,0" },
B836: {
codeString: "LARRHC8NC:0,12",
anchorOffsetX: -1
},
B837: {
codeString: "B945;B433:2,0",
anchorOffsetY: -4
},
B838: {
codeString: "B945;B513:2,0",
anchorOffsetY: -4
},
B839: {
codeString: "B945;B710:2,0",
anchorOffsetY: -4
},
B840: { codeString: "RT8N:0,12" },
B841: { codeString: "B412;B270:4,0" },
B842: { codeString: "HC4N:0,8;VL4:0,10;VL4:4,10;HC4S:0,14" },
B843: { codeString: "B265;HL8:4,14" },
B844: { codeString: "HL8:0,12;DL4S:0,12" },
B845: { codeString: "DL2S:0,10;DL2S:2,10;DL2S:4,10" },
B846: { codeString: "DL8-4N:0,12;HL4:8,12" },
B847: { codeString: "B695:0,4;B366:4,0" },
B848: { codeString: "B639;P4S:2,9" },
B849: { codeString: "HL8:0,12;VL4:2,12;VL4:6,12;HL8:0,16" },
B850: {
codeString: "B391;DL2N:13,7",
anchorOffsetX: -3.5
},
B851: { codeString: "HC8N:0,12;B695:0,4" },
B852: {
codeString: "B871;P4W:5,8",
anchorOffsetX: -1.5
},
B853: {
codeString: "B871;P4W:5,14",
anchorOffsetX: -1.5
},
B854: { codeString: "HC8N:0,12" },
B855: {
codeString: "B856;P4W:9,12",
anchorOffsetX: -1.5
},
B856: { codeString: "VL8:4,8;HW8N:0,12;HL8:0,14" },
B857: { codeString: "VL6:2,8;VL8:4,8;VL6:6,8;HC4S:2,14;B281;C4:2,16" },
B858: { codeString: "DOT:0,8;DOT:0,12;DOT:0,16;DOT:4,10;DOT:4,14;DOT:8,10;DOT:8,14;B695:6,0" },
B859: { codeString: "OR84S:0,12;HC8S:0,12" },
B860: { codeString: "B695;B939" },
B861: { codeString: "B866;DOT:2,10;DOT:2,12" },
B862: { codeString: "B527;DOT:6,14;DOT:8,14" },
B863: {
codeString: "B114;B695:2,0",
anchorOffsetX: -1
},
B864: { codeString: "R84:0,10;VL4:2,10;VL4:4,10;VL4:6,10" },
B865: { codeString: "B651;B462:2,0" },
B866: { codeString: "VL8:0,8;VL8:4,8;C4:0,14" },
B867: { codeString: "HL4:0,8;B866" },
B868: {
codeString: "B871;P4W:5,10",
anchorOffsetX: -1.5
},
B869: { codeString: "QC4NW:0,12;HL2:4,12;QC4NW:2,12;HL2:0,16" },
B870: {
codeString: "B871;P4W:5,6",
anchorOffsetX: -1.5,
anchorOffsetY: -1
},
B871: { codeString: "HL4:0,8;HL4:0,10;HL4:0,12;HL4:0,14;HL4:0,16" },
B872: {
codeString: "VL8:0,8;P4W:1,8",
anchorOffsetX: -1.5
},
B873: { codeString: "B856;P4W:5,8" },
B874: {
codeString: "B871;P4W:5,12",
anchorOffsetX: -1.5
},
B875: { codeString: "B573;VL8:4,8" },
B876: {
codeString: "B736;LARR4W:14,10",
anchorOffsetX: -5
},
B877: { codeString: "B597;B423;B281" },
B878: { codeString: "OR84N:0,12" },
B879: {
codeString: "B391;P4W:9,14",
anchorOffsetX: -3
},
B880: { codeString: "HC8W:0,8;HC4E:4,8;HC4E:4,12" },
B881: {
codeString: "B391;P4W:15,8",
anchorOffsetX: -4.5
},
B882: { codeString: "B1128;P4W:7,10" },
B883: { codeString: "P4W:0,10;B513:3,0;P4E:8,10" },
B884: {
codeString: "OR84S:0,12;HL4:8,16",
anchorOffsetX: -2
},
B885: {
codeString: "B803;B457:2,0",
anchorOffsetX: -2
},
B886: {
codeString: "B238;B2115:4,0",
anchorOffsetY: -4
},
B887: {
codeString: "LARROC8NWC:0,8",
anchorOffsetX: 1
},
B888: {
codeString: "B887;B281:2,0",
anchorOffsetX: 1
},
B889: { codeString: "B1136;P4S:10,13" },
B890: { codeString: "B695;HW4N:4,11" },
B891: { codeString: "VL4:0,10;HL4:0,12" },
B892: { codeString: "HL12:0,12;B700;B700:4,0;B700:8,0" },
B893: { codeString: "B271:2,0;B281" },
B894: { codeString: "C4:0,10;VL4:2,10" },
B895: {
codeString: "B635;VL8:12,8",
anchorOffsetY: -2
},
B896: { codeString: "C8:0,8;B622:3,0" },
B897: { codeString: "B447;B516" },
B898: { codeString: "B438;DOT:2,12" },
B899: { codeString: "R48:0,8;HL4:0,12" },
B900: { codeString: "B280;P2SW:5,10" },
B901: { codeString: "B291;B829:3,0" },
B902: {
codeString: "B86;B81:2,0",
isIndicator: !0,
indicatorRole: "adjectival",
width: 4,
name: "INDICATOR DESCRIPTION OF ACTION"
},
B903: {
codeString: "HL2:0,5",
isIndicator: !0,
indicatorRole: "verbal",
name: "INDICATOR CONTINUOUS"
},
B904: {
codeString: "DL2N:0,4",
isIndicator: !0,
indicatorRole: "nominal",
name: "INDICATOR DEFINITE"
},
B905: {
codeString: "AT2N:0,4",
isIndicator: !0,
indicatorRole: "nominal",
name: "INDICATOR FEMININE"
},
B906: {
codeString: "VL2:0.5,4;HL1:0,6;DL.5N:0,4",
isIndicator: !0,
indicatorRole: "nominal",
width: 1,
name: "INDICATOR FIRST PERSON"
},
B907: {
codeString: "VL1.25:0,4;SDOT:0,6",
isIndicator: !0,
indicatorRole: "verbal",
width: 0,
name: "INDICATOR IMPERATIVE"
},
B908: {
codeString: "DL2S:0,4",
isIndicator: !0,
indicatorRole: "nominal",
name: "INDICATOR INDEFINITE"
},
B909: {
codeString: "VL2:0,4",
isIndicator: !0,
indicatorRole: "nominal",
width: 0,
name: "INDICATOR NEUTER"
},
B910: {
codeString: "P2E:0,4;VL2:2,4",
isIndicator: !0,
indicatorRole: "nominal",
name: "INDICATOR DIRECT OBJECT"
},
B911: {
codeString: "B92;B86:1.5,0",
isIndicator: !0,
indicatorRole: "adjectival",
width: 3.5,
name: "INDICATOR PAST PARTICIPLE"
},
B912: {
codeString: "B92;SDOT:1.5,4",
isIndicator: !0,
indicatorRole: "adjectival",
anchorOffsetX: -.5,
width: 1.5,
name: "INDICATOR PAST PERFECTIVE PARTICIPLE"
},
B913: {
codeString: "SC2:0,4",
isIndicator: !0,
indicatorRole: "nominal",
name: "INDICATOR POSSESSIVE"
},
B914: {
codeString: "B928;B86:3,0",
isIndicator: !0,
indicatorRole: "adjectival",
width: 5,
name: "INDICATOR PRESENT PARTICIPLE"
},
B915: {
codeString: "HC1N:0,4;DL1-1.5N:0,4.5;HL1:0,6",
isIndicator: !0,
indicatorRole: "nominal",
width: 1,
name: "INDICATOR SECOND PERSON"
},
B916: {
codeString: "OC1SW:0,4;OC1NW:0,5",
isIndicator: !0,
indicatorRole: "nominal",
width: 1,
name: "INDICATOR THIRD PERSON"
},
B917: {
codeString: "B239;LARR4E:8,10",
anchorOffsetX: -2
},
B918: {
codeString: "B239;HC2E:8,12",
anchorOffsetX: -.5
},
B919: { codeString: "QC4SW:0,12" },
B920: { codeString: "B239;B271:2,0" },
B921: { codeString: "HL8:0,12;C4:2,10" },
B922: { codeString: "HW2E:0,11;HW4E:1,10;HW8E:1,8" },
B923: {
codeString: "P4S:0,9;B619:1,0",
anchorOffsetX: .5
},
B924: { codeString: "B695;B325:2,0" },
B925: { codeString: "C2:0,8;C8:1,8;C2:8,8;DOT:3,12;DOT:7,12;DOT:5,14" },
B926: {
codeString: "LARRHC8NCC:0,12",
anchorOffsetX: 1
},
B927: { codeString: "B936;HL4:0,12" },
B928: {
codeString: "B92;B87:1.5,0",
isIndicator: !0,
indicatorRole: "verbal",
name: "INDICATOR PRESENT"
},
B929: {
codeString: "B335;B651:8,0",
anchorOffsetX: 4
},
B930: { codeString: "B447;B319:3,0" },
B931: { codeString: "B447;B303:2,0" },
B932: { codeString: "B447;B660" },
B933: { codeString: "HL4:0,12;DL4S:4,12" },
B934: { codeString: "DC8:0,8;VL4:0,12;VL4:8,12" },
B935: {
codeString: "B335;B392:4,0",
anchorOffsetX: 2
},
B936: { codeString: "HL4:0,8;VL8:2,8;HL4:0,16" },
B937: { codeString: "B368:0,-4;HL4:0,12" },
B938: { codeString: "B447;B2115:4,0" },
B939: { codeString: "DL8N:0,8" },
B940: { codeString: "B335;VL2:8,8;VL2:8,14" },
B941: {
codeString: "LARR4W:0,10;LARR4N:4,6;LARR4S:4,14;LARR4E:8,10",
anchorOffsetY: -2
},
B942: { codeString: "C4:0,12;HC8N:2,8;C4:8,12" },
B943: { codeString: "B335;VL2:4,8;VL2:4,14" },
B944: {
codeString: "B239;LARRHC8NC:4,10",
anchorOffsetX: -3
},
B945: {
codeString: "B597;B894:2,-6",
anchorOffsetY: -4
},
B946: { codeString: "VL4:0,10;VL4:8,10" },
B947: { codeString: "B239;HL8:0,12" },
B948: {
codeString: "B412;B335:4,0",
anchorOffsetX: -2
},
B949: { codeString: "B239;B678:2,0" },
B950: { codeString: "S8:0,8;VL8:2,8;VL8:4,8;VL8:6,8;HL8:0,10;HL8:0,12;HL8:0,14" },
B951: { codeString: "B10:0,-4;DL4-8N:2,8;B11:6,0" },
B952: { codeString: "HL4:0,8;HL4:0,16" },
B953: { codeString: "HL4:0,16;B120:0,2" },
B954: { codeString: "B447;B401:3,0;B401:5,0" },
B955: { codeString: "B447;B401:4,0" },
B956: { codeString: "HL4:0,12;VL4:2,12;HL4:0,16" },
B957: { codeString: "HL4:0,12;HL4:0,16" },
B958: { codeString: "W8W:0,8;VL8:1,8" },
B959: { codeString: "B281;B107" },
B960: { codeString: "B447;B653" },
B961: {
codeString: "B803;LARR4E:8,14",
anchorOffsetX: -2
},
B962: { codeString: "B10:0,-4;DL4-8N:2,8;B13:6,0" },
B963: { codeString: "B428;B428:4,0" },
B964: { codeString: "B447;B10:1,0;VL8:4,8" },
B965: { codeString: "VL4:0,10;HL4:0,12;VL4:4,10" },
B966: { codeString: "B695;DOT:6,10;DOT:6,14;DOT:10,10;DOT:10,14;DOT:14,8;DOT:14,12;DOT:14,16" },
B967: { codeString: "B377;HC4N:0,10" },
B968: { codeString: "HL4:0,8;B368:0,-4" },
B969: { codeString: "B484;B303:2,0" },
B970: { codeString: "B313;B457:2,0" },
B971: { codeString: "B411;B457:2,0" },
B972: { codeString: "XA;XB:3.87;XC:7.75" },
B973: { codeString: "B651;LARR4S:0,14" },
B974: { codeString: "B700;B1154" },
B975: { codeString: "B291;B313" },
B976: {
codeString: "B145;B291:4,0",
anchorOffsetX: 2
},
B977: {
codeString: "B291;B678:2,-4",
anchorOffsetY: -4
},
B978: { codeString: "B163;HC2N:1,13;HC2N:5,13" },
B979: { codeString: "P4W:0,10;B288:3,0;P4E:8,10" },
B980: {
codeString: "B651;P4W:5,10",
anchorOffsetX: -1.5
},
B981: {
codeString: "P4W:0,10;B982:3,0;P4E:12,10",
anchorOffsetY: -1
},
B982: {
codeString: "B814;HW2N:3,8.5;HW4N:2,7;HW2S:3,15;HW4S:2,16",
anchorOffsetY: -1
},
B983: { codeString: "DL8-4N:0,8;DL8-4S:0,8;VL2:4,10" },
B984: {
codeString: "P4E:0,10;B651:3,0",
anchorOffsetX: 1.5
},
B985: { codeString: "B447;B894:2,0" },
B986: {
codeString: "P4S:0,7;B651",
anchorOffsetY: -1
},
B987: { codeString: "B428;B288:2,0;B428:8,0" },
B988: { codeString: "RA4SW:0,12;DL8N:0,8;RA4NE:4,8" },
B989: { codeString: "LARRHC8SCC:2,12;P4N:0,12" },
B990: { codeString: "B651;P4N:0,15" },
B991: { codeString: "B447;B288:2,0" },
B992: {
codeString: "HL2:0,4;VL2:1,4;HL2:0,6",
isIndicator: !0,
indicatorRole: "nominal",
name: "INDICATOR DIMINUTIVE"
},
B993: { codeString: "HW8W:0,8;HL4:2,8;HL4:2,16;HW8E:6,8;DOT:4,12" },
B994: {
codeString: "B270;B1028:2,0",
anchorOffsetX: 1
},
B995: {
codeString: "W8E:0,4;B122:1,0",
anchorOffsetX: .5,
anchorOffsetY: -4
},
B996: { codeString: "VL4:0,10;DOT:2,16;DOT:4,16;DOT:6,16;P4E:8,10" },
B997: {
codeString: "B238;B449:2,0",
anchorOffsetY: -4
},
B998: { codeString: "B148:2,0;B281" },
B999: {
codeString: "B216;C8:4,8",
anchorOffsetX: 2
},
B1000: {
codeString: "B939;B303:1,0",
anchorOffsetX: -1
},
B1001: { codeString: "B153;B335:4,0" },
B1002: { codeString: "B172;HL4:2,16;DOT:8,16" },
B1003: {
codeString: "B174;P4W:3,6",
anchorOffsetX: -.5,
anchorOffsetY: -2
},
B1004: { codeString: "P4S:3,9;B180;P4N:3,17" },
B1005: {
codeString: "P4E:0,10;B518:3,0;P4W:4,10",
anchorOffsetX: -.5
},
B1006: { codeString: "B291;B651:2,0" },
B1007: { codeString: "P4W:0,10;B394:2,0;P4E:10,10" },
B1008: { codeString: "B335;B651:8,0;B145:12,0" },
B1009: { codeString: "B239:0,-4" },
B1010: { codeString: "B239:0,4" },
B1011: {
codeString: "B1094;P4W:9,10",
anchorOffsetX: -1.5
},
B1012: { codeString: "B447;B120:2,0" },
B1013: { codeString: "B447;B449:2,0" },
B1014: { codeString: "B710;B710:4,0" },
B1015: { codeString: "B433;B433:4,0" },
B1016: { codeString: "C4:0,8;DLOC4SE:0,8;SC4:0,8;DL4S:4,12;B555:4,0" },
B1017: { codeString: "B278:2,0;B939" },
B1018: { codeString: "B153;B145:4,0" },
B1019: {
codeString: "B335;B1063:8,0",
anchorOffsetY: -2
},
B1020: { codeString: "VL8:0,8;P4S:0,14;VL8:4,8" },
B1021: {
codeString: "B236;B939:6,0",
anchorOffsetX: 3
},
B1022: { codeString: "B428;B449:2,0;B428:8,0" },
B1023: { codeString: "DL2-4N:0,8;DL2-4S:2,8;DL2-4S:0,12;DL2-4N:2,12" },
B1024: { codeString: "B590:2,0;B281" },
B1025: { codeString: "VL8:0,8;B829:3,0;VL8:8,8" },
B1026: { codeString: "B712;B829:3,0" },
B1027: { codeString: "B505;B939" },
B1028: { codeString: "AA4S:0,12" },
B1029: { codeString: "B920;P4N:2,8" },
B1030: { codeString: "B319:3,0;B939" },
B1031: {
codeString: "P4S:0,7;B303;P4N:0,15",
anchorOffsetY: -1
},
B1032: { codeString: "B303;P4N:0,15" },
B1033: { codeString: "VL4:0,10;DOT:2,16;DOT:4,16;DOT:6,16;VL4:8,10" },
B1034: { codeString: "P4E:0,10;B428:2,0;DOT:4,16;DOT:6,16;DOT:8,16;B428:10,0;P4W:10,10" },
B1035: { codeString: "P4E:0,10;B428:2,0;B428:10,0;P4W:10,10" },
B1036: { codeString: "B695:0,4;B239" },
B1037: {
codeString: "B325;P4W:5,8",
anchorOffsetX: -1.5
},
B1038: { codeString: "B428;LARRQC4NEC:0,12;B634:0,4" },
B1039: { codeString: "B695;B651:6,0" },
B1040: { codeString: "B597;B271:2,0" },
B1041: {
codeString: "QC4NW:2,8;AT4S:0,12",
anchorOffsetX: -1
},
B1042: { codeString: "B341;B699:2,0" },
B1043: {
codeString: "B238;B120:2,0",
anchorOffsetY: -4
},
B1044: { codeString: "B281;B651:2,4" },
B1045: {
codeString: "B391;P4E:7,7",
anchorOffsetX: -3,
anchorOffsetY: -1
},
B1046: {
codeString: "P4E:0,10;B391:3,0",
anchorOffsetX: -1.5
},
B1047: {
codeString: "B399;P4W:17,10",
anchorOffsetX: -1.5
},
B1048: { codeString: "B247;B699:3,1" },
B1049: { codeString: "VL4:0,12;HC8S:0,12;VL4:8,12" },
B1050: { codeString: "B548;B341:2,0;B699:3,0" },
B1051: { codeString: "HL4:0,8;VL8:4,8" },
B1052: {
codeString: "B418;P4W:7,10;P4S:10,13",
anchorOffsetX: -3
},
B1053: { codeString: "B428;DOT:2,16;DOT:4,16;DOT:6,16;B428:8,0" },
B1054: {
codeString: "B1127;P4W:9,4",
anchorOffsetY: -3
},
B1055: { codeString: "B335;B329:8,0;B145:12,0" },
B1056: { codeString: "C8:0,8;DOT:2,12;DOT:6,12;HW4N:0,11;HW4S:0,12;HW4N:4,11;HW4S:4,12" },
B1057: { codeString: "B335;B145:10,0" },
B1058: { codeString: "B1057:0,-2;B1066:0,2" },
B1059: {
codeString: "B444:2,0;B708",
anchorOffsetY: -4
},
B1060: { codeString: "VL4:0,10;VL4:4,10" },
B1061: {
codeString: "B423;B335:4,0",
anchorOffsetX: -2
},
B1062: { codeString: "B457:2,0;B939" },
B1063: {
codeString: "B145:0,-4;B145:0,4",
anchorOffsetY: -2
},
B1064: {
codeString: "B171;B678:4,-4",
anchorOffsetY: -4
},
B1065: {
codeString: "B392;B270:10,0",
anchorOffsetX: -1
},
B1066: { codeString: "B145;B335:10,0" },
B1067: {
codeString: "HC8N:0,4;B960",
anchorOffsetY: -4
},
B1068: { codeString: "C8:0,8;DLIC8N:0,8;DLIC8S:0,8;VL8:4,8" },
B1069: { codeString: "B449:0,-2;B120:0,2" },
B1070: { codeString: "B120:0,2" },
B1071: { codeString: "B548;B695:0,4" },
B1072: {
codeString: "B548;P4W:9,10",
anchorOffsetX: -1.5
},
B1073: {
codeString: "B651;LARR4E:4,10",
anchorOffsetX: -2
},
B1075: { codeString: "C8:0,8;DOT:4,12" },
B1076: { codeString: "B784;B447" },
B1077: { codeString: "B517;B335:0,4" },
B1078: { codeString: "HL4:0,8;VL8:0,8" },
B1079: { codeString: "B392;B939" },
B1080: { codeString: "VL4:0,12;P4S:0,14;VL4:4,12" },
B1081: { codeString: "VL4:0,12;HL4:0,16;VL4:2,12;VL4:4,12" },
B1082: { codeString: "B708;B148:2,0" },
B1083: { codeString: "B517;B1084" },
B1084: { codeString: "HL8:0,16;QC4SE:8,12" },
B1085: { codeString: "B457:0,2;HL8:2,16;B319:9,0" },
B1086: { codeString: "B457:0,2;HL10:2,16;VL4:8,12;B319:9,0;VL4:12,12" },
B1087: { codeString: "HW8W:0,8;VL12:2,8;HL4:0,12;HW8E:2,8" },
B1088: { codeString: "AA4N:0,8;B651:0,2" },
B1089: { codeString: "B612;B939:6,0" },
B1090: { codeString: "OC4NE:0,8;OC4NE:2,10;OC4NE:4,12" },
B1091: {
codeString: "B457;LARRQC4NEC:4,12",
anchorOffsetX: -3
},
B1092: { codeString: "B615;B148:6,0" },
B1093: { codeString: "B615;B263:6,0" },
B1094: { codeString: "DS8:0,8" },
B1095: { codeString: "B651;B695:2,0" },
B1096: { codeString: "P4E:0,10;B428:2,0;B428:6,0;P4W:6,10" },
B1097: {
codeString: "B695:0,-4;B695;B695:0,4",
anchorOffsetY: -1
},
B1098: {
codeString: "B291:0,-4;B700;B700:4,0",
anchorOffsetY: -4
},
B1099: { codeString: "B651:0,-2;B700" },
B1100: { codeString: "B666;B939" },
B1101: { codeString: "LARRHC8EC:0,8" },
B1102: { codeString: "B676:0,4" },
B1103: {
codeString: "B335;B412:4,0",
anchorOffsetX: 2
},
B1104: { codeString: "B428;LARRQC4NECC:0,10;B634:0,4" },
B1105: { codeString: "S8:0,8;DC8:0,8;SC8:0,8" },
B1106: {
codeString: "QC4NW:0,12;QC4SE:0,12;B127:4,0",
anchorOffsetX: 2
},
B1107: { codeString: "B281;B695" },
B1108: { codeString: "B428;P4W:0,10;P4E:6,10;B428:8,0" },
B1109: {
codeString: "B239;DL4N:8,8",
anchorOffsetX: -2
},
B1110: {
codeString: "B710;P4W:4,12",
anchorOffsetX: -1
},
B1111: {
codeString: "B430;P4W:9,8",
anchorOffsetX: -1.5
},
B1112: { codeString: "B710;B548:2,0;B710:8,0" },
B1113: { codeString: "B433;B548:2,0;B433:8,0" },
B1114: { codeString: "B1112;B622:5,0" },
B1115: { codeString: "B1113;B622:5,0" },
B1116: { codeString: "HL4:0,10;HL4:0,12;HL4:0,14" },
B1117: { codeString: "B695:0,4" },
B1118: { codeString: "B423;B281" },
B1119: { codeString: "B281;QC4SE:0,16" },
B1120: {
codeString: "B616;B500:10,0",
anchorOffsetX: 1
},
B1121: { codeString: "AT4S:0,12" },
B1122: { codeString: "QC4NW:0,12;QC4SE:4,8" },
B1123: {
codeString: "B291;B145:4,0",
anchorOffsetX: -2
},
B1124: {
codeString: "B291;B271:2,-4",
anchorOffsetY: -4
},
B1125: { codeString: "B291;B678:2,4" },
B1126: { codeString: "DL2S:0,8;DL2N:0,10;DL2S:0,12;DL2N:0,14" },
B1127: {
codeString: "B171;B371:3.5,-4",
anchorOffsetY: -2
},
B1128: { codeString: "B171;DOT:6,12" },
B1129: { codeString: "B171;B371:3.5,6" },
B1130: { codeString: "B392;HL8:0,12" },
B1131: { codeString: "B392;VL2:0,16;HL8:0,18;VL2:8,16" },
B1132: { codeString: "B392;VL4:8,8" },
B1133: { codeString: "B392;VL2:0,16;VL2:8,16" },
B1134: { codeString: "B392;HL8:0,14" },
B1135: { codeString: "B392;HL8:8,16;VL4:16,12" },
B1136: { codeString: "B392;B281:8,0;B392:16,0" },
B1137: { codeString: "B325:2,0;B483" },
B1138: { codeString: "B303;HL4:0,8" },
B1139: { codeString: "B306;B371:1.5,6" },
B1140: { codeString: "B306;DOT:7,12" },
B1141: { codeString: "B371:1.5,0;B122" },
B1142: { codeString: "B376;VL2:3,16;VL2:5,16" },
B1143: {
codeString: "B376;B371:1.5,-4",
anchorOffsetY: -2
},
B1144: { codeString: "RT8SW:0,8;B281:8,0;B456:16,0" },
B1145: { codeString: "B171;B271:4,4" },
B1146: { codeString: "P4S:0,10" },
B1147: { codeString: "RA2S:0,11" },
B1148: { codeString: "HL16:0,16;B202:8,0" },
B1149: {
codeString: "B202;P4W:8,7",
anchorOffsetX: -1
},
B1150: { codeString: "B281;B392:8,0" },
B1151: { codeString: "B10:0,-4;DL4-8N:2,8;B12:6,0" },
B1152: { codeString: "B11:0,-4;DL4-8N:2,8;B12:6,0" },
B1153: { codeString: "B12:0,-4;DL4-8N:2,8;B13:6,0" },
B1154: { codeString: "HL4:0,16" },
B1155: { codeString: "B859;P4S:2,9" },
B1156: { codeString: "B636;P3NE:3,10" },
B1157: { codeString: "B636;P3NW:2,10" },
B1158: { codeString: "B636;P3SE:3,11" },
B1159: { codeString: "B636;P3SW:2,11" },
B1160: {
codeString: "B376;P4S:2,5",
anchorOffsetY: -3
},
B1161: { codeString: "B303;B1154" },
B1162: {
codeString: "HL4:0,12;VL4:4,12;B335:4,0",
anchorOffsetX: -2
},
B1163: { codeString: "LARR4W:0,10;LARR4E:4,10" },
B1218: {
codeString: "B335;B428:10,0",
anchorOffsetX: -1
},
B1470: { codeString: "B513;B513:6,0" },
B1525: {
codeString: "B428;B335:2,0",
anchorOffsetX: 1
},
B1999: {
codeString: "VL2:2,6;R48:0,8;VL2:2,16",
anchorOffsetY: -2
},
B2115: { codeString: "VL8:0,8;B11:2,0" },
B2343: { codeString: "B10;VL8:4,8" },
B5061: { codeString: "B335;B335:10,0" },
B5640: { codeString: "B335;B940:10,0" },
B5836: {
codeString: "B428;B109:2,0",
anchorOffsetX: -1
},
B5837: { codeString: "HC4N:0,8" },
B5838: { codeString: "B5840:0,-1;B5840:0,3;B5840:4,-1;B5840:4,3" },
B5839: { codeString: "B171;P4S:6,13" },
B5840: { codeString: "C2:0,11" },
B5841: { codeString: "B572;B191" },
B5842: { codeString: "B629;B366:4,0" },
B5843: { codeString: "B5844;VL6:3,8" },
B5844: { codeString: "B106;B314:2,0" },
B5995: {
codeString: "B457;P4S:0,7",
anchorOffsetY: -1
},
B5996: {
codeString: "B99;B904:3,0",
isIndicator: !0,
indicatorRole: "nominal",
width: 5,
name: "INDICATOR DEFINITE PLURAL"
},
B5997: {
codeString: "B97;B904:3,0",
isIndicator: !0,
semanticIndicator: "thing",
indicatorRole: "nominal",
width: 5,
name: "INDICATOR DEFINITE THING"
},
B5998: {
codeString: "B97;B5996:3,0",
isIndicator: !0,
semanticIndicator: "thing",
indicatorRole: "nominal",
width: 8,
name: "INDICATOR DEFINITE PLURAL THING"
},
B5999: { codeString: "B956:0,2" },
B6000: { codeString: "B314:0,2" },
B6001: { codeString: "HL4:0,18;VL4:2,14" },
B6002: { codeString: "B106:0,2" },
B6003: {
codeString: "B657:0,4",
anchorOffsetX: -1
},
B6013: {
codeString: "B696;LARR4E:8,10",
anchorOffsetX: -2
},
B6015: {
codeString: "B213;LARR4E:8,10",
anchorOffsetX: -2
},
B6091: { codeString: "B145;B651:8,0;B335:12,0" },
B6106: { codeString: "HW8E:0,8;HL6:0,8;HL6:0,16;HW8W:4,8" },
B6109: { codeString: "HW8W:0,8;HW8E:2,8" },
B6168: { codeString: "B303;B651:4,0" },
B6232: {
codeString: "B917;B651:2,0",
anchorOffsetX: -2
},
B6287: { codeString: "B700;HL8:2,12;HL8:2,16;B700:8,0" },
B6300: {
codeString: "B303;VL2:2,8;VL2:2,14;HL8:2,8;HL8:2,16;VL8:10,8",
anchorOffsetX: 1
},
B6321: {
codeString: "DL1N:0,8;VL4:1,8;DL1N:1,11;B968:3,0",
anchorOffsetX: 1.5
},
B6393: {
codeString: "P4S:0,7;B1116",
anchorOffsetY: -1
},
B6414: { codeString: "DL8-4N:0,10" },
B6415: { codeString: "DL8-4S:0,10" },
B6420: { codeString: "DL4-8N:0,8" },
B6435: { codeString: "HC8W:0,8;HW8W:2,8;B622:4,0" },
B6436: {
codeString: "HC2N:0,4",
isIndicator: !0,
semanticIndicator: "abstract",
indicatorRole: "nominal",
name: "INDICATOR ABSTRACT"
},
B6437: { codeString: "B814;B695:6,0" },
B6438: {
codeString: "DL1N:0,8;VL4:1,8;DL1N:1,11;B937:3,0",
anchorOffsetX: 1.5
},
B6439: {
codeString: "P2E:0,4;B910:1.5",
isIndicator: !0,
indicatorRole: "nominal",
name: "INDICATOR INDIRECT OBJECT",
width: 3.5
}
}, oe = ["TSP", "QSP"];
function H(e) {
return oe.includes(e);
}
var se = {
ZSA: S(),
TSP: C(6),
QSP: C(2)
}, ce = {
REFSQUARE: {
codeString: "S8:0,8",
glyphCode: "REFSQUARE",
isBlissGlyph: !0,
defaultOptions: { "stroke-dasharray": "0 0.999" }
},
ANCHORRING: {
codeString: "C2:0,4",
glyphCode: "ANCHORRING",
isBlissGlyph: !0,
isIndicator: !0,
defaultOptions: { "stroke-dasharray": "0 0.777" }
}
}, U = {
DOT: z(.5, .333),
SDOT: z(.5, .1665),
COMMA: ne(.5, .333),
H: te(8),
E: R(8),
F: re(8),
C8: w(4),
C4: w(2),
C2: w(1),
C1: w(.5),
HC8N: T(4, "N"),
HC4N: T(2, "N"),
HC2N: T(1, "N"),
HC1N: T(.5, "N"),
"HC.5N": T(.25, "N"),
HC8S: T(4, "S"),
HC4S: T(2, "S"),
HC2S: T(1, "S"),
HC1S: T(.5, "S"),
"HC.5S": T(.25, "S"),
HC8W: T(4, "W"),
HC4W: T(2, "W"),
HC2W: T(1, "W"),
HC1W: T(.5, "W"),
"HC.5W": T(.25, "W"),
HC8E: T(4, "E"),
HC4E: T(2, "E"),
HC2E: T(1, "E"),
HC1E: T(.5, "E"),
"HC.5E": T(.25, "E"),
QC4NW: E(4, "NW"),
QC2NW: E(2, "NW"),
QC1NW: E(1, "NW"),
"QC.5NW": E(.5, "NW"),
QC4NE: E(4, "NE"),
QC2NE: E(2, "NE"),
QC1NE: E(1, "NE"),
"QC.5NE": E(.5, "NE"),
QC4SW: E(4, "SW"),
QC2SW: E(2, "SW"),
QC1SW: E(1, "SW"),
"QC.5SW": E(.5, "SW"),
QC4SE: E(4, "SE"),
QC2SE: E(2, "SE"),
QC1SE: E(1, "SE"),
"QC.5SE": E(.5, "SE"),
OC8NW: D(4, "NW"),
OC4NW: D(2, "NW"),
OC2NW: D(1, "NW"),
OC1NW: D(.5, "NW"),
OC8NE: D(4, "NE"),
OC4NE: D(2, "NE"),
OC2NE: D(1, "NE"),
OC1NE: D(.5, "NE"),
OC8SW: D(4, "SW"),
OC4SW: D(2, "SW"),
OC2SW: D(1, "SW"),
OC1SW: D(.5, "SW"),
OC8SE: D(4, "SE"),
OC4SE: D(2, "SE"),
OC2SE: D(1, "SE"),
OC1SE: D(.5, "SE"),
W8N: O(8, "N"),
W8S: O(8, "S"),
W8W: O(8, "W"),
W8E: O(8, "E"),
HW8N: k(8, "N"),
HW4N: k(4, "N"),
HW2N: k(2, "N"),
HW8S: k(8, "S"),
HW4S: k(4, "S"),
HW2S: k(2, "S"),
HW8W: k(8, "W"),
HW4W: k(4, "W"),
HW2W: k(2, "W"),
HW8E: k(8, "E"),
HW4E: k(4, "E"),
HW2E: k(2, "E"),
HQW4NW: A(4, "NW"),
HQW2NW: A(2, "NW"),
HQW1NW: A(1, "NW"),
HQW4NE: A(4, "NE"),
HQW2NE: A(2, "NE"),
HQW1NE: A(1, "NE"),
HQW4SW: A(4, "SW"),
HQW2SW: A(2, "SW"),
HQW1SW: A(1, "SW"),
HQW4SE: A(4, "SE"),
HQW2SE: A(2, "SE"),
HQW1SE: A(1, "SE"),
VQW4NW: j(4, "NW"),
VQW2NW: j(2, "NW"),
VQW1NW: j(1, "NW"),
VQW4NE: j(4, "NE"),
VQW2NE: j(2, "NE"),
VQW1NE: j(1, "NE"),
VQW4SW: j(4, "SW"),
VQW2SW: j(2, "SW"),
VQW1SW: j(1, "SW"),
VQW4SE: j(4, "SE"),
VQW2SE: j(2, "SE"),
VQW1SE: j(1, "SE"),
VL12: M(12),
VL10: M(10),
VL8: M(8),
VL6: M(6),
VL4: M(4),
VL3: M(3),
VL2: M(2),
"VL1.5": M(1.5),
"VL1.25": M(1.25),
VL1: M(1),
"VL.5": M(.5),
"VL.25": M(.25),
HL16: N(16),
HL15: N(15),
HL14: N(14),
HL12: N(12),
HL10: N(10),
HL8: N(8),
HL6: N(6),
HL4: N(4),
HL3: N(3),
HL2: N(2),
"HL1.5": N(1.5),
HL1: N(1),
"HL.5": N(.5),
"HL.25": N(.25),
DL12N: P(12, 12),
DL8N: P(8, 8),
DL6N: P(6, 6),
DL5N: P(5, 5),
DL4N: P(4, 4),
DL3N: P(3, 3),
DL2N: P(2, 2),
"DL1.5N": P(1.5, 1.5),
DL1N: P(1, 1),
"DL.5N": P(.5, .5),
"DL2-3N": P(2, 3),
"DL1-1.5N": P(1, 1.5),
"DL3-2N": P(3, 2),
"DL1.5-1N": P(1.5, 1),
"DL4-8N": P(4, 8),
"DL2-4N": P(2, 4),
"DL1-2N": P(1, 2),
"DL.5-1N": P(.5, 1),
"DL8-4N": P(8, 4),
"DL4-2N": P(4, 2),
"DL2-1N": P(2, 1),
"DL1-.5N": P(1, .5),
"DL1-4N": P(1, 4),
"DL.5-2N": P(.5, 2),
"DL4-1N": P(4, 1),
"DL2-.5N": P(2, .5),
DL12S: F(12, 12),
DL8S: F(8, 8),
DL6S: F(6, 6),
DL5S: F(5, 5),
DL4S: F(4, 4),
DL3S: F(3, 3),
DL2S: F(2, 2),
"DL1.5S": F(1.5, 1.5),
DL1S: F(1, 1),
"DL.5S": F(.5, .5),
"DL2-3S": F(2, 3),
"DL1-1.5S": F(1, 1.5),
"DL3-2S": F(3, 2),
"DL1.5-1S": F(1.5, 1),
"DL4-8S": F(4, 8),
"DL2-4S": F(2, 4),
"DL1-2S": F(1, 2),
"DL.5-1S": F(.5, 1),
"DL8-4S": F(8, 4),
"DL4-2S": F(4, 2),
"DL2-1S": F(2, 1),
"DL1-.5S": F(1, .5),
"DL1-4S": F(1, 4),
"DL.5-2S": F(.5, 2),
"DL4-1S": F(4, 1),
"DL2-.5S": F(2, .5),
DLOC8NW: I(8, "NW"),
DLOC8NE: I(8, "NE"),
DLOC8SW: I(8, "SW"),
DLOC8SE: I(8, "SE"),
DLOC4NW: I(4, "NW"),
DLOC4NE: I(4, "NE"),
DLOC4SW: I(4, "SW"),
DLOC4SE: I(4, "SE"),
DLIC8N: L(4),
DLIC4N: L(2),
DLIC8S: ee(4),
DLIC4S: ee(2),
RA8NW: { codeString: "VL8;HL8" },
RA4NW: { codeString: "VL4;HL4" },
RA3NW: { codeString: "VL3;HL3" },
RA2NW: { codeString: "VL2;HL2" },
"RA1.5NW": { codeString: "VL1.5;HL1.5" },
RA1NW: { codeString: "VL1;HL1" },
RA8NE: { codeString: "HL8;VL8:8,0" },
RA4NE: { codeString: "HL4;VL4:4,0" },
RA3NE: { codeString: "HL3;VL3:3,0" },
RA2NE: { codeString: "HL2;VL2:2,0" },
"RA1.5NE": { codeString: "HL1.5;VL1.5:1.5,0" },
RA1NE: { codeString: "HL1;VL1:1,0" },
RA8SW: { codeString: "VL8;HL8:0,8" },
RA4SW: { codeString: "VL4;HL4:0,4" },
RA3SW: { codeString: "VL3;HL3:0,3" },
RA2SW: { codeString: "VL2;HL2:0,2" },
"RA1.5SW": { codeString: "VL1.5;HL1.5:0,1.5" },
RA1SW: { codeString: "VL1;HL1:0,1" },
RA8SE: { codeString: "HL8:0,8;VL8:8,0" },
RA4SE: { codeString: "HL4:0,4;VL4:4,0" },
RA3SE: { codeString: "HL3:0,3;VL3:3,0" },
RA2SE: { codeString: "HL2:0,2;VL2:2,0" },
"RA1.5SE": { codeString: "HL1.5:0,1.5;VL1.5:1.5,0" },
RA1SE: { codeString: "HL1:0,1;VL1:1,0" },
RA8N: { codeString: "DL4N;DL4S:4,0" },
RA4N: { codeString: "DL2N;DL2S:2,0" },
RA3N: { codeString: "DL1.5N;DL1.5S:1.5,0" },
RA2N: { codeString: "DL1N;DL1S:1,0" },
RA1N: { codeString: "DL.5N;DL.5S:0.5,0" },
RA8S: { codeString: "DL4S;DL4N:4,0" },
RA4S: { codeString: "DL2S;DL2N:2,0" },
RA3S: { codeString: "DL1.5S;DL1.5N:1.5,0" },
RA2S: { codeString: "DL1S;DL1N:1,0" },
RA1S: { codeString: "DL.5S;DL.5N:.5,0" },
RA8W: { codeString: "DL4N;DL4S:0,4" },
RA4W: { codeString: "DL2N;DL2S:0,2" },
RA3W: { codeString: "DL1.5N;DL1.5S:0,1.5" },
RA2W: { codeString: "DL1N;DL1S:0,1" },
RA1W: { codeString: "DL.5N;DL.5S:0,0.5" },
RA8E: { codeString: "DL4S;DL4N:0,4" },
RA4E: { codeString: "DL2S;DL2N:0,2" },
RA3E: { codeString: "DL1.5S;DL1.5N:0,1.5" },
RA2E: { codeString: "DL1S;DL1N:0,1" },
RA1E: { codeString: "DL.5S;DL.5N:0,0.5" },
AA8N: { codeString: "DL4-8N;DL4-8S:4,0" },
AA4N: { codeString: "DL2-4N;DL2-4S:2,0" },
AA2N: { codeString: "DL1-2N;DL1-2S:1,0" },
AA8S: { codeString: "DL4-8S;DL4-8N:4,0" },
AA4S: { codeString: "DL2-4S;DL2-4N:2,0" },
AA2S: { codeString: "DL1-2S;DL1-2N:1,0" },
AA8W: { codeString: "DL8-4N;DL8-4S:0,4" },
AA4W: { codeString: "DL4-2N;DL4-2S:0,2" },
AA2W: { codeString: "DL2-1N;DL2-1S:0,1" },
AA8E: { codeString: "DL8-4S;DL8-4N:0,4" },
AA4E: { codeString: "DL4-2S;DL4-2N:0,2" },
AA2E: { codeString: "DL2-1S;DL2-1N:0,1" },
SC8: { codeString: "HL8:0,4;VL8:4,0" },
SC4: { codeString: "HL4:0,2;VL4:2,0" },
SC2: { codeString: "HL2:0,1;VL2:1,0" },
DC8: { codeString: "DL8S;DL8N" },
DC4: { codeString: "DL4S;DL4N" },
DC2: { codeString: "DL2S;DL2N" },
RT8SW: { codeString: "VL8;HL8:0,8;DL8S" },
RT4SW: { codeString: "VL4;HL4:0,4;DL4S" },
RT2SW: { codeString: "VL2;HL2:0,2;DL2S" },
RT8NW: { codeString: "VL8;HL8;DL8N" },
RT4NW: { codeString: "VL4;HL4;DL4N" },
RT2NW: { codeString: "VL2;HL2;DL2N" },
RT8NE: { codeString: "HL8;VL8:8,0;DL8S" },
RT4NE: { codeString: "HL4;VL4:4,0;DL4S" },
RT2NE: { codeString: "HL2;VL2:2,0;DL2S" },
RT8SE: { codeString: "HL8:0,8;VL8:8,0;DL8N" },
RT4SE: { codeString: "HL4:0,4;VL4:4,0;DL4N" },
RT2SE: { codeString: "HL2:0,2;VL2:2,0;DL2N" },
RT8N: { codeString: "DL4N;DL4S:4,0;HL8:0,4" },
RT4N: { codeString: "DL2N;DL2S:2,0;HL4:0,2" },
RT2N: { codeString: "DL1N;DL1S:1,0;HL2:0,1" },
RT8S: { codeString: "DL4S;DL4N:4,0;HL8" },
RT4S: { codeString: "DL2S;DL2N:2,0;HL4" },
RT2S: { codeString: "DL1S;DL1N:1,0;HL2" },
RT8W: { codeString: "DL4N;DL4S:0,4;VL8:4,0" },
RT4W: { codeString: "DL2N;DL2S:0,2;VL4:2,0" },
RT2W: { codeString: "DL1N;DL1S:0,1;VL2:1,0" },
RT8E: { codeString: "DL4S;DL4N:0,4;VL8" },
RT4E: { codeString: "DL2S;DL2N:0,2;VL4" },
RT2E: { codeString: "DL1S;DL1N:0,1;VL2" },
AT8N: { codeString: "DL4-8N;DL4-8S:4,0;HL8:0,8" },
AT4N: { codeString: "DL2-4N;DL2-4S:2,0;HL4:0,4" },
AT2N: { codeString: "DL1-2N;DL1-2S:1,0;HL2:0,2" },
AT8S: { codeString: "DL4-8S;DL4-8N:4,0;HL8" },
AT4S: { codeString: "DL2-4S;DL2-4N:2,0;HL4" },
AT2S: { codeString: "DL1-2S;DL1-2N:1,0;HL2" },
AT8W: { codeString: "DL8-4N;DL8-4S:0,4;VL8:8,0" },
AT4W: { codeString: "DL4-2N;DL4-2S:0,2;VL4:4,0" },
AT2W: { codeString: "DL2-1N;DL2-1S:0,1;VL2:2,0" },
AT8E: { codeString: "DL8-4S;DL8-4N:0,4;VL8" },
AT4E: { codeString: "DL4-2S;DL4-2N:0,2;VL4" },
AT2E: { codeString: "DL2-1S;DL2-1N:0,1;VL2" },
S8: { codeString: "HL8;HL8:0,8;VL8;VL8:8,0" },
S4: { codeString: "HL4;HL4:0,4;VL4;VL4:4,0" },
S2: { codeString: "HL2;HL2:0,2;VL2;VL2:2,0" },
DS8: { codeString: "DL4N;DL4S:4,0;DL4S:0,4;DL4N:4,4" },
DS4: { codeString: "DL2N;DL2S:2,0;DL2S:0,2;DL2N:2,2" },
DS2: { codeString: "DL1N;DL1S:1,0;DL1S:0,1;DL1N:1,1" },
OS8N: { codeString: "VL8;HL8:0,8;VL8:8,0" },
OS4N: { codeString: "VL4;HL4:0,4;VL4:4,0" },
OS2N: { codeString: "VL2;HL2:0,2;VL2:2,0" },
OS8S: { codeString: "VL8;HL8;VL8:8,0" },
OS4S: { codeString: "VL4;HL4;VL4:4,0" },
OS2S: { codeString: "VL2;HL2;VL2:2,0" },
OS8W: { codeString: "HL8;HL8:0,8;VL8:8,0" },
OS4W: { codeString: "HL4;HL4:0,4;VL4:4,0" },
OS2W: { codeString: "HL2;HL2:0,2;VL2:2,0" },
OS8E: { codeString: "VL8;HL8;HL8:0,8" },
OS4E: { codeString: "VL4;HL4;HL4:0,4" },
OS2E: { codeString: "VL2;HL2;HL2:0,2" },
R84: { codeString: "HL8;HL8:0,4;VL4;VL4:8,0" },
R42: { codeString: "HL4;HL4:0,2;VL2;VL2:4,0" },
R48: { codeString: "HL4;HL4:0,8;VL8;VL8:4,0" },
R24: { codeString: "HL2;HL2:0,4;VL4;VL4:2,0" },
OR84N: { codeString: "VL4;HL8:0,4;VL4:8,0" },
OR42N: { codeString: "VL2;HL4:0,2;VL2:4,0" },
OR84S: { codeString: "VL4;HL8;VL4:8,0" },
OR42S: { codeString: "VL2;HL4;VL2:4,0" },
OR84W: { codeString: "HL8;HL8:0,4;VL4:8,0" },
OR42W: { codeString: "HL4;HL4:0,2;VL2:4,0" },
OR84E: { codeString: "VL4;HL8;HL8:0,4" },
OR42E: { codeString: "VL2;HL4;HL4:0,2" },
OR48N: { codeString: "VL8;HL4:0,8;VL8:4,0" },
OR24N: { codeString: "VL4;HL2:0,4;VL4:2,0" },
OR48S: { codeString: "VL8;HL4;VL8:4,0" },
OR24S: { codeString: "VL4;HL2;VL4:2,0" },
OR48W: { codeString: "HL4;HL4:0,8;VL8:4,0" },
OR24W: { codeString: "HL2;HL2:0,4;VL4:2,0" },
OR48E: { codeString: "VL8;HL4;HL4:0,8" },
OR24E: { codeString: "VL4;HL2;HL2:0,4" },
LARR8W: { codeString: "P4W;HL8:0,2" },
ARR8W: { codeString: "P3W;HL8:0,1.5" },
LARR4W: { codeString: "P4W;HL4:0,2" },
ARR4W: { codeString: "P3W;HL3:0,1.5" },
LARR8E: { codeString: "HL8:0,2;P4E:6,0" },
ARR8E: { codeString: "HL8:0,1.5;P3E:6.5,0" },
LARR4E: { codeString: "HL4:0,2;P4E:2,0" },
ARR4E: { codeString: "HL4:0,1.5;P3E:2.5,0" },
LARR8N: { codeString: "P4N;VL8:2,0" },
ARR8N: { codeString: "P3N;VL8:1.5,0" },
LARR4N: { codeString: "P4N;VL4:2,0" },
ARR4N: { codeString: "P3N;VL4:1.5,0" },
LARR8S: { codeString: "P4S:0,6;VL8:2,0" },
ARR8S: { codeString: "P3S:0,6.5;VL8:1.5,0" },
LARR4S: { codeString: "P4S:0,2;VL4:2,0" },
ARR4S: { codeString: "P3S:0,2.5;VL4:1.5,0" },
LARR8NW: { codeString: "DL8S;P3NW" },
ARR8NW: { codeString: "DL8S;P2NW" },
LARR4NW: { codeString: "DL4S;P3NW" },
ARR4NW: { codeString: "DL4S;P2NW" },
LARR8NE: { codeString: "DL8N;P3NE:5,0" },
ARR8NE: { codeString: "DL8N;P2NE:6,0" },
LARR4NE: { codeString: "DL4N;P3NE:1,0" },
ARR4NE: { codeString: "DL4N;P2NE:2,0" },
LARR8SW: { codeString: "DL8N;P3SW:0,5" },
ARR8SW: { codeString: "DL8N;P2SW:0,6" },
LARR4SW: { codeString: "DL4N;P3SW:0,1" },
ARR4SW: { codeString: "DL4N;P2SW:0,2" },
LARR8SE: { codeString: "DL8S;P3SE:5,5" },
ARR8SE: { codeString: "DL8S;P2SE:6,6" },
LARR4SE: { codeString: "DL4S;P3SE:1,1" },
ARR4SE: { codeString: "DL4S;P2SE:2,2" },
P4N: { codeString: "RA4N" },
P3N: { codeString: "RA3N" },
P2N: { codeString: "RA2N" },
P4S: { codeString: "RA4S" },
P3S: { codeString: "RA3S" },
P2S: { codeString: "RA2S" },
P4W: { codeString: "RA4W" },
P3W: { codeString: "RA3W" },
P2W: { codeString: "RA2W" },
P4E: { codeString: "RA4E" },
P3E: { codeString: "RA3E" },
P2E: { codeString: "RA2E" },
P3NW: { codeString: "RA3NW" },
P3NE: { codeString: "RA3NE" },
P3SW: { codeString: "RA3SW" },
P3SE: { codeString: "RA3SE" },
P2NW: { codeString: "RA2NW" },
P2NE: { codeString: "RA2NE" },
P2SW: { codeString: "RA2SW" },
P2SE: { codeString: "RA2SE" },
"P1.5NW": { codeString: "RA1.5NW" },
"P1.5NE": { codeString: "RA1.5NE" },
"P1.5SW": { codeString: "RA1.5SW" },
"P1.5SE": { codeString: "RA1.5SE" },
LARRC8EC: { codeString: "C8;P4S:6,2" },
ARRC8EC: { codeString: "C8;P3S:6.5,2.5" },
LARRC8WC: { codeString: "P4N:0,4;C8:2,0" },
ARRC8WC: { codeString: "P3N:0,4;C8:1.5,0" },
LARRC8NC: { codeString: "C8:0,2;P4E:2,0" },
ARRC8NC: { codeString: "C8:0,1.5;P3E:2.5,0" },
LARRC8SC: { codeString: "C8;P4W:4,6" },
ARRC8SC: { codeString: "C8;P3W:4,6.5" },
LARRC8ECC: { codeString: "C8;P4N:6,4" },
ARRC8ECC: { codeString: "C8;P3N:6.5,4" },
LARRC8WCC: { codeString: "P4S:0,2;C8:2,0" },
ARRC8WCC: { codeString: "P3S:0,2.5;C8:1.5,0" },
LARRC8NCC: { codeString: "C8:0,2;P4W:4,0" },
ARRC8NCC: { codeString: "C8:0,1.5;P3W:4,0" },
LARRC8SCC: { codeString: "C8;P4E:2,6" },
ARRC8SCC: { codeString: "C8;P3E:2.5,6.5" },
LARROC8SEC: { codeString: "OC8SE;P4S:6,2" },
ARROC8SEC: { codeString: "OC8SE;P3S:6.5,2.5" },
LARROC8NWC: { codeString: "P4N:0,4;OC8NW:2,0" },
ARROC8NWC: { codeString: "P3N:0,4;OC8NW:1.5,0" },
LARROC8NEC: { codeString: "OC8NE:0,2;P4E:2,0" },
ARROC8NEC: { codeString: "OC8NE:0,1.5;P3E:2.5,0" },
LARROC8SWC: { codeString: "OC8SW;P4W:4,6" },
ARROC8SWC: { codeString: "OC8SW;P3W:4,6.5" },
LARROC8SECC: { codeString: "OC8SE;P4E:2,6" },
ARROC8SECC: { codeString: "OC8SE;P3E:2.5,6.5" },
LARROC8NWCC: { codeString: "OC8NW:0,2;P4W:4,0" },
ARROC8NWCC: { codeString: "OC8NW:0,1.5;P3W:4,0" },
LARROC8NECC: { codeString: "OC8NE;P4N:6,4" },
ARROC8NECC: { codeString: "OC8NE;P3N:6.5,4" },
LARROC8SWCC: { codeString: "P4S:0,2;OC8SW:2,0" },
ARROC8SWCC: { codeString: "P3S:0,2.5;OC8SW:1.5,0" },
LARRHC8NC: { codeString: "HC8N;P4S:6,2" },
ARRHC8NC: { codeString: "HC8N;P3S:6.5,2.5" },
LARRHC8SC: { codeString: "P4N;HC8S:2,0" },
ARRHC8SC: { codeString: "P3N;HC8S:1.5,0" },
LARRHC8WC: { codeString: "HC8W:0,2;P4E:2,0" },
ARRHC8WC: { codeString: "HC8W:0,1.5;P3E:2.5,0" },
LARRHC8EC: { codeString: "HC8E;P4W:0,6" },
ARRHC8EC: { codeString: "HC8E;P3W:0,6.5" },
LARRHC8NCC: { codeString: "P4S:0,2;HC8N:2,0" },
ARRHC8NCC: { codeString: "P3S:0,2.5;HC8N:1.5,0" },
LARRHC8SCC: { codeString: "HC8S;P4N:6,0" },
ARRHC8SCC: { codeString: "HC8S;P3N:6.5,0" },
LARRHC8WCC: { codeString: "HC8W;P4E:2,6" },
ARRHC8WCC: { codeString: "HC8W;P3E:2.5,6.5" },
LARRHC8ECC: { codeString: "P4W;HC8E:0,2" },
ARRHC8ECC: { codeString: "P3W;HC8E:0,1.5" },
LARRQC4NWC: { codeString: "QC4NW:0,2;P4E:2,0" },
ARRQC4NWC: { codeString: "QC4NW:0,1.5;P3E:2.5,0" },
LARRQC4SWC: { codeString: "P4N;QC4SW:2,0" },
ARRQC4SWC: { codeString: "P3N;QC4SW:1.5,0" },
LARRQC4NEC: { codeString: "QC4NE;P4S:2,2" },
ARRQC4NEC: { codeString: "QC4NE;P3S:2.5,2.5" },
LARRQC4SEC: { codeString: "QC4SE;P4W:0,2" },
ARRQC4SEC: { codeString: "QC4SE;P3W:0,2.5" },
LARRQC4NWCC: { codeString: "P4S:0,2;QC4NW:2,0" },
ARRQC4NWCC: { codeString: "P3S:0,2.5;QC4NW:1.5,0" },
LARRQC4SWCC: { codeString: "QC4SW;P4E:2,2" },
ARRQC4SWCC: { codeString: "QC4SW;P3E:2.5,2.5" },
LARRQC4NECC: { codeString: "P4W;QC4NE:0,2" },
ARRQC4NECC: { codeString: "P3W;QC4NE:0,1.5" },
LARRQC4SECC: { codeString: "QC4SE;P4N:2,0" },
ARRQC4SECC: { codeString: "QC4SE;P3N:2.5,0" }
};
U.DOT.extraPathOptions = {
baseStrokeWidth: .5,
extraDotWidth: .333
}, U.SDOT.extraPathOptions = {
baseStrokeWidth: .5,
extraDotWidth: .1665
}, U.COMMA.extraPathOptions = {
baseStrokeWidth: .5,
extraDotWidth: .333
}, U.DOT.dotFamily = "dot", U.SDOT.dotFamily = "sdot", U.COMMA.dotFamily = "dot";
var le = {};
for (let [e, t] of Object.entries(o)) le[e] = ie(t.char);
for (let e of Object.values(U)) e.isShape = !0;
var W = {
...se,
...ce,
...U,
...le
};
for (let [e, t] of Object.entries(ae)) t.glyphCode = e, t.isBlissGlyph = !0;
Object.assign(W, ae);
var G = new Set(Object.keys(W)), ue = {
B29: { codeString: "Xa" },
B30: { codeString: "Xb" },
B31: { codeString: "Xc" },
B32: { codeString: "Xd" },
B33: { codeString: "Xe" },
B34: { codeString: "Xf" },
B35: { codeString: "Xg" },
B36: { codeString: "Xh" },
B37: { codeString: "Xi" },
B38: { codeString: "Xj" },
B39: { codeString: "Xk" },
B40: { codeString: "Xl" },
B41: { codeString: "Xm" },
B42: { codeString: "Xn" },
B43: { codeString: "Xo" },
B44: { codeString: "Xp" },
B45: { codeString: "Xq" },
B46: { codeString: "Xr" },
B47: { codeString: "Xs" },
B48: { codeString: "Xt" },
B49: { codeString: "Xu" },
B50: { codeString: "Xv" },
B51: { codeString: "Xw" },
B52: { codeString: "Xx" },
B53: { codeString: "Xy" },
B54: { codeString: "Xz" },
B55: { codeString: "XA" },
B56: { codeString: "XB" },
B57: { codeString: "XC" },
B58: { codeString: "XD" },
B59: { codeString: "XE" },
B60: { codeString: "XF" },
B61: { codeString: "XG" },
B62: { codeString: "XH" },
B63: { codeString: "XI" },
B64: { codeString: "XJ" },
B65: { codeString: "XK" },
B66: { codeString: "XL" },
B67: { codeString: "XM" },
B68: { codeString: "XN" },
B69: { codeString: "XO" },
B70: { codeString: "XP" },
B71: { codeString: "XQ" },
B72: { codeString: "XR" },
B73: { codeString: "XS" },
B74: { codeString: "XT" },
B75: { codeString: "XU" },
B76: { codeString: "XV" },
B77: { codeString: "XW" },
B78: { codeString: "XX" },
B79: { codeString: "XY" },
B80: { codeString: "XZ" }
};
Object.assign(W, ue);
var de = /* @__PURE__ */ new Set([...G, ...Object.keys(ue)]), fe = new RegExp(String.raw`^(\[` + p + String.raw`\])>(.+)$`), pe = new RegExp(String.raw`^(\[` + p + String.raw`\])(?!>)`), me = new RegExp(String.raw`^(\[` + p + String.raw`\])(?!>)(.+)$`), he = /^\w+$/;
function K(e, t) {
let n = e, r = /* @__PURE__ */ new Set();
for (; n && n.isIndicator !== !0 && !n.isBlissGlyph && !n.isShape && !n.isExternalGlyph && !n.glyphCode && typeof n.getPath != "function" && typeof n.codeString == "string" && he.test(n.codeString) && !r.has(n.codeString) && Object.prototype.hasOwnProperty.call(t, n.codeString);) r.add(n.codeString), n = t[n.codeString];
return n ?? e;
}
function q(e, t) {
let n = Object.prototype.hasOwnProperty.call(t, e) ? t[e] : void 0;
return n ? K(n, t) : void 0;
}
function J(e) {
let t = e.match(fe);
if (t) return t[3].split(":")[0].split(";")[0];
let n = e.match(pe);
return (n ? e.slice(n[1].length) : e).split(":")[0].split(";")[0];
}
function ge(e, t) {
for (let n of e) {
let e = q(J(n), t);
if (e?.semanticIndicator) return y[e.semanticIndicator];
}
return null;
}
function _e(e, t) {
return e.some((e) => q(J(e), t)?.semanticIndicator);
}
function ve(e, t) {
return e.filter((e) => q(J(e), t)?.isIndicator === !0);
}
function ye(e) {
let t = 0, n = null;
for (let r = 0; r < e.length; r++) {
let i = e[r];
if (n !== null) {
i === "\\" && r + 1 < e.length ? r++ : i === n && (n = null);
continue;
}
if ((i === "\"" || i === "'") && t > 0) n = i;
else if (i === "[") t++;
else if (i === "]") t > 0 && t--;
else if (i === "/" && t === 0) return !0;
}
return !1;
}
function be(e, t) {
let n = [], r = [];
for (let i of e) {
if (ye(i)) {
r.push({
code: i,
reason: "word-structure"
});
continue;
}
let e = J(i), a = q(e, t);
a?.isIndicator === !0 ? n.push(i) : r.push({
code: e,
reason: a ? "non-indicator" : "unknown"
});
}
return {
valid: n,
rejected: r
};
}
function xe(e, t, n, r, i) {
let { valid: a, rejected: o } = be(e.map((e) => {
let t = e, n;
for (; (n = t.match(me)) !== null;) i && i({
bracket: n[1],
code: n[3],
source: t
}), t = n[3];
return t;
}), n);
if (r) for (let e of o) r(e);
return a.length > 0 || t || e.length === 0 ? {
codes: a,
stripSemantic: t
} : null;
}
function Se(e) {
let t = [], n = 0, r = null, i = "";
for (let a = 0; a < e.length; a++) {
let o = e[a];
if (r !== null) {
i += o, o === "\\" && a + 1 < e.length ? i += e[++a] : o === r && (r = null);
continue;
}
(o === "\"" || o === "'") && n > 0 ? r = o : o === "[" ? n++ : o === "]" && n > 0 && n--, o === ";" && n === 0 ? (t.push(i), i = "") : i += o;
}
return t.push(i), t.map((e) => e.trim()).filter(Boolean);
}
function Ce(e, t) {
let n = e.filter((e) => !q(J(e), t)?.semanticIndicator);
return n.length > 0 && n.every((e) => {
let n = q(J(e), t)?.indicatorRole;
return n === "verbal" || n === "adjectival";
});
}
function we(e, t, n) {
return Ce(t, n) ? [...t, e] : [e, ...t];
}
function Te(e, t, { stripSemantic: n } = {}, r) {
let i = n ? null : ge(e, r), a = ve(t, r);
return a.length > 0 ? i && !_e(a, r) ? we(i, a, r) : a : i ? [i] : [];
}
function Ee(e, t) {
let n = q(e, t);
return n ? n.semanticIndicator ? "semantic" : "grammatical" : null;
}
function De(e, t, n, r) {
let i = e?.parts ?? [], a = i.findIndex((e, t) => t > 0 && e.isIndicator === !0), o = a === -1 ? i.slice() : i.slice(0, a), s = a === -1 ? [] : i.slice(a);
if (!s.every((e) => e.isIndicator === !0)) return i.slice();
let c = Te(s.map((e) => e.codeName), t?.codes ?? [], { stripSemantic: t?.stripSemantic === !0 }, n), l = s.slice(), u = [];
for (let e of c) {
let t = l.findIndex((t) => t.codeName === e);
if (t !== -1) {
u.push({ ...l.splice(t, 1)[0] });
continue;
}
let i = r(e)?.groups?.[0]?.glyphs?.[0]?.parts, a = i?.length > 1 ? {
codeName: J(e),
parts: i
} : i?.[0];
if (a) {
let t = J(e), r = Object.prototype.hasOwnProperty.call(n, t) ? n[t] : void 0;
if (i.length === 1 && a.codeName !== t && (a._aliasCodeName = t), a.isIndicator !== !0) {
let e = K(r, n);
e?.isIndicator && (a.isIndicator = !0, a.width = e.width ?? 2, e.anchorOffsetX !== void 0 && (a.anchorOffsetX = e.anchorOffsetX));
}
r?.defaultOptions && (a.options = {
...r.defaultOptions,
...a.options || {}
}), u.push({
...a,
_indicatorOrigin: "word"
});
}
}
return [...o, ...u];
}
//#endregion
//#region src/lib/bliss-head-glyph-exclusions.js
var Oe = ["B233"], ke = ["B401", "B699"], Ae = [["B10", "B4"]], je = /* @__PURE__ */ "B233.B401.B699.B937.B968.B6438.B6321.B449/B401.B486.B1060/B578/B608/B292.B1060/B578/B303.B1060/B578/B608.B1060/B578/B374.B1060/B578/B473.B1060/B578/B642.B1060/B578.B578/B303.B578/B608.B578/B374.B578/B473.B578/B642.B348.B444.B449.B578.B502/B167.B502.B102.B104.B109.B111.B120/B120.B162/B368.B134.B135.B158.B162.B195.B482.B491.B492.B977.B976.B402.B1124.B1125.B1123.B490.B398.B493.B676.B1102.B331.B332.B337.B657.B653.B677.B160.B100.B647.B368/B368/B368.B368/B368.B368.B117.B11/B117.B10/B117.B286.B449/B286.B951.B962.B1151.B1152.B1153.B559/B11.B9.B10.B11.B12.B13.B14.B15.B16.B17.B18".split("."), Me = (e, t, n) => e || (t > 1 ? void 0 : n), Ne = (e) => {
let t = (t, n) => {
for (let [r, i] of Ae) if (t === r && n + 1 < e.length && e[n + 1] === i) return !1;
return !0;
}, n = 0, r = !0;
for (; r && n < e.length;) {
r = !1;
for (let i of je) {
let a = i.split("/");
if (n + a.length <= e.length) {
let i = !0;
for (let r = 0; r < a.length; r++) {
let o = e[n + r];
if (o !== a[r] || a.length === 1 && !t(o, n + r)) {
i = !1;
break;
}
}
if (i) {
n += a.length, r = !0;
break;
}
}
}
}
if (n < e.length) return n;
let i = 0, a = Oe.includes(e[0]) ? 0 : ke.includes(e[0]) ? 1 : 2;
for (let t = 1; t < e.length; t++) {
let n = e[t], r = Oe.includes(n) ? 0 : ke.includes(n) ? 1 : 2;
(r > a || r === a && r > 0) && (i = t, a = r);
}
return i;
}, Pe = 1, Fe = class e {
#e;
#t;
#n;
#r;
#i;
#a;
#o;
#s;
#c;
#l;
#u;
#d;
#f;
#p;
#m;
#h;
#g;
#_;
#v;
#y;
#b;
#x;
#S;
#C;
#w;
#T;
#E;
#D;
static applyVectorEffectToPaths(e, t) {
return e.replace(/<path (?!d="")(?![^>]*\bvector-effect=)/g, () => `<path vector-effect="${t}" `);
}
static #O(t, n) {
let { anchorAttrs: r, groupAttrs: i, hasHref: a, vectorEffect: o } = e.#k(n), s = !t.startsWith("<"), c = (t) => o ? e.applyVectorEffectToPaths(t, o) : t;
if (a) {
let e = c(s ? `<path d="${t}"/>` : t);
return i ? `<a ${r} style="cursor: pointer;"><g ${i}>${e}</g></a>` : `<a ${r} style="cursor: pointer;">${e}</a>`;
}
return i ? `<g ${i}>${c(s ? `<path d="${t}"/>` : t)}</g>` : o ? c(s ? `<path d="${t}"/>` : t) : t;
}
static #k(e) {
if (!e || typeof e != "object") return {
anchorAttrs: "",
groupAttrs: "",
hasHref: !1
};
let t = /* @__PURE__ */ new Set([
"href",
"target",
"rel",
"download",
"hreflang",
"type",
"referrerpolicy"
]), n = {
color: "stroke",
strokeWidth: "stroke-width"
}, r = [], i = /* @__PURE__ */ new Map(), a = !1, o = !1, s = null, c = (e) => {
let t = String(e).replace(/[\x00-\x1f\x7f]/g, "").trim();
return /^(https?:|mailto:|tel:|\/|#)/i.test(t);
};
for (let [u, d] of Object.entries(e)) if (!(g.has(u) || !l(u))) if (t.has(u)) {
if (u === "href") {
if (!c(d)) continue;
a = !0;
}
r.push(`${u}="${d}"`);
} else {
let e = n[u] || u;
if (e === "vector-effect") {
s = d;
continue;
}
u === "pointer-events" && (o = !0);
let t = e !== u;
(!i.has(e) || !t) && i.set(e, d);
}
a && !o && i.set("pointer-events", "bounding-box");
let u = [...i].map(([e, t]) => `${e}="${t}"`);
return {
anchorAttrs: r.join(" "),
groupAttrs: u.join(" "),
hasHref: a,
vectorEffect: s
};
}
static #A(e) {
if (!e || e.length === 0) return {
glyphParts: [],
indicatorParts: [],
isValidPattern: !0
};
let t = e.findIndex((e) => e.isIndicator);
if (t === -1) return {
glyphParts: e,
indicatorParts: [],
isValidPattern: !0
};
let n = e.slice(0, t), r = e.slice(t);
return {
glyphParts: n,
indicatorParts: r,
isValidPattern: r.every((e) => e.isIndicator)
};
}
#j;
#M() {
let e = this.#h?.find((e) => !e.#C);
if (!e) return null;
let t = e.#h?.find((e) => !e.#S);
return !t || !t.#h ? null : t;
}
#N(e) {
if (this.#n.options?.[e] !== void 0) return this.#n.options[e];
let t = this.#T;
for (; t;) {
if (t.#n.options?.[e] !== void 0) return t.#n.options[e];
t = t.#T;
}
}
get #P() {
return !this.#h || this.#h.length === 0 ? 0 : Math.min(...this.#h.map((e) => e.#g + e.#P));
}
get #F() {
return !this.#h || this.#h.length === 0 ? this.width : Math.max(...this.#h.map((e) => e.#g + e.#F));
}
#I(e, t) {
if (t.length === 0) return;
let n = e.length > 0 ? Math.min(...e.map((e) => e.#g + e.#P)) : 0, r = n + ((e.length > 0 ? Math.max(...e.map((e) => e.#g + e.#F)) : 0) - n) / 2, i = e.length === 1 ? e[0].anchorOffset : void 0, a = i?.x || 0, o = i?.y || 0, s = r + a, c = t.reduce((e, t) => e + t.width, 0) + (t.length - 1) * Pe, l = t[0].anchorOffset?.x || 0, u = t[t.length - 1].anchorOffset?.x || 0, d = -Math.max(0, l) - Math.min(0, u), f = e.length === 0 ? 0 : s - c / 2 + d;
for (let e of t) e.#n.x === void 0 ? e.#g = f : e.#g = e.#n.x, e.#n.y === void 0 ? e.#_ = 4 + o - (e.#n.anchorOffsetY || 0) - 4 : e.#_ = e.#n.y, f += e.width + Pe;
}
constructor(t = {}, { parentElement: n = null, previousElement: r = null, level: i = 0, sharedOptions: a = null } = {}) {
if (this.#n = t, this.#T = n, this.#E = r, this.#t = i, this.#j = a || {
charSpace: 2,
wordSpace: 8,
externalGlyphSpace: .8
}, this.#e = this.#n.key || m(), this.#j.keys && (this.#n.key && this.#j.keys.has(this.#e) && this.#j.warnings.push({
code: v.DUPLICATE_KEY,
message: `Duplicate element key: "${this.#e}"`,
source: this.#e
}), this.#j.keys.add(this.#e)), this.#v = "", this.#g = 0, this.#_ = 0, this.#h = [], this.#b = this.#j.externalGlyphSpace - (this.kerningRules?.[r?.char] ?? 0), this.#w = 0, this.#t === 0) {
this.#n.groups || (this.#n = { groups: [this.#n] });
for (let t of this.#n.groups) {
let n = new e(t, {
parentElement: this,
previousElement: this.#h[this.#h.length - 1],
level: this.#t + 1,
sharedOptions: this.#j
});
this.#h.push(n);
}
let t = this.#M();
if (t && t.#D) {
let { glyphParts: e, indicatorParts: n } = t.#D;
if (e.length > 0 && n.length > 0 && !t.isIndicator) {
let e = n[0].#g;
e < 0 && (this.#w = -e);
}
}
this.#g = this.#w + (this.#n.x ?? 0), this.#_ = this.#n.y ?? 0, this.getSvgContent = (t = 0, n = 0) => {
let r = this.#h.map((e) => e.getSvgContent(this.#g + t, this.#_ + n)), i = r.some((e) => e.startsWith("<")), a = r.some((e) => !e.startsWith("<")), o = i && a ? r.map((e) => e.startsWith("<") ? e : `<path d="${e}"/>`).join("") : r.join(""), s = /* @__PURE__ */ new Set([
"href",
"target",
"rel",
"download",
"hreflang",
"type",
"referrerpolicy"
]), c = {};
if (this.#n.options) for (let [e, t] of Object.entries(this.#n.options)) s.has(e) && (c[e] = t);
return e.#O(o, c);
};
} else if (this.#t === 1) {
this.#n.glyphs || (this.#n = { glyphs: [this.#n] });
let t = null;
for (let n of this.#n.glyphs) {
let r = new e(n, {
parentElement: this,
previousElement: t,
level: this.#t + 1,
sharedOptions: this.#j
});
this.#h.push(r), r.#S || (t = r);
}
this.#C = this.#h.every((e) => e.#S), this.#x = this.#n.glyphs?.length > 0 && this.#n.glyphs.every((e) => {
let t = e.parts?.[0]?.codeName;
return t && H(t);
});
let n = this.#x;
this.#E ? this.#n.x === void 0 ? this.#g = this.#E.#g + this.#E.#m : this.#g = this.#E.#g + this.#E.width + this.#n.x : this.#T ? this.#g = this.#T.#g + (this.#n.x ?? 0) : this.#g = this.#n.x ?? 0, this.#T ? this.#_ = this.#T.#_ + (this.#n.y ?? 0) : this.#_ = this.#n.y ?? 0, n ? this.#m = this.#n.glyphs.reduce((e, t) => {
let n = t.parts?.[0]?.codeName;
return n === "TSP" ? e + (this.#j.wordSpace - this.#j.charSpace) : n === "QSP" ? e + (this.#j.wordSpace / 2 - this.#j.charSpace) : e;
}, 0) : this.#h.every((e) => e.#S) ? this.#m = 0 : this.#m = this.baseGroupWidth + this.#j.charSpace, this.getSvgContent = (t = 0, n = 0) => {
let r = this.#h.map((e) => e.getSvgContent(this.#g + t, this.#_ + n)), i = r.some((e) => e.startsWith("<")), a = r.some((e) => !e.startsWith("<")), o = i && a ? r.map((e) => e.startsWith("<") ? e : `<path d="${e}"/>`).join("") : r.join("");
return e.#O(o, this.#n.options);
};
} else if (this.#t === 2) {
if (typeof this.#n.glyphCode == "string") {
let e = this.#n.glyphCode;
this.#v = e.startsWith("XTXT_") ? "X" + e.slice(5) : e;
} else this.#v = "";
this.#y = this.#n.char ?? "", this.#o = !!this.#n.isBlissGlyph, this.#s = !!this.#n.isExternalGlyph, this.#n.parts || (this.#n = { parts: [this.#n] }), this.#S = this.#n.parts.length === 0;
let t = this.#j?.warnings?.length ?? 0;
for (let t of this.#n.parts) {
let n = new e(t, {
parentElement: this,
previousElement: this.#h[this.#h.length - 1],
level: this.#t + 1,
sharedOptions: this.#j
});
this.#h.push(n);
}
let n = (this.#j?.warnings?.length ?? 0) > t;
if (n) if (this.#j?.errorPlaceholder) {
this.#h = [];
let t = structuredClone(this.#j.errorPlaceholderParts);
for (let n of t) {
let t = new e(n, {
parentElement: this,
previousElement: this.#h[this.#h.length - 1],
level: this.#t + 1,
sharedOptions: this.#j
});
this.#h.push(t);
}
} else this.#h = [];
this.#D = e.#A(this.#h);
let { glyphParts: r, indicatorParts: i, isValidPattern: a } = this.#D, o = i.length > 0 && a;
if (o && this.#I(r, i), !o && this.#h.length > 0) {
let e = Math.min(...this.#h.map((e) => e.#g));
if (e < 0) for (let t of this.#h) t.#g -= e;
}
if (!this.#E) this.#g = this.#T.#g + (this.#n.x ?? 0);
else {
if (this.isExternalGlyph && this.#E.isExternalGlyph && !this.#S && (this.#E.#m = this.#E.width + this.#b), !this.#S && !this.isExternalGlyph && !this.#E.isExternalGlyph && this.#E.kerningRules && this.codeName) {
let e = this.#E.kerningRules[this.codeName] ?? 0;
e !== 0 && (this.#E.#m = this.#E.width + this.#j.charSpace + e);
}
typeof this.#n.options?.relativeKerning == "number" ? this.#E.#m += this.#n.options.relativeKerning : typeof this.#n.options?.absoluteKerning == "number" && (this.#E.#m = this.#E.width + this.#n.options.absoluteKerning), this.#n.x === void 0 ? this.#g = this.#E.#g + this.#E.#m : this.#g = this.#E.#g + this.#E.width + this.#n.x;
}
if (this.#_ = this.#n.y ?? 0, n && !this.#j?.errorPlaceholder) this.#m = 0, this.getSvgContent = () => "";
else if (this.#S) this.#m = 0, this.getSvgContent = () => "";
else {
let t = this.#n.parts?.[0]?.codeName;
t && H(t) ? t === "TSP" ? this.#m = this.#j.wordSpace - this.#j.charSpace : t === "QSP" && (this.#m = this.#j.wordSpace / 2 - this.#j.charSpace) : this.#m = this.baseGlyphWidth + this.#j.charSpace, this.getSvgContent = (t = 0, n = 0) => {
let r = this.#h.map((e) => e.getSvgContent(this.#g + t, this.#_ + n)), i = r.some((e) => e.startsWith("<")), a = r.some((e) => !e.startsWith("<")), o = i && a ? r.map((e) => e.startsWith("<") ? e : `<path d="${e}"/>`).join("") : r.join("");
return e.#O(o, this.#n.options);
};
}
} else {
let e = this.#n.codeName?.startsWith("XTXT_") ? (() => {
let e = x(this.#n.codeName.slice(5));
return e.isShape = !0, e;
})() : W[this.#n.codeName], t = !!e && !!e.getPath, n = !!this.#n.parts && this.#n.parts.length > 0;
if (this.#g = this.#n.x ?? 0, this.#_ = this.#n.y ?? 0, this.#n.errorCode === "COMPOSITE_AS_PART") {
if (!this.#j?.warnings) throw Error(`Unable to create Bliss element: ${this.#n.error || this.#n.codeName || "unknown"}`);
this.#j.warnings.push({
code: v.COMPOSITE_AS_PART,
message: this.#n.error,
source: this.#n.codeName || "unknown"
}), this.#u = 0, this.#d = 0, this.getSvgContent = () => "";
} else if (!t && !n) {
if (!this.#j?.warnings) {
let e = this.#n.codeName || this.#n.error || "unknown";
throw Error(`Unable to create Bliss element: ${e}`);
}
if (this.#n.errorCode === v.WORD_AS_PART) this.#j.warnings.push({
code: v.WORD_AS_PART,
message: this.#n.error,
source: this.#n.codeName || "unknown"
});
else if (this.#n.errorCode === v.MALFORMED_COORDINATES) this.#j.warnings.push({
code: v.MALFORMED_COORDINATES,
message: this.#n.error,
source: this.#n.error
});
else {
let e = this.#n.codeName || this.#n.error || "unknown";
this.#j.warnings.push({
code: v.UNKNOWN_CODE,
message: `Unknown or invalid code: "${e}"`,
source: e
});
}
this.#u = 0, this.#d = 0, this.getSvgContent = () => "";
} else if (t) this.#z(e), this.#n.y !== void 0 && (this.#_ = this.#n.y);
else if (n) {
let e = this.#n.codeName || "";
this.#v = e.startsWith("XTXT_") ? "X" + e.slice(5) : e, this.#B(this.#n.parts);
}
}
}
get parentElement() {
return this.#T;
}
get previousElement() {
return this.#E;
}
get advanceX() {
return this.#m || 0;
}
get children() {
return this.#h;
}
get codeName() {
return this.#v || "";
}
get anchorOffset() {
return {
x: this.#f || 0,
y: this.#p || 0
};
}
get width() {
if (this.#u !== void 0) return this.#u;
if (!this.#h || this.#h.length === 0) return 0;
let e = this.#t === 0 ? this.#h.filter((e) => !e.#C) : this.#t === 1 ? this.#h.filter((e) => !e.#S) : this.#h;
if (e.length === 0) return 0;
let t = Math.min(...e.map((e) => e.#g)), n;
n = this.#t === 1 ? Math.max(...e.map((e) => e.#g + e.rightExtendedGlyphWidth)) : Math.max(...e.map((e) => e.#g + e.width));
let r;
return r = this.#t === 0 ? n - t + this.#w : n - Math.min(0, t), r;
}
get rightExtendedGlyphWidth() {
if (this.#t !== 2) throw Error("rightExtendedGlyphWidth can only be called on glyph elements (level 2)");
let e = this.#h;
if (e.length === 0) return 0;
let { glyphParts: t } = this.#D, n = t.length > 0 ? t : e, r = Math.min(...n.map((e) => e.#g));
return Math.max(...e.map((e) => e.#g + e.width)) - Math.min(0, r);
}
get baseGlyphWidth() {
if (this.#t !== 2) throw Error("baseGlyphWidth can only be called on glyph elements (level 2)");
let e = this.#h;
if (e.length === 0) return 0;
let { glyphParts: t } = this.#D, n = t.length > 0 ? t : e, r = Math.min(...n.map((e) => e.#g));
return Math.max(...n.map((e) => e.#g + e.width)) - Math.min(0, r);
}
get baseGroupWidth() {
if (this.#t !== 1) throw Error("baseGroupWidth can only be called on group elements (level 1)");
let e = this.#h.filter((e) => !e.#S);
if (e.length === 0) return 0;
let t = e[0], n = e[e.length - 1], r = n.baseGlyphWidth;
return n.#g + r - t.#g;
}
get baseWidth() {
if (this.#t === 0) {
let e = this.#h.filter((e) => !e.#C);
if (e.length === 0) return 0;
let t = e[0], n = e[e.length - 1], r = n.baseGroupWidth;
return n.#g + r - t.#g;
}
return this.#t === 1 ? this.baseGroupWidth : this.#t === 2 ? this.baseGlyphWidth : this.width;
}
get height() {
return this.#d === void 0 ? this.#t === 2 ? 20 : this.#h && this.#h.length > 0 ? Math.max(...this.#h.map((e) => e.#_ + e.height)) : 0 : this.#d;
}
get baseX() {
return this.#c === void 0 ? !this.#h || this.#h.length === 0 ? 0 : this.#g : this.#c;
}
get x() {
return this.#c === void 0 ? !this.#h || this.#h.length === 0 ? 0 : Math.min(this.#g, ...this.#h.map((e) => this.#g + e.x)) : this.#c;
}
get y() {
return this.#t <= 1 ? 0 : this.#l === void 0 ? !this.#h || this.#h.length === 0 ? 0 : Math.min(this.#_, ...this.#h.map((e) => this.#_ + e.y)) : this.#l;
}
get isCharacter() {
return this.#i;
}
get char() {
return this.#y ?? "";
}
get kerningRules() {
return this.#n.kerningRules || {};
}
get isIndicator() {
return this.#n.isIndicator || !1;
}
#L() {
let e = Ee(this.isIndicator ? this.#n.codeName : null, W);
return e === null ? {
indicatorLevel: null,
indicatorKind: null
} : {
indicatorLevel: this.#n._indicatorOrigin === "word" ? "word" : "character",
indicatorKind: e
};
}
get isShape() {
return this.#a;
}
get isBlissGlyph() {
return this.#o;
}
get isExternalGlyph() {
return this.#s;
}
get isRoot() {
return this.#t === 0;
}
get isGroup() {
return this.#t === 1;
}
get isGlyph() {
return this.#t === 2;
}
get isPart() {
return this.#t >= 3;
}
get key() {
return this.#e;
}
snapshot(e = 0, t = 0, n = 0) {
let r = e + this.#g, i = t + this.#_, a = (this.#h || []).map((e, t) => e.snapshot(r, i, t));
if (this.#t === 1 && a.length > 0 && a.findIndex((e) => e.isHeadGlyph) === -1) {
let e = this.#h.flatMap((e, t) => e.#S ? [] : [t]);
if (e.length > 0) {
let t = e[Ne(e.map((e) => Me(a[e].codeName, a[e].children?.length ?? 0, a[e].children?.[0]?.codeName)))];
a[t] = Object.freeze({
...a[t],
isHeadGlyph: !0
});
}
}
let o = Object.freeze(a), { indicatorLevel: s, indicatorKind: c } = this.#L();
return Object.freeze({
key: this.#e,
codeName: this.#v || "",
char: this.#y ?? "",
x: r,
y: i,
offsetX: this.#g,
offsetY: this.#_,
width: this.width,
height: this.height,
advanceX: this.#m || 0,
baseWidth: this.baseWidth,
level: this.#t,
isRoot: this.#t === 0,
isGroup: this.#t === 1,
isGlyph: this.#t === 2,
isPart: this.#t >= 3,
bounds: Object.freeze(this.#R(e, t)),
isIndicator: this.isIndicator,
indicatorLevel: s,
indicatorKind: c,
isShape: !!this.#a,
isBlissGlyph: !!this.#o,
isExternalGlyph: !!this.#s,
isHeadGlyph: !!this.#n.isHeadGlyph,
isSpaceGroup: !!this.#x,
index: n,
parentKey: this.#T ? this.#T.#e : null,
children: o
});
}
get effectiveBounds() {
let e = 0, t = 0, n = this.#T;
for (; n;) e += n.#g, t += n.#_, n = n.#T;
return this.#R(e, t);
}
#R(e, t) {
let n = e + this.#g, r = t + this.#_;
if (this.#d !== void 0 && this.#u !== void 0) {
let e = this.#l || 0, t = this.#c || 0, i = n + t, a = n + t + this.#u, o = r + e, s = r + e + this.#d;
return {
minX: i,
maxX: a,
minY: o,
maxY: s,
width: a - i,
height: s - o
};
}
if (!this.#h || this.#h.length === 0) return {
minX: n,
maxX: n,
minY: r,
maxY: r,
width: 0,
height: 0
};
let i = this.#t === 0 ? this.#h.filter((e) => !e.#C) : this.#t === 1 ? this.#h.filter((e) => !e.#S) : this.#h;
if (i.length === 0) return {
minX: n,
maxX: n,
minY: r,
maxY: r,
width: 0,
height: 0
};
let a = i.map((e) => e.#R(n, r)), o = Math.min(...a.map((e) => e.minX)), s = Math.max(...a.map((e) => e.maxX)), c = Math.min(...a.map((e) => e.minY)), l = Math.max(...a.map((e) => e.maxY));
return {
minX: o,
maxX: s,
minY: c,
maxY: l,
width: s - o,
height: l - c
};
}
toString() {
let e = this.toJSON();
function t(e, n = 1) {
if (!e.elements) {
let t = e.codeName;
return (e.x !== 0 || e.y !== 0) && (t = `${t}:${e.x},${e.y}`), t;
}
return e.elements.map((e) => t(e, n + 1)).join({
1: "//",
2: "/",
3: ";"
}[n]);
}
return t(e);
}
toJSON() {
let e = {};
if (this.#v) {
let t = {};
t.codeName = this.codeName, t.width = this.width, t.x = this.#g, t.y = this.#_, e = t;
} else if (this.#h) {
e.elements = [];
for (let t of this.#h) e.elements.push(t.toJSON());
}
return e;
}
#z(t) {
if (typeof t?.getPath != "function") throw Error("An element is only predefined if has a proper getPath function.");
let n = this.#n.codeName;
this.#v = typeof n == "string" && n.startsWith("XTXT_") ? "X" + n.slice(5) : n, this.#r = t.extraPathOptions || {}, this.#i = !!t.isCharacter, this.#a = !!t.isShape, this.#u = t.width, this.#d = t.height, this.#c = t.x, this.#l = t.y, this.getSvgContent = (n = 0, r = 0) => {
let i = this.#N("color"), a = this.#N("strokeWidth"), o = this.#N("dotExtraWidth"), s = this.#N("sdotExtraWidth"), c = this.#N("dotWidth"), l = this.#N("sdotWidth"), u = t.dotFamily, d = {};
u === "dot" ? c === void 0 ? o !== void 0 && (d = { extraDotWidth: o }) : d = { dotWidth: c } : u === "sdot" && (l === void 0 ? s === void 0 ? o !== void 0 && (d = { extraDotWidth: o / 2 }) : d = { extraDotWidth: s } : d = { dotWidth: l });
let f = {
...this.#r,
...i !== void 0 && { color: i },
...a !== void 0 && { baseStrokeWidth: a },
...d
}, p = t.getPath(this.#g + n, this.#_ + r, f);
return e.#O(p, this.#n.options);
};
}
#B(t) {
if (this.#t > 50) throw Error("Maximum element nesting depth exceeded");
this.#h = [];
for (let n of t) {
let t = new e(n, {
parentElement: this,
previousElement: this.#h[this.#h.length - 1],
level: this.#t + 1,
sharedOptions: this.#j
});
this.#h.push(t);
}
if (this.#h.every((e) => e.isIndicator)) {
let e = 0;
for (let t of this.#h) t.#n.x === void 0 && (t.#g = e), e = t.#g + t.width + Pe;
}
if (!(this.#t === 3 && this.isIndicator) && this.#h.length > 0) {
let e = Math.min(...this.#h.map((e) => e.#g));
if (e !== 0) {
for (let t of this.#h) t.#g -= e;
this.#g += e;
}
}
this.#f = this.#n.anchorOffsetX || 0, this.#p = this.#n.anchorOffsetY || 0, this.getSvgContent = (t = 0, n = 0) => {
let r = this.#h.map((e) => e.getSvgContent(this.#g + t, this.#_ + n)), i = r.some((e) => e.startsWith("<")), a = r.some((e) => !e.startsWith("<")), o = i && a ? r.map((e) => e.startsWith("<") ? e : `<path d="${e}"/>`).join("") : r.join("");
return e.#O(o, this.#n.options);
};
}
}, Ie = /:(?:-?(?:\d+(?:\.\d*)?|\.\d+))?(?:,(?:-?(?:\d+(?:\.\d*)?|\.\d+))?)?$/, Le = /^\[.*?\]>/, Re = new RegExp(String.raw`^(\[` + p + String.raw`\])(?!>)(.+)$`), ze = new RegExp(String.raw`\{(.*)\}|\[(` + p + String.raw`)\]`, "g"), Be = new RegExp(String.raw`\[(` + p + String.raw`)\]`), Ve = new RegExp(String.raw`^(\[` + p + String.raw`\])(?!>)(.+)$`), He = new RegExp(String.raw`^(\[` + p + String.raw`\])>(.+)$`), Ue = (e) => e.replace(/^(?:\[.*?\]>?)+/, "").replace(/\^+$/, "").replace(Ie, ""), Y = class e {
static parse(e, t) {
let n = this.fromString(e);
return t && (n.options = {
...n.options,
...t
}), n;
}
static #e(e) {
e.options && (e.options.x !== void 0 && e.x === void 0 && (e.x = Number(e.options.x)), e.options.y !== void 0 && e.y === void 0 && (e.y = Number(e.options.y)));
}
static #t(e, t) {
return (e.match(/\[/g) || []).length > 1 && (t.replace(/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/g, "").match(/\[/g) || []).length > 1;
}
static #n(e) {
if (!e) return;
let t = e.match(Be);
if (!t) throw Error(`#parseOptions: expected bracketed input, got: ${e}`);
let n = t[1];
if (!n) return;
let r = Object.create(null), i = /([\w-]+)(?:\s*=\s*("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|[^;]*))?/g, a;
for (; (a = i.exec(n)) !== null;) {
let e = a[1].trim();
if (a[2] === void 0) r[e] = !0;
else {
let t = a[2].trim();
t.startsWith("\"") && t.endsWith("\"") ? t = t.slice(1, -1).replace(/\\"/g, "\"") : t.startsWith("'") && t.endsWith("'") && (t = t.slice(1, -1).replace(/\\'/g, "'")), r[e] = t;
}
}
return r;
}
static parsePartString(e, t = (e) => e) {
let n = {}, r, i, a = e.match(/^(\[.*?\])>(.*)$/);
if (a ? (r = a[1], i = a[2], n.options = this.#n(t(r))) : i = e, i) {
let e = i.match(/^([a-zA-Z0-9\u00C0-\u017F\u0370-\u03FF\u0400-\u04FF\-._]+)(?::(\-?(?:\d+(?:\.\d*)?|\.\d+))?(?:,(\-?(?:\d+(?:\.\d*)?|\.\d+))?)?)?$/);
if (e) {
let [, t, r, i] = e;
n.codeName = t, r !== void 0 && (n.x = Number(r)), i !== void 0 && (n.y = Number(i));
} else n.error = `Invalid format: ${t(i)}`, /^[a-zA-Z0-9À-ſͰ-ϿЀ-ӿ\-._]+:/.test(i) && (n.errorCode = v.MALFORMED_COORDINATES);
}
return n;
}
static fromString(t) {
if (typeof t == "string" && t.length > 1e4) throw Error("Input string exceeds maximum length of 10,000 characters");
t = t.trim();
let n = {}, r = [], i = {}, a = 0, o = t;
t = t.replace(ze, (e, t, n) => {
let r = `PLACEHOLDER_${a++}`;
return t === void 0 ? (i[r] = {
content: n,
openBracket: "[",
closeBracket: "]"
}, "[" + r + "]") : (i[r] = {
content: t,
openBracket: "{",
closeBracket: "}"
}, "{" + r + "}");
}), (t.match(/\{/g) || []).length > 0 && r.push({
code: v.UNSUPPORTED_TEXT_BLOCKS,
message: "Text blocks ({...}) are not supported yet: the text does not render and is dropped from toString() output. Multiple {...} blocks in one input have undefined parse behavior until text-block tokenization ships. Use a single trailing {text} per group.",
source: o
}), t = t.replace(/\s/g, "");
let s = (e) => e && e.replace(/(\{|\[)PLACEHOLDER_(\d+)(\}|\])/g, (e, t, n, r) => {
let a = i[`PLACEHOLDER_${n}`];
if (a) {
let { content: e, openBracket: t, closeBracket: n } = a;
return t + e + n;
}
return e;
}), c = (e, t) => {
if (!e) return e;
for (let n of Object.keys(e)) {
if (!h.has(n)) continue;
let i = e[n] === !0 ? n : `${n}=${e[n]}`;
r.push({
code: v.MISPLACED_GLOBAL_OPTION,
message: `Global option (${i}) ignored at ${t} level: it configures the whole SVG. Use [${i}]|| to apply it globally.`,
source: i
}), delete e[n];
}
return Object.keys(e).length > 0 ? e : void 0;
}, [l, u, d] = t.match(/^\s*(?:([^|]*)\s*\|\|)?(.*)$/);
if (u && u.match(/^\[.*\]$/)) {
let t = s(u);
e.#t(u, t) && r.push({
code: v.MULTIPLE_OPTION_BRACKETS,
message: `Multiple option brackets before ||: "${t}". Only the first is applied; combine options in one bracket, e.g. [a;b]||.`,
source: t
}), n.options = this.#n(t) || {};
} else {
if (u && u.length > 0) {
let e = s(u);
r.push({
code: v.MALFORMED_GLOBAL_OPTIONS,
message: `Invalid global options syntax: "${e}||" - expected [options]|| format. Ignoring.`,
source: e
});
}
n.options = {};
}
let p = d.replace(/\/{2,}/g, (e) => "/" + "SP/".repeat(e.length - 1)).split("/").filter((e) => e !== ""), m = (e) => e === "SP" || e === "TSP" || e === "QSP", g = [];
for (let e of p) {
let t = m(e), n = g[g.length - 1];
n && n.isSpace === t ? n.codes.push(e) : g.push({
codes: [e],
isSpace: t
});
}
let _ = [];
for (let t = 0; t < g.length; t++) {
let { codes: n, isSpace: a } = g[t];
if (a) {
let e = n.map((e) => {
let t = e === "SP";
return { parts: [{
codeName: t ? "TSP" : e,
_fromSP: t
}] };
});
_.push({
glyphs: e,
_isSpaceGroup: !0,
_spaceIndex: t
});
continue;
}
let o = n.join("/"), l = { glyphs: [] }, [u, d, p] = o.match(/(.*?)(?:\{(.*?(?<!\\))\})?$/);
p && (l.text = i[p]?.content ?? p);
let h;
if (d.includes("|")) {
let [t, n] = d.split("|", 2);
if (t.match(/^\[.*\]$/)) {
let i = s(t);
e.#t(t, i) && r.push({
code: v.MULTIPLE_OPTION_BRACKETS,
message: `Multiple option brackets before |: "${i}". Only the first is applied; combine options in one bracket, e.g. [a;b]|.`,
source: i
}), l.options = c(this.#n(i), "group"), h = n;
} else if (t.length > 0) {
let e = s(t);
r.push({
code: v.MALFORMED_GROUP_OPTIONS,
message: `Invalid group options syntax: "${e}|" - expected [options]| format. Ignoring.`,
source: e
}), h = n;
} else h = n;
} else h = d;
function y(e) {
let t = e.replace(/(?<=^|\/)(\[[^\[\]]*\]>?)?X([a-zA-Z\u00C0-\u017F\u0370-\u03FF\u0400-\u04FF]{2,})/g, (t, n = "", r, i) => e[i + t.length] === ";" ? t : [...r].every((e) => b(e)) ? n + [...r].map((e) => `X${e}`).join("/") : `${n}XTXT_${r}`).split("/"), n = [], r = [], i = () => {
if (r.length !== 0) {
if (r.length === 1) {
let e = r[0].slice(1);
b(e) ? n.push(r[0]) : n.push(`XTXT_${e}`);
} else {
let e = r.map((e) => e.slice(1)).join("");
[...e].every((e) => b(e)) ? r.forEach((e) => n.push(e)) : n.push(`XTXT_${e}`);
}
r = [];
}
};
for (let e of t) {
if (/^X[a-zA-Z\u00C0-\u017F\u0370-\u03FF\u0400-\u04FF]$/.test(e)) {
r.push(e);
continue;
}
i();
let t = e.match(/^(\[[^\[\]]*\]>?)X([a-zA-Z\u00C0-\u017F\u0370-\u03FF\u0400-\u04FF])$/);
t && !b(t[2]) ? n.push(`${t[1]}XTXT_${t[2]}`) : n.push(e);
}
return i(), n.join("/");
}
function S(t, n) {
let i = t, a = (e) => {
let t = (t) => e[t].glyphCode ?? e[t]._scanCode ?? e[t].part.split(";")[0];
return Ne(e.map((e, n) => t(n)));
}, o = (e) => {
let t = e._scanCode ?? (e.part ? e.part.split(";")[0].split(":")[0] : "");
return t === "TSP" || t === "QSP" || t === "ZSA";
}, l = (e, t) => {
let n = e.flatMap((e, t) => e._marker ? [t] : []);
for (let i of n.slice(1)) delete e[i]._marker, r.push({
code: v.MULTIPLE_HEAD_MARKERS,
message: `Multiple head markers (^) found in word: ${t}. Using first marked glyph.`,
source: t
});
if (n.length > 0) return delete e[n[0]]._marker, {
index: n[0],
isDesignated: !0
};
let i = a(e), o = e[i]._frag, s = e.findIndex((e) => e._frag === o && e._designation);
return s === -1 ? {
index: i,
isDesignated: !1
} : {
index: s,
isDesignated: !0
};
}, u = 0, d = (e, t) => {
let n = null, r = (r, i) => {
let a = e.slice(r, i);
if (a.length === 0) return;
let o = l(a, t), s = ++u;
for (let e of a) delete e._designation, e._frag = s;
o.isDesignated && (a[o.index]._designation = !0), n === null && (n = {
index: r + o.index,
isDesignated: o.isDesignated
});
}, i = 0;
for (let t = 0; t < e.length; t++) e[t]._wordBreak && (r(i, t), i = t + 1);
return r(i, e.length), n;
}, p = (e, t) => {
if (e.length === 0) return;
let n = l(e, t);
n.isDesignated && (e[n.index].isHeadGlyph = !0);
}, m = (e, t) => {
let n = [];
for (let r of e) r._wordBreak ? (p(n, t), n = []) : n.push(r);
p(n, t);
}, h = (e, t = /* @__PURE__ */ new Set()) => {
if (t.has(e)) return null;
t.add(e);
let r = n[e];
if (!r?.codeString) return null;
if (!n[r.codeString]) {
let e = Ue(r.codeString);
return e !== r.codeString && n[e] ? h(e, t) ?? r.codeString : r.codeString;
}
return h(r.codeString, t);
}, g = (e) => {
let t = e.filter((e) => !e._wordBreak);
return t.length > 0 && (t[0]._wordError = {
code: v.MALFORMED_WORD_INDICATOR,
message: `Indicator bound to the multi-word unit "${s(i)}": an indicator targets a single word, but this expands to multiple words.`,
source: s(i)
}), t;
}, _ = t.match(/^(.+);;(.*)$/);
if (_) {
let [a, l, u] = _;
if (t.match(/;;/g).length > 1 || u.includes("/")) {
let e = t.replace(/;;/g, ";").split("/").flatMap((e) => y(e, n, !1));
return e.some((e) => e._wordBreak) ? g(e) : (m(e, i), e.length > 0 && (e[0]._wordError = {
code: v.MALFORMED_WORD_INDICATOR,
message: `Malformed word-level indicator in "${s(t)}": ;; must be the trailing part of a word.`,
source: s(t)
}), e);
}
let d = u.startsWith("!"), p = d ? u.slice(1) : u, h = l.split("/").flatMap((e) => y(e, n));
if (h.some((e) => e._wordBreak)) return g(h);
if (h.length > 0 && h.every(o)) return r.push({
code: v.MISPLACED_WORD_INDICATOR,
message: `Word-level indicator (;;${u}) ignored on "${s(t)}": a space cannot carry a word indicator.`,
source: s(t)
}), m(h, i), h;
m(h, i);
let b = xe(p.split(";").filter(Boolean).map((e) => s(e)).map((t) => {
let n = t, i;
for (; (i = n.match(Ve)) !== null;) r.push({
code: v.MISPLACED_CHARACTER_OPTION,
message: `Character option (${i[1]}) ignored on the word indicator "${i[3]}": a ;; code has no character to style. Use ${i[1]}>${i[3]} to style the indicator part.`,
source: n
}), n = i[3];
let a = n.match(He);
if (!a) return n;
let o = e.#n(a[1]) ?? {}, s = Object.keys(o).length, l = c(o, "part"), u = l ? Object.entries(l) : [];
return u.length === s ? n : u.length === 0 ? a[3] : `[${u.map(([e, t]) => t === !0 ? e : `${e}=${f(t)}`).join(";")}]>${a[3]}`;
}), d, n, ({ code: e, reason: t }) => {
r.push(t === "non-indicator" ? {
code: v.NON_INDICATOR_AS_WORD_INDICATOR,
message: `Word-level indicator "${e}" after ;; is not an indicator; it is ignored. A ;; code must be an indicator (e.g. B81).`,
source: e
} : {
code: v.UNKNOWN_CODE,
message: `Word-level indicator "${e}" after ;; is not a known code; it is ignored.`,
source: e
});
});
return b && h.length > 0 && (h[0]._wordIndicators = b), h;
}
function y(e, t, n = !0, i = 0) {
let a = !1;
e.endsWith("^") && (a = !0, e = e.slice(0, -1));
let c = e.match(/^(.*?)\^(;.*)$/);
if (c) {
let t = c[1] + c[2];
r.push({
code: v.MISPLACED_HEAD_MARKER,
message: `Head marker (^) ignored on "${s(e)}": it must mark the end of a character, after its indicators (e.g. "${s(t)}^"), not the base before them.`,
source: s(e)
}), e = t;
}
let l = b(e, t, n, i);
return a && (l.length === 1 ? o(l[0]) ? r.push({
code: v.MISPLACED_HEAD_MARKER,
message: `Head marker (^) ignored on "${s(e)}": a space cannot be a word's head.`,
source: s(e)
}) : l[0]._marker = !0 : r.push({
code: v.MISPLACED_HEAD_MARKER,
message: `Head marker (^) ignored on "${s(e)}": it expands to multiple characters. Mark a single character instead.`,
source: s(e)
})), l;
}
function b(e, t, n, i) {
if (i > 50) throw Error("Maximum recursion depth exceeded");
let a = e.match(/^(\[.*?\])>(.+)$/);
if (a) {
let o = a[1], c = a[2], [l, ...u] = c.split(";"), d = l.match(Ie), f = d && d.index > 0 ? l.slice(0, d.index) : l;
if (h(f)?.includes("/")) return r.push({
code: v.MISPLACED_PART_OPTION,
message: `Part option (${s(o)}>) ignored on "${s(f)}": > applies an option to a single part, but this is a word. Use ${s(o)}|| to apply it to the whole content.`,
source: s(f)
}), b(c, t, n, i);
if (n) {
let n = t[f], i = !!n && n.codeString !== void 0 && !n.isBlissGlyph && !n.isShape && !n.isExternalGlyph && !n.glyphCode, a = u.filter((e) => e !== "");
i && a.length > 0 && (r.push({
code: v.MISPLACED_CHARACTER_INDICATOR,
message: `Character indicator (;${a.join(";")}) ignored on "${s(f)}": ; composes onto a single character, but this is a word. Use ;; for a word-level indicator.`,
source: s(f)
}), c = l, e = `${o}>${l}`);
}
let p = t[c.split(":")[0]] || {};
return [{
part: e,
_scanCode: c.split(";")[0].split(":")[0],
...p.isExternalGlyph && { isExternalGlyph: p.isExternalGlyph },
...p.char && { char: p.char },
...p.kerningRules && { kerningRules: p.kerningRules }
}];
}
let o = e.match(/^(\[.*?\])(?!>)/), c = o ? o[1] : "", l = c ? e.slice(c.length) : e, [u, ...f] = l.split(";"), p = f.filter((e) => e !== ""), m = u.match(Ie), g = m && m.index > 0, _ = g ? u.slice(0, m.index) : u, S = g ? m[0] : "", C = h(_)?.includes("/") ?? !1, w = t[_], T = !!w && w.codeString !== void 0 && !w.isBlissGlyph && !w.isShape && !w.isExternalGlyph && !w.glyphCode, E = n && (T || C) && p.length > 0;
E && r.push({
code: v.MISPLACED_CHARACTER_INDICATOR,
message: `Character indicator (;${p.join(";")}) ignored on "${s(_)}": ; composes onto a single character, but this is a word. Use ;; for a word-level indicator.`,
source: s(_)
});
let D = f.length > 0 && p.length === 0, O = C || E || D ? t[_] || {} : l.startsWith("XTXT_") ? (() => {
let e = x(l.slice(5));
return e.isShape = !0, e;
})() : t[l] || {};
if (O.codeString) {
let a = O.codeString;
if (G.has(_) && !a.includes("/")) return [{
part: e.replace(/;$/, ""),
_scanCode: _,
...O.shrinksPrecedingWordSpace === !0 && { shrinksPrecedingWordSpace: !0 },
...O.isIndicator === !0 && { isIndicator: !0 },
...O.isExternalGlyph && { isExternalGlyph: O.isExternalGlyph },
...O.char && { char: O.char },
...O.kerningRules && { kerningRules: O.kerningRules },
...O.glyphCode && { glyphCode: O.glyphCode },
...O.isBlissGlyph && { isBlissGlyph: O.isBlissGlyph },
...O.defaultOptions && { defaultOptions: O.defaultOptions }
}];
if (a.includes("//")) {
let e = a.split("//"), o = [];
for (let n = 0; n < e.length; n++) {
n > 0 && o.push({
part: "",
_wordBreak: !0
});
let r = e[n].split("/").flatMap((e) => y(e, t, !1, i + 1));
d(r, _), o.push(...r);
}
if (S && o.length > 0) {
let e = o.find((e) => !e._wordBreak);
if (e) {
let t = e.part.split(";");
/:-?[\d.]/.test(t[0]) || (t[0] += S), e.part = t.join(";");
}
}
return c && o.length > 0 && (n ? r.push({
code: v.MISPLACED_CHARACTER_OPTION,
message: `Character option (${s(c)}) ignored on "${s(_)}": it applies to a single character, but this expands to multiple words. Use ${s(c)}|| to apply it to the whole content.`,
source: s(_)
}) : o[0].part = c + o[0].part), o;
}
let o = a.split("/").flatMap((e) => y(e, t, !1, i + 1)), l = o.length > 1, u = o.map((e) => {
if (e._wordBreak) return e;
let t = O.isIndicator ?? e.isIndicator, n = e.isExternalGlyph, r = O.kerningRules ?? e.kerningRules, i = e.char, a = O.shrinksPrecedingWordSpace, o = l ? e.glyphCode : O.glyphCode ?? e.glyphCode, s = e.isBlissGlyph ?? O.isBlissGlyph;
return {
part: e.part,
...a === !0 && { shrinksPrecedingWordSpace: a },
...t === !0 && { isIndicator: t },
...n && { isExternalGlyph: n },
...i && { char: i },
...r && { kerningRules: r },
...o && { glyphCode: o },
...s && { isBlissGlyph: s },
...e._marker && { _marker: !0 },
...e._designation && { _designation: !0 },
...e._frag !== void 0 && { _frag: e._frag },
...e._scanCode !== void 0 && { _scanCode: e._scanCode },
...e._aliasCodeName !== void 0 && { _aliasCodeName: e._aliasCodeName },
...e.defaultOptions && { defaultOptions: e.defaultOptions }
};
});
if (d(u, _), S && u.length > 0) {
let e = u[0].part.split(";");
/:-?[\d.]/.test(e[0]) || (e[0] += S), u[0].part = e.join(";");
}
if (O.defaultOptions && u.length > 0 && (u[0].defaultOptions = O.defaultOptions), c && u.length > 0 && (n && l ? r.push({
code: v.MISPLACED_CHARACTER_OPTION,
message: `Character option (${s(c)}) ignored on "${s(_)}": it applies to a single character, but this expands to a word. Use ${s(c)}|| to apply it to the whole content.`,
source: s(_)
}) : u[0].part = c + u[0].part), u.length === 1 && T) {
let e = K(O, t);
e && (e.isIndicator === !0 || e.isBlissGlyph || e.isShape || e.isExternalGlyph || e.glyphCode || typeof e.getPath == "function") && (u[0]._aliasCodeName = _);
} else u.length === 1 && O.isShape && (u[0]._aliasCodeName = _);
return u;
}
let k = O.isIndicator, A = O.isExternalGlyph, j = O.kerningRules, M = O.char, N = O.glyphCode, P = O.isBlissGlyph, F = O.shrinksPrecedingWordSpace;
return [{
part: e.replace(/;$/, ""),
_scanCode: _,
...F === !0 && { shrinksPrecedingWordSpace: F },
...k === !0 && { isIndicator: k },
...A && { isExternalGlyph: A },
...M && { char: M },
...j && { kerningRules: j },
...N && { glyphCode: N },
...P && { isBlissGlyph: P }
}];
}
let S = t.split("/").flatMap((e) => y(e, n));
return m(S, i), S;
}
let C = S(y(h), W);
if (l.options && ((e) => {
let t = !1, n = !1;
for (let r of e) {
let e = r._scanCode ?? (r.part ? r.part.split(";")[0].split(":")[0] : "");
if (!(e === "RK" || e === "AK")) {
if (r._wordBreak || m(r.part)) t && (n = !0);
else if (r.part !== "") {
if (n) return !0;
t = !0;
}
}
}
return !1;
})(C)) {
let e = Object.entries(l.options).map(([e, t]) => t === !0 ? e : `${e}=${t}`).join(";"), t = s(h);
r.push({
code: v.MISPLACED_GROUP_OPTION,
message: `Group option ([${e}]) ignored on "${t}": | applies options to a single word, but this expands to multiple words. Use [${e}]|| to apply them to the whole content.`,
source: t
}), delete l.options;
}
let w, T;
for (let { part: t, shrinksPrecedingWordSpace: n, isIndicator: i, isExternalGlyph: a, char: o, kerningRules: u, glyphCode: d, isBlissGlyph: f, isHeadGlyph: p, defaultOptions: m, _aliasCodeName: h, _wordBreak: g, _wordIndicators: y, _wordError: b } of C) {
if (b && (l.errorCode = b.code, l.error = b.message, l.errorSource = b.source), y) if (l.glyphs.length === 0) l.wordIndicators = y;
else {
let { codes: e = [], stripSemantic: t } = y, n = ";;" + (t ? "!" : "") + e.join(";");
r.push({
code: v.DROPPED_WORD_INDICATOR,
message: `Composing glyphs into one word dropped a later glyph's word-level indicator overlay (${n}). The word keeps only the first glyph's overlay.`,
source: n
});
}
if (g) {
l.glyphs.length > 0 && (this.#e(l), _.push(l)), _.push({
glyphs: [{ parts: [{
codeName: "SP",
_fromSP: !0
}] }],
_isSpaceGroup: !0,
_spaceIndex: _.length
}), l = { glyphs: [] };
continue;
}
if (t === "") continue;
let S = {
parts: [],
...n === !0 && { shrinksPrecedingWordSpace: n },
...typeof i == "boolean" && { isIndicator: i },
...typeof a == "boolean" && { isExternalGlyph: a },
...typeof o == "string" && { char: o },
...u !== null && u?.constructor === Object && { kerningRules: u },
...typeof d == "string" && { glyphCode: d },
...f === !0 && { isBlissGlyph: f },
...p === !0 && { isHeadGlyph: p }
}, C = t.match(/^(RK|AK)(?::([+-]?(?:\d+(?:\.\d*)?|\.\d+)))?$/);
if (C) {
let [e, t, n] = C;
n !== void 0 && (t === "RK" && (w = Number(n)), t === "AK" && (T = Number(n)));
continue;
}
if (/^(RK|AK):/.test(t)) {
r.push({
code: v.MALFORMED_KERNING_VALUE,
message: `Malformed kerning value "${t}"; the marker is ignored.`,
source: t
});
continue;
}
w !== void 0 && ((S.options ??= {}).relativeKerning = w, w = void 0), T !== void 0 && ((S.options ??= {}).absoluteKerning = T, T = void 0), m && (S.options = {
...m,
...S.options || {}
});
let E = t, D = t.match(/^(\[[^\[\]]*\])(?!>)(.*)/);
if (D) {
let e = c(this.#n(s(D[1])), "character");
(S.options || e) && (S.options = {
...S.options,
...e
}), E = D[2];
}
let O = (t, n = 0) => {
if (n > 50) throw Error("Maximum recursion depth exceeded");
let i = [], a = t.split(";"), o = 0;
for (let [t, l] of a.entries()) {
if (l === "") continue;
let a = l;
if (t > 0) {
let e;
for (; (e = a.match(Re)) !== null;) r.push({
code: v.MISPLACED_CHARACTER_OPTION,
message: `Character option (${s(e[1])}) ignored on "${s(e[3])}": a ; part slot takes part options. Use ${s(e[1])}>${s(e[3])} to style the part.`,
source: s(l)
}), a = e[3];
}
let u = this.parsePartString(a, s);
u.options && (u.options = c(u.options, "part"), u.options || delete u.options);
let d = u.codeName?.startsWith("XTXT_") ? (() => {
let e = x(u.codeName.slice(5));
return e.isShape = !0, e;
})() : W[u.codeName] || {}, f = d.codeString;
f && (f.includes("/") || (f.includes(";") || f.includes(":") || Le.test(f) || W[f]?.codeString ? u.parts = O(d.codeString, n + 1) : (u._aliasCodeName = u.codeName, u.codeName = d.codeString))), /^X[a-zA-Z\u00C0-\u017F\u0370-\u03FF\u0400-\u04FF]{2,}$/.test(u.codeName) && (u.error = `Multi-character text "${u.codeName.slice(1)}" is a word and cannot be composed with ;`, u.errorCode = "WORD_AS_PART"), e.#a(u, d), e.#i(u, d), e.#r(u, o), o++, this.#e(u), i.push(u);
}
return i;
};
S.parts = O(E), h && !(S.parts.length === 1 && H(S.parts[0].codeName)) && (S.parts.length === 1 && (!S.glyphCode || G.has(S.glyphCode)) && (S.parts[0]._aliasCodeName = h), S._aliasCodeName = h), this.#e(S), l.glyphs.push(S);
}
this.#e(l), _.push(l);
}
for (let e = 0; e < _.length; e++) {
let t = _[e];
if (t._isSpaceGroup) {
let n = _[e + 1], r = n && !n._isSpaceGroup && n.glyphs?.length > 0 && n.glyphs.every((e) => e.shrinksPrecedingWordSpace === !0) ? "QSP" : "TSP";
for (let e of t.glyphs) {
let t = e.parts[0];
t._fromSP ? t.codeName = r : t.codeName !== r && (t._differsFromDefault = !0), delete t._fromSP;
}
}
delete t._isSpaceGroup, delete t._spaceIndex;
}
return n.groups = _, r.length && (n._parseWarnings = r), this.#e(n), n;
}
static expandParts(t) {
if (!t?.groups) return t;
for (let n of t.groups) if (n.glyphs) {
for (let t of n.glyphs) if (t.parts) for (let [n, r] of t.parts.entries()) e.#o(r), e.#r(r, n);
}
return t;
}
static reflagCompositeParts(t) {
if (!t?.groups) return t;
for (let n of t.groups) if (n.glyphs) {
for (let t of n.glyphs) if (t.parts) for (let [n, r] of t.parts.entries()) e.#r(r, n);
}
return t;
}
static #r(e, t) {
let n = W[e.codeName];
t > 0 && e.parts?.length > 1 && e.isIndicator !== !0 && n?.isBlissGlyph !== !0 && n?.isShape !== !0 ? (e.error = `"${e.codeName}" is a composition and cannot be a part; a ; part must be a primitive or a flagged glyph`, e.errorCode = "COMPOSITE_AS_PART") : e.errorCode === "COMPOSITE_AS_PART" && (delete e.errorCode, delete e.error);
}
static #i(t, n) {
let r = K(n, W);
r !== n && e.#a(t, r);
}
static #a(e, t) {
t.defaultOptions && (e.options = {
...t.defaultOptions,
...e.options || {}
}), t.isIndicator ? (e.isIndicator = !0, e.width = t.width ?? 2) : t.anchorOffsetY !== void 0 && (e.anchorOffsetY = t.anchorOffsetY), t.anchorOffsetX !== void 0 && (e.anchorOffsetX = t.anchorOffsetX);
}
static #o(t) {
if (!t.codeName || t.parts?.length > 0) return;
let n = W[t.codeName];
if (!n?.codeString) return;
let r = n.codeString;
r.includes("/") || (r.includes(";") || r.includes(":") || Le.test(r) || W[r]?.codeString ? t.parts = e.#s(r) : (t._aliasCodeName = t.codeName, t.codeName = r), e.#a(t, n), e.#i(t, n));
}
static #s(t, n = 0) {
if (n > 50) throw Error("Maximum recursion depth exceeded");
let r = t.split(";").filter((e) => e !== ""), i = [];
for (let t of r) {
let r = e.parsePartString(t), a = W[r.codeName] || {}, o = a.codeString;
o && (o.includes("/") || (o.includes(";") || o.includes(":") || Le.test(o) || W[o]?.codeString ? r.parts = e.#s(o, n + 1) : (r._aliasCodeName = r.codeName, r.codeName = o))), e.#a(r, a), e.#i(r, a), i.push(r);
}
return i;
}
};
//#endregion
//#region src/lib/element-handle.js
function X(e, t) {
if (t !== void 0 && typeof t != "string") throw TypeError(`${e}() requires a DSL code string`);
}
function Z(e, t) {
if (t != null && (typeof t != "object" || Array.isArray(t))) throw TypeError(`${e}() options must be an object`);
}
var Q = class e {
#e;
#t;
#n;
#r;
#i;
constructor(e, t, n, r) {
this.#e = e, this.#t = t, this.#n = n, this.#r = r, this.#i = e.getGeneration();
}
#a() {
if (this.#i === this.#e.getGeneration()) return;
let e = this.#l();
if (e !== null && e !== -1) {
this.#i = this.#e.getGeneration();
return;
}
if (this.#o()) {
this.#i = this.#e.getGeneration();
return;
}
throw Error("ElementHandle references an element that has been removed.");
}
#o() {
let e = this.#e.getRaw().groups || [];
if (this.#t === 1) return e.indexOf(this.#n) >= 0;
if (this.#t === 2) {
for (let t of e) if ((t.glyphs || []).indexOf(this.#n) >= 0) return this.#r = t, !0;
return !1;
}
if (this.#t === 3) {
for (let t of e) for (let e of t.glyphs || []) if ((e.parts || []).indexOf(this.#n) >= 0) return this.#r = {
group: t,
glyph: e
}, !0;
return !1;
}
return !1;
}
#s() {
this.#i = this.#e.getGeneration();
}
get level() {
return this.#t;
}
get isGroup() {
return this.#t === 1;
}
get isGlyph() {
return this.#t === 2;
}
get isPart() {
return this.#t >= 3;
}
get codeName() {
this.#a();
let e = this.#n;
if (!e) return "";
if (this.#t === 2) return typeof e.glyphCode == "string" ? e.glyphCode.startsWith("XTXT_") ? "X" + e.glyphCode.slice(5) : e.glyphCode : "";
let t = e.codeName ?? "";
return t.startsWith("XTXT_") ? "X" + t.slice(5) : t;
}
get char() {
return this.#a(), this.#n?.char ?? "";
}
get isIndicator() {
return this.#a(), this.#t === 3 ? this.#n?.isIndicator === !0 : !1;
}
get indicatorLevel() {
return this.#a(), this.#t !== 3 || this.#n?.isIndicator !== !0 ? null : "character";
}
get indicatorKind() {
return this.#a(), this.#t !== 3 || this.#n?.isIndicator !== !0 ? null : Ee(this.#n.codeName, W);
}
#c() {
this.#a();
let e = this.#l();
if (e === null || e === -1) throw Error("Snapshot not found: handle index could not be resolved.");
let t = this.#e.getSnapshot();
if (this.#t === 1) {
let n = t.children[e];
if (!n) throw Error("Snapshot not found for group handle.");
return n;
}
if (this.#t === 2) {
let n = t.children[e.groupIndex];
if (!n) throw Error("Snapshot not found for group in glyph handle.");
let r = n.children.filter((e) => e.isGlyph)[e.glyphIndex];
if (!r) throw Error("Snapshot not found for glyph handle.");
return r;
}
if (this.#t === 3) {
let n = t.children[e.groupIndex];
if (!n) throw Error("Snapshot not found for group in part handle.");
let r = n.children.filter((e) => e.isGlyph)[e.glyphIndex];
if (!r) throw Error("Snapshot not found for glyph in part handle.");
let i = this.#n, a = r.children;
if (i?.key != null) {
let e = a.find((e) => e.key === i.key);
if (e) return e;
}
if (i?.isIndicator === !0) {
let e = a.find((e) => e.isIndicator === !0 && e.codeName === i.codeName);
if (e) return e;
}
return a[e.partIndex];
}
throw Error(`Unsupported handle level: ${this.#t}`);
}
get x() {
return this.#c().x;
}
get y() {
return this.#c().y;
}
get offsetX() {
return this.#c().offsetX;
}
get offsetY() {
return this.#c().offsetY;
}
get width() {
return this.#c().width;
}
get height() {
return this.#c().height;
}
get bounds() {
return this.#c().bounds;
}
get advanceX() {
return this.#c().advanceX;
}
get baseWidth() {
return this.#c().baseWidth;
}
get key() {
return this.#c().key;
}
get isShape() {
return this.#c().isShape;
}
get isBlissGlyph() {
return this.#c().isBlissGlyph;
}
get isExternalGlyph() {
return this.#c().isExternalGlyph;
}
get isHeadGlyph() {
return this.#c().isHeadGlyph;
}
get isSpaceGroup() {
return this.#c().isSpaceGroup;
}
measure() {
let e = this.#c();
return Object.freeze({
x: e.x,
y: e.y,
offsetX: e.offsetX,
offsetY: e.offsetY,
width: e.width,
height: e.height,
bounds: e.bounds,
advanceX: e.advanceX,
baseWidth: e.baseWidth
});
}
#l() {
if (this.#t === 1) return this.#e.getRaw().groups.indexOf(this.#n);
if (this.#t === 2) {
let e = this.#e.getRaw().groups.indexOf(this.#r);
if (e < 0) return null;
let t = this.#r.glyphs?.indexOf(this.#n) ?? -1;
return t < 0 ? null : {
groupIndex: e,
glyphIndex: t
};
}
if (this.#t === 3) {
let e = this.#e.getRaw().groups.indexOf(this.#r.group);
if (e < 0) return null;
let t = this.#r.group.glyphs?.indexOf(this.#r.glyph) ?? -1;
if (t < 0) return null;
let n = this.#r.glyph.parts?.indexOf(this.#n) ?? -1;
return n < 0 ? null : {
groupIndex: e,
glyphIndex: t,
partIndex: n
};
}
return null;
}
#u(e) {
for (let t of e?._parseWarnings ?? []) this.#e.addMutationWarning(t);
}
#d(e) {
if (e === void 0 || e.trim() === "") return { parts: [] };
let t = this.#e.parse(e), n = t.groups?.length ?? 0;
if (n !== 1) throw Error(`Expected a single group, but code "${e}" produced ${n} groups`);
if (Object.keys(t.options ?? {}).length > 0) throw Error(`Code "${e}" carries document-level options ("[opts]||"). Set document options on the builder input, or style the glyph itself ("[opts]CODE" or the opts parameter)`);
let r = t.groups[0];
if (r.errorCode !== void 0) throw Error(`Code "${e}" is not a single valid glyph (it fails as a word: ${r.errorCode}). Fix the code, or use addGroup() to work with whole words`);
if (r.options) throw Error(`Code "${e}" carries word-level options ("[opts]|"). Style the glyph itself ("[opts]CODE" or the opts parameter), or use addGroup() for word content`);
if (r.wordIndicators) throw Error(`Code "${e}" carries a word-level indicator list (";;"). Use applyIndicators() on the word, or addGroup() for word content`);
let i = r.glyphs ?? [];
if (i.length !== 1) throw Error(`Expected a single glyph, but code "${e}" produced ${i.length} glyphs`);
return this.#u(t), i[0];
}
#f(e) {
if (e === void 0 || e.trim() === "") throw Error("Expected a single part, but code \"\" produced none. A part is a reference to a shape and cannot be empty; to reserve an empty slot, use addGlyph(\"\") for an empty glyph.");
let t = this.#e.parse(e), n = t.groups?.length ?? 0;
if (n !== 1) throw Error(`Expected parts within a single group, but code "${e}" produced ${n} groups`);
let r = t.groups[0];
if (!r.glyphs || r.glyphs.length === 0) throw Error(`Expected a single part, but code "${e}" produced no glyphs`);
if (r.glyphs.length > 1) return {
codeName: e,
error: `"${e}" is a word and cannot be composed with ;`,
errorCode: "WORD_AS_PART"
};
if (Object.keys(t.options ?? {}).length > 0) throw Error(`Code "${e}" carries document-level options ("[opts]||"). Set document options on the builder input, or style the part itself ("[opts]>CODE" or the opts parameter)`);
if (r.options) throw Error(`Code "${e}" carries word-level options ("[opts]|"). Style the part itself ("[opts]>CODE" or the opts parameter), or use addGroup() for word content`);
if (r.wordIndicators) throw Error(`Code "${e}" carries a word-level indicator list (";;"). Use applyIndicators() on the word, or addGroup() for word content`);
if (r.errorCode !== void 0) throw Error(`Code "${e}" is not a single valid part (it fails as a word: ${r.errorCode}). Fix the code, or use addGroup() to work with whole words`);
if (r.glyphs[0].isHeadGlyph) throw Error(`Code "${e}" carries a head marker ("^"). A head marker belongs on a character: pass it to the glyph methods ("CODE^"), or use addGroup() for word content`);
let i = this.#e.parse(`H;${e}`), a = i.groups?.[0]?.glyphs?.[0], o = a?.parts?.length >= 2 ? a.parts.slice(1) : r.glyphs[0].parts || [];
if (o.length !== 1) throw Error(`Expected a single part, but code "${e}" produced ${o.length} parts`);
return this.#u(i), o[0];
}
#p(e, t) {
if (!t) return;
let n, r;
if ("defaults" in t || "overrides" in t ? {defaults: n, overrides: r} = t : r = t, !n && !r) return;
let i = n ? this.#e.toRaw(n) : {}, a = r ? this.#e.toRaw(r) : {}, o = {
...i,
...e.options ?? {},
...a
};
Object.keys(o).length > 0 && (e.options = o);
}
headGlyph() {
if (this.#a(), this.#t !== 1) return null;
let t = this.#n;
if (!t?.glyphs?.length) return null;
let n = this.#e.getRaw().groups.indexOf(this.#n);
if (n < 0) return null;
let r = this.#e.getSnapshot().children[n];
if (!r) return null;
let i = r.children.filter((e) => e.isGlyph).findIndex((e) => e.isHeadGlyph), a = i >= 0 ? i : 0;
return a >= t.glyphs.length ? null : new e(this.#e, 2, t.glyphs[a], t);
}
glyph(t) {
if (this.#a(), this.#t !== 1) return null;
let n = this.#n;
return !n?.glyphs?.length || (t < 0 && (t = n.glyphs.length + t), !Number.isInteger(t) || t < 0 || t >= n.glyphs.length) ? null : new e(this.#e, 2, n.glyphs[t], n);
}
part(t) {
if (this.#a(), this.#t === 2) {
let n = this.#n;
return !n?.parts?.length || (t < 0 && (t = n.parts.length + t), !Number.isInteger(t) || t < 0 || t >= n.parts.length) ? null : new e(this.#e, 3, n.parts[t], {
group: this.#r,
glyph: n
});
}
if (this.#t === 3) {
let n = this.#n;
return !n?.parts?.length || (t < 0 && (t = n.parts.length + t), !Number.isInteger(t) || t < 0 || t >= n.parts.length) ? null : new e(this.#e, 3, n.parts[t], this.#r);
}
return null;
}
#m() {
return this.#t === 1 ? this.#n?.errorCode !== void 0 : this.#t === 2 ? this.#r?.errorCode !== void 0 : this.#t === 3 ? this.#r?.group?.errorCode !== void 0 : !1;
}
addGlyph(e, t) {
if (this.#a(), this.#t !== 1) return this;
let n = this.#n;
return !n || n.errorCode ? this : (X("addGlyph", e), Z("addGlyph", t), this.insertGlyph(n.glyphs?.length ?? 0, e, t));
}
insertGlyph(e, t, n) {
if (this.#a(), this.#t !== 1) return this;
let r = this.#n;
if (!r || r.errorCode || (X("insertGlyph", t), Z("insertGlyph", n), !Number.isInteger(e))) return this;
let i = this.#d(t);
return this.#p(i, n), r.glyphs ||= [], r.glyphs.splice(e, 0, i), this.#e.rebuild(), this.#s(), this;
}
#h(e) {
delete e.isBlissGlyph, delete e.codeName, delete e.glyphCode;
}
#g(e, t, n, r) {
X(t, n), Z(t, r);
let i = this.#f(n);
return this.#p(i, r), e.glyphs = [{ parts: [i] }], this.#e.rebuild(), this.#s(), this;
}
addPart(t, n) {
if (this.#a(), this.#t === 1) {
let r = this.#n;
if (!r || r.errorCode) return this;
if (!r.glyphs?.length) return this.#g(r, "addPart", t, n);
let i = r.glyphs[r.glyphs.length - 1];
return new e(this.#e, 2, i, r).addPart(t, n), this.#s(), this;
}
if (this.#t !== 2) return this;
let r = this.#n;
return !r || this.#m() ? this : (X("addPart", t), Z("addPart", n), this.insertPart(r.parts?.length ?? 0, t, n));
}
insertPart(t, n, r) {
if (this.#a(), this.#t === 1) {
let i = this.#n;
if (!i || i.errorCode) return this;
if (!i.glyphs?.length) return this.#g(i, "insertPart", n, r);
let a = i.glyphs[i.glyphs.length - 1];
return new e(this.#e, 2, a, i).insertPart(t, n, r), this.#s(), this;
}
if (this.#t !== 2) return this;
let i = this.#n;
if (!i || this.#m() || (X("insertPart", n), Z("insertPart", r), !Number.isInteger(t))) return this;
let a = this.#f(n);
return this.#p(a, r), i.parts ||= [], i.parts.splice(t, 0, a), this.#h(i), this.#e.rebuild(), this.#s(), this;
}
detach() {
if (this.#a(), !(this.#t !== 1 && this.#m())) {
if (this.#t === 3) {
let e = this.#r.glyph;
if (!e?.parts) return;
let t = e.parts.indexOf(this.#n);
if (t < 0) return;
e.parts.splice(t, 1), this.#h(e), e.parts.length === 0 && delete e.isHeadGlyph, this.#e.rebuild();
return;
}
if (this.#t === 2) {
let e = this.#r;
if (!e?.glyphs) return;
let t = e.glyphs.indexOf(this.#n);
if (t < 0) return;
e.glyphs.splice(t, 1), this.#e.rebuild();
return;
}
if (this.#t === 1) {
let e = this.#e.getRaw().groups, t = e.indexOf(this.#n);
if (t < 0) return;
e.splice(t, 1), this.#e.rebuild();
return;
}
}
}
remove() {
if (this.#a(), this.#t !== 1 && this.#m()) return;
let e = this.#e.getRaw(), t = e.groups;
if (this.#t === 3) {
if (!this.#l()) return;
let e = this.#r.glyph;
if (!e?.parts) return;
let n = e.parts.indexOf(this.#n);
if (n < 0) return;
if (e.parts.splice(n, 1), e.parts.length === 0) return this.#_(t, this.#r.group, e);
this.#e.rebuild();
return;
}
if (this.#t === 2) {
let e = this.#r;
return this.#_(t, e, this.#n);
}
if (this.#t === 1) {
let n = t.indexOf(this.#n);
if (n < 0) return;
this.#e.removeGlyphGroup(e, n), this.#e.rebuild();
return;
}
}
removeGlyph(e) {
if (this.#a(), this.#t !== 1) return this;
let t = this.#n;
if (!t?.glyphs?.length || t.errorCode || (e < 0 && (e = t.glyphs.length + e), !Number.isInteger(e) || e < 0 || e >= t.glyphs.length)) return this;
if (t.glyphs.splice(e, 1), t.glyphs.length === 0) {
let e = this.#e.getRaw(), n = e.groups.indexOf(t);
n >= 0 && this.#e.removeGlyphGroup(e, n);
}
return this.#e.rebuild(), this.#s(), this;
}
removePart(e) {
if (this.#a(), this.#t !== 2) return this;
let t = this.#n;
return !t?.parts?.length || this.#m() || (e < 0 && (e = t.parts.length + e), !Number.isInteger(e) || e < 0 || e >= t.parts.length) ? this : (t.parts.splice(e, 1), t.parts.length === 0 ? (this.#_(this.#e.getRaw().groups, this.#r, t), this.#s(), this) : (this.#e.rebuild(), this.#s(), this));
}
#_(e, t, n) {
let r = this.#e.getRaw();
if (!t?.glyphs) return;
let i = t.glyphs.indexOf(n);
if (!(i < 0)) {
if (t.glyphs.splice(i, 1), t.glyphs.length === 0) {
let n = e.indexOf(t);
n >= 0 && this.#e.removeGlyphGroup(r, n);
}
this.#e.rebuild();
}
}
replaceGlyph(e, t, n) {
if (this.#a(), this.#t !== 1) return this;
let r = this.#n;
if (!r || r.errorCode || (X("replaceGlyph", t), Z("replaceGlyph", n), !r.glyphs?.length) || (e < 0 && (e = r.glyphs.length + e), !Number.isInteger(e) || e < 0 || e >= r.glyphs.length)) return this;
let i = this.#d(t);
return this.#p(i, n), r.glyphs[e] = i, this.#e.rebuild(), this.#s(), this;
}
replacePart(e, t, n) {
if (this.#a(), this.#t !== 2) return this;
let r = this.#n;
if (!r || this.#m() || (X("replacePart", t), Z("replacePart", n), !r.parts?.length) || (e < 0 && (e = r.parts.length + e), !Number.isInteger(e) || e < 0 || e >= r.parts.length)) return this;
let i = this.#f(t);
return this.#p(i, n), r.parts[e] = i, this.#h(r), this.#e.rebuild(), this.#s(), this;
}
replace(e, t) {
if (this.#a(), this.#m()) return this;
if (this.#t === 2) {
X("replace", e), Z("replace", t);
let n = this.#r;
if (!n?.glyphs) return this;
let r = n.glyphs.indexOf(this.#n);
if (r < 0) return this;
let i = this.#d(e);
return this.#p(i, t), n.glyphs[r] = i, this.#n = i, this.#e.rebuild(), this.#s(), this;
}
if (this.#t === 3) {
X("replace", e), Z("replace", t);
let n = this.#r.glyph;
if (!n?.parts) return this;
let r = n.parts.indexOf(this.#n);
if (r < 0) return this;
let i = this.#f(e);
return this.#p(i, t), n.parts[r] = i, this.#h(n), this.#n = i, this.#e.rebuild(), this.#s(), this;
}
return this;
}
applyIndicators(e, t) {
if (this.#a(), e != null && typeof e != "string") throw TypeError("applyIndicators() code must be a string (or omitted for the empty indicator set).");
let n = e == null || e.trim() === "" ? "" : e;
return this.#t === 1 ? this.#x(n, t) : this.#v(n, t);
}
clearIndicators(e) {
return this.#a(), this.#t === 1 ? this.#x(null, e) : this.#v(null, e);
}
#v(e, t, n = !1) {
if (this.#t !== 2) return this;
let r = this.#n;
if (!r || this.#m()) return this;
r.parts ||= [];
let i = this.#e.getDefinitions(), a = e !== null && t?.stripSemantic === !0, o = r.codeName || r.parts[0]?.codeName || "unknown";
if (this.#e.isRawSpaceGroup(this.#r)) {
if (!n) {
let t = e === null ? "clearIndicators()" : `applyIndicators('${e}')`;
this.#y(`${t} had no effect: the target glyph '${o}' is a space.`, e || o);
}
return this;
}
let s = r.parts.findIndex((e, t) => t > 0 && e.isIndicator === !0), c, l;
if (s === -1 ? (c = r.parts, l = []) : (c = r.parts.slice(0, s), l = r.parts.slice(s)), !l.every((e) => e.isIndicator === !0)) {
if (!n) {
let t = e === null ? "clearIndicators()" : `applyIndicators('${e}')`;
this.#y(`${t} had no effect: the target glyph '${o}' has a non-indicator part after an indicator part (an invalid indicator pattern).`, e || o);
}
return this;
}
let u = l.map((e) => e.codeName), d = e === null ? [] : Se(e), f = [];
if (e !== null && d.length > 0) {
let { valid: t, rejected: n } = be(d, i);
for (let { code: t, reason: r } of n) this.#e.addMutationWarning(r === "word-structure" ? {
code: v.MISPLACED_CHARACTER_INDICATOR,
message: `applyIndicators('${e}'): "${t}" spans multiple characters (it contains a top-level /); a character-level indicator code must be a single indicator. It cannot be applied.`,
source: t
} : r === "non-indicator" ? {
code: v.NON_INDICATOR_AS_CHARACTER_INDICATOR,
message: `applyIndicators('${e}'): "${t}" is not an indicator; it cannot be applied. A character-level indicator code must be an indicator (e.g. B81).`,
source: t
} : {
code: v.UNKNOWN_CODE,
message: `applyIndicators('${e}'): unknown indicator code "${t}"; it cannot be applied.`,
source: t
});
for (let n of t) {
let t = this.#e.parse(n);
this.#u(t);
let r = t.groups?.length === 1 ? t.groups[0].glyphs : null, i = r?.length === 1 ? r[0].parts : null;
if (i?.length > 0 && i.every((e) => e.isIndicator === !0)) f.push({
code: n,
parts: i
});
else {
let t = i?.find((e) => e.errorCode), r = t?.error ? ` (${t.error})` : "";
this.#e.addMutationWarning({
code: t?.errorCode ?? v.UNKNOWN_CODE,
message: `applyIndicators('${e}'): "${n}" cannot be applied as an indicator part${r}.`,
source: n
});
}
}
if (f.length === 0) return this;
}
let p = Te(u, f.map((e) => e.code), { stripSemantic: a }, i);
n || e === null && l.length === 0 && this.#y(`clearIndicators() had no effect: the target glyph '${o}' has no indicators to clear.`, o);
let m = [];
for (let e of p) {
let t = f.findIndex((t) => t.code === e);
if (t !== -1) {
m.push(...f.splice(t, 1)[0].parts);
continue;
}
let n = this.#e.parse(e);
this.#u(n);
let r = n.groups?.[0]?.glyphs?.[0]?.parts?.[0];
r && m.push(r);
}
return r.parts = [...c, ...m], this.#b(r, i), this.#e.rebuild(), this.#s(), this;
}
#y(e, t) {
this.#e.addMutationWarning({
code: v.NOOP_INDICATOR_MUTATION,
message: e,
source: t
});
}
#b(e, t) {
if (!(e.isBlissGlyph === !0 && typeof e.glyphCode == "string" && !G.has(e.glyphCode))) if (!e.parts.some((e) => e.isIndicator === !0) && e.parts.length === 1) {
let n = e.parts[0].codeName, r = t[n];
r?.isBlissGlyph ? (e.isBlissGlyph = !0, e.codeName = n, r.glyphCode && (e.glyphCode = r.glyphCode)) : (delete e.isBlissGlyph, delete e.codeName, delete e.glyphCode);
} else delete e.isBlissGlyph, delete e.codeName, delete e.glyphCode;
}
#x(e, t) {
let n = this.#n;
if (!n || n.errorCode) return this;
if (this.#e.isRawSpaceGroup(n)) {
let t = e === null ? "clearIndicators()" : `applyIndicators('${e}')`, r = n.glyphs[0]?.parts?.[0]?.codeName || "unknown";
return this.#y(`${t} had no effect: the target word is a space; a space cannot carry a word indicator.`, e || r), this;
}
let r = e !== null && t?.stripSemantic === !0;
if (t?.flatten === !0) {
if (!n.glyphs?.length) return this;
let t = this.headGlyph(), i = n.wordIndicators !== void 0, a = e === null || e === "" ? [] : Se(e), o = e === null || e === "" || ve(a, this.#e.getDefinitions()).length > 0;
return o && delete n.wordIndicators, t ? e === null ? t.#v(null, {}, i) : t.applyIndicators(e, { stripSemantic: o && r }) : i && o && this.#e.rebuild(), this.#s(), this;
}
if (e === null) {
let e = n.wordIndicators !== void 0;
if (delete n.wordIndicators, !e) {
let e = this.headGlyph()?.#n ?? n.glyphs?.[0], t = e?.codeName || e?.parts?.[0]?.codeName || "unknown";
this.#y("clearIndicators() had no effect: the word has no word-level (;;) indicator overlay to clear.", t);
}
} else {
let t = xe(Se(e), r, this.#e.getDefinitions(), ({ code: t, reason: n }) => {
this.#e.addMutationWarning(n === "word-structure" ? {
code: v.MALFORMED_WORD_INDICATOR,
message: `applyIndicators('${e}'): "${t}" contains a character separator (a top-level /), which a word-level indicator cannot hold; it is ignored.`,
source: t
} : n === "non-indicator" ? {
code: v.NON_INDICATOR_AS_WORD_INDICATOR,
message: `applyIndicators('${e}'): "${t}" is not an indicator; it is ignored. A word-level indicator code must be an indicator (e.g. B81).`,
source: t
} : {
code: v.UNKNOWN_CODE,
message: `applyIndicators('${e}'): unknown indicator code "${t}"; it is ignored.`,
source: t
});
}, ({ bracket: t, code: n, source: r }) => {
this.#e.addMutationWarning({
code: v.MISPLACED_CHARACTER_OPTION,
message: `applyIndicators('${e}'): character option (${t}) ignored on the word indicator "${n}": a ;; code has no character to style. Use ${t}>${n} to style the indicator part.`,
source: r
});
});
t && (n.wordIndicators = t);
}
return this.#e.rebuild(), this.#s(), this;
}
splitAt(e) {
if (this.#a(), this.#t !== 1) return this;
let t = this.#n;
if (!t?.glyphs || t.errorCode) return this;
let n = t.glyphs.length;
if (!Number.isInteger(e) || e <= 0 || e >= n) throw Error(`splitAt(${e}) is out of range: must be between 1 and ${n - 1} (inclusive) for a group with ${n} glyphs`);
let r = this.#e.getRaw().groups, i = r.indexOf(this.#n);
if (i < 0) return this;
let a = t.glyphs.splice(e);
for (let e of a) delete e.isHeadGlyph;
let o = { glyphs: a };
t.options && (o.options = { ...t.options });
let s = this.#e.makeSpaceGroup();
return r.splice(i + 1, 0, s, o), this.#e.rebuild(), this.#s(), this;
}
mergeWithNext() {
if (this.#a(), this.#t !== 1) return this;
let e = this.#n;
if (!e?.glyphs) return this;
let t = this.#e.getRaw().groups, n = t.indexOf(this.#n);
if (n < 0 || this.#e.isRawSpaceGroup(e) || e.errorCode) return this;
let r = -1;
for (let e = n + 1; e < t.length; e++) if (!this.#e.isRawSpaceGroup(t[e])) {
r = e;
break;
}
if (r < 0) return this;
let i = t[r];
if (!i.glyphs?.length || i.errorCode) return this;
e.glyphs.push(...i.glyphs);
for (let e of i.glyphs) delete e.isHeadGlyph;
if (i.wordIndicators) {
let { codes: e = [], stripSemantic: t } = i.wordIndicators, n = ";;" + (t ? "!" : "") + e.join(";");
this.#e.addMutationWarning({
code: v.DROPPED_WORD_INDICATOR,
message: `mergeWithNext() dropped the absorbed word's word-level indicator overlay (${n}). The merged word keeps only the first word's overlay.`,
source: n
});
}
return t.splice(n + 1, r - n), this.#e.rebuild(), this.#s(), this;
}
setOptions(e) {
if (this.#a(), this.#t !== 1 && this.#m()) return this;
let t = this.#n;
return t ? (Z("setOptions", e), this.#p(t, e), this.#e.rebuild(), this.#s(), this) : this;
}
removeOptions(...e) {
if (this.#a(), this.#t !== 1 && this.#m()) return this;
let t = this.#n;
if (!t?.options) return this;
for (let n of e) {
let e = d(n);
delete t.options[e], delete t.options[n];
}
return Object.keys(t.options).length === 0 && delete t.options, this.#e.rebuild(), this.#s(), this;
}
}, We = Y.parse("REFSQUARE;B699:3").groups[0].glyphs[0].parts, Ge = (e) => Me(e.glyphCode, e.parts?.length ?? 0, e.parts?.[0]?.codeName), Ke = /* @__PURE__ */ new Set([
"key",
"relativeKerning",
"absoluteKerning"
]), qe = (e) => Object.entries(e.options ?? {}).some(([e, t]) => t !== !1 && !Ke.has(e));
function $(e, t) {
if (!e) return "";
let n = Object.entries(e).filter(([e, n]) => n !== !1 && !t?.has(e));
return n.length === 0 ? "" : `[${n.map(([e, t]) => t === !0 ? e : `${e}=${f(t)}`).join(";")}]`;
}
var Je = [
"href",
"target",
"rel",
"download",
"hreflang",
"type",
"referrerpolicy"
], Ye = (e) => {
let t = e.findIndex((e) => e.isHeadGlyph === !0);
if (t !== -1) return t;
let n = e.flatMap((e, t) => e.parts?.length ? [t] : []);
return n.length ? n[Ne(n.map((t) => Ge(e[t])))] : -1;
}, Xe = class e {
#e;
#t;
#n;
#r = [];
#i = [];
#a = 0;
#o(e = {}, t = !1) {
let n = {};
if ("stroke-width" in e && !isNaN(e["stroke-width"])) {
let t = Number(e["stroke-width"]);
t < .1 ? t = .1 : t > 1.5 && (t = 1.5), n.strokeWidth = t;
}
if ("dot-extra-width" in e && !isNaN(e["dot-extra-width"])) {
let t = Number(e["dot-extra-width"]);
t < 0 ? t = 0 : t > 1 && (t = 1), n.dotExtraWidth = t;
}
if ("sdot-extra-width" in e && !isNaN(e["sdot-extra-width"])) {
let t = Number(e["sdot-extra-width"]);
t < 0 ? t = 0 : t > 1 && (t = 1), n.sdotExtraWidth = t;
}
if ("dot-width" in e && !isNaN(e["dot-width"])) {
let t = Number(e["dot-width"]);
t < 0 ? t = 0 : t > 1.5 && (t = _), n.dotWidth = t;
}
if ("sdot-width" in e && !isNaN(e["sdot-width"])) {
let t = Number(e["sdot-width"]);
t < 0 ? t = 0 : t > 1.5 && (t = _), n.sdotWidth = t;
}
if ("char-space" in e && !isNaN(e["char-space"])) {
let t = Number(e["char-space"]);
t < 0 ? t = 0 : t > 10 && (t = 10), n.charSpace = t;
}
if ("word-space" in e && !isNaN(e["word-space"])) {
let t = Number(e["word-space"]);
t < 0 ? t = 0 : t > 20 && (t = 20), n.wordSpace = t;
}
if ("external-glyph-space" in e && !isNaN(e["external-glyph-space"])) {
let t = Number(e["external-glyph-space"]);
t < 0 ? t = 0 : t > 3 && (t = 3), n.externalGlyphSpace = t;
}
if ("margin" in e && !isNaN(e.margin)) {
let t = Number(e.margin);
n.marginTop = t, n.marginBottom = t, n.marginLeft = t, n.marginRight = t;
}
if ("margin-top" in e && !isNaN(e["margin-top"]) && (n.marginTop = Number(e["margin-top"])), "margin-bottom" in e && !isNaN(e["margin-bottom"]) && (n.marginBottom = Number(e["margin-bottom"])), "margin-left" in e && !isNaN(e["margin-left"]) && (n.marginLeft = Number(e["margin-left"])), "margin-right" in e && !isNaN(e["margin-right"]) && (n.marginRight = Number(e["margin-right"])), "min-width" in e && !isNaN(e["min-width"])) {
let t = Number(e["min-width"]);
t < 0 && (t = 0), n.minWidth = t;
}
if (e.center === !0 && (n.center = !0), e.grid === !0 && (n.grid = !0), e["error-placeholder"] === !0 && (n.errorPlaceholder = !0), t || Object.keys(e).some((e) => e.startsWith("grid-"))) {
let t = "#858585", r = "#858585", i = "#c7c7c7", a = "#ebebeb", o = "#ebebeb";
"grid-color" in e && (t = r = i = a = o = e["grid-color"]), "grid-major-color" in e && (t = r = i = e["grid-major-color"]), "grid-medium-color" in e && (a = e["grid-medium-color"]), "grid-minor-color" in e && (o = e["grid-minor-color"]), "grid-sky-color" in e && (t = e["grid-sky-color"]), "grid-earth-color" in e && (r = e["grid-earth-color"]), n.gridSkyColor = u(t), n.gridEarthColor = u(r), n.gridMajorColor = u(i), n.gridMediumColor = u(a), n.gridMinorColor = u(o);
}
if (t || Object.keys(e).some((e) => e.startsWith("grid-"))) {
let t = .166, r = .166, i = .166, a = .166, o = .166;
"grid-stroke-width" in e && (t = r = i = a = o = Number(e["grid-stroke-width"])), "grid-major-stroke-width" in e && (t = r = i = Number(e["grid-major-stroke-width"])), "grid-medium-stroke-width" in e && (a = Number(e["grid-medium-stroke-width"])), "grid-minor-stroke-width" in e && (o = Number(e["grid-minor-stroke-width"])), "grid-sky-stroke-width" in e && (t = Number(e["grid-sky-stroke-width"])), "grid-earth-stroke-width" in e && (r = Number(e["grid-earth-stroke-width"])), n.gridSkyStrokeWidth = t, n.gridEarthStrokeWidth = r, n.gridMajorStrokeWidth = i, n.gridMediumStrokeWidth = a, n.gridMinorStrokeWidth = o;
}
if ("crop" in e) {
let t = e.crop;
if (t === "auto") n.cropTop = "auto", n.cropBottom = "auto", n.cropLeft = "auto", n.cropRight = "auto";
else if (t === "auto-vertical") n.autoVertical = !0;
else if (t === "compact") n.cropCompact = !0;
else if (!isNaN(t)) {
let e = Number(t);
n.cropTop = e, n.cropBottom = e, n.cropLeft = e, n.cropRight = e;
}
}
let r = (e) => e === "auto" ? "auto" : Number(e);
"crop-top" in e && (n.cropTop = r(e["crop-top"])), "crop-bottom" in e && (n.cropBottom = r(e["crop-bottom"])), "crop-left" in e && (n.cropLeft = r(e["crop-left"])), "crop-right" in e && (n.cropRight = r(e["crop-right"])), "color" in e && (n.color = u(e.color)), "background" in e && (n.background = u(e.background)), "background-top" in e && (n.backgroundTop = u(e["background-top"])), "background-mid" in e && (n.backgroundMid = u(e["background-mid"])), "background-bottom" in e && (n.backgroundBottom = u(e["background-bottom"])), "text" in e && (n.text = u(e.text)), "svg-desc" in e && (n.svgDesc = u(e["svg-desc"])), "svg-title" in e && (n.svgTitle = u(e["svg-title"])), "svg-height" in e && !isNaN(e["svg-height"]) && (n.svgHeight = Number(e["svg-height"]));
for (let [t, r] of Object.entries(e)) c.has(t) || (n[t] = typeof r == "string" ? u(r) : r);
return n;
}
#s(e, t = !1) {
if (e.options &&= (e.options.key !== void 0 && (e.key = e.options.key, delete e.options.key), this.#o(e.options, t)), e.groups) for (let t of e.groups) this.#s(t, !1);
if (e.glyphs) for (let t of e.glyphs) this.#s(t, !1);
if (e.parts) for (let t of e.parts) this.#s(t, !1);
}
#c;
constructor(t, n = {}) {
Z("BlissSVGBuilder", n);
let { defaults: r, overrides: i } = e.#l(n);
if (t === void 0 || t === "") t = "";
else if (typeof t != "string" && (typeof t != "object" || !t || Array.isArray(t))) throw Error("Input must be a DSL string or a plain object from toJSON()");
let a = typeof t == "string" ? Y.parse(t) : structuredClone(t);
if (typeof t != "string" && Y.expandParts(a), typeof t != "string" && a.groups && (e.#S(a.groups), e.#w(a.groups)), typeof t != "string" && a.groups) for (let e of a.groups) {
if (!e.wordIndicators) continue;
let { codes: t = [], stripSemantic: n = !1 } = e.wordIndicators, r = xe(t, n, W, ({ code: e, reason: t }) => {
(a._parseWarnings ??= []).push(t === "word-structure" ? {
code: v.MALFORMED_WORD_INDICATOR,
message: `Word-level indicator "${e}" contains a character separator (a top-level /), which a word-level indicator cannot hold; it is ignored.`,
source: e
} : t === "non-indicator" ? {
code: v.NON_INDICATOR_AS_WORD_INDICATOR,
message: `Word-level indicator "${e}" is not an indicator; it is ignored. A ;; code must be an indicator (e.g. B81).`,
source: e
} : {
code: v.UNKNOWN_CODE,
message: `Word-level indicator "${e}" is not a known code; it is ignored.`,
source: e
});
}, ({ bracket: e, code: t, source: n }) => {
(a._parseWarnings ??= []).push({
code: v.MISPLACED_CHARACTER_OPTION,
message: `Character option (${e}) ignored on the word indicator "${t}": a ;; code has no character to style. Use ${e}>${t} to style the indicator part.`,
source: n
});
});
r ? e.wordIndicators = r : delete e.wordIndicators;
}
if (r || i) {
let t = r ? e.#u(r) : {}, n = i ? e.#u(i) : {};
a.options = {
...t,
...a.options ?? {},
...n
};
}
e.#D(a), this.#c = structuredClone(a), this.#_(), this.#n = {
getRaw: () => this.#c,
rebuild: () => this.#_(),
parse: (t) => {
let n = Y.parse(t);
return e.#D(n), n;
},
toRaw: (t) => e.#u(t),
isRawSpaceGroup: (t) => e.#A(t),
makeSpaceGroup: () => e.#I(),
removeGlyphGroup: (e, t) => this.#L(e, t),
getSnapshot: () => this.snapshot(),
getGeneration: () => this.#a,
getDefinitions: () => W,
addMutationWarning: (e) => this.#i.push(e)
};
}
static #l(e) {
return e ? "defaults" in e || "overrides" in e ? {
defaults: e.defaults,
overrides: e.overrides
} : {
defaults: void 0,
overrides: e
} : {
defaults: void 0,
overrides: void 0
};
}
static #u(e) {
let t = {};
for (let [n, r] of Object.entries(e)) {
if (r == null || typeof r == "object") continue;
let e = d(n);
typeof r == "boolean" ? t[e] = r : t[e] = String(r);
}
return t;
}
static #d(e) {
if (e.key ||= m(), e.groups) {
for (let t of e.groups) if (t.key ||= m(), t.glyphs) {
for (let e of t.glyphs) if (e.key ||= m(), e.parts) for (let t of e.parts) t.key ||= m();
}
}
}
#f() {
let t = this.#c.groups ?? [];
for (let n of t) {
for (let t of n.glyphs ?? []) t.isHeadGlyph === !0 && e.#M(t) && delete t.isHeadGlyph, t.isHeadGlyph === !0 && !t.parts?.length && !t.glyphCode && !t.codeName && !qe(t) && delete t.isHeadGlyph;
if (n.wordIndicators && !n.errorCode && e.#N(n)) {
let { codes: e = [], stripSemantic: t } = n.wordIndicators, r = ";;" + (t ? "!" : "") + e.join(";");
delete n.wordIndicators, this.#i.push({
code: v.DROPPED_WORD_INDICATOR,
message: `A space or anchor cannot carry a word indicator, so the word-level indicator overlay (${r}) was dropped.`,
source: r
});
}
}
let n = [], r = [], i = (e, t) => this.#i.push({
code: v.MISPLACED_SPACE_DECORATION,
message: `A space cannot carry ${e === "coordinate" ? "a coordinate" : "an option"}, so "${t}" was dropped.`,
source: t
});
for (let n of t) {
if (n.errorCode || !n.glyphs?.length) continue;
let t = e.#A(n), a = !1;
if (t) {
let t = e.#F(n.options);
t && (Object.keys(n.options).length === 0 && delete n.options, i("option", t), a = !0);
}
for (let o of n.glyphs) {
if (!e.#k(o)) continue;
let n = a, s = e.#F(o.options);
s && (Object.keys(o.options).length === 0 && delete o.options, i("option", s), n = !0);
let c = o.parts[0], l = e.#F(c.options);
if (l && (Object.keys(c.options).length === 0 && delete c.options, i("option", l), n = !0), c.x !== void 0 || c.y !== void 0) {
let e = `:${c.x ?? 0},${c.y ?? 0}`, t = (c.x ?? 0) !== 0 || (c.y ?? 0) !== 0;
delete c.x, delete c.y, t && i("coordinate", e), n = !0;
}
(n || t && !c._differsFromDefault) && r.push(o);
}
}
for (let i = 0; i < t.length; i++) {
let a = t[i];
if (a.errorCode || !a.glyphs?.length || !a.glyphs.some((t) => e.#k(t)) || e.#A(a)) continue;
let o = [];
for (let t of a.glyphs) {
let n = e.#k(t), r = o[o.length - 1];
r && r.isSpace === n ? r.glyphs.push(t) : o.push({
isSpace: n,
glyphs: [t]
});
}
let s = !1, c = o.map((e) => {
if (e.isSpace) {
let t = { glyphs: e.glyphs };
return n.push(t), r.push(...e.glyphs), t;
}
if (!s) return s = !0, a.glyphs = e.glyphs, a;
let t = { glyphs: e.glyphs };
return a.options && (t.options = { ...a.options }), t;
});
t.splice(i, 1, ...c), i += c.length - 1;
}
if (n.length > 0) {
let r = new Set(n);
for (let n = t.length - 1; n > 0; n--) {
let i = t[n], a = t[n - 1];
!r.has(i) && !r.has(a) || i.errorCode || a.errorCode || !e.#A(i) || !e.#A(a) || (r.has(a) && !r.has(i) ? (i.glyphs.unshift(...a.glyphs), t.splice(n - 1, 1)) : (a.glyphs.push(...i.glyphs), t.splice(n, 1)));
}
}
if (r.length > 0) {
let n = new Set(r);
for (let r = 0; r < t.length; r++) {
let i = t[r];
if (!i.glyphs?.some((e) => n.has(e))) continue;
let a = t[r + 1], o = a && !e.#A(a) && a.glyphs?.length > 0 && a.glyphs.every((e) => e.shrinksPrecedingWordSpace === !0) ? "QSP" : "TSP";
for (let e of i.glyphs) {
if (!n.has(e)) continue;
let t = e.parts[0];
t.codeName === o ? delete t._differsFromDefault : t._differsFromDefault = !0;
}
}
}
}
#p() {
for (let e of this.#c.groups ?? []) if (!e.errorCode) for (let t of e.glyphs ?? []) {
if (t.isIndicator === !0) continue;
let e = t.parts;
if (!Array.isArray(e) || e.length === 0 || e.length === 1 && H(e[0]?.codeName)) continue;
let n = [], r = 0, i = !1;
for (let t = 0; t < e.length; t++) {
let a = e[t];
if (a.codeName === "SP" || H(a.codeName)) {
n.push(t);
continue;
}
r++, !a.error && (a.codeName && W[a.codeName] || a.parts?.length > 0) && (i = !0);
}
if (n.length !== 0 && !(r > 0 && !i)) {
for (let t of n) {
let n = e[t], r = n.x !== void 0 || n.y !== void 0 ? `:${n.x ?? 0},${n.y ?? 0}` : "", i = `${n.codeName}${r}`;
this.#i.push({
code: v.MISPLACED_SPACE,
message: `A space is a word separator, not a character part, so "${i}" was dropped.`,
source: i
});
}
for (let t = n.length - 1; t >= 0; t--) e.splice(n[t], 1);
}
}
}
#m() {
for (let e of this.#c.groups ?? []) if (!e.errorCode) for (let t of e.glyphs ?? []) {
if (t.isIndicator === !0) continue;
let e = t.parts;
if (!Array.isArray(e) || e.length < 2) continue;
let n = -1;
for (let t = e.length - 1; t >= 1 && n === -1; t--) {
let r = e[t];
r.isIndicator === !0 || r.error || (r.x ?? 0) !== 0 || (r.y ?? 0) !== 0 || (r.codeName && W[r.codeName] || r.parts?.length > 0) && (n = t);
}
if (n === -1) continue;
let r = [];
for (let t = 0; t < n; t++) e[t].isIndicator === !0 && r.push(t);
for (let t of r) {
let n = e[t], r = n.x !== void 0 || n.y !== void 0 ? `:${n.x ?? 0},${n.y ?? 0}` : "", i = `${n.codeName}${r}`;
this.#i.push({
code: v.MISPLACED_INDICATOR_PART,
message: `An indicator can only follow its base parts at the end of a character (BASE;INDICATOR), so "${i}" was dropped.`,
source: i
});
}
for (let t = r.length - 1; t >= 0; t--) e.splice(r[t], 1);
}
}
#h() {
for (let e of this.#c.groups ?? []) {
if (e.errorCode) continue;
let t = e.glyphs;
if (!Array.isArray(t)) continue;
let n = [];
for (let e = 0; e < t.length; e++) {
let r = t[e];
if (r.isIndicator === !0) continue;
let i = r.parts;
if (!Array.isArray(i)) continue;
let a = i.filter((e) => e.error && !e.codeName && !(e.parts?.length > 0));
if (a.length !== 0) {
for (let e of a) e.errorCode === v.MALFORMED_COORDINATES ? this.#i.push({
code: v.MALFORMED_COORDINATES,
message: e.error,
source: e.error
}) : this.#i.push({
code: v.UNKNOWN_CODE,
message: `Unknown or invalid code: "${e.error}"`,
source: e.error
});
n.push(e);
}
}
for (let e = n.length - 1; e >= 0; e--) t.splice(n[e], 1);
}
}
#g() {
let e = this.#c.groups;
if (!Array.isArray(e)) return;
let t = [];
for (let n of e) {
if (n.errorCode) {
this.#i.push({
code: n.errorCode,
message: n.error,
source: n.errorSource
});
continue;
}
t.push(n);
}
t.length !== e.length && (this.#c.groups = t);
}
#_() {
this.#a++, this.#v = void 0, this.#x = void 0, this.#r = [], this.#h(), this.#g(), this.#p(), this.#f(), this.#m(), e.#d(this.#c), Y.reflagCompositeParts(this.#c);
let t = structuredClone(this.#c);
for (let e of t.groups ?? []) if (e.wordIndicators && e.glyphs?.length) {
let t = Ye(e.glyphs);
if (t === -1) continue;
let n = e.glyphs[t];
n.parts = De(n, e.wordIndicators, W, (e) => {
let t = Y.parse(e);
return this.#r.push(...t._parseWarnings ?? []), t;
});
}
this.#s(t, !0);
let { charSpace: n, wordSpace: r, externalGlyphSpace: i, errorPlaceholder: a, ...o } = t.options ?? {};
this.#t = {
charSpace: n ?? 2,
wordSpace: r ?? 8,
externalGlyphSpace: i ?? .8,
warnings: this.#r,
errorPlaceholder: a === !0,
errorPlaceholderParts: We,
keys: /* @__PURE__ */ new Set()
}, t._parseWarnings && (this.#r.push(...t._parseWarnings), delete t._parseWarnings), t.options = o, this.#e = t.options;
let s = { color: "stroke" };
this.globalSvgAttributes = {};
for (let [e, n] of Object.entries(t.options ?? {})) !g.has(e) && l(e) && (this.globalSvgAttributes[s[e] || d(e)] = n);
this.composition = new Fe(t, { sharedOptions: this.#t });
}
get warnings() {
return [...this.#r, ...this.#i];
}
#v;
get elements() {
return this.#v ||= this.composition.snapshot(), this.#v;
}
traverse(e) {
function t(n) {
if (e(n) === !1) return !1;
for (let e of n.children) if (t(e) === !1) return !1;
}
t(this.elements);
}
query(e) {
let t = [];
return this.traverse((n) => {
e(n) && t.push(n);
}), t;
}
getElementByKey(e) {
let t = this.snapshot().children, n = this.#c.groups;
for (let r = 0; r < t.length; r++) {
let i = t[r], a = n[r];
if (i.key === e) return new Q(this.#n, 1, a);
let o = i.children.filter((e) => e.isGlyph);
for (let t = 0; t < o.length; t++) {
let n = a.glyphs[t];
if (o[t].key === e) return new Q(this.#n, 2, n, a);
let r = o[t].children;
for (let t = 0; t < r.length; t++) if (r[t].key === e) {
let t = n.parts.find((t) => t.key === e);
return t ? new Q(this.#n, 3, t, {
group: a,
glyph: n
}) : null;
}
}
}
return null;
}
#y() {
let t = [], n = this.#c.groups || [];
for (let r = 0; r < n.length; r++) e.#A(n[r]) || t.push(r);
return t;
}
group(e) {
let t = this.#y();
if (e < 0 && (e = t.length + e), !Number.isInteger(e) || e < 0 || e >= t.length) return null;
let n = this.#c.groups[t[e]];
return new Q(this.#n, 1, n);
}
element(e) {
let t = this.#c.groups;
return e < 0 && (e = t.length + e), !Number.isInteger(e) || e < 0 || e >= t.length ? null : new Q(this.#n, 1, t[e]);
}
get elementCount() {
return this.#c.groups.length;
}
glyph(e) {
let t = this.#y();
if (e < 0) {
let n = 0;
for (let e of t) n += (this.#c.groups[e].glyphs || []).length;
e = n + e;
}
if (!Number.isInteger(e) || e < 0) return null;
let n = 0;
for (let r of t) {
let t = this.#c.groups[r], i = t.glyphs || [];
if (e < n + i.length) return new Q(this.#n, 2, i[e - n], t);
n += i.length;
}
return null;
}
part(e) {
let t = this.#y();
if (e < 0) {
let n = 0;
for (let e of t) for (let t of this.#c.groups[e].glyphs || []) n += (t.parts || []).length;
e = n + e;
}
if (!Number.isInteger(e) || e < 0) return null;
let n = 0;
for (let r of t) {
let t = this.#c.groups[r], i = t.glyphs || [];
for (let r of i) {
let i = r.parts || [];
if (e < n + i.length) return new Q(this.#n, 3, i[e - n], {
group: t,
glyph: r
});
n += i.length;
}
}
return null;
}
snapshot() {
return this.elements;
}
addGroup(e, t) {
X("addGroup", e), Z("addGroup", t);
let n = this.#y().length;
return this.insertGroup(n, e, t);
}
insertGroup(t, n, r) {
if (X("insertGroup", n), Z("insertGroup", r), !Number.isInteger(t)) return this;
let i = this.#b(n, r), a = this.#c.groups, o = this.#y();
if (a.length === 0 || o.length === 0) a.push(i);
else if (t <= 0) a.splice(0, 0, i, e.#I());
else if (t >= o.length) a.push(e.#I()), a.push(i);
else {
let n = o[t];
a.splice(n, 0, i, e.#I());
}
return this.#_(), this;
}
addGlyph(e, t) {
X("addGlyph", e), Z("addGlyph", t);
let n = this.#y();
if (n.length === 0) {
let n = { glyphs: [] };
return new Q(this.#n, 1, n).addGlyph(e, t), this.#c.groups.push(n), this.#_(), this;
}
let r = n[n.length - 1], i = this.#c.groups[r];
return new Q(this.#n, 1, i).addGlyph(e, t), this;
}
addPart(e, t) {
X("addPart", e), Z("addPart", t);
let n = this.#y();
if (n.length === 0) {
let n = { glyphs: [] };
return new Q(this.#n, 1, n).addPart(e, t), this.#c.groups.push(n), this.#_(), this;
}
let r = n[n.length - 1], i = this.#c.groups[r];
return new Q(this.#n, 1, i).addPart(e, t), this;
}
removeGroup(e) {
let t = this.#y();
if (e < 0 && (e = t.length + e), !Number.isInteger(e) || e < 0 || e >= t.length) return this;
let n = t[e];
return this.#L(this.#c, n), this.#_(), this;
}
replaceGroup(e, t, n) {
X("replaceGroup", t), Z("replaceGroup", n);
let r = this.#y();
if (e < 0 && (e = r.length + e), !Number.isInteger(e) || e < 0 || e >= r.length) return this;
let i = this.#b(t, n), a = r[e];
return this.#c.groups[a] = i, this.#_(), this;
}
merge(t) {
if (!t || typeof t.toJSON != "function") throw Error("merge() requires a BlissSVGBuilder instance");
let n = t.toJSON({ deep: !0 }).groups;
if (!n || n.length === 0 || !n.some((t) => !e.#A(t))) return this;
Y.expandParts({ groups: n }), e.#S(n), e.#w(n), e.#D({ groups: n });
let r = this.#c.groups;
return r.some((t) => !e.#A(t)) && r.push(e.#I()), r.push(...n), this.#_(), this;
}
splitAt(t) {
let n = this.#y();
if (n.length < 2) throw Error("splitAt() requires at least 2 groups");
if (!Number.isInteger(t) || t <= 0 || t >= n.length) throw Error(`splitAt(${t}) is out of range: must be between 1 and ${n.length - 1} (inclusive) for a builder with ${n.length} groups`);
let r = n[t], i = this.#c.groups.splice(r);
for (; this.#c.groups.length > 0 && e.#A(this.#c.groups[this.#c.groups.length - 1]);) this.#c.groups.pop();
for (; i.length > 0 && e.#A(i[0]);) i.shift();
this.#_();
let a = { groups: i };
return this.#c.options && (a.options = { ...this.#c.options }), new e(a);
}
#b(t, n) {
let r, i;
if (t === void 0 || t.trim() === "") r = { glyphs: [] };
else {
let e = Y.parse(t), n = e.groups?.length ?? 0;
if (n !== 1) throw Error(`Expected a single group, but code "${t}" produced ${n} groups`);
if (Object.keys(e.options ?? {}).length > 0) throw Error(`Code "${t}" carries document-level options ("[opts]||"). Set document options on the builder input, or style the group itself ("[opts]|" in the code or the opts parameter)`);
r = e.groups[0], i = e._parseWarnings;
}
if (n) {
let { defaults: t, overrides: i } = e.#l(n);
if (t || i) {
let n = t ? e.#u(t) : {}, a = i ? e.#u(i) : {}, o = {
...n,
...r.options ?? {},
...a
};
Object.keys(o).length > 0 && (r.options = o);
}
}
return i?.length && this.#i.push(...i), r;
}
addElement(e, t) {
X("addElement", e), Z("addElement", t);
let n = this.#b(e, t);
return this.#c.groups.push(n), this.#_(), this;
}
insertElement(e, t, n) {
if (X("insertElement", t), Z("insertElement", n), !Number.isInteger(e)) return this;
let r = this.#b(t, n), i = this.#c.groups;
return e < 0 && (e = i.length + e), e < 0 && (e = 0), e >= i.length ? i.push(r) : i.splice(e, 0, r), this.#_(), this;
}
removeElement(e) {
let t = this.#c.groups;
return e < 0 && (e = t.length + e), !Number.isInteger(e) || e < 0 || e >= t.length ? this : (t.splice(e, 1), this.#_(), this);
}
replaceElement(e, t, n) {
X("replaceElement", t), Z("replaceElement", n);
let r = this.#c.groups;
return e < 0 && (e = r.length + e), !Number.isInteger(e) || e < 0 || e >= r.length ? this : (r[e] = this.#b(t, n), this.#_(), this);
}
clear() {
return this.#c.groups = [], this.#_(), this;
}
#x;
get groups() {
if (!this.#x) {
let e = this.elements.children.filter((e) => e.isGroup && !e.isSpaceGroup);
this.#x = Object.freeze(e);
}
return this.#x;
}
get stats() {
let e = this.#y(), t = 0;
for (let n of e) t += (this.#c.groups[n].glyphs || []).length;
return {
groupCount: e.length,
glyphCount: t
};
}
static #S(t) {
for (let n of t) if (n.glyphs) for (let t of n.glyphs) t.codeName && !t.glyphCode && (t.glyphCode = e.#T(t.codeName), delete t.codeName), e.#E(t), t.parts && e.#C(t.parts);
}
static #C(t) {
for (let n of t) n.codeName &&= e.#T(n.codeName), n.parts && e.#C(n.parts);
}
static #w(e) {
for (let t of e) if (t.glyphs) for (let e of t.glyphs) !e.parts && !e.glyphCode && (e.parts = []);
}
static #T(e) {
return e.startsWith("XTXT_") || e.length < 2 || e[0] !== "X" || W[e] ? e : "XTXT_" + e.slice(1);
}
static #E(e) {
let t = e.glyphCode;
if (!t) return;
let n = W[t];
if (n) n.isBlissGlyph && (e.isBlissGlyph = !0), n.isExternalGlyph && (e.isExternalGlyph = !0), typeof n.char == "string" && (e.char = n.char), n.kerningRules && (e.kerningRules = n.kerningRules);
else if (t.startsWith("XTXT_")) {
let n = t.slice(5);
e.isExternalGlyph = !0, e.char = n.length === 1 ? n : "", e.kerningRules = {};
}
}
static #D(t) {
if (t.groups) {
for (let n of t.groups) if (n.glyphs) for (let t of n.glyphs) t.parts &&= e.#O(t.parts);
}
}
static #O(t) {
let n = [];
for (let r of t) W[r.codeName]?.codeString?.includes("/") ? (r.error = `"${r.codeName}" is a word and cannot be composed with ;`, r.errorCode = "WORD_AS_PART", n.push(r)) : (r.parts &&= e.#O(r.parts), n.push(r));
return n;
}
static #k(e) {
return e.parts?.length === 1 && H(e.parts[0].codeName);
}
static #A(t) {
return !t.glyphs || t.glyphs.length === 0 ? !1 : t.glyphs.every((t) => e.#k(t));
}
static #j = /* @__PURE__ */ new Set([
"TSP",
"QSP",
"ZSA"
]);
static #M(t) {
return t.parts?.length === 1 && e.#j.has(t.parts[0].codeName);
}
static #N(t) {
return t.glyphs?.length > 0 && t.glyphs.every((t) => e.#M(t));
}
static #P = /* @__PURE__ */ new Set([
"key",
"relativeKerning",
"absoluteKerning"
]);
static #F(t) {
if (!t) return null;
let n = Object.keys(t).filter((t) => !e.#P.has(t));
if (n.length === 0) return null;
let r = "[" + n.map((e) => t[e] === !0 ? e : `${e}=${t[e]}`).join(";") + "]";
for (let e of n) delete t[e];
return r;
}
static #I() {
return { glyphs: [{ parts: [{ codeName: "TSP" }] }] };
}
#L(t, n) {
let r = t.groups, i = n > 0 && e.#A(r[n - 1]), a = n < r.length - 1 && e.#A(r[n + 1]);
return i ? r.splice(n - 1, 2) : a ? r.splice(n, 2) : r.splice(n, 1), t;
}
toString(t = {}) {
let n = this.toJSON({
preserve: t.preserve,
deep: !0,
flattenIndicators: t.flattenIndicators
}), r = /* @__PURE__ */ new Set(["relativeKerning", "absoluteKerning"]);
function i(n, r = 0, a = 0) {
return n.map((o, s) => {
if (!o.codeName) return "";
let c = (o.x ?? 0) + r, l = (o.y ?? 0) + a, u = t.preserve && s === 0 && n.length > 1 && e.#K(W[o.codeName]);
if ((!t.preserve || u) && !G.has(o.codeName) && !o.errorCode) {
if (o.parts) {
let e = (e) => e === "color" ? "stroke" : e === "strokeWidth" ? "stroke-width" : e;
return i(o.options ? o.parts.map((t) => {
let n = new Set(Object.keys(t.options ?? {}).map(e)), r = Object.entries(o.options).filter(([t]) => !n.has(e(t)));
return {
...t,
options: {
...Object.fromEntries(r),
...t.options
}
};
}) : o.parts, c, l);
}
let t = W[o.codeName];
if (t?.isShape && t.codeString && !t.getPath) return e.#U(t.codeString, c, l);
}
let d = o.codeName.startsWith("XTXT_") ? "X" + o.codeName.slice(5) : o.codeName;
(c !== 0 || l !== 0) && (d += `:${c},${l}`);
let f = $(o.options);
return f && (d = `${f}>${d}`), d;
}).filter(Boolean).join(";");
}
function a(e) {
let t = W[e.codeName];
if (!t?.codeString || !e.parts) return e.codeName;
let n = e.parts.filter((e) => e.isIndicator).map((e) => e.codeName), r = t.codeString.split(";").filter((e) => W[e.split(":")[0]]?.isIndicator);
return n.length === r.length && n.every((e, t) => e === r[t]) ? e.codeName : r.length > 0 || e.parts.some((e) => (e.x ?? 0) !== 0 || (e.y ?? 0) !== 0 || $(e.options) !== "") ? i(e.parts) : e.codeName + ";" + n.join(";");
}
function o(n) {
let o = [];
n.options?.relativeKerning !== void 0 && o.push(`RK:${n.options.relativeKerning}`), n.options?.absoluteKerning !== void 0 && o.push(`AK:${n.options.absoluteKerning}`);
let s;
if (n.isBlissGlyph && n.codeName) {
if (!t.preserve && !G.has(n.codeName)) if (n.parts) s = i(n.parts);
else {
let t = W[n.codeName];
t?.codeString && (s = e.#U(t.codeString, 0, 0));
}
else t.preserve && !G.has(n.codeName) && (s = a(n));
s ||= n.parts?.length ? i(n.parts) : n.codeName;
} else s = n.parts ? i(n.parts) : n.codeName || "";
if (t.preserve) {
let t = n._aliasCodeName ?? (!n.isBlissGlyph && n.codeName && !G.has(n.codeName) ? n.codeName : null), r = t ? e.#q(t, i(n.parts ?? [])) : null;
r && (s = r);
}
let c = $(n.options, r);
return o.push(c + s), o;
}
function s(e) {
return !e.glyphs || e.glyphs.length === 0 ? !1 : e.glyphs.every((e) => e.parts?.length === 1 && H(e.parts[0].codeName));
}
let c = [], l = null, u = () => {
l &&= (l.glyphCount > 0 && c.push(l.hasNonDefault ? l.codes.join("/") : "/".repeat(l.glyphCount + 1)), null);
};
for (let e of n.groups || []) {
if (!e.glyphs) continue;
if (s(e)) {
l ??= {
glyphCount: 0,
codes: [],
hasNonDefault: !1
}, l.glyphCount += e.glyphs.length, l.codes.push(...e.glyphs.map((e) => e.parts[0].codeName)), e.glyphs.some((e) => e.parts?.some((e) => e._differsFromDefault)) && (l.hasNonDefault = !0);
continue;
}
let t = e.glyphs.map(o), n = t.flat().filter(Boolean).join("/"), r = e.glyphs.findIndex((e) => e.isHeadGlyph === !0);
if (r !== -1 && n) {
let e = t[r];
e.length && e[e.length - 1] && (e[e.length - 1] += "^", n = t.flat().filter(Boolean).join("/"));
}
if (e.wordIndicators && n) {
let { codes: t = [], stripSemantic: r } = e.wordIndicators;
n += ";;" + (r ? "!" : "") + t.join(";");
}
let i = $(e.options);
i && (n = `${i}|${n}`), n !== "" && (u(), c.push(n));
}
u();
let d = c.reduce((e, t) => e === "" ? t : t.startsWith("/") || e.endsWith("/") ? e + t : e + "/" + t, ""), f = $(n.options);
return f && (d = `${f}||${d}`), d;
}
toJSON(t = {}) {
let n = structuredClone(this.#c);
if (delete n._parseWarnings, delete n.key, n.options && delete n.options.key, n.groups) {
let r = (n) => {
for (let [i, a] of n.entries()) {
if (delete a.key, delete a._indicatorOrigin, t.preserve && a._aliasCodeName) {
let t = W[a._aliasCodeName], r = (a.x ?? 0) !== 0 || (a.y ?? 0) !== 0 || a.options;
(i > 0 || n.length === 1 || t && !e.#K(t)) && (!r || e.#J(a._aliasCodeName)) && (a.codeName = a._aliasCodeName);
}
t.deep || delete a._aliasCodeName, a.options && delete a.options.key, a.codeName?.startsWith("XTXT_") && (a.codeName = "X" + a.codeName.slice(5)), t.deep || (delete a.anchorOffsetX, delete a.anchorOffsetY), t.deep && a.parts ? r(a.parts) : delete a.parts;
}
};
for (let i of n.groups) {
delete i.key, i.options && delete i.options.key;
let n = t.flattenIndicators && i.wordIndicators && i.glyphs?.length ? Ye(i.glyphs) : -1;
if (n !== -1) {
let e = i.glyphs[n];
e.parts = De(e, i.wordIndicators, W, (e) => Y.parse(e)), e.glyphCode && e.parts.some((e) => e.isIndicator) && !(t.preserve && !G.has(e.glyphCode)) && (delete e.glyphCode, delete e.isBlissGlyph), delete i.wordIndicators;
}
if (i.glyphs) for (let n of i.glyphs) {
if (delete n.key, n.options && delete n.options.key, n.parts && r(n.parts), n.glyphCode) {
let r = n.glyphCode.startsWith("XTXT_") ? "X" + n.glyphCode.slice(5) : n.glyphCode;
if (!t.preserve && !G.has(n.glyphCode)) if (W[n.glyphCode]?.codeString) {
let i = e.#W(n.glyphCode);
i && (n.codeName = i), t.deep && (n._aliasCodeName ??= r);
} else n.codeName = r;
else n.codeName = r;
delete n.glyphCode;
}
if (t.preserve && !t.deep) {
let t = n._aliasCodeName ?? (n.codeName && !G.has(n.codeName) ? n.codeName : null);
if (t) {
let r = e.#Y(n.parts), i = r === null ? null : e.#q(t, r);
i && (n.codeName = i);
}
}
t.deep || delete n._aliasCodeName, t.deep || (delete n.char, delete n.isBlissGlyph, delete n.isExternalGlyph, delete n.kerningRules, delete n.shrinksPrecedingWordSpace, delete n.isIndicator);
}
}
}
return n;
}
get svgContent() {
let e = this.composition.getSvgContent();
return e.startsWith("<") ? e : `<path d="${e}"/>`;
}
get svgElement() {
return new DOMParser().parseFromString(this.#le, "image/svg+xml").documentElement;
}
get svgCode() {
return this.#le;
}
get standaloneSvg() {
return `<?xml version="1.0" encoding="utf-8"?>\n${this.#le}`;
}
static #R = /^X[a-zA-ZÀ-ſͰ-ϿЀ-ӿ]+$/;
static #z = /* @__PURE__ */ new Set([
"RK",
"AK",
"SP"
]);
static #B(t) {
if (typeof t != "string" || t.trim().length === 0) throw Error("Definition code must be a non-empty, non-whitespace string.");
let n = t.match(/[\p{Cc}\p{Cf}]|[^\S ]/u);
if (n) {
let e = n[0].codePointAt(0).toString(16).toUpperCase().padStart(4, "0");
throw Error(`Definition code contains an invisible character (U+${e}). Use visible characters only.`);
}
if (e.#R.test(t)) throw Error(`"${t}" collides with the external-character namespace (X followed by letters): the parser reads such tokens as external text, so this definition would be unreachable. Choose a name that is not X followed by letters.`);
if (e.#z.has(t)) throw Error(`"${t}" is reserved DSL syntax (the kerning and space markers RK, AK, SP) and cannot be defined.`);
}
static #V(e, t) {
if (W[e]) {
if (t.overwrite && de.has(e)) throw Error(`define("${e}"): cannot overwrite built-in definitions.`);
if (!t.overwrite) {
let t = /* @__PURE__ */ Error(`define("${e}"): code already exists. Use { overwrite: true } to replace.`);
throw t.code = "ALREADY_EXISTS", t;
}
}
}
static #H(e) {
return e ? e.split(/[;/]+/).map((e) => e.replace(/\[.*?\]>?/g, "").split(":")[0].replace(/\^$/, "")).filter((e) => e.length > 0) : [];
}
static #U(t, n, r) {
return t.split(";").map((t) => {
let i = t.match(/^([^:]+)(?::(-?[\d.]+),(-?[\d.]+))?$/);
if (!i) return t;
let [, a, o, s] = i, c = (parseFloat(o) || 0) + n, l = (parseFloat(s) || 0) + r;
if (!G.has(a)) {
let t = W[a];
if (t?.isShape && t.codeString && !t.getPath || t?.isBlissGlyph && t.codeString) return e.#U(t.codeString, c, l);
}
return c === 0 && l === 0 ? a : `${a}:${c},${l}`;
}).join(";");
}
static #W(t, n = /* @__PURE__ */ new Set()) {
if (n.has(t)) return t;
n.add(t);
let r = W[t];
return r?.codeString ? !r.codeString.includes(";") && !r.codeString.includes("/") && !r.codeString.includes(":") ? G.has(r.codeString) ? r.codeString : e.#W(r.codeString, n) : null : t;
}
static #G(e) {
return e.isShape ? "shape" : e.isExternalGlyph ? "externalGlyph" : e.isBlissGlyph || e.glyphCode ? "glyph" : e.codeString === void 0 ? "space" : "bare";
}
static #K(t) {
return !!t && e.#G(t) === "bare";
}
static #q(e, t) {
let n = e, r = null, i = /* @__PURE__ */ new Set();
for (; !i.has(n) && (i.add(n), !G.has(n));) {
let i = Object.prototype.hasOwnProperty.call(W, n) ? W[n] : void 0;
if (!i || typeof i.codeString != "string") break;
if ((i.isBlissGlyph || i.isShape || i.isExternalGlyph || i.glyphCode || i.isIndicator === !0 || typeof i.getPath == "function") && (r = i), !he.test(i.codeString)) return r && t === i.codeString ? e : null;
n = i.codeString;
}
return r && t === n ? e : null;
}
static #J(e) {
let t = e, n = /* @__PURE__ */ new Set();
for (; !G.has(t);) {
if (n.has(t)) return !1;
n.add(t);
let e = Object.prototype.hasOwnProperty.call(W, t) ? W[t] : void 0;
if (!e || typeof e.codeString != "string") return !0;
if (!he.test(e.codeString)) return !1;
t = e.codeString;
}
return !0;
}
static #Y(e) {
if (!Array.isArray(e) || e.length === 0) return null;
let t = [];
for (let n of e) {
if (!n.codeName || n.parts || n.error || n.errorCode) return null;
let e = $(n.options), r = n.x ?? 0, i = n.y ?? 0, a = r !== 0 || i !== 0 ? `${n.codeName}:${r},${i}` : n.codeName;
t.push(e ? `${e}>${a}` : a);
}
return t.join(";");
}
static #X(t, n, r) {
let i = e.#H(n);
for (let n of i) {
if (n === t) return `"${t}": circular reference (references itself)`;
let i = W[n];
if (!i) continue;
let a = e.#G(i);
if (!r.includes(a)) return `"${t}": cannot reference ${a} "${n}". Allowed types: ${r.join(", ")}`;
}
return null;
}
static #Z(t, n) {
let r = /* @__PURE__ */ new Set(), i = (n) => {
for (let a of n) {
if (a === t) return !0;
if (r.has(a)) continue;
r.add(a);
let n = W[a];
if (n?.codeString && i(e.#H(n.codeString))) return !0;
}
return !1;
};
return i(e.#H(n));
}
static #Q(t, n, r) {
let i = {
...W,
[n]: r
}, a = [];
for (let [t, r] of Object.entries(W)) t !== n && (r.isBlissGlyph !== !0 || r.isIndicator === !0 || typeof r.codeString != "string" || e.#H(r.codeString).some((e) => {
let t = Object.prototype.hasOwnProperty.call(i, e) ? i[e] : void 0;
return t !== void 0 && K(t, i)?.isIndicator === !0;
}) && a.push(t));
if (a.length > 0) {
let e = a.length > 1 ? "s" : "", r = a.map((e) => `"${e}"`).join(", ");
throw Error(`${t}("${n}"): making "${n}" an indicator would make the glyph definition${e} ${r} bake an indicator, a state define() rejects. Remove or redefine the dependent definition${e} first, then define "${n}".`);
}
}
static #$(e, t, n) {
if (n.includes("/") && n.split(/[/;]/).filter(Boolean).some((e) => !/^(?:RK|AK)(?::|$)/.test(e) && /:-?[\d.]/.test(e))) throw Error(`${e}("${t}"): word definitions (containing /) cannot have internal coordinates. Move coordinates to the usage site.`);
}
static #ee(e) {
if (!e.includes("/") || /["']/.test(e)) return e;
let t = e.split("/"), n = [];
for (let e = 0; e < t.length; e++) t[e] === "SP" ? (n.push(""), (e === 0 || e === t.length - 1) && n.push("")) : n.push(t[e]);
return n.join("/");
}
static #te(t, n, r = {}) {
e.#B(t);
let i = typeof n?.getPath == "function", a = typeof n?.codeString == "string" && n.codeString.trim().length > 0;
if (!i && !a) throw Error(`define("${t}"): shape requires either "getPath" (function) or "codeString" (non-empty, non-whitespace string).`);
if (i) {
if (typeof n.width != "number" || !isFinite(n.width)) throw Error(`define("${t}"): "width" must be a finite number.`);
if (typeof n.height != "number" || !isFinite(n.height)) throw Error(`define("${t}"): "height" must be a finite number.`);
}
if (a) {
let r = e.#X(t, n.codeString, ["shape"]);
if (r) throw Error(`define(${r})`);
if (e.#Z(t, n.codeString)) throw Error(`define("${t}"): circular reference detected`);
if (n.codeString.includes("/")) throw Error(`define("${t}"): a shape definition cannot be a multi-character word (its codeString contains "/"). Define a word as a bare alias (omit type:"shape").`);
if (n.codeString.includes(";;")) throw Error(`define("${t}"): a shape definition cannot contain a word-level indicator (";;"); a shape is a single character.`);
}
e.#V(t, r);
let o = { isShape: !0 };
if (i ? (o.getPath = n.getPath, o.width = n.width, o.height = n.height, n.x !== void 0 && (o.x = n.x), n.y !== void 0 && (o.y = n.y), n.extraPathOptions && (o.extraPathOptions = n.extraPathOptions)) : o.codeString = n.codeString, n.defaultOptions && typeof n.defaultOptions == "object") {
let r = { ...n.defaultOptions };
Object.keys(r).length > 0 && (e.#ne("define", t, r), o.defaultOptions = r);
}
W[t] = o;
}
static #ne(e, t, n) {
for (let r of Object.keys(n)) {
let n = r.trim();
if (!l(n)) throw Error(`${e}("${t}"): defaultOptions key "${r}" is not a valid option name.`);
if (h.has(n) || h.has(d(n))) throw Error(`${e}("${t}"): defaultOptions cannot include the global-only option "${r}"; it configures the whole SVG and would be inert on a definition. Set it in the global bracket ([...]||) or the builder options instead.`);
}
}
static #re(t, n, r = {}) {
if (e.#B(t), typeof n?.codeString != "string" || n.codeString.trim().length === 0) throw Error(`define("${t}"): "codeString" must be a non-empty, non-whitespace string.`);
if (n.codeString.includes("/")) throw Error(`define("${t}"): a glyph definition cannot be a multi-character word (its codeString contains "/"). Define a word as a bare alias (omit type:"glyph").`);
if (n.codeString.includes(";;")) throw Error(`define("${t}"): a glyph definition cannot contain a word-level indicator (";;"); a glyph is a single character. Apply a word indicator at the use site (WORD;;INDICATOR).`);
let i = e.#X(t, n.codeString, ["glyph", "shape"]);
if (i) throw Error(`define(${i})`);
if (e.#Z(t, n.codeString)) throw Error(`define("${t}"): circular reference detected`);
if (n.isIndicator !== !0 && e.#H(n.codeString).some((e) => W[e]?.isIndicator === !0)) throw Error(`define("${t}"): a glyph definition cannot bake in an indicator. Define a base+indicator combination as a bare alias (omit type:"glyph"), attach the indicator at the use site (BASE;INDICATOR), or flag a compound indicator with isIndicator:true.`);
e.#V(t, r);
let a = {
codeString: n.codeString,
glyphCode: t,
isBlissGlyph: !0
};
if (n.isIndicator === !0 && (a.isIndicator = !0), typeof n.anchorOffsetX == "number" && isFinite(n.anchorOffsetX) && (a.anchorOffsetX = n.anchorOffsetX), typeof n.anchorOffsetY == "number" && isFinite(n.anchorOffsetY) && (a.anchorOffsetY = n.anchorOffsetY), typeof n.width == "number" && isFinite(n.width) && (a.width = n.width), n.kerningRules && typeof n.kerningRules == "object" && (a.kerningRules = { ...n.kerningRules }), n.shrinksPrecedingWordSpace === !0 && (a.shrinksPrecedingWordSpace = !0), n.defaultOptions && typeof n.defaultOptions == "object") {
let r = { ...n.defaultOptions };
Object.keys(r).length > 0 && (e.#ne("define", t, r), a.defaultOptions = r);
}
a.isIndicator === !0 && e.#Q("define", t, a), W[t] = a;
}
static #ie(t, n, r = {}) {
if (e.#B(t), typeof n?.getPath != "function") throw Error(`define("${t}"): "getPath" must be a function.`);
if (typeof n.width != "number" || !isFinite(n.width)) throw Error(`define("${t}"): "width" must be a finite number.`);
if (typeof n.char != "string" || n.char.length === 0) throw Error(`define("${t}"): "char" must be a non-empty string.`);
e.#V(t, r);
let i = {
getPath: n.getPath,
width: n.width,
char: n.char,
isExternalGlyph: !0
};
if (typeof n.y == "number" && (i.y = n.y), typeof n.height == "number" && (i.height = n.height), n.kerningRules && typeof n.kerningRules == "object" && (i.kerningRules = { ...n.kerningRules }), n.defaultOptions && typeof n.defaultOptions == "object") {
let r = { ...n.defaultOptions };
Object.keys(r).length > 0 && (e.#ne("define", t, r), i.defaultOptions = r);
}
W[t] = i;
}
static #ae(e) {
let t = e;
for (let e = 0; e < 50; e++) {
let e = !1;
if (t = t.replace(/(?<=^|[/;])(\w+)(?=$|[/;:])/g, (t, n) => {
let r = W[n];
return r && r.codeString && !r.codeString.includes("^") && !r.isBlissGlyph && !r.isShape && !r.isExternalGlyph && !r.glyphCode ? (e = !0, r.codeString) : t;
}), !e) break;
}
return t;
}
static #oe(e) {
let t;
try {
t = Y.parse(e);
} catch {
return !1;
}
for (let e of t.groups ?? []) for (let t of e.glyphs ?? []) for (let e of t.parts ?? []) if (e.errorCode === "COMPOSITE_AS_PART") return !0;
return !1;
}
static #se(t, n, r = {}) {
if (e.#B(t), typeof n?.codeString != "string" || n.codeString.trim().length === 0) throw Error(`define("${t}"): "codeString" must be a non-empty, non-whitespace string.`);
if (n.codeString.includes(";;")) throw Error(`define("${t}"): a definition cannot contain a word-level indicator (";;"); apply a word indicator at the use site (WORD;;INDICATOR).`);
if (e.#Z(t, n.codeString)) throw Error(`define("${t}"): circular reference detected`);
if (e.#oe(n.codeString)) throw Error(`define("${t}"): a ; part cannot be a composition ("${n.codeString}"). A ; part must be a primitive or a flagged glyph; attach indicators at the use site (BASE;INDICATOR) or compose words with /.`);
e.#V(t, r);
let i = e.#ee(n.codeString);
e.#$("define", t, e.#ae(i));
let a = { codeString: i };
if (n.defaultOptions && typeof n.defaultOptions == "object") {
let r = { ...n.defaultOptions };
Object.keys(r).length > 0 && (e.#ne("define", t, r), a.defaultOptions = r);
}
K(a, W)?.isIndicator === !0 && e.#Q("define", t, a), W[t] = a;
}
static define(t, n = {}) {
let r = {
defined: [],
skipped: [],
errors: []
};
if (!t || typeof t != "object") return r;
for (let [i, a] of Object.entries(t)) try {
let t = a?.type;
if (t && t !== "glyph" && t !== "shape" && t !== "externalGlyph") {
r.errors.push(`"${i}": unknown type "${t}". Use 'glyph', 'shape', or 'externalGlyph'.`);
continue;
}
if (a?.isIndicator === !0 && t !== "glyph") {
r.errors.push(`"${i}": isIndicator is only valid on a type:'glyph' definition (a compound indicator glyph). To declare a custom indicator, use type:'glyph' with isIndicator:true.`);
continue;
}
if (t === "glyph") e.#re(i, a, n);
else if (t === "shape") e.#te(i, a, n);
else if (t === "externalGlyph") e.#ie(i, a, n);
else if (typeof a?.getPath == "function" && typeof a?.char == "string") e.#ie(i, a, n);
else if (typeof a?.getPath == "function") e.#te(i, a, n);
else if (typeof a?.codeString == "string") e.#se(i, a, n);
else {
r.errors.push(`"${i}": unable to detect definition type. Provide codeString, type+getPath+width+height (shape), or type+getPath+char (externalGlyph).`);
continue;
}
r.defined.push(i);
} catch (e) {
e.code === "ALREADY_EXISTS" ? r.skipped.push(i) : r.errors.push(`"${i}": ${e.message}`);
}
return r;
}
static #ce(e) {
return Object.prototype.hasOwnProperty.call(W, e);
}
static isDefined(t) {
return e.#ce(t);
}
static getDefinition(t) {
if (!e.#ce(t)) return null;
let n = W[t], r = {};
for (let [e, t] of Object.entries(n)) typeof t == "object" && t ? r[e] = Object.freeze({ ...t }) : r[e] = t;
return r.type = e.#G(n), r.isBuiltIn = de.has(t), Object.freeze(r);
}
static listDefinitions(t = {}) {
let n = Object.keys(W);
return t.type ? n.filter((n) => e.#G(W[n]) === t.type) : n;
}
static removeDefinition(t) {
if (de.has(t)) throw Error(`removeDefinition("${t}"): cannot remove built-in definitions.`);
return e.#ce(t) ? (delete W[t], !0) : !1;
}
static patchDefinition(t, n) {
if (!e.#ce(t)) throw Error(`patchDefinition("${t}"): code is not defined.`);
if (de.has(t)) throw Error(`patchDefinition("${t}"): cannot patch built-in definitions.`);
if (!n || typeof n != "object") throw Error(`patchDefinition("${t}"): changes must be an object.`);
let r = W[t], i = e.#G(r), a = /* @__PURE__ */ new Set([
"type",
"isShape",
"isExternalGlyph",
"isBlissGlyph",
"glyphCode",
"isBuiltIn"
]);
for (let e of Object.keys(n)) if (a.has(e)) throw Error(`patchDefinition("${t}"): cannot change "${e}" via patch.`);
let o = new Set({
glyph: [
"codeString",
"anchorOffsetX",
"anchorOffsetY",
"width",
"isIndicator",
"shrinksPrecedingWordSpace",
"kerningRules",
"defaultOptions"
],
shape: [
"getPath",
"codeString",
"width",
"height",
"x",
"y",
"extraPathOptions",
"defaultOptions"
],
externalGlyph: [
"getPath",
"width",
"char",
"y",
"height",
"kerningRules",
"defaultOptions"
],
bare: ["codeString", "defaultOptions"],
space: ["defaultOptions"]
}[i] || []);
for (let e of Object.keys(n)) if (!o.has(e)) throw Error(`patchDefinition("${t}"): "${e}" is not a valid property for type "${i}".`);
if ("getPath" in n && typeof n.getPath != "function") throw Error(`patchDefinition("${t}"): "getPath" must be a function.`);
if ("codeString" in n) {
let r = n.codeString;
if (typeof r != "string" || r.trim().length === 0) throw Error(`patchDefinition("${t}"): "codeString" must be a non-empty, non-whitespace string.`);
if (r.includes(";;")) throw Error(`patchDefinition("${t}"): a definition cannot contain a word-level indicator (";;"); apply a word indicator at the use site (WORD;;INDICATOR).`);
if ((i === "glyph" || i === "shape") && r.includes("/")) throw Error(`patchDefinition("${t}"): a ${i} definition cannot be a multi-character word (its codeString contains "/"). Define a word as a bare alias (omit type:"${i}").`);
let a = i === "glyph" ? ["glyph", "shape"] : i === "shape" ? ["shape"] : [
"glyph",
"shape",
"bare",
"externalGlyph"
], o = e.#X(t, r, a);
if (o) throw Error(`patchDefinition(${o})`);
if (e.#Z(t, r)) throw Error(`patchDefinition("${t}"): circular reference detected`);
if (i === "bare" && e.#oe(r)) throw Error(`patchDefinition("${t}"): a ; part cannot be a composition ("${r}"). A ; part must be a primitive or a flagged glyph; attach indicators at the use site (BASE;INDICATOR) or compose words with /.`);
}
if (i === "glyph" && ("codeString" in n || "isIndicator" in n)) {
let i = "codeString" in n ? n.codeString : r.codeString;
if (!("isIndicator" in n ? n.isIndicator === !0 : r.isIndicator === !0) && typeof i == "string" && e.#H(i).some((e) => W[e]?.isIndicator === !0)) throw Error(`patchDefinition("${t}"): a glyph definition cannot bake in an indicator. Define a base+indicator combination as a bare alias (omit type:"glyph"), attach the indicator at the use site (BASE;INDICATOR), or flag a compound indicator with isIndicator:true.`);
}
if ("codeString" in n && i === "bare") {
let r = e.#ee(n.codeString);
e.#$("patchDefinition", t, e.#ae(r)), n = {
...n,
codeString: r
};
}
if ((i === "glyph" && n.isIndicator === !0 && r.isIndicator !== !0 || i === "bare" && "codeString" in n && K({ codeString: n.codeString }, W)?.isIndicator === !0) && e.#Q("patchDefinition", t, {
...r,
...n
}), n.defaultOptions && typeof n.defaultOptions == "object") {
let r = { ...n.defaultOptions };
Object.keys(r).length > 0 && e.#ne("patchDefinition", t, r), n = {
...n,
defaultOptions: r
};
}
for (let [e, t] of Object.entries(n)) e === "defaultOptions" ? t && typeof t == "object" && Object.keys(t).length > 0 ? r.defaultOptions = { ...t } : delete r.defaultOptions : e === "kerningRules" ? t && typeof t == "object" ? r.kerningRules = { ...t } : delete r.kerningRules : r[e] = t;
return { patched: !0 };
}
get #le() {
let e = Math.max(this.composition.width, this.#e.minWidth ?? 0), t = this.#e.color ?? "#000000", n = this.#e.strokeWidth ?? .5, r = this.#e.marginTop ?? .75, i = this.#e.marginBottom ?? .75, a = this.#e.marginLeft ?? .75, o = this.#e.marginRight ?? .75, c = this.composition.effectiveBounds, l = this.#e.cropLeft ?? 0, u = this.#e.cropRight ?? 0, d, f;
if (this.#e.cropCompact) {
let e = c.minY, t = 20 - c.maxY, n = Math.min(4, e), r = Math.min(4 - n, t);
d = this.#e.cropTop ?? n, f = this.#e.cropBottom ?? r;
} else this.#e.autoVertical ? (d = this.#e.cropTop ?? "auto", f = this.#e.cropBottom ?? "auto") : (d = this.#e.cropTop ?? 0, f = this.#e.cropBottom ?? 0);
let p = d === "auto" ? c.minY : d, m = f === "auto" ? 20 - c.maxY : f, h = l === "auto" ? c.minX : l, g = u === "auto" ? e - c.maxX : u, _ = this.#e.minWidth ?? 0;
if (_ > 0 && (l === "auto" || u === "auto")) {
let t = e - h - g;
if (t < _) {
let e = _ - t, n = l === "auto" ? h : 0, r = u === "auto" ? g : 0, i = n + r;
if (i > 0) {
let t = Math.min(e, i);
l === "auto" && (h -= n / i * t), u === "auto" && (g -= r / i * t);
}
}
}
let v = -a + h, y = -r + p, b = 0;
if (this.#e.center === !0 && e > this.composition.width) {
let t = -this.composition.x, n = this.composition.x + this.composition.width - this.composition.baseWidth, r = Math.max(t, n), i = (e - (this.composition.baseWidth + 2 * r)) / 2;
v -= i, b = v + a;
}
let x = this.svgContent, S = Math.max(0, e + a + o - h - g), C = Math.max(0, 20 + r + i - p - m), w, T;
this.#e.svgHeight === void 0 ? (w = 6 * S, T = 6 * C) : (T = this.#e.svgHeight, w = C > 0 ? S / C * T : 0);
let E = (e) => parseFloat(e.toFixed(4)), D = this.#e.svgTitle ?? "", O = this.#e.svgDesc ?? "", k = this.#e.background ?? "", A = this.#e.backgroundTop, j = this.#e.backgroundMid, M = this.#e.backgroundBottom, N = A || j || M, P = D ? ` <title>${D}</title>` : "", F = O ? ` <desc>${O}</desc>` : "", I = "", L;
if (N) {
let e = k, t = A || e, n = j || e, r = M || e, i = E(v), a = E(S), o = E(y), s = E(Math.max(0, 8 - y)), c = E(Math.max(0, y + C - 16));
L = ` <g class="bliss-background">\n${[
t ? ` <rect class="bliss-background--top" x="${i}" y="${o}" width="${a}" height="${s}" stroke="none" fill="${t}"/>` : "",
n ? ` <rect class="bliss-background--mid" x="${i}" y="8" width="${a}" height="8" stroke="none" fill="${n}"/>` : "",
r ? ` <rect class="bliss-background--bottom" x="${i}" y="16" width="${a}" height="${c}" stroke="none" fill="${r}"/>` : ""
].filter(Boolean).join("\n")}\n </g>`;
} else L = k === "" ? "" : ` <rect class="bliss-background" x="${v}" y="${y}" width="100%" height="100%" stroke="none" fill="${k}"/>`;
let ee = b + h, te = e - h - g, R = p, z = 20 - m, ne = (e) => `M${ee},${e}h${te}`, re = (e) => e.filter((e) => e >= R && e <= z).map(ne).join(""), ie = (t) => {
let n = "", r = [];
switch (t) {
case "minor":
for (let t = 1; t <= e; t += 2) r.push(t);
break;
case "medium":
for (let t = 2; t <= e; t += 4) r.push(t);
break;
case "major":
for (let t = 0; t <= e; t += 4) r.push(t);
break;
}
for (let t of r.filter((t) => t >= h && t <= e - g)) n += `M${b + t},${R}V${z}`;
return n;
};
if (this.#e.grid) {
let e = this.#e.gridMinorStrokeWidth ?? .166, t = this.#e.gridMinorColor ?? "#ebebeb", n = this.#e.gridMediumStrokeWidth ?? .166, r = this.#e.gridMediumColor ?? "#ebebeb", i = this.#e.gridMajorStrokeWidth ?? .166, a = this.#e.gridMajorColor ?? "#c7c7c7", o = this.#e.gridSkyStrokeWidth ?? .166, s = this.#e.gridSkyColor ?? "#858585", c = this.#e.gridEarthStrokeWidth ?? .166, l = this.#e.gridEarthColor ?? "#858585", u = re([
1,
3,
5,
7,
9,
11,
13,
15,
17,
19
]) + ie("minor"), d = re([
2,
6,
10,
14,
18
]) + ie("medium"), f = re([
0,
4,
12,
20
]) + ie("major"), p = 8 >= R && 8 <= z ? ne(8) : "", m = 16 >= R && 16 <= z ? ne(16) : "";
I = [
" <style>",
" @supports (-webkit-hyphens: none) {",
" .bliss-grid-line { shape-rendering: geometricPrecision; }",
" }",
" </style>",
" <g class=\"bliss-grid\" shape-rendering=\"crispEdges\">",
[
u ? ` <path class="bliss-grid-line bliss-grid-line--minor" stroke-width="${e}" stroke="${t}" stroke-linecap="square" stroke-linejoin="miter" d="${u}"/>` : "",
d ? ` <path class="bliss-grid-line bliss-grid-line--medium" stroke-width="${n}" stroke="${r}" stroke-linecap="square" stroke-linejoin="miter" d="${d}"/>` : "",
f ? ` <path class="bliss-grid-line bliss-grid-line--major" stroke-width="${i}" stroke="${a}" stroke-linecap="square" stroke-linejoin="miter" d="${f}"/>` : "",
p ? ` <path class="bliss-grid-line bliss-grid-line--major bliss-grid-line--sky" stroke-width="${o}" stroke="${s}" stroke-linecap="square" stroke-linejoin="miter" d="${p}"/>` : "",
m ? ` <path class="bliss-grid-line bliss-grid-line--major bliss-grid-line--earth" stroke-width="${c}" stroke="${l}" stroke-linecap="square" stroke-linejoin="miter" d="${m}"/>` : ""
].filter(Boolean).join("\n"),
" </g>"
].join("\n");
}
let B = {
fill: "none",
stroke: t,
"stroke-linejoin": "round",
"stroke-linecap": "round",
"stroke-width": n,
...this.globalSvgAttributes
}, V = B.class;
delete B.class;
let ae = V ? `bliss-content ${V}` : "bliss-content";
for (let e of Je) delete B[e];
let oe = x;
if ("vector-effect" in B) {
let e = B["vector-effect"];
delete B["vector-effect"], e && (oe = Fe.applyVectorEffectToPaths(x, e));
}
let H = Object.entries(B).map(([e, t]) => `${e}="${t}"`).join(" "), se = [
`<svg xmlns="http://www.w3.org/2000/svg" data-generator="${`bliss-svg-builder/${s}`}" width="${E(w)}" height="${E(T)}" viewBox="${E(v)} ${E(y)} ${E(S)} ${E(C)}">`,
P,
F,
L,
I,
` <g class="${ae}" ${H}>`,
` ${oe}`,
" </g>",
"",
"</svg>"
].filter(Boolean).join("\n");
return se = se.replace(/<path d=""\/>/g, ""), se;
}
};
//#endregion
//#region src/index.js
Xe.LIB_VERSION = s;
var Ze = Xe;
//#endregion
export { Xe as BlissSVGBuilder, s as LIB_VERSION, Ze as default };
//# sourceMappingURL=bliss-svg-builder.esm.js.map