diff --git a/resources/builtin/alphanumeric/0.png b/resources/builtin/alphanumeric/0.png index 641467e927bc7225bc3c32ec3ee524e063140bf1..08ba53a95c6d9a598a7079b2b8dd8c15dfee6818 GIT binary patch literal 1517 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 Jw+fdK@?WhRHs$~T diff --git a/resources/builtin/alphanumeric/0d.png b/resources/builtin/alphanumeric/0d.png new file mode 100644 index 0000000000000000000000000000000000000000..1d1640909d75cd0b0b37b4f339151b8cd939f510 GIT binary patch literal 1517 zc$}4#`#Tc~9LAS&$zuscg~i;G`)#?d$=sUTSqMuJsSGFS;yOu0a=&M`JRF@GW?_=s zkz8_Z2McpKo7`=38JTSk&-n*B@AG`0&+~nMd4KyPyExebMbC%=005x99UKV&9LhL2 zk;D5BOf9|kTCuGWD6pHe}aFZ+;qfONV7P!+Xu49h5Vmy!=mH1&zmEd=s4002P` zd$^@*_#x&bC94!7E##vZ@Bf!i>)ucZb3)n7%tGt*vCzPlRcPo4x3W~p9>z!){MGe# zag(+5p7vmDIdU)L6>CQK4S_U4wdElTI~BbXnwWoJe*f674x)J#S;QOoP9c~zEyxpz zZ(Hbkb0?hT-m(+Uz_Wu;VEuGVJ=`C}+uD@A|5i^~@*-4uof1(ncG#ir^7r@^BWhOUJwjU# zcAPYPZ*bVTU3L-YMWSjnNm@#EhjEC=-5ji!ZvJ=(XSbh1C+CfaIL^NpC?sPskQHl+ z=?DQbK2NNA1+CKYGOc*%bc6Q7X<2hdT}FC6unm*eKn|bVEUqLM{Jl!TKZ^2KuWQRV zW&qn7eyx{j%aPyWn{%W{64ODff{SOw61y#Tzo4HNjnEZ07HfXIqnI)<9Hh2Ps`~<% zmw5$G=c&e3V$ey(sKOzgwTfv^E67IIriP|oY;Wnnwquk--JtdSE>6;QrR(+G$+lq- zwP|)UcC=kutPxoGIH$VdF{U(X=H$s_=AJ zCATm&kQKI=*7=4o6kd)SzOxjX2_^nxv5vZ7{T39SpV{S68Avf3Wx=DsCnh|IO&LW?OX z3)7Ks2hEmJn^>#Cz_TAV*4E8sS<^<)mhn>=!w8=)rQlVZ1Ea(_ZZu|_0oYxIL^VgN zKKW)q7YqP4F~oJ+xGKctj+7kP@Dbzdov|nJgs%ZRuTz{sJLd|DHSzt8IB^7Hh>#kM zJ%wL|b_%l`!ONs3N5x`RiP5cP?}X}SkQVf|k?3Wg{+_zs*a4774Vh2x(x@JMH6>Cc zNi7^WPc_@BcDi$wbTg2Oo61Ug!OoMcjnTJJsSIEW3nis?gdl*Y!G1AeYK6Dq7Yy?s zpY`=897?5fwmvB3ZxDK292Zv`zt!|2Fmk6J_OYYd#{|)rg%_gHUwCTu?u(gL-y@<0 z?&5Msmy@%9AgfL(B-%~xZs@|m&ky+ZruDH*PT!&#>Mi@3bP9=lj<|`6sC3MO_ug-A zGp!dBuP3F^0!w)WJF;!?P;I&IyUKE{H+ZdWB&u1`TXqgu9{N)w$CuW~r@^yPOhcYa z;8{V!nCpzX2d~(@!h#a?Cmm-(VY$cWno#_Rq&ztOc51DP>1;PVBspZKq>ZDA*il-~ zNHT|_K@D$G?37zt!K-Z7+1xbW3bjb>#dC?s!T0kI_NHkHj>p!raBj+1^_UPmRl)Hb zkj`AYK%pm_l{N8(mIg<4Xn=s8s7TApn5HA^!kbw3Ok-hvxNE9HuHd-Lol~d=DEWV@%Y+7yX~#7jKV8>$`~)%OY?I5{@a>Kh7F?f{ zo8QDDyLj71PN9;XsO4%N7ph9<%~EhYz9P8#`8WCI4Yr2o{$BHB-=2P~vR&cK@#B^K z3O=_#7T#0lIQ+3tPUy(E%Dz~3x1AAoKG)B1qj5K+_=rno;dUMWMA!u(4HO2`iIRO5*VnH-{Jy8x z+3)J{I|5JiIhquj6gm`|IFz6ShZ0AVjXzkQ5nPbi^z=chK4zax)N9=y5YN-q&t;uc GLK6Up2P8WH literal 899 zc%17D@N?(olHy`uVBq!ia0y~yV4MKL9LzwG?TN?!0V(4EpAc6d{hvgzed?nopft=`Ln;{G-e&B&?ZDF(s4AQ-s~-3J z-*Vk80bC-J89x3yP#ylGK~N}o4?hDz&~W~0c&Y;9Ga&m1P(jSQx$;N0sc3a1 zhd2lv*KlMyBP-IfajQb)@fB+nj;%hUuuZjz`Kgm-R0zvY9flVws{N_p?sZjN3 z*vWd*%55o|Vcb*pjkjZ93@|>_D`AV|5O6HzjQxzOKJV?H zH`QGFb*@Sr*mj_^--=#lwxar;ReQ~eM9fLTPIGQ+`6q*z|6ks$5NJt4vlP`6Glf_ZMQNTrjMUcgjMG#6u zgd9nfQncXce_Q&u>-V=wOaFDRtv|L^;K^o?EK~`U0VNz!cu)m|Qzt_mZrXlZa%hXx4fiHfwmjA=TuF1(3l&oma+hr6aKM7{<}oSQ0o#8AtuBYBDf z8`d<%EtrKeYEN&!MW4Io~-CZMv$z#+#e#QQ=2JQ^%%tt<$glVo%&9FZKLx zlYyMn^S@06)<);7*%JR#u#lh&4W*uFK!jZo(m-J_ohaF7aee*T!|!`~o&ByJ zza#KOpQA~kNufibi9-oWa42y!+4zI?8NmgKO-~=B>SOlFM7`GS0r5Ot{an^LB{Ts5 DheGbj literal 0 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 CP6m|# literal 0 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 KOuGAh0`vb*E*vcY diff --git a/resources/builtin/alphanumeric/3d.png b/resources/builtin/alphanumeric/3d.png new file mode 100644 index 0000000000000000000000000000000000000000..b06b0b09936e48a2c52da7c77aa92ee290db261f GIT binary patch literal 1556 zc$}4#`8U)H7{y$@B+}^` zlVudyCFy1v8I`3uvQtEnMqJ(d4|LyiKIb{ld(L~_U!L=1Ib&^)2q_4GK%gV`c2=$+ z5D(=i5Z=R0i+}(Aq3Ag~oU;b~|Ec1$d2uKbajsZ5kdPYG(lI>tYH_9x#a+n+f0Ugs z1p@J1v$wK1m&mi$P5gP$TfucZ9yI=|4^kP834W_34LVY(P$^}*wu90i$=WH|>9nMa z?Tc;`H43TI+6JWhzRNqdEDUuG!oy=Vf;R0mIv;#hoBqDk-qOnBE< zWbU*6d!Wav^0!~w=*V-C+HvD{;?GlifW{`3^?4dTTOsI{hv3YX?l5+PB@G(+B)xI^50P4+aFgp2^dB;VATJd@z0p0#X6M6-e2c&3~E(tsh(Xb_puL!>qQrqwpJa) z^XpTS_HLrJWZBrJ5mb-C;#gEo1SjOYM>NG0+X^mQEWmv|-D{#S&>iP=Z92r_&Ud|O zzssl4rBlz-6Sk1#P5ZL;ONtQRwSeFn+xT7bzHI)kdCKoDpFm;zArl52l0=g!{|k1# zRVIl!n+Cs4t-uDGt$3NEVKNNtj}QeB;9ZVH5K7+XEo$PeKxCS*1leS3%tQvlV0Wx} zz&K4EK690*u846&dL^nN;uW@cWQCvP-i?*RD9q)l0}URz9}p(sQ5UD zEf!=I(!fhh$Hc=ZoB>gQrBzHsv4(&_okm@oW8`fwNWZvk1?En64vK14q(D@Vr((gX zx@wVtW{~rCkRbTfgq=9VJzH}whjx)SaF|Xyj7Oh49LAL7S=_6?C7#zzReD3)CvV+@wW;A` zZQC(ii<}Hd8Ag-u0)gB!tKJcC2Zn1)b0wc>gk|7O^9Q09^k7o;(>fQWlDeo>j?ODx z{xKu~#@($$!SKo?6o{x1umd%afDlX@_TX2pqdL4kZsPnKr6J)lu@}S#EC^iow$CHc zUCEOoY|FrEI)2OkbLT@iC1k47d+jY_(sYOGGD?pje35l-ju3`+$YJ-zO!Il~cM|U= zr#z`znX7bcM$`1@afzDYzO5t24i-lAhmBQt@3G$VXdV0f-r8Ax#{*|NJDdcIAZ)tK zg!U=Rq2n^IWTh#w2O6LyLm7eR`O`9yl1U zmcVzd$aXCQi7Ydn&Q{9Owbb&YD6Y%~W#_IMJSOrB4;L8s?r&3-y@{uD;E=4O^80 zpQX76k%qCJDmaqqV1jWfUM>tUjF!4e<1kA)8_g(o>Wutmy)f`Z*+;v@J z$)O5w$i86Vs5{;b)Dx&ld5FY1{$fOO3D~PdQUI!96@U;8b?JX*GiLG8(`L?9Fs=#l zQtv@IP%n3O82a>|TrlD$Hc3y(*g0JD(T zk%kslLxn^~9*+n@+(|-58dz8i6&QhB2Z(G6P&N|C4I_rTgw0Ulrz6h^Ing5xGV7Np zu%)bec~W7{qg{czYeT;p0(I=(cWEim;%Zf( zP`Ec&lEblm`wBTG87e&gepjhUV#3NvK%%r0DDlh-NVI{7ZPP@KH1yPhw77!^u;%P; zpv*3Wnl2zQZG{5clUPrnHLF3!tOlt|jtB80K|~0MxU~o^@EF^E_RBDQi0nJUDBq@BTPK-|3wfy|%uKqlw|i6>c2D!eCdOjqz^ zE}8};jHUvKO?pi>RtkZ;e(m4Qa?&VGFhxk^w1UU9?Fx}%j)&GXMU*<`&1p)R$-41X z)193xCpU2?U1i;Qk#o{gP7vcWP_@p9_l0S?Q;$?%3yFXH_6V2p`sAka+V--4-<>y= zeih#GPX61j+8_Hby}Exib1$o-fTMtm0E-}tV-ZJ_LX$#=0*4Yu6Oif2f{_!fY%%}< literal 1130 zc$}4!dq`7J9LMkFx_PHtOMc4vMu@tR{9!pwSilBzC+c_fiPmmtCpD*A0dmgyAHYrgnaq@5? z2tuM`H7Nu^a`>Ss^kyJ$a1BXFQv8uvr2H1oK*JY^%3RK*BpxQD>Tdqj{!b&Ab93+GtsU1YSq|7s+hU-SQXtTB%*<57hTmsigP6}#0xK=miN%gHV z+BFocW;_H86?_@!sN%FS1v_LY>S|A9jtgzRj7ex~_kIP9VrzD^T_AGjlDRh0J&rSz z=NeFcaNp9TFZ;}}vKCSfm11iSR7$Lw7-i0`VL&S~g#tZB$$5V|ohJt?d}%FDRwG%w zD7I!E66CFoTs1hv1KJE;U6;S^CUCXr94-5=R;XP|p3EP|o$45L&N^V&1D(d_Gf5 zWc0dBM6Z}$Qq1?I?Wfb$>)U|P)`ptc+7SwFBU@1CbX;8>hmg}Cdv1u|i~8ChV!wbf zh0%Wy&56QeGcg*oP_NN?oG!*_#wf!3+Hv?khJAQAY?04b@neN*%k;d;hp{|zcxiDq zp|3#irW^`nuf%eJ7eLxEj-QhVdVau+QYMYD)Ip<*a>$RpqL+3AS*z{|M7<)@376+p zt<8 diff --git a/resources/builtin/alphanumeric/4d.png b/resources/builtin/alphanumeric/4d.png new file mode 100644 index 0000000000000000000000000000000000000000..175bf669ddd8719d87029a9c9062d97684d3aec3 GIT binary patch literal 1017 zc%17D@N?(olHy`uVBq!ia0y~yV4MKL9LzwG?TN?!0V(4EpAc6D(!pX@x066huq4PY zm_bc8Y-X{6@Pyhd=LBCat2XCVb|)AZm{UAm978G?-`-^BYjG2CIq2_qTIc)zHN|{u zl=Du8xNCOLtp#me2>j05W0m?=Kxnaa`m#`Ts{B-0wAt!pIL1z6D1-6t` zFHb7WdAxS3tyD|ip6j8KU)i_vGaFr5>^S3CbhIl_cWvlbL!ge``z|d7T3oFP6bkp| zN^&^1Z(kwDBtwPg-|s3lNlaKd2}qQ70wtb#0f{ycv2B{jk%pdHkQR3k0oI(|4V2l1 zP}2n@rmaw5dlKsjv}QHPnAIS4$?+h5B!~zB5w{irWp;w37lMejV7H+e4R+T$ko0D- z8ju!Mtq#VS+L|4Vm7zfb%tc#4o_+)3TfRD|u;uk<)rZZFH|+l#RT^*{e{Oz{z4=1F zJkM01!*fJ|f%GL1XmudS{x}eE6=dwj)j%_ztN|IMp5fuRH9F9s1SLBv*0Ayb7|khC*c4T!r}A&~i#9>@fJAn_!tNrm^sjp+)W%th0H zgwa$Wu}QDV#!4Y@*RTD%Sxy?I38o0CoL2Cdwp}4o%<<5grifCV&rq^qnuFLF*=$_Zk82CCLM@xCxkcj}SqYa#KE-yY#IUZ31lUfW*w@4NG+(yzi> z-pPO4Rr_QArC0ZlX6|Km6mS%95nvHyaV+9!QfN}>P~cGFXaX`lSrAezjuTXnq?!~w i7=Tg}3P55+=L*#?R{P#dsh(B_@jPAqT-G@yGywpnIXANa literal 0 Hc$@Po0?faf&i?f*Rnol&MF4;;0C{{GQWV;6$dj z%9R;u3@KE!LFCjBbUF^P8b4m~q;CJdYm#5ft9}k$#SDXgiqiQ&a*P;6S z4-nY}bG8;NiS^JFtgPimOJ)0b0|E6Nl-s}HXXc1OBM=pbA>a;apnEkWzXw(Y0dMz= z7TO~<#pQJaxo>^##OLcF`*Jf-oO%d>RX1=KuY)<)ZldZT&X&$GBJA8nNVJqOE!nIV zj}vpk(-S%T(Tpxo-gkAa_!hh?#s%Z|z!ej1%Ny-KjpFcgMZH`_H40jEigU5KiYrxT za)Yb71`_H!ves{XrZSFk#8ThplV3>uMqyDT$b|QXlATEw zd}Hy0Ol-etdk7V)UZT}3=MCBNdi3Y24TFgk@J+mqAc%0w&A_D~E8@MKL*1D+XWR^Q zVcN7bSiXVT#Br|4E`;y~t<7C9(^4~cjNl*ztklZwrb4`*5$U)hfVS9CY)Wvf;^`E{ z!0Q?bWiM}p`<|=w>IPj>`Q1+^iw@kFgEPbafj&+0wtoc$3~yzveJz_fO4OFCWi?~> zk5R(2(pixe{A2D|q=+BUXB?wVpgZanl5dn14i^31SS()4=)Mn1Xcn+$Y7Ie?$%8JTAsBT z4C7=Lz7r?ROQ~lYjd3hbQd0;YZZOV57?3yuj4vEv`d~?E?03N94Ee#F=$~N;qBJo# zpB69`OWH*D?eC$ZjgNOQ^`T2K_oiK|(DKRY2DE7a`%a)=N#g9o<4v+kwQ$;a}Zlmc2s+Gdby^Haoz#9YQ7#nOIQ-NZM?ifoAgjyBXSCM)4;(m}jF@K>y!T=36MfeY_Jb}~dnY&a|QblJa}D0M*q literal 1439 zc$}3~2~!dX6vl&0EstE;LPN_~Pdw0RO|$i&R4_7dMFjK097EATEnUxat2HZ$6v~cm zO)OSr@<7B)bk_^nJXRww$X3wJV-?IR3zym-(CnM{zBljq-preM^NNDe{=4YQOzIg;(}hftqHVhCyQi`P&cMor9kaPI*Ty z(=3frj=fWt06@J!gilC@#-c?3My1Cd;9&dhAZNkk_PO}Vn@BtMv))r3ox`5-x;dUt z$kwAi;eap8VA*`9%MTZ27$6;G9AH=IP37wzVxleilR&!2hDN;VjoGJ77oD`^r)di1 zjx^#o>RxR+(j>sK!CUnLO1`EwLS=#3Hu#9j3XmCspDcf**mN+ zo#EyFl&R0{MF`6a{Yvr@AV{%0LJe;IV5GR&Kw;kWs3QEk)Fnt#$>SkvQvaXwb0^;M z8PpM?AU|~^)XEfE-7N~PFLfw&uxPNwBSC%~de>qh{SsXs+jKys2So|N>ZW;!4IUX< zo_yp99|^ieU%h|?ofP)Pg?=VNi`N&B40@L#1R3f`=HT+5@C_oOPS<0`QlD!gQXPua z(^w=$71eUtg#bo^B*Rd0GLJJ)-Y>eq6?4e2=7rd%H)09-2>j(gO+agA4c9`XUzOVr zy1G)+L)j^9EW-wszY%IHb)QvQRwx(ts>Co-%qpvUzOE- z7=S_Tw`t9)^L!wVQ4>oxe?CU?vivobVy$uH_CIKY}um9P1kp@IJ`xhLI3Bnr52xk&p-oXkYT=6OfVx?I&E6} z;PAm6ac`3qEuq%~;JmJ%Wc9Dr>rSPWkjTd4mMv&|IyXI@`T+9lCC2hU-ZEWcZD|vzAKm$UX$<3NxAv` zi#`?`FC0A@cy=T!l|P{lKi?KLA@s858*5GDo&Rb4vN8tF51rekDP*ZHbY`7K^bqXT z`_UpK`MwOU+v)q!3&|KZZ=G(B5cYKqY4F{g1he(y*#mLZ-?$~l8_%ReVD^H+riit2 zI?Zm2e$LbvS1Ju!gT6E=mI__jjTNzR^{3F&+urk!m66jPL`8djT}ISi5i_A}t+fm0 zzR^?dmz|h$dLmgBe`Z}|08UnD#}_!Q9M2q?;>!v9IlaHXyJEh@&We1>P%7+Hl5Lkl26X&ElDLqUCCsPk%}yA{P4&dH*9R4M7U8x%s{t*Ug- z$z6oL;_zij*coRIOcf(o#b%CyueeFIVqbHY>Ket8$I2TChHVM*q}4oz^5Ow^DV*PL z<*rJZ_Q*-eF6m6~_WG3iqrS`K`Z`=>WWIEVI13`ZH-q4Q z2?~=LDDHLK-qhNGu~(!mTqBzpeWwuN2d609#>3EJpi`!U95HPq%cQ_cGPDSh=%FPA zsGvaWW<`=(Kdmdmb@T!f2 R1`7Ns3_OlTaD1Z*{so<3x_kft diff --git a/resources/builtin/alphanumeric/5d.png b/resources/builtin/alphanumeric/5d.png new file mode 100644 index 0000000000000000000000000000000000000000..cb30839c0b8983494bd4c45e0f72bceaa7541ba7 GIT binary patch literal 1301 zc%17D@N?(olHy`uVBq!ia0y~yV4MKL9LzwG?TN?!0V(4EpAc6D(!pX@x066huq4PY zm_c@?fp2k}nw4|d1g-?(tXhHGS>_B3EDfG6jv*C{Z|`zWo4ren^+L9!q5+ff|C9gz z?fC}Yi$ZGzB>5cqZ%tTxJW8sde#;ogiajQ&sRM;8P_{4}yWxCRYkXa5zGmBUc zP0$v|TIV29%zd3Gt;pyJD^sp2gr3ZD zTsG-z&-D#cjdg8>0yj;I-qYbIw{y)?lk;+w8j;!EDrfw3zZSm#nCErv7T?aJmQ&VL zFIkjw_fe6}S)HewrtjZ+{Hp=a*HW|1yoHwU*v=J8`h2Zzo^&+tovHZg@+mred1=9$ zrs!m?n{;$V%3oX6?r*_UbX2)jy-!9xs?zbgHvQ(AZyl#E7UjAmhi%$-E^V7!e*2`Q zDGO6HBQ+w;Hfu(DiS0ahI3ak`zPyvWw%+duHmHf%R5iP8>$OkmTkYDm9SxnbCgbyB zy{F9HvQZP>9BHu1cU&jTTsCuw^|Y6j{V{jWn4PorDAl=a^yR^Z^veCITz$7rOMVlR z3HJN+Vq(|p{NrLfcl;~s04fZtR#}kpH*3GER$f|koKH)Tk*bsSN})t8Al6tZv~U{t z8(X1(O>=HlIP5$oz^M^=^BRYC__fx`zK(t?X&`EZMf5fA7~y z%=>z#nrG+Pt$()uHQX*&|I}=4a^*>p`Hvh|I{!8}5pE>;*nt1kkBpD8w=OFe{c8Sn ztLwsAwQ84)X`_#0fd`|9j-Ju`#>;AvNJ^P>woXaIoSFvCSED$WLU;V>5qSt-mkGOGCU>`lcg#D;^5S*b)oxg zfXQTzw!kd@iTMH?wvh@PE+Ayj**GD4CUf*U{nA+u`y7D@=b5ua(OHS0;mhD?!Ptv@Zakfk4MjLd;a6u?t;o`pDPoW?kEa9Z1rH<6z;PJ*}oMnH1#M@ zExfce;-BL;xtffqqNfLQPflgOJx`nemvN-rnWrhMZQ_chPtTM)=sBHBexuL9$nYC- z8}2tL|5CpBx@+6?a_Q&~oS%d4WxY7K{L91MiC1(#33%ofGEG$JXtwJ=`RKtv9e3T= zV(*Wey?@&9{7SRV%qx}M!55d8+HBbL(I@BfuIc%auL|xrdEb3^c=5GQ)z!6p#jigy iU%XxaSI3aZvf_jPGmD%!$AhbMKs--ZKbLh*2~7aIY(Yi< literal 0 Hc$@#ME*<+A@7A zfHK+xSh^B^%qD;OB({Kz*3qOVaqT#=GOM^$t;xVJng% z0049njdH;!%gv3VVWmD$R1aA`cU0OcN{y2GyPFxTz=l$HY-{^5j1Oa1n&Tuq_z-pF zFX^JM)6qX9lwmwPxj~W>%i2>m;yjImuPsEp`qJH$7sLXtIFsx4a5?GEVpw~)-}FbS z?HlJJX1;WD^Xyo_w`@oXUMV1Zi@^hPk}i&mTIe)6Uu?z0_3SvLfI*W>@!Ho-p{l6> z4-;TOah=*IY1gf70+Eg`JYhu>%R=m6jmsyxxv{oyAJzMum6e`cAJu|Y9FKwrrio=M z&X4q&Wk&8Eh_GeQ?zJvy3lI~*1zJNsf=VzX?&9ZQKJE6Lc{Qtx*6Ab6l} zmrR|*H{60e%1WWpOWIb<_wCD`o8AUP$n4CoLzau28A<9!1gk!7lu;*NT z57g|1C(8`GYVHl)`rOd_9=$_L1X0nmKpk9MBG#rzdcD3JafN>ije8^HE8ErHU8W7M z9=J9#piliSV809VyFXxHzavZ69FWFOb%5Ceu}+Wa^^`*Yb2T8-%p6b^C4h>>K(#Lw z6uWgdacH&I8gT}AKISGfiZTule>%*T5Ps@1jx>-A>ZNUfK2HRDf$flUS6^d*k*iva zb`Os35v23O^T$}EezSjwrJP$wA8pQ*92g!nKSfk!3qR`qBNSx{CJPq^Ev2lyjb$~( zToYT1N=ZKcUM9XbxOza!*edTraE`n)<3wjf=gjiTHcL6`I@%S(> zFnHPP|&&LQU44mIoQ1U#_O%n)MI+D44-xO1&j^=77hKELJ3n=_|5T^XW^ zixlRDNrRg6raNS+dRgc)Rk2?8w|TNvleaiCVNLzl8#CpWKi4|#u@vOr9+CXk&pWD! zfTX;NYF{+HxX!R3>+WvegxF`(o<~%!XWO_X_T+$`i^{IpQ|DZjJ{4-2ij7BKMvC@z zs>gCY(-C9Vd7Z>9tw+WsG{bwjuw`6yHtJj1v0{(Y1KFucP_HP3UqlZ>j~{S+sVkPV ziAlx>tV0DW58yi5hSiErq_rhLlEOTWGpd^EgSc~k&UILcK+@Le2R+jC2Uk5MW2U&& z#*O*9__#y4w~0-yOQC0VaI?WH8h!0N;|Z|`?xXda&HcQp@BH)+I@;j>UfMeENEYjd YU_NGKh7Joftlb_%yLzGOkB4Rb3l_7>^8f$< literal 1678 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 UrsxoVgPQF%w6h1Q?s!PXzrvK4RR910 literal 0 Hc$@^qgAS#H4GauSEuJopAr*{o@35BLW)N__C@AgnJ3g0x z+RolDYwzrCt&dBRSk1>kG`KKlok52qPm(~h#1REHLkKegg*WGzf=POI_X@{dN?8;3 zbx5UXEMk-FKJWW)dHPP%=exw?E4G|nIq&H7wEB%YpH8m*aqRKEInM&`AO4Xh_MU6; zn%U-xfmZXAT_vR&RV1YwRU)GsU0$*ZJ-xXnNa0_CujtX|CyEP~>=pEw;-?Up*60F~ zmt+xodXYorRII{!(GvkGte4icI`AnAuqZ*%^~H&eceoo{1UQ%k!DwgG#pbk4C31@u zVTwMTW4@`?bhQMYt#OzER&Ld}L$24z za=o9DK%)W-l}vS1IJcU$$$+m>8yet+r#-9bBdP=oVcR@ir5tM aphTWwv6_J;i(0x0i0|p@=d#Wzp$Pyrq8z0F literal 863 zc%17D@N?(olHy`uVBq!ia0y~yV4MKL9LzwG?TN?!0V(4EpAc6d{hvgzed?nopfZA+pVJ zlY~l-XJm61ujbz_ zqkD4i4x3{-k^4nIb^MxkZu8#@TbCtfdNvlk4s86;#nrM_mG#i2Nlc0MiJ6xp@J z!A)^O|CV&tLt>&F)#4ov0w?~9o>)4GGny|Qo>q%6x0nkZ;KzqQbB3L2X zP+#ErRgh~SC^DO`?enV*5aa&vH5Q!YYEjk_SjY5pQsW%gAce&<#5+D`H7W=|k&G#O zJAyxOlht(AeFTM`5+;d?? r{#0j$pz!7#Q!q)-?q1=zODSu@z7DAr zjYVvd-RFJ(El=NR`h1soe8rZtE9V`Zo>sq6=hMlxKaM@VH|JU4{lh=f#NKl)UNhTV zG0{Wyvo#Jgz{;%}cgXb`S+4g} z5@=L_p^~YN3g=d{HaV~W(V_d1i3Fr_-84nU>B%#vJ< zF|)wxf#^~StI~w(!a44*_gI~>)e?~Fh05G>Rj73pJQ3l^a!HhFr&%Kh3mB!WQ(>CP z)yN{?A=7xlo%PTRQI5Gli}TqZ?Xj|-uu$N{Qn){S!xWfyhKn@Xpx7sVeCC{R_nFeq zuLi;ci$!U|zDXP^Z?3o~RI3V}i1B0*+S=}LE1gx)V|zGXV@~l>ffHBsUlE&P9+b#4 XELJnHWKm030r5Ru{an^LB{Ts5!lLN4 literal 0 Hc$@31pI%)o-01$pRna+B&K8vJONf3&9Y7wdWukj55lN}S4d@7x~9tYb;h@^1r>yHQGorY{_NDtuhz zTMI??kKmjU@nudKZ<3+4VQ<~+5I0lHKE)lZ+N&)+pGS$Z<;Cs6(uW!>b(81HPR3bE zRN*PMS13U-5E}$=`Ga9`|} zC_sbzjUMmZ-l9$oLuT*NT9rY*yB_n&kt6mA<>tbnp4R1=^!!+CEO2X7yOA(IHD~~U zYk+oJ79j~y@IBImkwwQNI`GK&p41of-ftocP)#Il>ksLEmoEYBiRzB!?crbTOr+)V z!R0$=*rRjq#9V{NErNIIXN3-r&qUTmI8NCc%bb{_!9P(5tIvuujd0Ux`U-O0>^unr z_|bONh*I+~@0G(q?srT+jUxIsk>^JG;8Q`|XOYz1vqDTCd_#hl);T><1tpjj`OGC| zq_sd9Y~2K&KOQ+1KE|Tva&+rbw~)8|F?`T(B#GOlsk?XvPZjskv<^lK*~PVq_i37A zPltJ)z|4uP5YmnLh2t+S|1|5z)s?;K3!Pg)`LvhWY-6V1oW}Kp?9$U3D8CX+w@7}A z2!mV*l@q3rL@CbofuvB&$8=Sw7y7Yh3Vf~PcGVIz z&OjjQs)W=vhj>`Y{qsI5u4$vYWLr`thJm3^x+2g!Fw0w2H~V8Q5^^@TtaV(~j&zHK z^+s<)>v_ipIhq_=W?D7wE74BeqkkTEqnEIrcTRetGX#q{U$`Ap;gNaQ<+kmD8Edoq zQ$>%MM?A)UcWgy)$`m7VcJWH{qzDEL*3< z@7)@I6uqK1$O*R$R>3u7{Dv_~YcYfzg8`D$?mmr9SG(?Eg{8(x8#~?=erB3ANeNxq zo%aj`*4>6Ox(VCjPwE|rcV0%z>Uahjf6Qr-Z$8oF!1*434<<;ta&lfeIOTkRy3$^7 zE?dkM!u2h^Pai^m>XYSMo-?i$-^wMf@pBc{Vhx8KJDnCQ%!TY1@@{|+TlT8BHl-fg- zYLmR{URP7dE<>j|7qwIuZ?H^R4yQ#rJ|>^-f7`U5+l)t9XM$ZmxN6C9v|G@ztONIF zf3OjeCu#WbVz+U*=J|kR(u7D&wFa{ps#B_z|GqegwVq^sv-Up$p1IGd=S+Baec2Jb KNnZTD6y`r@qAz{` literal 1898 zc$}4$`7_peaKh^Qu(Hlwy6mROpWT8-|7d@5| zRP9U9!L3+gSB#xdnfsY}=b3qDp5LB%o&vvKM%rp@oDhsKD!VtdmFs@g`WSPG^8&_U)V&54md~94P*PLytc)2q<1o$&U!pN z`J}lP1OiW3V@>d(Je%E$yip)Hh+cOdDbepsyekCyTlCDFordxo{AOb|-KLv{)c-J% zgtiq3UCKBO(rG3@Yg5=?-yNTvZ%D)E(1K`NHuoS2mhs!H! zVE+1^Gz#)znJEnW*srW2{3?i-8#}8NEeTOWWb8h$Ju%R;dWVIxBjYy!%xo$w`?Yav zL+yG)p6y#Rg^^K#a)}({UJd7uQWUF*u9w!1u>(tkkIPQ(McKiO8y!Z4U<*Bl6N0_Tdnrh4`&AV&m&$x&d zPgsPQKCi;OI9IpW_U67pKH{oMNO91f$NqCtn801ehY^fBvwiz^IJ^GKcNb4MYZEv} z%Pd5ax(X8VD22Fe?r@O&LnK15u-FzTYG=47_o5DUZGT%s8$hpV21%gmWo)MMHwG8E zs~YKxv`6#H;x4|Aq9fh22%_L^SK!>B14j|xb2C`hvg*^mvybd!pY;hEqrC%owy1dhNw=kwmD58ir~@7)w>(& zH26unN!M$LFHOreu^Bc*ydk`!6bVMcwIQ7{ye3EpK#8h@03G)!c7m}Wt-S>~crUG{ zF+*^l&yDlh6iJ()c?(SiqbDOwB(yp_44&E{zwF>PdQ>1N#gLglX3QL}%i|`2d^9bs z=`q){NR6hb(H`SP$4ACybHG<-%anz*{N(fzqKxT(0Isi`3d#7SIFA=8Yy42|_$Tu< znK@Qm2`9}Alch@@!D2HN#W=%w2BB(`BU&*=PR8|>f*qGszo^`Zl=4m+9`^V zsabHqfz9{);@U0tko>`7HERVn^>I>!ufu|!z-_}~*;YB;W*Gs#V6HHS`NBeZct*XmK0i8pa1LM}YiEh} z<&(c4MAxZ%ecQfrFce!t)2NOeAF0J&CTKE`!wfAs>1SqpPi*kP$2(h}q{I8?`k!*B zRQ=sD4mE7B2N9BIcU7fw?8Q7(XaL6wi8<=xpRFu!jQ(~eSCaFzJoA7*x^>;WW`CYh zN#tF6&hw`89gCl*Zro#lH#i7wUPXIU|!Vlhh4`cUYF}GUtjtnu=@TRJV{Dc+WBb3 z6&;k&ZGhsf$tu$Z*jfZ~@7M$8)R~dhxd4bVeDfl#Ctm+C(n^*T+k-&>M-or~qafix zwDFD2%I;&IjF;qrQ9<5m(L@~;k@#c!TF5)4HQ0ai+9P@iflKnq0r~@Fp%Ux59mIaR z^oHC`Evcd%OR2QFpE4$rn(35d$H9`G_Hdv-JCfR9(@p|X`|6BB=McXa)Xgbm>t0{l zV(AD2Q;&ybh|$%HtcJ7obNEUF;sLXZp63{diP#V{T@|97+X=( z8}PBz*6$WPrdm4PLeiZXk|e`c*REDQ&82#qOI&~J(I7_Nfus^s4382rAFwz<Q5%#E7{-_v%q$@q+p=9qZttW-%NYNTCpA6t#dty%|tAJz>NjHk&#zm|cI7e|4A9n3*cC!F;cZ zuNx=<68+ULg1I}HN&UHtKmC4Kvbru^GPP=UQR$$MOo2p;V&i5+YwgyZmvX60nDB>N z$a~bd$tzZ3hkDQ;v_hCBk6~w;P~`hn@fhXjiwxL~7qBgTx_w$>pa=hJbJ&rAfYaZ? Xb5QN4B*y2f_ov0$9EYtk^^X1@XxWL0 diff --git a/resources/builtin/alphanumeric/8d.png b/resources/builtin/alphanumeric/8d.png new file mode 100644 index 0000000000000000000000000000000000000000..78490351c537519b6e7bfe338fc9c2e1ff5658c1 GIT binary patch literal 1685 zc$}4#`CHNl0LBqezoQVm??g?o7OSCnq)yBuaY*Eyd5}j_)P>DuimBj{XQLdOWM$2$ zG{UQL>7rp4vR3F+G9{tBQ$*7a&sNX=f%bWx_j#Y^eV+Gue|t+QJ!Zd99xJsdml0SAX|S z-u*EDGdDMKF4ldWqVy)YE;jyrE;xfD+(erx@RV!|VKuU47{%AYs9k84QabB+(_;YY7rx2o-|fTJJsGlog|8T1K80L*+Uc-z!2HZc=k?)k6I`Bb`cA1| zf@LhA#rsO1e`-&eM9YXZu(EN{u*g%N_2AGU$K+}Y(aZjh)w#@~1Y81eeO#x7xHvOn z2!QK>E_*gH1zEBmWy;LSCm_2CsHFb%CyTz%V@lAiWF6Z#nStle0bMjr=jyJgFLuxv z1p;vOjycZwf+wlK@P51SmF7v2)BWO@#%SjmM-#aVYdq`(mAL+>EZZ1An_-}&G|n%Q zu|ObWXT3PR5c^s+3KV?95-_OZuW5V_@*DpelAl#dU;i2@bL2T0QQ7G7KpmQFUgp0* z%gShnGC6w5{2&5qCTfCBFW~Amrdv`he;?f!IF`ce)z(`sCeWpW4A{On5vRO?c88%o z@o<#y4a^aV8p@_+P|yHZYwME+AO|5e5XEaxcWj^zE$cA zWF+KFgn~GOBFXUXcePTEw;mq<5~IYY1-&d>bbLVuEoj@g)Y%H6KqoV9ZbGZUqqc@}dO9#M^B z7b$gO2MgE3T*nU80{xxRikz;zM_Dus824Ui;mwO(#KLdRmgy8NFAd>}O9E^Z4s|^k zyrEFsTMKDy3-_{71QotjUe>|%$}Q7-j6xzF^hRU0V^_DRuMNeYCFX5z-{`)i6XTHp zABfwE(f3UVbv8Y)%Cc$ktI(nCHaLyHIzaqTcuICg5{|>3F5QN$@yfpCcEf(joW0re zq3Ppx-^$SB(EDqpBGgzDsRQY*ipTe@^z?a~7!JKPA+x^Y{I&4-2qJDxcg}>LB0b_V ziY`+g5HCeD<8RP=wu}>+Rxt-N&1^(flFIiDR#XHtV@1&KNj|EaQZas|4)VShhgQF+PTDo7AzGs=Y%80$W zlG}zt+ddfgfOu7J$?Z5Zcv_ge!-+cdcAcz`*|NahGp zX-xC4_*_b(xV=2iJquHxy~;LYI~^D6`kTIY{B_e_UK;^zn+1`tQX-><=ln*BU+x@Z2446L-qD_fwDP LOZE}$p|bu3$y56P literal 0 Hc$@ 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 diff --git a/resources/builtin/alphanumeric/9d.png b/resources/builtin/alphanumeric/9d.png new file mode 100644 index 0000000000000000000000000000000000000000..51896d03dd1901d7da665227667c3609b3574347 GIT binary patch literal 1490 zc$}4#X;4!K5P)AUfpC<|z_eT`5*ZFTs)*Xi3nWSiM7e|E5{qIHLOBMEiXA|MrzGol5>fD*wrP{-*{yED7re7m!=|CW7_yk8UfH4*>- zO`<#A2LK?P^;Cr^JNFN_epKSSgPwi_;Qt37v9DbTokSn9FM!1C_6kopQ<&*y%(4G5 zK=0UBEI$B1V2OB~Ukc=vkg>jz##^g2sDys$fuplcmqP;&TLL7%!&8eN?M~4<%g`#* zDa)Z_Yhi=)ObN-;o?z!lpsHcq9lKlQXqi8zA2ekU zFeLcwPpCbf)Yxn*Ei1jN{rthRe>uPf19z9#P;eIJ#3W&6(hl>SP#7?lq)0bE^?gRu24**e$L8H-#KT6M9X5! zp47MCQA>2yBr+Clzu;Q1SKE7_`j?mU)zlK0aOMN$89hc-{BHP|*s)WxLZmvNEaRFK zqcLN~TC=1J86altWlpr2wXhsYgsZlwK^p)#6EtK5TXWLD)Cv#@Ei`g3yW|IV+{MA0 zzFC`3Nr)KGVdXF6%EXEy{gx#2J3(BHgCX3Y^We?%tTDHYfvZlht`W9enRTNWxu{E) zp$OdS%*`K6&-}5Nt+;1ynW%DuYLJ!jB!1huz#?kz@VR+VK9@t0hKed#EE6)8TsV(Q zdXY2Kx4pA2WMRG^pUPJm=Rn?^HmP_KAm&KAzAt-Zt{oZwZB>VAc^j{tb>gYEf~&p# zUQO|)46Ae$U4s(Y)gy1sna-rC;l`4^ezw(m_Fc0rqUpj>OUX&GC+sRF$BkJ1&cL?-752-goh)pke$>F&R?eNS^ijPpn z^J3NmkMMfRqJdgXp1Zk$I~>*$Mw=iP*1)5y@!_?6W^mVy3bVm@eGSe9w$nurdetu9lV>5`8%q-Y~xx4ugT_rppER< zJE~D`=hD!!LW_3lsX23E@R_=C^=6dR*V=~HM#iO$3gXq}L%}eqh|dQXXad-p=IZUV zP_INDNp2|9ZA1w0G{&~RBT7ZdqQzIBA*J_0uFOGNyg^&(#kH0VTF})K(+3QVMHa!q|NtIqgKQbIs?|Ou0!5`3p|B?qisc5_$J^ zjb+t%6}n9yW7OkctyQY^f3(4SgV&W*QIdgI5j6AxvSB5wiXoqmUXy_fE*y=-F+M`^ z-o!$BYqMGAgeyZ!{^4}ChHTFzc6~F}8MXe;45w(=EbPFhFMNM#fE6=2=|Rs)#JUj) KWPFWlIP)J%w0S!K literal 0 Hc$@2+I#D=dwrk`!4-LEXA9O$Ge9z~6zn{UgvXXKZ9E|o}!j*jw0gEgZfqZ2ftJhU~_B= z@=p8jE{=qqS3w|fn1}mGuiF~3PcLt39nuH6=uqX2%6d^}JLk5>F`bx_p$a(YN8`)G zvCn~9b_{>r)-d;ehn$kzSKut7ny3if7X47B$V5FDr3E{fo{4$g<%eUS{n2v#}PTl=~bI>(4w` z=l5=tp&(i(4^l$eJM&ele|WDKZrD2taJ6W8RSn4YFv-5#--J1#rTgtMsn#yxDdbHH zdL-1)$855gry;dbS5BR#u8zZ)(gb9hpTijFf3sVHHXyA(VmQ1&E z2EM_qSq|ia(5NBzV!PU&rfLs1-us!j!P9{pkT`dgZs=|hj~Us7hQ*C^cU>UB3s%8@ z?Jus^lq?EDPc9_DCBuGz4Li3#emLG3EZR&p|rptm_ zjhG`-bW_2_yHTABe(fzV$xoI)Q`X)XQwvpljIfzCS~R`9HMi*_FD5g-(U3Ak>JC&6 zM!;B3x+G7K8R8;x^UN?JkNIAqxlh~fPa}?Xc@zt#nW`>|Qu@a_-TE9nx9?-J`08qK z>n;V{gz=GaqqLla@ShPUB{yO)~)p za@r_r7Sfe3Y6}xkNa{~!kTj*P%t3L#|9mBSDr8dOJP)NzZr(R38tqZkr>@p1r77jFb*T2SLG8wskiLceoCD`7s zewq?XV0@b`um>i-&UB%MXZmYb9P{`noLo}09o;X$l^^{I-NT>T{iJGTaTgTvm{HcZ zotW{;QqKpG2_%--C^`6Ea}i@HN6kRtRMoP}DAV`!*@3X`ow#yC=SMIq)>n5VTP*dI z^6P;XBrkko>;!w1gE{bv<9%95@FVeY8Zy5u{_@*-#!r%cJs-4%O8(!2Q1csUqqWNL z4Wq#Gffkiq44M_F(ixvihEc(lPJk5&=0J89T9EWy?bMTP)iBO*a@VR2(fMRIm^&Gs z0#J(WaM*=tqy;NA>bRN-g^x8KzIQ5%d5mZfe%D0u#(|ulE0$tWYJHNLW3beVzU<;x z8QVMcmH=PJ{OUZn|5mwJPuQ?p6pAFhWDcTPsel`%HZC>F{~q^_!nR|!g=>TeDqJo# z2x&wDkk}JgejrGA@iW)3SUy$hzdYN6!ktBZ0J9?U;)q}t|MD?!8Zx#2*_DtdPJk|t zf2-=lCLuj+X1v49RlYtMdC8>(#xnECQ)Gu5Aat1ZEi+pYd!0|T4$UXG+7i#RFrdoV zIO-s2GnG!hR&K{p121{Mm0hNZR6s>-mNy1?e=fU(+*QPX517j7_YIT*-udecqiRm5 z4zC0M>ap6P!s-ecR7gLc1rY_-nRGYDqyYQy+5{Mt?#9d(n@h3H*Br*qGC!*hr7DbO zl*_AetO!ooyS~1_HOL~aiM*5?$+n3vNqpt>TSpztb1hiF?egU?_T3Sidru3bo@EER zJE{80nx+hI=>+N{P1UH)*WB26sjGE-c3bg}E=V0_Wa`t!ZN@J*E*_`w?$2E*DgObv CiuJbu literal 1687 zc$}3~jaQOq8%Iqat>H(@v6U5S=A52v#bWsdD!rg<>dZG`g2{G91(|2)*&?MO9Bab&E0Ri*@P@;2Gaz-wExRi zI|pl0u&oi{$`Jz6@szce&EOb+Df{Vjv+J^6bK5bl7~GM|BVNg_T!0air8{ATj9ijH zOIr2}BLR9|`)&FAl_!815SzWX!VpX=o#sB^9U=nxpt}kwxvbQK%g3xb>1E{xwWSJH z;6Z1m>?od=rjs3qNnoS9+Kn|^S3dL1Z&4wu3rZGz=M&3|rX{g$_wvo7 zU4YlnJ^PFUi!wKs9yE?H1R)EcSz)J+>flTrF_3+Uc>33dFxR_Y*3{b3F3+0C8@i?? z?w{Ug&jgL~1AC=Acc)2XE>Bj|WMp4I=F{MYFjvZ>g^0r@yr|ey@dX=Q-Pton(b-ic zc3v;0HZE6>NUZ6!?jREAmO{FcU8rq%BjpwS{$kQ+vza*9%{ezn3vdo+l~N*4cD$iP zzlg5$8NSe~ew(F}z#fv1G>t>3kaXXA>T+2vF>csBC%oHbl7Gwn4G}o8!dAjOfFPJx7j= z5u7!Htp|~0-)jre>|Xd{=cYPQ5Esun|LprmOfSma<{eLLoJBO1*Tw;CdolLcSr?)F zl9Ro<;GBFUuXsbU;JB>iH)01Ow-@zpCv#o6>5GdaNS}=&f9G(&yua4XMJLW8^jXu< ziJ5oHvd`pbCZ4)5wu)%f)p>hyU_)&EHJm9$!r?uAVk7cRu`iz4LNsZ5%(nV8`G!Xh zY8(^CBn!6TO&DV^4d=!h*u$_gQ|#xG{Ls$>wvdc{9}7|90%+nDSE;{RZejdvCw%IU zf@cJ6*{7Cr9t4qk0M@tas4?6LiYrSIA07lh0T#CTaINxv-^;p+CZ&IH1W1V~OoG#y z^sS}OAVT-Nt_kB_l2G)+H6QNGy}Sv`*k%l^P&+V5mU5x6lEF>zM~(d?X6z%C z8FJgNv*SYPP)3~l>)8MK@Jtm~Mo?%JJf$E4xZuPTQ%;=TE9u9e)po&#>2Kscmm-ZnN|{weg6SbP)qXJD z@*&CFQQ;s5fB0HFG&6i)>4{`@ci_zHljNb9|BQ!>jotT_5Nr4Dswjf`IUoA=Y*JyZ ze-W~Gh)^YG=m>GDMYvJyU#M;WG^E>(9!hBr#Y}XS=^g`3oW7x4?eXVf>s0;8?*ed^ zuO^a6v1L8OM diff --git a/resources/builtin/alphanumeric/Ad.png b/resources/builtin/alphanumeric/Ad.png new file mode 100644 index 0000000000000000000000000000000000000000..72c0102db9812f12402e70d35f5ca04785abe477 GIT binary patch literal 1538 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 literal 1414 zc$}4#`%_a#6vt!9tw{t)B2g5DHH3-=5#u1H3VJOugocL@&;W|aRn#i9k)Ys|aaIHb zEVpP0_(I22QJxI}3-VA==0-F!NVR|wmA428N*IZfUjBl%XJ%*5**)L$%jdg$D$rkS z#aP6kP$*UsAMYRvWfnfOXcpwjt*EAHa$6H9m5I#%KYE!1Vp7hE5AqMDnD3My-{kfq z^ZhQ+a`_b=m~wQ=jY6T0NxV_n(OJWW*}rr@T9|sbYl{AJzm^O3u2SwO~fU| z8{V)!)gSBg>TGeiE#@sFR9Ct@xf0a%L(TbpPDu4ZvFSyq2dhW0apm(fFrrFde#xds z(7sW}2x@HgTK!iY^~O)S{22Op;;%L5L1mS-rP2d^o9{lx!Mr*KLtaayUIsKB4&Chi-fyIyW6OJf(99 z2SDuHN*$!Kyz#DeD>A^(A{JKSu#^}XerbO4Tat*SE^~`4hP%W5w5RJ zJ`O&_dIvBBqsiqtFe`JiI|oWj+V4N43ld_BXbjB~eVP?RVDFcm2RgMLo9@nd@KIw!-PH7e-e_eCT@aQYO@ea?X4zm4nHRwKkyK=`io1*u+6Ym7HY%=2^^92zjR%ibVZH zHg&A*3Q)zmgq^LY>RKN|OuhxZR}7uGMBEaXGB}hyZZxg6Y;1EdyxGQocj98=fJ4{K z@tbzE@jdU3RCK9&hG3?n^I_Iq92&D-># z?)G!h0T8y;hL?+xPii7)a-O>B!CYS%zDTOoz_tqa{s-S6`2o!ng`@>ME>6s&-l(YC zUsM1Htnv~Ei+vm-lb~;-4&`w$_jC+t|I8=3``cy7QTyCfIhv%}5`)MQl2+d2H6$^Z zvbJarTfLonIC% zMiSkd@j@V8qw{5GgkFG8yuMmh2*QtbhEC4wdF|L(2v#j?A+@<}7W)=2-Zkn8eEJ_1 zlM2(F?UQWmW#?>tjS6&+l>e;;!ME3~;yV%L>$|>nCK9v(hm;G@RIzEd-j0c#*Bdig zyrsnZ7X}<>VT-4t!{9*jr&#)PN3ArQ&C?0yuzN!wFEJNLjO_aqF5yvH zz`lRnl?a0aEN^SH{^@tj4}8>EXb(5cynI>1tA1bnHd z!>p~Gttb?VbvOs*QYb6%4@EO4Z#0RwmPy+j6~SXu{{Ly9hW3*N=5izVQaoyNQg;Ws z;)m?Mu#(2GN_x7&>nIc;H5^5F`74Z%t()~s$CA54+;?k(`j`3R>!QBC_|t6AS1*II z?^u}axY;I*YgU+j@@&VkqRXZeYx`1alkc4%+DkSB01|!qR zj>7XQVGm;b^&?pglqK~t!%lgChL$0A1g`0ecc-QdXv-{LcfDkDaq%E2jRRFs*53D< z5ql6VwerrW~@0DU+hNdy`Al~eqCi3F^_DxW7 zfSM+{L1?eLbF2kvI_yEsmNFVQET};Z6Zl&miq8nHdSVgAQ`gim$4@XIz*NRGt^ayr z=d6y8f0V#Bj3yeef{7YBiYLd|AQlL)=z;(siu1|fe0yYA1{3>7K;e>+@hmoQRIcpp zZSZ#|d}r9(kuKFb6mOCqXcWVAx}?)=*opBcm8A#dS_&@jz#0K?aMI68**j?qY2)=Uf6|y%P(Eu$Z7FQ zO@I*Qh)M-@1|ISBB_?!ChiYmQf7quRQm9t$!zS82X0aE7%^))KM{d6g+L_kN$4emr z5{k4H8}^`p)2ffCj%P}GY80JQ0lK&jBdaGgDXjjar06R7ymMKjWcptd|SJ1twF|UeO>{j-J5jA z(!+vMe0MQ~ZpB^a?1c4I!`x*EOV``B&;0_8&mRp2-XXwf>D1EF3-N92jAx5hlkjRx zejoAA4yeE;WJ<_?eJS_Ar8&^>Xm-x=jSZ?8gsw885eB(&M|_qyl(BYE z3tq4z@sTKi>STgFi40#6_U0mCDXLuWMYLs-3wU@;{sYw77o!BW*X4k=hWrT=4096d oS?`|$g2Fj{zT3j5eh4Rr7R}MJ%5GM?lm0^=&W=RYA&0R40Ov&m0{{R3 literal 0 Hc$@ig~&?hEy=Vy~{pn>l&eBAKf^6IX3-2 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 vpSXMsU5+84_21S=b zB9Syac&IOlq=KIu@D!m)!+Mnj+4^|-a|k~EpCv7lW5hQo!Pnc5S(!XLMUKwz_v+?q`5Wo)X ziYL8mr9L_e+G%W$4ytCjgQFWC*v436@IQN%-qr=MegOwkv=~Nar2$KuY-0$CJ&fZp zv60Bpr8bb4xa3)yB`w};0$BZRRT$$oBpbGZ~%Qj6J zuzuCPQ2EsCp^+@+@YdjPZgM6pT{_#z{>vJhX=y8-6>jMvv1@&-n^|Oa@m22I9$Fqv zkvP=iBBF?EtMcuT+lH)J#$_$m^t@rW7ZMw}Qwv@)4F`ks^4X$(ud5EkOXua_5W?amYKdm_JWg zjI#+i2#j2yZ0}twF_T3IqUzwS=FK6xB8Jva7uib`6q@q12Sd~_X~f3^+1*x{mqV$7 zGWvX(@RRS{W_d!2 zLn<6ucXbEozur&*8}jShz6+pECOw%8#$6i=4Y=7xvg(A^a1g2M_&b20X zadfd;D~u>`JJ47IA%exg+J84Mpo(tS=cmJ-K>`shJE~csAKM^%5uZgnSDU|Uu;)CE XRie4LUD#$~+DY%h@kZ+|hGPE${Z9^? literal 1376 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 Y^fn#MUHee#Qy7Tj>FVdQ&MBb@07tW6)&Kwi literal 416 zc%17D@N?(olHy`uVBq!ia0y~yV4MKLEX+WWqKVr7fs|Z;Plzj!{*N1|)Xbg=RKZme zi2SeOWdqBpv84Hf@} zPB`D#fDOcyd-pG7XCVcs99_R|d9nZwfZKOpn9fg}e1DD7%MZYSWbkzLb6Mw<&;$VW CBz?pH diff --git a/resources/builtin/alphanumeric/Ed.png b/resources/builtin/alphanumeric/Ed.png new file mode 100644 index 0000000000000000000000000000000000000000..17838d94354f885d380355b6c1c6321e06543e46 GIT binary patch literal 356 zc%17D@N?(olHy`uVBq!ia0y~yV4MKLEX+WWqKVr7ffRp$Plzi6D)8rf-V3ByOM?7@ z8PsO_I?I0w@dFC{_jGX#sbGA2w~>`WL89fN+X}Z8p10~(y8YlR+_U{4dqDv&0~YXL z{?2*1icT#Yf=VtO0;r5hLYF4H=irdU#yBC_I%UEn?D9`qBObRBYY>PrhnEwF95#RG XZ91B}_Mz0LFc8Pn)z4*}Q$iB}+v8K| literal 0 Hc$@!-KtS#d8_3 zfr44_d*Z%M5Kwe#;Sf}E=|E!$wXzFr>cb_Al`&z<>?`(4DQ!=bai|H}GC9jU4#L^V hON!B`3`Q*8Nno%`dA~a^xA+u@=jrO_vd$@?2>@G`Xy^a{ literal 385 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 literal 0 Hc$@QB?yBM2569sr;B4q1>@VBmW<5~3=9V+PY9mC!X9yeQEP%jZ*kSX z|8q+XzOwCA^qi!E10}idH`r~m?RNu7;0zZFE}-I_Ha%Wwlbrw-Fk!W0S5ev2wG2#X jpeR9sJb=?*Dl6F*{`~cRBBTUia0rsc@SJz|?=}&mQ- Ra94?dIG(P4F6*2UngFC~Qw0D3 literal 0 Hc$@Li&;af8rLnBb;0FfGqZzS{mLITyt9boFyt=akR{0IDQ9K>z>% literal 216 zc%17D@N?(olHy`uVBq!ia0y~yV4MKLOw2%$zZdVt11Zh`pAc6d{T~d9E0!h$Im{(N ze!&d?4}3EFEd%6Md%8G=R4~3hYskpJz`|gl`c?4m^K#1^Rxt(`$hP!Sn&_b-)agPl g^+_GUg_(Mwk!|W9TZ5er&+9>4Pgg&ebxsLQ0Js@Fg#Z8m diff --git a/resources/builtin/alphanumeric/Id.png b/resources/builtin/alphanumeric/Id.png new file mode 100644 index 0000000000000000000000000000000000000000..a8564c83413211365c63142ab6aba7a965a9a015 GIT binary patch literal 212 zc%17D@N?(olHy`uVBq!ia0y~yV4MKLOw2%$zZdVt11Zh`pAc6D7-&v@c>qW;mjw9* zGpNnnP@N+M{FIBf6?yzWv%gR7>EWxOuXK$YE)?AP~vFfXi{iW=uqHL>VVP^A>LGL1Xu)F99blr%8uO$Z7N%(&{QMWWbkyIWrq50u0xZ4Ut2KK@;mF>oTfj_ z`s!EqH5rta@+O|F-M(Pv+V$BS-|vWT`FtX_f5A-C@4b%3&9-~>C)@7Tj+PTJ3EsTC z+NxMCpebzLOXDT#+ie~Qnr!l^JYbu#bnI&_D&(FwFG- zHRZR@gm2qzg_q3KT_4gkS*~*7achh8v)X%`Cg)WyG_+X#q;#2TmC^}qi?z>E-(3`T zocI1khr(s47=`sl?*1${o3!`*es%CpIRCTt*AJgQx#W0h*XO+WHk;M^nqP<52gPfh zNaoY~`Xak(f_jhl7v~99$Dc-gvfouc<*;k5)U+Q0Yx?WsAOGv>Km185OYWOQ)Rlz0 zUbRp9ta7|fj#y1Mx;Crc;A+&VKl`^O%&gyXOq_+d^mJhR!_AH-Jl8(w0P#Fs{an^L HB{Ts5-ZV?b literal 889 zc%17D@N?(olHy`uVBq!ia0y~yV4MKL9LzwG?TN?!0V(4EpAc6d{hvgzed?nopfds@6gZSPnmC#iniM(|U^G~WNGXp}xG<25 zqywZ1m((Q&M;1XB0Tw|PM;1o`M*$ZB7!4L8OG--^COpAzmXe1!$ET~Dhc1K(1Wm{{ zJ|W>Nn8I~$Va;MkmdYd62G3np?=@=bM=@=8t$w)nw$e8z=W9~$58SyXb!eLS+mC!Q zzP@{PDns`$7e_mbIR_svpLg?0=0wZczm^rJc()6G%gORzetPw@75$T@+cr;=o1pya z@x+@K#17qjo?0E^KKUg2y7C+@!52l@vX$b`1u$49Cr!rIi+#@dDNBdsVJ2JM2@I zG=I_V{AI22Ylye+hl$s_RgDTw97-Hb98C&M3LOd@N*z!dB1E}V5mZ+ivWutizACN6&2?zf?`sQYT7GAJo741%SzrCi zz9xgxQr^Uqwc8iWT)RG-5E{$$&|+R<_XCc&GRS6da! z1vG`tduhBxeY?#AL6c2Bl?QAymOK+&zo55T&X6_t&Zi007miFgzQ&RHeYM2=C$8#*0H4T-M;WzRNm+KYddU>FSBH>@cFqpYFlOJe4Wo>ucrL= znec79t?-hWy6Z!lCd*YWJZ^1~epY*L)8xF$g@zWZpOh|Btx`InZL#)Q>br}=j`QBX z=uo&U6{E1;$lagiW|Q`w->(kd3Fm*d{`%q5Czl*A?fRS--)6IVU-Rn_`=EHO6Ulsf zUteTbO;GRg{^C5r>iE-$PxiaYryO>zm74ZLU`>C0{NsOJ{f9qEWyyV$h`N$+*Q@qP zpH+^x$q}pRM%QN58(fV#^=JRKgqihQj)}7nm!1x6f4JH4gy-7l93Y;jtDnm{r-UW| DlL8k# literal 0 Hc$@mVM4$L1>XgNJ`4;jiJmTwAr*{o4w^GEC@?T6l>a|rR`8qg zAwL7LpkcF7HdRTHAXl4(27C!Yk;?~3oozO-{>tGFXs*pxF@F4}F5LizIJb}BEL zVm3RfH|nevegaZw{URGElfV4BKriK^CzR$G9uY94Clw%@laz_%}(3L;FS36xKd1CXiPY+E+BH^lE?f~uAuVy4gm`59o-w}6YRUj2tYnUE3)I2xbo%v(E!sYeV*S`K;{80Er z!GwRtFKQ;}%5kQczhDq(YFDV?cZ{3Tu260x;8Fdk(czsGKg%ZHj|>VaLW}p+e)Lc% zwtl?vUy%N?yZ1M-Fm`Y-2?!n$7nI=mZ?5Z@abJ<+(T3@qNp3$B>eetb6#nI7DD>lE zP)u=|@OA#~?Q^FI+PhbHDW|$jSaR>L!tsut9~Ylrd3LitfuHH*C4HkujDZvEmFjjK zW;l8HRENUONJ&8zYi;GGnl(KflRCd1(entiXG(2M`D~mi=JEENhx9~2$4wiIlsx>x z+*nSY25KoS7jFR?waa)Cqq>LQ^QAfyM4m5Y5Xb{c9|uZTMgUFRzFR@eqYNZ>YtHmV z4n~&xKqFIuZrTI1CWt=-sP+(0t>s!hWY`mT*nm{ME>3fx#Y zb)c>~Ua85gvift7n1>m{#Emc~z1Hhs4dQ>kRAYk9Iqyh?ogmYKfNogwZUs>9Qbr>s z4s+$ECuQPCm`=XiGllh&DM+mkNNps@^U^@ihky)v1T<*UgE*e9elF{r5}E+z ClLLzY literal 1401 zc$}4#`%_a#9L1B6KnT(%8lb%h-jX1XW}q4{Jc{0Ez@%Cl0$9RS3P`7b0xgdsk3sLX zlpqt`GBDMGG}M5oP!MWU6wx}g1S^nHg1}H(AtOSSDu|3$Nq6B7aJn-)yZha<=W}*{ z*m7m$PDc*Lq0wlL3b{;0qtOBCY#UfHB>lDw2eEQ@OgJ2^|FapYCn_A+pOnW(Xq7VgNvm`SjAMwR->rKbqyjMK$5uAUx= zQ%Z-uz%`G-)30$dZt66#X6$B}9>!zPAYrIc3SLKBF}GaSK@+D-xL5jZ+(?ZDu;+E% zC)nBQ``%z;JU~ZmkvMt-v;RhKkX(P7C|p!~arB*O1bHA6Q{slwV+^0_TxhfbEic#D z@{JWCBs;mjgLuyqrRjg)hGUVznOc;~H%>RwS=q7QYm~%LMu3S|u~MD2S&op@#!Q8DBc)w&wvj5;57@JZ0}gjR=Fd)}w%U(eWDX?xBIT zG9IS!^2IbeKYBwWw!<_ZoJqyI!*yiPTmu=f|4Y_ncmDbwYgsYZsx?WQc{Jk%tJlxi zV^-|5i782)|H9bG&sm-|%;pFi;sxGd zylx~4pZYbS2<|_|M#W;vg0+0@DHh1LLQ>@&EQ##FNb!1gkKEEMe33Ul$k{SQ0&5978G?-yAe&WKdvWP$>U@!mQvo<3oO; zZE2YC>`?K}E7Q`fs>}OQEIHU5cWh~D+4g&W*_=pQ9kt#+>pw_J{?%}u&SUBLs_KmF z_Vg2+McZ~hk2>2Ryky$W^T{WH^tWw;Ug`a@bS-;2z%H%IUK3h=zL>JdC1^@gD`*|!J_uX6IFImu3!v6P6hwze;swq7d zj(#B*SZ6+y{KBH-@s{_OP(BOCYfcw|unVj^1N;@5bmqz(pRj;Ci2sUkhk~@$i>5m( ze47=-UvaujSUR!JP>@Be#4+y5GRFy`TQdcoIQ~si;?RE4bVU}(Te856w`tCbcpsLT z0gmENUh`J%QB<(bx~$;gm@CDy6DXGAXxqpUBn=cg(RRy(qiFFw2NuH@Iun-uWN~6z z**=?1dxjaTmaGIKpCz1+a0Y1cTxVHHTl)f%RU4K>dVcW3@suW)&N^|h~m7e5p}Q83}3 z@r#-Xx^kQ;<}Vlon%Wg=_#NY>v@4X`2zXRKYIJxf#m}FZ?C$+dEQ}o-Oag*O#04cd{+sJMX53fgc(h?UXOi0wg}OD&426IB7z+Kk7!*@n zCVZX0d;8pJg7)qeUdpL16PDcjt8l!d=f}n8SDxLhPvB=dc}d^s5o6#4d!@QvhZ#;D zKGmVHGg4Ae#adgrsb)NFgKQy zr-52Z%f(xOM(r}5#Hj9}_k5|&1d-=U83gix(#L_)l@UM_x9?UE^C$z!-I_Cfk%N(? zKG4WipqusptqI}}0jfO&RBL&cb)!Sjoavh!UcK8R!a8ZGrM_$96Q&dwfdV%cP93PL zj#p}OtE~PUB<5j;FmWTyNw4)fScCYVFV&c!bIvY+CUsnS3j3^P60gC+eba4!+V0?Q%ke5L~guy{+L8FS&i}`L1-;+OoHY?{{_d$~Z z9jwrOrGx=~b_^issmy=cx#y-*BMx~E3_lbwtjU-V-gUl41jO@n^>bP0l+XkKiE4|q diff --git a/resources/builtin/alphanumeric/Ld.png b/resources/builtin/alphanumeric/Ld.png new file mode 100644 index 0000000000000000000000000000000000000000..35e055729470396b73ce04d1461e0e20952e4254 GIT binary patch literal 216 zc%17D@N?(olHy`uVBq!ia0y~yV4MKLOw2%$zZdVt11Zh`pAc6D7-&v@c>qW;mjw9* zGpNnnP@N+M~n2m~E2@pwgDE`v8trvC)YU;I#hF)mHvg24IZ6@i7TFfwiYL zmY#iU{OTWmn=zy$dO3C+ha)vb3DLxTkomX6DlSSF_P%m$s)@8#hdke^!KOnT*3WiH zEmI!2|GdJDW7)xnf1EnFU2GilBsMm^3VeDY;V(p_+G8#7eN%<_=iO8%*iW{#&dlhS z8g5?y=}K?~Vr|baG9}C2?=}R{(Nujv_hQ4wi^aRYkv-nhRal3#O57C4{lJ%@7m(JO z{exVCn{Lk-V*^>RyNqvD58Uh+dNvhdtCf3bBejMAnbB`cV3`+X~Q^XFwWV4I=z% z-4ap1Zp|4ajicNdHLOZte)AazDa6gJ!0U9_}~7LGa>UCnfIap{?&D;L0P(5%L!qE|tbNVl22Af!RjZg6tFMq@^hnYlfZ) zhglN0P`bSAykSxCTDgQBdt_UId|9~5P`%}()t#$4FH+B*M*D8*8YW&Jny1zCHN5rj zR#9^!*#oSWVpTQGsnFw5t<=m|0V~g45#zg>?3~~mt)?*Mk#hx8x%?@j;qf7PjW0S7%EH$~PP&K_u!gbJI{j zN+L#=0w>9IBkR{;i7n`1-4;;eNf2`o%*JzlcX%AmD9F*EHYQLg|R#lqHm7x`vi_KcK0$VM%cdvw)bq`~U?mof(yl%)uJ$v}~gE+CN4NG9jRe zLp)efGYCWzpey1{##Cw@Y7wUX+3iQRt4wmJ90xZLq-y3TYfb|v2EN>P?e?V!SGwH1 zbKx;<_b5Dw+&k3ovQU9?(D*wGrYau-qY#lKt>O7u_er=hw5s@72L^oh0dn_f-p}+R z@b;Z$cVN3M7=>)HlFllVBIJocv-9t1)JZbv+Kj-BB|S>T+cOvCEN+D!jmg%a?wMun zdF*El)ARsPYWLv~rQ=GIpJ)@7 z`;5RNlOWXue8OLJRF^{SV{>C_jI>Vhk(a?E^R)7&OggU9E4P}q5^rk#SwO`LJPKF} z6eq$b^&+^^jS`x?4DT(mO|RvBb*mX3@l#7MDH2p`a@2E(e4Q;R^kBPYVUA31m`!!+ z0QRu$ohsKc<=NQx^HRO3E8V%*zgC(}DRP{;b#`LMIsgoQ9ru>xuyz1>;jJ%hJK^0c zriFbQSag5_e$hkso5vn~M__|Tumt@uFlZ>r?cv;J?1Cf;!h0 Tj#-vaZcCyfVuY8&Hp~77VDXTV literal 1652 zc$}3~X;4#F7)?S#9t2CmVp0%z;DRio$mUd_c`;xp`&LvGWD;O-0YMseLmtQ`$ipgF z?SNvO3RD#6xCNvjeFnu5DI3`deL#Fe>!dN%>C~DzI)EO=YBtKVSwM( zW!gsC1Oj217mpi6AP}*o32A`J)hK)sEDixaAs%2=|Icyt#1IN-jN~A{V1l~)S1bTN za5?)qo4$Me%!U_)T@(U=qVVD(A*n=Fn>`Ug+u`}2u5|eAb|U=yc&_TpZ!ku5a-ujH ziRb1LdK(B23aPqnnvR>R#@kEpPg@VfccuIome@SJn802UcDf-#L4b{+4cpuzWLjw3 zSQ$-V>Y2*?9X-QR{K?ZnW0J#y#pC`;&o%T##Yol~YRw0YP732jtn zXpqjHlIcO&(YDih?3-r3Y%5UU<**M$3>y`&wZlRUAR`cDcPm?o;s7VynqG^iZh?JD z8vMlpl;g&vsPyovB@L8)l62=IWHr6Eu-Tkmn;k^vJYpG>IZkC3fYk?su#EyrR5E9( z9SCJ7abR2j)*JNy9bQD_r=G(>zh5b>(V?OxkvEI!B|XTuZWj!U=z=x$&6TbrWMO(!hZs zix;{X2INgA#IGV30TTR3>mPxk-DdHJpK2OLj*zB;M*uM)V zmQ2`ePAMA|u(-%f#<36e^9tK99{5M$To=zuImK#!@yeN%0a&EVB+diWSzK0?zjRhEr_@x*4xeWsscgWaKVt<7 zTYt&d&-D?=bOa3L7R-=h00ah0>?@WcLr1U=&D4|(6QhR$eE>X7$XqqRnhnpO5cRiD zf_op2k%@<6mb~ahry#EscPcW4OmfRk!QD>=KOQLou$%k-M5~E%klgvvB6vZo2^Xs^ z92Z0F5$7*oniWHO^Jdd{T{YYpcH^F-l-6#!QAxFc;))N>r!W_Vnm{OXM#YaXqzvk( z%{*IDNmI`)&=UM#y=IfOobX}u{&N+s+Q;@3kK79L2o0pWm*wX#;GhA`_U^8u>r-L0 z!-)U*$(Qq)`;Zwf-g|Vs)CSUCyKv*J%8plW?-xFoZ%AI~?P4x23K3Ml5OlZtbEkE= z*az;mP=j3Rae0DB_<|MVnK$3{k|7CetUvjH`cAyGU8K7_$h zpKU((9aPvNukQ7$?4XvTB3Uu)g*khQ$jJD`3gtr>?I}{l-m>KRDM_y6PWABg73TwJ z_DJc%3sLvHrXM|Bo}85&OzoX$ar+7ezb>25qkbe`+fCE{VGXx{ZqCVt7#9Dq`CAJ8 ahd)}aeSuJ#*x@n_FJ)dHe%yM_ZuBp!z|OA# diff --git a/resources/builtin/alphanumeric/Md.png b/resources/builtin/alphanumeric/Md.png new file mode 100644 index 0000000000000000000000000000000000000000..8a4bea48df90e7a9a176bc757e3a833a320f9c9e GIT binary patch literal 1599 zc$}3~drVVj9PRDnQc8<0#n=bn6{-kfNVSL{gkC6E6p{BB8=KfF2vd0oC<;=F+B&MY zKF|hXh(v)^9YrLw@g#A*^d&Q zk7XTl4N7Ki^r^Y90f!?sM~TqHJ&@(MgDM_M7xlh$X|9c&s|k6wRf|oBIIN%TmRYCV z|NG8x(^yXM!5^mfZ-|OLuWS(k69PAol}bgq}m%X7 zjIR3pF~$b0jHw|iIkD3n)rdix6o)<3If}5V0;IejYxAb`>9!T2FHV9qx&}n})%s=P ze*K!0NE~53lb0n4K83`2uC$*_`Fz0QYvjKa5}Q8BPI7M8dg%xt0I;iC0;8eIM%?ts z;wwJP45T>u*WFnv?l0>jDudJ+AyL?DS5L|Ec3L>Ki9s9ax|<2(2gs&8gV^QJu`fSOF`~T#?|ro9&$7>uu&r0k3n6k&Zp?TjlEkA0Kj1pi`o0 z=s^hE%oS@*T*;89x7>W~*w}^{OKquj(Qa6I%FcN;HZqzb=RIM4R=5JbPEcM}wKTyj zvme@g#^j2zKLnzFF=EGm3JxsEr8}Dg=>!bTAgE=H4BJ89+k0 zWhWiNb3BZrvnldArTA{ROE#SzD@+pDWT@v!{TTD05cR8DG9NHjrYASoqeOCMB?3Hg ztcY$Hm$5{0OyAi0_B%Aywk#=baW)WBP#B=Vr8A>)ka<|6osLbEUH!+1K_&z=afth? zY6pR60(3>P$&^a1N3EjNKYRShcA6vy%{b^lkg7$HtUUpo82Dn()mxV)TSiG zJ)`g-a`!+#cd-KHpz*gCO=%tiqY$w)t?}7uw@J7uw7T?ZCkA}>26FSY?`C=tc>9jZ z+pyghj6$}~kxnabZ+N;lrMuap*ZiX5kIo1Ms72Y|t^;@*%P)(#-gy$r?eN4YBs5$w_z)nlpkRW+0f)Jt-ZL;TKlXHS45?szd&kl5v6n>a#Z?myg)zPS zt1oP|ESKlX?7e~7MiXz{IcORE!%gq*eO3ly!4L5j?fa`Nwr%P@e%QDFX}gTqw0~bM zdsG_~{zqpEtDO3DljY>6N+A_*dDhNNUp6ZQUeofJwmsc(lTYXboyU0P{NXH($aZA(@Y#U z?TKSKS!ByOX=#6x1RH13;awb)p1zJ0IIQ6KPL_=`NkYXVaz4w)585a80)=>*Su|?} zj~Hm!cO*_wxZUOm(i3z|tD`%>F>j_DNPcIzgbGOV=`FCX@9khUn^Ga7see>Y*xkC; z9`E?=)|Q=L$M?+b|1gW2OBR-zwo0d1u|(d+fMAouBKa87vJ{ zZO8Mxe+9@CTUTD7ORkHV@(3-FX$J{imI1N96kjp$nDFVhK&haXhh)^1^^aI*zM5bH zlsOX#^!$|V%Ry>qmoI*;bi(eM6j0TPE2qrlLnp+Z;lB-ZX^QP1u1)>(fJUX9k^=fH z?%9g?qufEiHs)-e$7;y)>!$+H$t^&;e;zZ)5J?fwzIJ%M!c)_1pqp<2Eq;4=ftJTL zgA5z)P2KmGuLTC!A-Otzp#ND}40*V?A1Q@Q_*ADk`-`i<;RUkbV7YJLAt1icnxzov z-kWwjLcpL^=tv9*1BL&#_?CTfES%LpY=P16Y} zj7LZ%2kK*;_w0_FctR&!0S4<&p!ynMB!ZJ6(3s0Q9&dn3{s7a4%^xnH$zV?b1J4j> zz<(F_2`fR#>x3@ESP+v}e={(#27=Yaws1}Q|3Mp^XljL2PG<`r0U9O^c8d;3bo&>z zj`z-vc{5fk=sCUTd-O0Il)inAt9e9BoD6hy_WCB5m-GAmr+>;NHYa|N?=h9rJYkp% QDhn7qUHx3vIVCg!0AGIBDF6Tf literal 1300 zc%17D@N?(olHy`uVBq!ia0y~yV4MKL9LzwG?TN?!0V(4EpAc6d{hvgzed?nopfgh@zll)zyI)n6^TqLuFRZh)lN{L+Gl=AaMlg)#T+(x(5Jf_rgPD+hqJy~SW zJ!$D&mQJHx3X$K;9XH+CrNDoqy{Ts>r_fW7E`6Y`I&qcLg+eN)Ud&bq{HEtI?RMw{ zo$uWWk=N8t@K={_xNIfVlDLH@>_D>rgTM2IoRrx63)2q%^ODtk^!(YEHs0OMGIxHh zQsQAM%9UVokziS}OR&R$qr>3E_l7IKI8HJs&))<@*cgAVf3^BFSM#6Sx8E~>P@4%ae>X3D+yAdjUfIEJU;Q5c$ixY|*PK@bnzSh=5aihZ(xO1c&hj8K zuZyd>LFYC^yIz)(h{xXE#MO`1O1)nMwErr9p!j}=X?j4tLCc?SFgUU5W9=0ejR~`s zuL%9B)afQgl3%l5rcy?_MeViO2k#e;nS%O7H zho_2hk|>)jo5G<5znNAZwgZ`4Tn!4b5@rEVSOr*j7-+~J0a~$?KT4E;i7n4BiAIj* zcicExXT7vfOAZ*T?2c=?*e}(5v<8_d*Ldeq z%zmvpW+4GKS@nLM#0&mSGdNg-+P?ukn;@};d6KCh&=;TTcGy;@a5ghJOj37Roy97& zMe83c(CrK=)uDeFR9-$RzdIM`@P7rr_VcCOY}@(p`d*1;t&R>%KwmHlFLW>pKgtY> zW|o*gOr3T1EI`{BJ!f;U3Vl1qr((~;BqR+<1}rU(4x7S`GJD30@~bHDFio--7dTb374W+XajVrcEUdNkA)4 z0*yIxRDVLMG%$o3On_;yGftErmBg@8UD9E+s86z-Qq68qR_m!H$MPMob zIz$TScr~ZS5PJqeHpWc;W{?>v!0?@Rp3!5PhdD#1)$&p%p>J2D8dExD=I>geUs8DP x>VIQ6?H diff --git a/resources/builtin/alphanumeric/Nd.png b/resources/builtin/alphanumeric/Nd.png new file mode 100644 index 0000000000000000000000000000000000000000..84487725b925042b3d9cc822dc78faad08d0b855 GIT binary patch literal 1149 zc%17D@N?(olHy`uVBq!ia0y~yV4MKL9LzwG?TN?!0V(4EpAc6D(!pX@x066huq4PY zm_co3Tb7k?t?UE?t_0^W;o|?lZeW7(@Azes zM>x3s(^&&GS9R5BTRxw7{e9=U->W~&XCvDBtu>RQ{y%$eHQjcP-RVh((|^jfPg?rj z=*r4J^?RpS6z4X%RMwa}ZmOBfa`I9?kn?4;Lf|tkk7>VmD?}ax(vKr2X!I{vh}M2|YEO%lh$y_KBuyVU^R@11IQw)$y3( z4rG5-@|bqpbArxajgG_#3f#}y6(axb;ZBlJIdKihZ*y##^3zv04GE6}(%kKMba*f>A^wou`1X33N{effW(!qPkZfk5r2o_j|wHFx}GcxBV6 zub~s_@2;F;v`sNf;z|F*FFim_LC=D(0BtJD1}jeN016rTf!JR5?m)vd_s1>Lb7IwW z?*0|BMpCbhhFUaQuh08af4CCPiixqay*eqAas(Jk?*vpfeS$LXP zDMTJ#0F0E_KUS_lr$qk$P%U`GKtrb^F~C6pXx)_ar}^f0i61e@Q0xE)Z*(&->{R|M zg-qB~2MVKr2%tR;pm1Nak7I8f3upBYTVS|vsTTlRvMs(P3>YlwK$9h_K|x@&Rvr{9 zQ$&xrWy`H)|zASWil^?d6{Ib>)xy zO)0fnbz&;n5?h2Fk6CdDrLJm9*}0!n$c9Hq<$w*4|E4KrW*x_*R6EW|z*s2)#wg2= z6+kueEGIwx1g4&aT$8MTYU_c{|KHv;B^sEh5(QLFS#Szj1BHQJ10|oHQUT=DQ7o!* z>IRD;k5J0V8X*<$d~hOpkPKwnbAZBl(n8KhzzAc#96Uki^K6C4b-p0~i}l1#(77B5 zVov*_2C_|O#wrCpCv$dS(gr2BW6r`VYfgAh(0IHy+;P#D_1Cxau8t=*FaF@>P*zxw Sx@=hii0A3*=d#Wzp$Py1ilpfP literal 0 Hc$@$F0MtBj7yX@o*%syq2~*mc?c(NEE`x%M9}R1#T?I~o ztR}|@Y!^{*RRkW6$nMot73`sknMD;wbXKwQvOc$_pNJ2qSuSs20u@rxjcH&;P;htv zM9?}&WQ=cG>&$8QG7uPH(!xxnZ=%wTg&UcO{41COkfy7lh6&v{OJUkp3YHjk9Eh#! zGt!=L`);B?%jF_d)IdQ}?=EG@DRy6nml*P{u=;|N=2XZ9dpMF&b!N>Axy?{xam;~a zeUgRU3+FmDv%WeC`-(10p=a#IQ%ndpG-|EmGA#-&;IaZh!oBCuPBFI#yFS;14>ss8 z!6fMuEA}tVNInmaf6wxj&FdXPy$w>a=^x^~KU${f3T|jwb3RVp(%?M4M9DQJ#OP5X z4dKjT60y1LMGr=^vK2mGTaxflOD(#$vr%~QDL}2WKg!voa8@N={{b0kS8!Oi%R_5v z%WY}g-)nR<=dlI|)WfLQJ^g&d)_x?paw(RkSDfZBdiEMG zrE~ku)!2g^Wd~fzOBaLP?Y&;?QJXcQBI8IIqt~6Oncr z+ZF0r?5a=mU2ir$#}!&+DBZ%L7c-6~0c@i3q4PnGoRgd8Y_1DkBYrEqvj#GrLmLaDEMeoBm<_8+4v%(!QNAn3j)GHU zAzFd>3=pF|+Cq*;I=yr5-G6G86g>|A(){}5n!t&YFSoF`( iMMxF0B%t}Ph3~T?PUB+h)WH3>eomfPUre1_1pQyYJLkRt literal 1884 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 Dso%_F diff --git a/resources/builtin/alphanumeric/Pd.png b/resources/builtin/alphanumeric/Pd.png new file mode 100644 index 0000000000000000000000000000000000000000..632694600dfced1ef8c30588ea661a0333abe9c0 GIT binary patch literal 1026 zc%17D@N?(olHy`uVBq!ia0y~yV4MKL9LzwG?TN?!0V(4EpAc6D(!pX@x066huq4PY zm_co3Td}XRY*=l=1S>9KgRDQcSLZP>Fz0%@IEGX(zP%ebX|b6|+r@5%$ggV z&RgE@wRGnHhjVmmSa&t3iW6<^0pqrB^%Bc7XFb2Z;fgcM&iT*&N@=wz{EymxJ;;*f z<+r!RA$*RzzLtgoNz<2Bf=h01Us}X*$#?!KMGtc|Rlz0F>p?8tsm>GL)rJT;-m(Cx zFLxDOvNjzk`__A+@RHvm_gMm61iY)GCYXtvH|@w~1#%}Gc^N*zOwKiEf|+Qb-YRd2f3D@~dTE6DI6R-gz(k!W(Um@|t~3YPycQ9-CIR3W+R{URHL$PQ+en z$!@pl9w8H~?!8^N_s2_xyBpkjqnfVl+*W<YcFa0o zB_x<~I_fIx&YGpCxQe#e-|jlzbS2}=DXvdbzkYI=aP!V=(I-MG+9xK6x=dL5_hx{N z*b){&7Xe3>$_53Fq&Ht3k2ELRIR;hi)HpHi>#x`eC)ro6QLuZM#wxj~?uo*QIa@yl zPcVJu7(2oE_3|Z6dp4E5;V_cgw5W+EvfYxyXsh%&rOf_^5jLVJJ-05ZowzgUTMd`d zk@+*8t`T<5|Ci|yKCvY3T7-?@lZeTF2SrjMqs2dkXq-sTk3BX??}X*nXH1=(MQ5tB z^(IVFNI(CO$&<4vcWrT_3XA2s-2AzVfBdhSP&{M%)%gLoqACB5eL4Lu|5lws$A1># zC&4PLH@lW7ybk=M*1_sBp;mKJ6VK87CW#F!H<_zAlKy(|8o7NHNU`l&pzvNv<3ydP zqvO6lCG`^(K*qDhCpb6Fb#<65_^R8Q=Sb@iI?)mB8(@mnTP zz2b>2XRk;8Ijivd%jxSj``Z>Sy3yC5(4=renZ;4SQNTrjMUcf26rNxjBIHQ16tNlO Yf&4zopr04oM^PXGV_ literal 0 Hc$@pDk_a-H+9e{|JQG9{ONEHBOjM}Xu?}r$F|S}Mhu z*2HLIt6fx4(;?K;qf;8R#GYE7w%Qo|2j-l2&-uz{sF3Cg=x589nzCRn=0T6&(n@K>}8&2u%x) zr@AMW I|W%BRx<`iS%PK<=JmJoe;C$q)T>tk_#=qe?L?Z5KO>VOML;Me5igYVMG z+D~j8FJ-8uI?UWt*B1VvqipwnlZ4(fkI|PJ!HpD?<@SwL; z+LYTm{bw>6M;8=c^X1RdbDwJoW%x%^5{I=b^S*rcReLvF@BQ7 zt%rqA?d?GR_3EV)Goo{Rr7H!qa2UR|nR$Tr2vG&ww71*oD~`lXR{9xclf9+Gci*}|(^-r#()#XE43#QoEE&l5qHgDyxo^Ivlp;KePjTCIS zX${|ZVwZN2llbxx={aru%Ezatu1Y%%iv*vLgOby1j(_z-mY|t@u$uOSA3JE-JEWON zAqO3#ftxl%68N(cyVao>dS?*?;%FTE)^+P{yw0Cy72w+Vs(GlTQOzaO^U%%P>zJ9g z_d{rYXhe`h!B%~%wDCt$9v;I_VdEh*)G<9D#<8g6%}4D%2-MhmM6&K7ud#(k(!Kv&c`+SCAoxzl^Es)W7e`Y z91OhNmrXbw+6qhfT$)FCRobHkWD&q1c_%msm~j+;5!mdADqctK7h9-KTb=)!e)2K_ zj#I1yd^Ktj&zV|8t>8|!O{+B-i?a-3T%_*b*KWyMr7g5Zm_>xGoU#S5Rxukk+` zH2nsqDnL7vs0#jurjx)5mhyd8^bUTLJ)QV49C0pwFUkZ#_v&8jsC>_ZdG*fh%@$&W z3i}zdOu^XCmKXJ|x)$NNF-TehXE%e?d@ACWbzDn&|Grh6=G78sT?D#*3%Phx)rF`U zTsMV226QngSKeUB824$m`x6z@*2wdvSKQU2J*|2UqN z5@?0z>je3W(f@0l@GwoD*Q%R1rgD%gvG<^GQ)!M*MUw^6WEoB5`hguAeLI9hzp%bb8NRmlS z!EADQW(tAnGebcXcbjuTwr*4E{NGaD3!!#CJQHXV8ArW~gd*jUUEmL<$|USAU`i-Vx51X z(YnxuW8H`d4H^y##pa*_zjGbn_aFk@b5Qo*INPB#`;A5)YtMVXLFS-5*_Dw3vjuQg zBF)6(ey)r5oNg`~a(jJ!ua11{ ma%BDQ`f1LJ-RQXZH9 literal 2033 zc$}40dpy$%A0EqH*^oJ?X3Zs+gi#b`esT*Vu}DT%YBaLFiAAni5;~L1q0NbE+T6y_ zq1;Nj6w~B&FXet4t)>$l=l#6@y??x)^L#$v&+~l0pXdAU^U$y!PCMl_+n4&_ms{Ipjy>VyxXnNRA?kBKCT+h#$=)6(L1_F9EIg9g()V*UyJ`}0 z$X_d86$Fww;{w?G#7Hc*CT=@HH<+6&7)uiLe{p{0Y@gxbV11CnA!(%IVnSW<#&WIs zQeJ8NwEU5u@>il2Wj}N>dOQc4jizNhSC^Vj2d2~Pv`x>~tHS>=ypUNpyh1`{*z8HXa>Db;IR`BGc`Eyh1TJ+# z$Kt!vYR<#~KS`bTsWQ}enRl;NW@cfB+B7;`?Gn%FbU?6~?3)gIIaRs=WsRqU1HH=% zIP5#9LO*_O8Rh<58D%+kvE$w@^+KoVxKi~Z?sUDN(O7K} zqEtgY{qG{-mjYgc{(BW6N~ZmNY16`-CMlU&S?8eg49~s)m3UAnrD+Kda^vy6Y+<&> z17b^C7tEhqdYWpeQ9JDl{xw^C@K4+ys-2n$7gVkP!H%e$iK^S9+#BIrC2@__w~bcf zQ`&`5-WPpNjmHl}xD92VDX0qV?{f+`6uf!&*cb_V!e7sjjm`>_%N=Ajh6o0lO^1|i z<3eFoHl>f}Wi3u5Fp2a{nYP7+SgWF&6~O4|BcAV=mH}m2;-l()x|9Y@ARcL6g~ks{ z+%50I?C-HgcNp3{`||6qY{!LZ{kK-=nqja6%Y1z9Z29=EFV<7KWBRra4xrMQjdY>e zm`m<^8~4hlpi=0O&s=f=XU(`vZ;nu-_P{G)9x~%UnEahVoVM=HodN?wh@ANn-%W;F z-b0QqS}Iw_Jtoy-Ah~;U;dhM%dtbWuEk)4Kxuo%mKo=9K&pM=I z3xBQoEQ)V^bd3FAB9cEM6)IgB>qa7uo5ct;y;7(d%gdVT#~_sp-%6G(n(_p7v)Yhk zG+C6UI8P2FTo;I7`yoGGbiyG!l1?cVt4L9_Z#nNsLPKOF?cuUJ65$XIBt8B=V)5N> z2NQ+FNt5I7Bc=d6Kc{^tak4^XG%pn$ITPX;Nm|iqm>ix>1Oiv0TGq9pp4bC7E-2=< zoNW01!Af-bFd`r*;WE=hBr2v8s>)#`FyDl6RuHu@nR%sjA@fSi%Yjn_R9M_t>ZDK2kpptRs9KdyFRE3_&Xu0TT`kFtvGWA4HZgp932+iBC3Cl*>8U%FQO)M;hTC%N z7#F`PcCbz4A)5{<9G+Bh86S6x2S~m>hE6wHa7C_;f>ZR%U6E&g5@Roj;ZO9l z0I)nYdjK2MtgeCGZL9ASi#b~4#MI_ceb&g&9mQ}K>ftM=*O;r_)FDjrTHDPCQUBb0 zORKRiM@E`9HC4)QKrkRSW9_QbL=`my4$N=Pdf&!vv_pVcwNZ-o7n1MG zQSYEM0zYw+N}|I*agBCX$}@a@J)P=|sQyej)H4Jp^Q(E|sub-Zexp#CJ)!dBsa%k^ zL2s*&pga~bt0EZE+AzC_%4qqPtzI0RvGE(_VCSpDrl_n;5f_zHxSdN@p*rr_&TtIk z6_`e@j)z0txboW)pRlFV-9%cppDKGeR~8Te(N*lhD^r?&E@5*%-AkC5>R5C>W& zW#u#3G)ap4w&A%hCBisVIoHCAd9Y+vs>TX=Ug5>XRIv}t8q$*<&EUNG1U z=?AX4S`4PK5xI z0a~rd%AqvaNF2hs19Hs3koY?qjpz!0I{r{mG_ETThc@l8@b>HjB#=q4{-cs8uZJ~= zoC@Az7_o#V38j6hB{&5rxT}UG0pyEa!~T7An>A_PHz3;DJYm7U;(t35uiInT`|hdp QSK8m3i=zinfx##J1#qarVE_OC diff --git a/resources/builtin/alphanumeric/Qd.png b/resources/builtin/alphanumeric/Qd.png new file mode 100644 index 0000000000000000000000000000000000000000..ee7b343136f25c5f9d2ce6713236a50d836c71a5 GIT binary patch literal 1750 zc$}4$`8OMg7RQ4iQXL^8R7nJRncBBlnrA|yi8VyjGEt$XV;$PiVrYqqeQX(CS}Mge zt%)&>t#(nhO@~mUN2k=%YV1lpZM8A_56ql*&-tG3`F`#__t$T(w-@Oo_!Jlb0GxCs z6R7}zOz~%d*u=#cc-th_yFE`a}kYUR(39-C?c)yo&4gC=+~m~3uwl(_>q4SK%Y zUoIN}P;hc3I?SU#^@3YW^h&7D_>i90nC&RRkB<(_6QL~o48`B_yd+VB3EYg7kZN`ky3pBQ|b zPF8`ADq(w$E@p&6H30@}r+I`{A>6*kOXtn+Jc z=}uEl>&)-TWIMW`@VYO5j-K-rDwN_LPK)i=uP*uyipB;;33szDSZ&dsQzL?h?^~NX zvV%@&bkBvES`VcdUpF%n3#XJ~?Me$+^N8UB@*pq0Tm9)^v+<7_;mJ3RBsO1$4NLE% z%5H?2+))hh2&lGOIa*UYf#$DM;B9%X>s-6UP6w-4t)Sel=$9|5$-FG6{HfD^}WCV0Rs?jdV!6&T7FfZz} z-k2jHz$<-hyhCU!BH>eMF8)Pn4;0A4LqM`lNDwgNc>OtG*%4K|j-1a}s6ty?{1^T7 z6+F^Tp$_oHm`OZmdKt57ce-unWRw0vmQD;|$L;IdZCSIlrPc^z!OkLp(y;LKl=dg0 zJfhmCKC1FGb_@S5o!g*Bb%muaZTFMR6NAmm$gos&o5=WGu>fPH_u;FJLQ3KC#gFCJ z`5$zeeuhxx;hjlTd4FBQDPRRl={_rZ54V*!llUMU5#x)E7b{2B;vg`boQZdU7~e|iRwg;n#thX zk3@w%Pzz_|$)10oVSM{Jm3!;YHX)v`zWYI=nc3GPIvX=Ehia?`9psny^5u0Ik@mTy zcb1ov%n>cTOw!1?5Qb6Fy_OnkGWiMflF=oL76W~pzFOBF&m(^f=SHu!=-9NKFkr@x>LBRG{;fVRKZTNh26KCaYE~8+jd1M z%i|_dg4ZSH!rlToCE1o*$;grixMI+5e^9i(h(kt;=b9mv2mtrEhVE7=Vv0ZA5qQ4EQd#-fKBS~$y9$d z$)KiSF1b821<&-ErJ#ztjkzF8*J&00*Oa2p?<0X&IpN4<-Nqh--ukoSg4B&>w- zYOPHpVEu)z?9qSO3v>a(nF#%+ChUfVgeLtdt&10m1gB$?p1cZ)g>fRyxDR%m51mTP z^Dj1<7ZNz;ji}I|;h<1#HYV`A%K*Oz73h|YvHjB72BX%mH}*(<(fbuT8{?5z87VMY zf@CGq4BYSM5Y*>2bMi3GI@sArScj{sL)n}jIInW_IotEc5K3f2U@hI0LcZ!dCg$?THe{!>@}9I{rIt(EB;ah2>{|;@xjb z>L=b-9IQw zq^Ly9)A80u5lhFsXhG2>d%IRByp639P+8HT(8cj6rJwuKGbODPTg5#cqvBmyGn0X8 zbdRbxNksj0+_m4Z@AU=y-*2=%YBS~^f0z|tI``;%mX*=l<<5Owps@XE?N4v z?+LSRrN24q?08Q5)%F<2tkYI5EGrk*=4i-q8>R2<bf?n_(wWsep+{#wzgdP4h^{4JK7>sQRx0rJn5JKocM=^>udyX%0@1jAQd_Kx>F z<%I;F$V8pCbYywCZo%&#tT&gJovvU9imjh>UYTRl`tUQ$53*QpUs-!EWWVQxr>0xi zTb%nP+cf9yx3AUr*Du}YKjGo}SpFJu#|iNZ+VyL>Cf#?Q@JFs`k5;EbG^^l~D6I~K z!;y|Gl0a{}hXd*JrxZ_Y2xo8Wje>E6kc7&EFOudrX@VOj-T46Da@CR%C>c$aGr1NI-uI=U)R5E zx-!dj3yWoc!$MV$0~dr;3Ntt-*>7Q4xo+!{Y7f?xrmtt|IG$TGTc35MWp)Nvj#H4yKl`AUedPatfk{O z?S#AG6Yc;l`x@!&Jz=RU$c1O5qMAbHm#%D3@baUbLC-5#bI)-W&A$J)|9UMWk>$XH_+^_qwZcECEd=pAUHx3vIVCg!0EuQM%m4rY literal 1410 zc$}3~e^k;}6er|s45V-&S($rtu*yKwm4%t|HQc_WQzG*qE{`~DIa``(#?p%KG=EL{ z9x7{PnI&_S{SalE{iMvGvKG#@EU6sm$uv4PqVCj99N%+V&bE4?fjq8yt^00!#s1uu`3A9UoLJF z@#kgHpMg^;4-a8Iowwx#0%=Gnfa5n!80@+NL(Az=hQ+VbIL@_-mPW(3%XeQ&H$_Y! z{JXS%&^ftdk*YJF0-{!V{|SU6kz0mIG<<8Wd)nNSHA_ zKF7JgW2BPDYPeO?VDGWr`Y_iTwP8&u3k ztyOLg>s_+C`^^@VC>+{|GrDf3Dy=!hB1m02ReiAkBV@*SU8J&h(-fJ~nzcp+=|(@k zMEs#eFkC?vpFP&d4^DQ@V?QVX%@=5iU?rW2v_@zppcrtl&v9e@NFg4v+DI$~TfJaX zBIGHc!z4ur>H!nLc`els$%|J(y-qsQ_%ww{t^G6Z05rTFCQ_}#=P)QZf55ga=6v7i?iO;TS!BUt-zu5s+^!pckm=B4+SVwbwBg_u&R2{3M#qH~d` zMnS)c ztUGy9`+a4;hGw}@Mt z-bD2!6ngJyE{6JKDZcJ~vJraW7#d)l=0<$Xb|>iug8;VJofN#xgKS+F;#?B)pzz5!{Q&yGRhU+Ed7}!1pHZT z2RK+hhs#6~qRSy&UNjX-O~1|OaHktBZ|cg4rmGq<2diJ#-bTDTQy^2y8=E8`(Z$y{ zEdtLqxou%I^_5lEC7{cBnnRB+cUQ~O8~A0KD@4;b_@+Cn(i2kmPP)dy?#JGA*;CRO zC7LKVQyPv+o0~*HktF3{KB`e2e_sYe0u-AIKcu#q4=W|od4K2YGN&pBdrUkA5`OU9 zHKJ+2>VxAbj?Z`Dsp$s3E)h?`apfPl?jnZ7C4BW3r@Ftp4w8E$hKW4gvvb32ETpPx zsj^lg<@^(mlOj`1H95wmz}@cKwGrMb zCC!t2{%OzM-0HuI&3~t6ojB31~PrUn0N&Upz ziv0A6!cWZhfH-UG=eqh$xV>AusOe7M+7p~byN_+=;3`tr1o3wQ`O@E%G(C35ffSX9 zc{<+OC}QcD7cD5dWN+6Bg}1Ra0xByy6uLMbrSx-OdZwgxVyn2PV^q8gYi2S~jqXwP zCW)w@j=T07_PxGf|ND)$M{UOZ;}5gqOXnVa&$2RlyWF|23lz3Lt=+1>qw79Tk@fM@ znv+DH_&sve);N(Xzo(mpb!YF}$=9ly6t-Gk+uU@eXsiFrF88J@b4)k0tkivN={;fA zt@JlXogL3(*<8d0y{Ix>=skRFFnLldUqZ0nPB*;%ii&xr@WBh z6Pc*fmX0hh*Dd({gZ1X}veOmpK(Y06&MR|lS|5I9`9T)T?JH~Vh3xm7@YHncdW&WSLA!n}*QEQ-6aL6G?a}H~h-MXh5~bCla5&PD zMH1+3_i!M6{*>a04dD!qLd&Nr91pW(k!&jBDB3%{3n)5ws?&tmTY+*(^GkZyWUtoY z`&#ZQxa4cPt;2){r6v{ejT+^xq8q)c&b?nSId;NrJJz=|If`y?GLvTcnKNOEaE7xsZQtiRI()9H#9mjKPX6v)Aw9L-n3 ze9e{$jQp%(zX`LL^|p$sRAg{&N(b8cYAVpom5K>Kb=E*ec=xS2!b{rLoV9fPrk!v% ze8L@|WnUwmy(cVn1-bByR8&*Q{L+;T3f|tg=X~D!Vg*p;D*lM?qAKM;JF~A{5PD*> zsBN0U)zsMgDjsWfK{kHw02#Wg!M~DQ$Y2Xgr%Y7S6Mmp!r+|jd3BU4ej)LiSkU3fp z%HkcFfSMVB_Wc1`{O^L$k~pvtQk%@41CvGrP*o66!B3z9Rgfp6ffg>=wg#xSG*Ud3 sE9iLzYwkJDqS^QV_Fu1MB(fZM5Wj3wr&jnUwS^#_r>mdKI;Vst08DlAZU6uP literal 0 Hc$@x7o6Lx~QQbn4wCg4E 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 TO)ryZvhB?c>*ZAI5JCSN@OpU$ literal 0 Hc$@YlW2-HXw?%h;-eA-AZPnK9VuNenR6|wLZ?u17p17p{al=*@p+`Rs z+8mp0aP=GCccFZT$}Q%S%YNkbI9JcE z)?%NJtUblnCu5qXzkO?CT5)sl+!tbdvS!|{e5P7)b*)*~Wt%#g?JAOz1$M9)e zWrLc`Wfz>O?M$EcJMyyC*1rcg?0=r}Np5|z<&XD24uw9Jxqm+G$-X0oshiJP{bxyi z5f?3BbDcfjfH(dR>+)hX!Bf9dwp1;%e`(Ww>FeKpM^3kWi;3xu-Rf-AoEoOrA5&eb z_WEARvzW$!V%9^-;R;`v1UZ-lPyAa5$v$uS+9G~f6x{k1@Ms%hbQ zoysTnW)qJKaGp?p&9i8FW^Z=n`?Q-&jL*)D(%Y2&>b-lU@z%Ggw~S1;J)5?2yS(?= zE6y_u&s}lvbD!+4lPSol)7vy(8YE|$u|5j^Xrut(~q3kXHZO27wuGnq4zbf{F;o}ScR`?xspAx!!vd^hy znfd>0R3<6%cdBeyR%P9?uJ*LZk}AG6Y&+$qym@4lv-W4ViqTf(X*;H+3vSZcvSO{| zW~0pGE=Co-#nH>m-;jdd7qUXkr97*uW!e3*Bx7xzj+*032O35 zz9zLK>W7}=vi-nNJ7To`d7DspQaJ0BGs-t7O%Ihj`Q@$tndA?gcQ5?&iETQs@%K($ z{*C7In%md@jS@Y6TzC6czO`G|+I>^K$4O*H{b9ak|7CBv8}hjzo~Nsy%Q~loCIEl^ BGDiRa literal 0 Hc$@;&P2TC2iG?B5v}n16Y?IEGX(zP-!7>y?EN+l5Jnn+opzPg5`T zvniH0yL$P#PUC;)jWJxr+WA0!b;zR;7aLsrrW&e}exv;x^TZ|nj~lkS2tE37(B{}| zgR9^8z6<3$RBkbsT=pZc$GLiTCI6;BwsjwBI}Lc(KJ{#g{_WW1qVfIOCzV56wif$* zWbG-oJ{i+A{q0*D(~6sW=e`izlQr{pf zF1z4NZD;zl-;tNCw*Ec1VgK`#Pjc&%Eq}cKaVYe$%>DCePxc)#Ox=9W>OV{Bi@0b3 zo9pcH2E6fqSeF;837-0uvZZR7{Y#tfOJD!)J94`1TTD!M>{e%^=F~8~{+Q}gwb%Dj zp2ai<6tf;u4p;cXB*?)ec;Y{M+0Vv8r9} zUz+GKGc1_}Sf#bqcKea3J2X{%Q)k^SPLAo=r1{2o>8}O4Q%wuc>r_6m zH=B4|fb)d%Yo0~ZGkdcm->2PNVtjUHl-{QFSMS{;jkmr{y=7#&?b)=I+vUB_UU8mT zcu?TpGU?hV_Lvp9vGUS#k5G-J2Nkv|)C3t5kq zolw?uoEf}#v7c$o(oNFqf;631eZTzjwmENbOxwcR(_xQ{e9qk}e))8wcj@?84Ud4gwtx|K_nAy40sx$os79h>ZBddwn~OyYASk{LSO2N>Gze@-?X? zQ9tw?m+c3J+7YAe&)bB;lfqf2oKe0xX?m#K$uDp9&m@1~ynErFPi)h9jlXy5@^3Vs y*WAALZJRfR`!9RT-H^`(@jPAqT-G@yGywoKcm37? literal 0 Hc$@g7 z1}tEXo*v(1TV*9|U{V`ztl`BL-rO${wT6MN?^Up>A`5)#>>v$rU~@b(x6RcDho!w1xyCqA30qv)*CQ$H|%B;XT)aU z96de0$+pT$*ubPV-dMwnExfs3B5Dl-UEixQ^E|IF&jSnmC3pA+O${(5t|nwOPk*q3{#^ zuj#BOH_cY4&$ZC>kQXrba?z8~wh>&#}gd{?k`laAg>%jb%lQUb-NhooPu zy7j+t`oqBMYb;N1+p$FR^sV4?U$pdA+CQ!T`tI8AQy*TOvv4Zv$bPjcr{}xWrkvjH zD8CA+Z7(N%UHYnJ=2nZ#`>#EJXq@e_`(FN&hu_y|NmPcz1+7yT?k&{Is54QyG8x4P6(^q<}iLe;qIk9@BYZ0 zU6WiU={+mLHCfJVOWw?RFH>XR868{QX8QfbqesimIII1>^F%K+=FXmHdT0Oi9X^#G zoEj|`m~y&g$$R4`ey9KZl(S^>es|@J{QE%n3(w=u3Y?$u`p)Wpj#qcG_a1$GOs`gf zU$S`r??12h-eM2h_Ovecf5aQL@6k=4lz;iZQv4>ht>%cppYW;tH;+v(nj-(Qwo#|!T(=1S9aZfl>K+_gdH26J)P&jVs%}I{jA?vk((EkEHWDxy3_%_q*FQTh-7s1=FW~3T z$L*5Y^N;giUiY&uTiPaj-L>-PE1vzZRJqyq!%!viebJtyHl;szo!d~g`1Yjrk$DHB z&jwFEpS4V}Vt-=Pr^2mL^GkML-x*)L|Lno#UoVGEkIo5|mq~xIJZt5DnPuyyXT3W9 kz$W>BycUsp?a$f2!klw!67r{S)dBH6UHx3vIVCg!06Wq6k^lez literal 1219 zc%17D@N?(olHy`uVBq!ia0y~yV4MKL9LzwG?TN?!0V(4EpAc6d{hvgzed?nopf_@sh!n}Y3x`_HZiiz%c#{CX7Bz+kySbME94+gY2Y@)Z49H}e{=%!waWr}&<1 zUu(VN+t(?JRjW_R9hW~mz4o_5^R(7R1{*$w4#6G&Q~$^9*IK9A|HSryn6uiAl!m1X zn=&i~J!>Ckif^7XEq49!)vUV56E}ND)^ZnLo-~(l{j@1QU(f7Sid$Q-e$nGejSrsg z2)}CRq_*eIlE)q$xtsn8g|w7EisRHbFJ2#cbkm87old+nRn0E{?q}WHbmZ2DD(UZ^ zxaypbz7BnNb)LO;%E8y7c6Qgq->FJCRPSt2N3gc&0V5xCS1)_V`RUV}rQ4=d_!QhYo@?V`bZpDV1!2Z@%XE6#LwU5g__Mvc ze$1OO?bu;8p6qAt*B;D0{D0?@?Z^B*4(>3Ux4^eP+s5(efkgqcIh~6`+?0+zTj_o9 zg;`dR;hr5q{S3`ISCU#816r)s2<|ubyUBL?Oo#*5zqGW}uLhepRn3TuwCxeLOF#Q# zlIEi9{n?*RrMGnC8x{ta{XG?O&rfFG`6bkEn8#n2 z_1x_dk6W$!#h~zE>yky&Pd17R$|v%jICyHI&zD2RTP2?VIf`u00bP0l+XkKn#SK1 diff --git a/resources/builtin/alphanumeric/Ud.png b/resources/builtin/alphanumeric/Ud.png new file mode 100644 index 0000000000000000000000000000000000000000..3d5e9e7b232d9704dead0ff48a146466ae39924e GIT binary patch literal 1109 zc%17D@N?(olHy`uVBq!ia0y~yV4MKL9LzwG?TN?!0V(4EpAc6D(!pX@x066huq4PY zn89~uajjLGnt`yaGgsDxgs}FUCMgC6<^!HCjv*C{Z*Q_!HSZE?xR{u+tor}#+P`<_ zahRX@Ymv_R^RS21@pR%X4T%gnu6`vlgj1;Kf$2A`zgyJ*>V&Y$Z4Tqt6YgHx^X`w_*)_>! zlHRi-T$AO@w&cy6_cAs1ozbz?ZKmH}JbJY3jI-MBJ5TgNWA5yErg!#F-{DjF!Ku-5 zfhng;mb^E9;&=MbPdQ6A?{`pT*;@syefe$1s9Ud|y#+-j;$Y%dCA-{S5wO0#0{60?B z*yP%%B>rxphqUUJs+g~~o4##iPoC_aaqLEW<>~X$&u;W)e*LrK(hZ|^^8$YUeB3UX zJ^wiW<#j*nvZZaZ*Ig@rzT(*rOO=~#KMYkO-xuvUYE$}i*SQT`_CR+{`GR$^yr*Wd71PV%d=Mgmsz%Mde*Ds4{VbE g$7>Op*Z!RSE6h2!CLw?NRvi%E)78&qol`;+0I<5mYXATM literal 0 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 O9g{r$PCayw&ixM*Ri7{b literal 0 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 diff --git a/resources/builtin/alphanumeric/Wd.png b/resources/builtin/alphanumeric/Wd.png new file mode 100644 index 0000000000000000000000000000000000000000..acd8f55c4305bea2c2d13d9c09afb5aafcbb02b5 GIT binary patch literal 2446 zc$}41i#ro+8=u)?TMC<5sSqPt%%MVk5*BM>n6>4!gC-%V9CC=}o2)5Iwa}1LC!=Qh zj~DumOc zXI@y?1~N_;`sez%0m#}tkalW3;m{emgR9W~s{)ZQZTjsT3EPqt@zF6vPufm$uwNLS zP$k;?fnJFT=k7&0>PN}7xkID=G2G7ejriE@s%*;+N_;5T*#^X7vn{2{Gy3k;T5WsU z^PFynMg;GtiylPY(i1MgcSGfPTVzB~^=z?TXpD2IOV95GD?uX-(*RI;;W*%fsoRNC z8&d;5+X^Bai$01S)?`}c-^@6_?XV$uGI?n+$(K6MU-ubUFt;NsT(ZEbx47pl| z_ss(5Af@m9G-re^wcO`bRG32QEitJq`CuM>h*IL}DJBwkeFl0|e4gGAfRwgGQvVKbt=PgX$ zZ@qB^1oDqKmtb~AbC~Uy72h21=!K@TjOZ}CwL+N5b5CpkgXMuY5IF9w@R2pr)PU|}6I?3wm zSV(_MUE2J|6t6Hd;SRS=pB7h^3?%P*c(~<&#nBgVf=smB>ZfjoDiKmRG{O7+E_D#o z2mbX>7j4b~>Z4t_hk2BF{LflV)qJ?&ilN{l&7&hx7jVuh2&#W1DDW}~ z?KG!xh5Vx^PAw@X#+>_F#ek5z8+H7P0gA_`Xz^`!o{n0u-hs2&DqeSoMK*d6PP`mq zC4SPG=V9?(GxMMa<_;`NdT2>C0L08bF1o$f=A`8>Y2sb=WBcd>hfX}B$1RDuURB>!v--JDz`JNyAERJIyT0x54J70oF@OMh^RVUFaQ)ISSJ=L++wij0v z*EVRW>L&;POD6RW>A!+S~v@d;1Mb19`DrZ=1*6{X#GUILAy4Fm#e7oXy4mR&8= z#)iM+;tpfi?G~qg&!pZiTnkP(9gtOa15uDZ%)aHBye+Bbres^8@ZvXP>sl z19URFn_ou5e3d~{3#gZZb)2E{rX@9!QxC?Mp;gvSX<|V5HsRWgUMFle;0te~@N4LP zc>ediRYQpJ27WnhNH^}DL~Tr-&2^gI`Po}BQ%cmvmTMcz$XLN{#&M?}QJ){i zhb`u1plQe`m#u_rhTDi_DV(aH*;~zQM=scN})M14m_pa*q_nh;3I)=k8P{0ENdsiVeU&6LXfyK zS7$;71TOy&Hnwg@qx9mWJcH9wu(;Y5ddFc!#RLnQbF-mbvl202H|nA6Z^{C>shRS$ z?;S$_?9k-P+jOf)!v%74`9;rdz!G!U)x@fU-%lF&bmpzd7$7De4r@n9s-CUQc$`~y zocu$VcY`L}FD~so9H3ByzLCQT9ik~qq6^AhO~@T0`|EeEq4WUkGjbp5HT%2HuwGNk-}fM}j$a zH@1(4@XVoBgb@c4Bv`lxxY=+9K6oQ~Gy-ypGbr{~4jR9$ff~hXk z)^g~z3(5aIs6~)=z}$i26J{ti!1)DHu%*L1qqhWMpGw%~*w@e7&~NUlz>(5iYg4IG zx-+Jc=3zHKb~fpku{M~|>x=b7SSLX#)Z0zaXfxa)1{Y2Hcpmal)3-T(8Y2e%swC+$ zzJQs3*or}&4$1^S>^cDj$kOu5u#qg7Whb?H{d?xm6t7Q9@+3F@D?jX&Yn>JO9CfK{I22!r;I(B3q+uW*UK%)K}*>a#}^z`5K;v1LSwzr=mm= z5s{(gk5OAI3T*8-A%q8}@0C}>Q+OqIqypFk;SES^@0a+x@41!mYV69*{EC7nO01qF zb)#G99ZpM7CdGvlb?H|AgtR&sZ-BV?#IuF5=Rb}WUQwdS6B<(%7?yt+(UfjA=wJBe zp0B%YwPS^3FZm}X`Iy%l_(JMW$?Se(jorstdRrP)fsg;EUlzsgBw*2v-oKXFCi~ZX MJkHa#(wWBo8xZg@-2eap literal 0 Hc$@S$?o8MC62M%R$KR?&{v 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 diff --git a/resources/builtin/alphanumeric/Xd.png b/resources/builtin/alphanumeric/Xd.png new file mode 100644 index 0000000000000000000000000000000000000000..c1dacfc86ddf1c95e1b9b194370ae8a61030d7e8 GIT binary patch literal 1638 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 aZ0=_Jwxk%0i~h0Gl3=(QjJ zEx#+wqH=oL$xru0?G9YGU&6>hEcjEbquSeU!lES5$l;>EB-r5qWpXU>SKvtL0dv5UK#ArU9wy30f1RQn;Q-0`UsRWe(q72zGR-PI$~?#QKTr81uyq%f4#ZS6+X> zH@jXmcxAq|ht~N|leKpo)ee39)aFf#@wb=$1>Lq+>$|pu^iHpuI=`klx+XnmPu(JU z-5t)hLA^mWJwa0XvCk)FO-VX+EPKkXtdyiFS&f0GG?sppT6*GkMdX}B%fp8>OuuTF z-m5V5%G@Kdv?u7?hMu4;&W}yKE`F7Oh)AtB)`^o^AJ{c9&AGTJ^C? zx?v$$_#w~g^O9n-f%Y7dyry$4WU(H_hJb z>QOyGYk%uqtHVhtQ$BTyEf)EDsiHTi2jUF7a~tL)8X5te z>ZU0N5^!_VOpkEWj03ULB$wWp3-nRaw7{cp~Q}ewADr;UyGZ zlCg)A$G~wwW j#Sg)(gELu(O$+S`njxgN@xNA(V0)L literal 902 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 x` 'applications/files/application/PhabricatorFilesApplication.php', 'PhabricatorFilesApplicationStorageEnginePanel' => 'applications/files/applicationpanel/PhabricatorFilesApplicationStorageEnginePanel.php', 'PhabricatorFilesBuiltinFile' => 'applications/files/builtin/PhabricatorFilesBuiltinFile.php', + 'PhabricatorFilesComposeAvatarBuiltinFile' => 'applications/files/builtin/PhabricatorFilesComposeAvatarBuiltinFile.php', + 'PhabricatorFilesComposeAvatarExample' => 'applications/uiexample/examples/PhabricatorFilesComposeAvatarExample.php', 'PhabricatorFilesComposeIconBuiltinFile' => 'applications/files/builtin/PhabricatorFilesComposeIconBuiltinFile.php', 'PhabricatorFilesConfigOptions' => 'applications/files/config/PhabricatorFilesConfigOptions.php', 'PhabricatorFilesManagementCatWorkflow' => 'applications/files/management/PhabricatorFilesManagementCatWorkflow.php', @@ -7846,6 +7848,8 @@ 'PhabricatorFilesApplication' => 'PhabricatorApplication', 'PhabricatorFilesApplicationStorageEnginePanel' => 'PhabricatorApplicationConfigurationPanel', 'PhabricatorFilesBuiltinFile' => 'Phobject', + 'PhabricatorFilesComposeAvatarBuiltinFile' => 'PhabricatorFilesBuiltinFile', + 'PhabricatorFilesComposeAvatarExample' => 'PhabricatorUIExample', 'PhabricatorFilesComposeIconBuiltinFile' => 'PhabricatorFilesBuiltinFile', 'PhabricatorFilesConfigOptions' => 'PhabricatorApplicationConfigOptions', 'PhabricatorFilesManagementCatWorkflow' => 'PhabricatorFilesManagementWorkflow', diff --git a/src/applications/files/builtin/PhabricatorFilesComposeAvatarBuiltinFile.php b/src/applications/files/builtin/PhabricatorFilesComposeAvatarBuiltinFile.php new file mode 100644 --- /dev/null +++ b/src/applications/files/builtin/PhabricatorFilesComposeAvatarBuiltinFile.php @@ -0,0 +1,346 @@ +icon = $icon; + return $this; + } + + public function getIcon() { + return $this->icon; + } + + public function setColor($color) { + $this->color = $color; + return $this; + } + + public function getColor() { + return $this->color; + } + + public function setBorder($border) { + $this->border = $border; + return $this; + } + + public function getBorder() { + return $this->border; + } + + public function getBuiltinFileKey() { + $icon = $this->getIcon(); + $color = $this->getColor(); + $border = $this->getBorder(); + $desc = "compose(icon={$icon}, color={$color}, border={$border}"; + $hash = PhabricatorHash::digestToLength($desc, 40); + return "builtin:{$hash}"; + } + + public function getBuiltinDisplayName() { + $icon = $this->getIcon(); + $color = $this->getColor(); + $border = $this->getBorder(); + return "{$icon}-{$color}-{$border}.png"; + } + + public function loadBuiltinFileData() { + return $this->composeImage( + $this->getColor(), $this->getIcon(), $this->getBorder()); + } + + private function composeImage($color, $icon, $border) { + // TODO + } + + public static function getImageMap() { + $root = dirname(phutil_get_library_root('phabricator')); + $root = $root.'/resources/builtin/alphanumeric/'; + + $map = array(); + $list = Filesystem::listDirectory($root, $include_hidden = false); + foreach ($list as $file) { + $key = 'alphanumeric/'.$file; + $map[$key] = $root.$file; + } + + return $map; + } + + public static function getColorMap() { + $map = array( + '#335862', + '#dfc47b', + '#2d5192', + '#c0bc6e', + '#3c5da0', + '#99cd86', + '#704889', + '#5ac59e', + '#984060', + '#33d4d1', + '#9c4050', + '#20d8fd', + '#944937', + '#4bd0e3', + '#a25542', + '#4eb4f3', + '#705412', + '#6da8ec', + '#545608', + '#829ce5', + '#68681d', + '#607bc2', + '#d1b66e', + '#4b69ad', + '#a4a154', + '#236ead', + '#daa969', + '#31a0de', + '#996f31', + '#4f8ed0', + '#846f2a', + '#bdb0f0', + '#518342', + '#9166aa', + '#5e904e', + '#f79dcc', + '#158e6b', + '#e189b7', + '#3ba984', + '#a85582', + '#4cccb7', + '#863d67', + '#84c08c', + '#7f4c7f', + '#a1bb7a', + '#65558f', + '#c2a962', + '#445082', + '#c9ca8e', + '#265582', + '#f4b189', + '#265582', + '#bd8f50', + '#40b8e1', + '#814a28', + '#80c8f6', + '#cf7b5d', + '#1db5c7', + '#c0606e', + '#299a89', + '#ef8ead', + '#296437', + '#d39edb', + '#507436', + '#b888c9', + '#476025', + '#9987c5', + '#828136', + '#7867a3', + '#769b5a', + '#c46e9d', + '#437d4e', + '#d17492', + '#115e41', + '#ec8794', + '#297153', + '#d67381', + '#57c2c3', + '#bc607f', + '#86ceac', + '#7e3e53', + '#72c8b8', + '#884349', + '#45a998', + '#faa38c', + '#265582', + '#ad954f', + '#265582', + '#e4b788', + '#265582', + '#bbbc81', + '#265582', + '#ccb781', + '#265582', + '#eb957f', + '#15729c', + '#cf996f', + '#369bc5', + '#b6685d', + '#2da0a1', + '#d38275', + '#217e70', + '#ec9da1', + '#146268', + '#e8aa95', + '#3c6796', + '#8da667', + '#935f93', + '#69a573', + '#ae78ad', + '#569160', + '#d898be', + '#525620', + '#8eb4e8', + '#5e622c', + '#929ad3', + '#6c8548', + '#576196', + '#aed0a0', + '#694e79', + '#9abb8d', + '#8c5175', + '#6bb391', + '#8b4a5f', + '#519878', + '#ae7196', + '#3d8465', + '#e69eb3', + '#48663d', + '#cdaede', + '#71743d', + '#63acda', + '#7b5d30', + '#66bed6', + '#a66c4e', + '#3585b0', + '#ba865c', + '#5880b0', + '#9b864d', + '#739acc', + '#9d764a', + '#48a3ba', + '#9d565b', + '#7fc4ca', + '#99566b', + '#94cabf', + '#7b4b49', + '#b1c8eb', + '#4e5632', + '#ecb2c3', + '#2d6158', + '#cf8287', + '#25889f', + '#b2696d', + '#6bafb6', + '#8c5744', + '#84b9d6', + '#725238', + '#9db3d6', + '#816f3e', + '#777cad', + '#a6a86e', + '#826693', + '#86a779', + '#9d7fad', + '#8b8e55', + '#b193c2', + '#547348', + '#d5adcb', + '#3f674d', + '#c98398', + '#66865a', + '#b2add6', + '#5a623d', + '#9793bb', + '#bea975', + '#3c5472', + '#d5c5a1', + '#5e5a7f', + '#b09c68', + '#2c647e', + '#d8b194', + '#49607f', + '#c7b794', + '#335862', + '#e3aba7', + '#335862', + '#d9b9ad', + '#335862', + '#c48975', + '#347b81', + '#ad697e', + '#799a6d', + '#916b88', + '#aeb68d', + '#69536b', + '#b4c4ad', + '#845865', + '#96b89d', + '#706d92', + '#9aa27a', + '#5b7292', + '#bc967b', + '#417792', + '#ce9793', + '#335862', + '#c898a5', + '#527a5f', + '#b38ba9', + '#648d72', + '#986b78', + '#79afa4', + '#966461', + '#50959b', + '#b27d7a', + '#335862', + '#b2a381', + '#335862', + '#bcadc4', + '#706343', + '#749ebc', + '#8c6a50', + '#92b8c4', + '#a07d62', + '#758cad', + '#868e67', + '#335862', + '#b6978c', + '#335862', + '#9e8f6e', + '#335862', + '#ac7e8b', + '#77a185', + '#807288', + '#636f51', + '#a192a9', + '#467a70', + '#9b7d73', + '#335862', + '#8a7c5b', + '#335862', + '#8c9c85', + '#335862', + '#81645a', + '#5f9489', + '#335862', + '#789da8', + '#335862', + '#72826c', + '#335862', + '#5c8596', + '#335862', + '#456a74', + '#335862', + '#335862', + '#335862', + ); + return $map; + } + + public static function getBorderMap() { + $map = array( + 'rgba(0,0,0,.3);', // Darker + 'rgba(255,255,255,.5);', // Lighter + ); + return $map; + } + +} diff --git a/src/applications/files/builtin/PhabricatorFilesOnDiskBuiltinFile.php b/src/applications/files/builtin/PhabricatorFilesOnDiskBuiltinFile.php --- a/src/applications/files/builtin/PhabricatorFilesOnDiskBuiltinFile.php +++ b/src/applications/files/builtin/PhabricatorFilesOnDiskBuiltinFile.php @@ -45,11 +45,14 @@ $root = $root.'/resources/builtin/'; $map = array(); - $list = Filesystem::listDirectory($root, $include_hidden = false); + $list = id(new FileFinder($root)) + ->withType('f') + ->withFollowSymlinks(true) + ->find(); + foreach ($list as $file) { $map[$file] = $root.$file; } - return $map; } diff --git a/src/applications/uiexample/examples/PhabricatorFilesComposeAvatarExample.php b/src/applications/uiexample/examples/PhabricatorFilesComposeAvatarExample.php new file mode 100644 --- /dev/null +++ b/src/applications/uiexample/examples/PhabricatorFilesComposeAvatarExample.php @@ -0,0 +1,77 @@ +getRequest(); + $viewer = $request->getUser(); + + $colors = PhabricatorFilesComposeAvatarBuiltinFile::getColorMap(); + $builtins = PhabricatorFilesComposeAvatarBuiltinFile::getImageMap(); + $borders = PhabricatorFilesComposeAvatarBuiltinFile::getBorderMap(); + + shuffle($colors); + $images = array(); + foreach ($builtins as $builtin => $raw_file) { + $file = PhabricatorFile::loadBuiltin($viewer, $builtin); + $images[] = $file->getBestURI(); + } + + $content = array(); + foreach ($colors as $color) { + shuffle($borders); + $border = head($borders); + + $styles = array(); + $styles[] = 'background-color: '.$color.';'; + $styles[] = 'display: inline-block;'; + $styles[] = 'height: 46px;'; + $styles[] = 'width: 46px;'; + $styles[] = 'border-radius: 3px;'; + $styles[] = 'border: 4px solid '.$border.';'; + + shuffle($images); + $png = head($images); + + $image = phutil_tag( + 'img', + array( + 'src' => $png, + 'height' => 46, + 'width' => 46, + )); + + $tag = phutil_tag( + 'div', + array( + 'style' => implode(' ', $styles), + ), + $image); + + $content[] = phutil_tag( + 'div', + array( + 'class' => 'mlr mlb', + 'style' => 'float: left;', + ), + $tag); + } + + $view = phutil_tag_div('ml', $content); + + return phutil_tag( + 'div', + array(), + array( + $view, + )); + } +}