From a9b9a1cb105016be5160f7b634c7dfd9f0a75901 Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Tue, 10 Apr 2018 15:54:19 -0700 Subject: [PATCH] Commerce: Gifts --- .../fonts/hifi-glyphs.eot | Bin 31678 -> 33642 bytes .../fonts/hifi-glyphs.svg | 11 +- .../fonts/hifi-glyphs.ttf | Bin 31500 -> 33464 bytes .../hifi-glyphs-1.31/fonts/hifi-glyphs.woff | Bin 0 -> 21496 bytes .../icons-reference.html | 90 +- .../styles.css | 33 +- interface/resources/fonts/hifi-glyphs.ttf | Bin 32544 -> 33464 bytes .../fonts/hifi-glyphs/fonts/hifi-glyphs.woff | Bin 20032 -> 0 bytes .../qml/hifi/commerce/checkout/Checkout.qml | 57 +- .../hifi/commerce/common/CommerceLightbox.qml | 28 +- .../sendAsset}/ConnectionItem.qml | 6 +- .../sendAsset}/RecipientDisplay.qml | 4 +- .../sendAsset/SendAsset.qml} | 519 ++++++----- .../sendAsset}/images/connection.svg | 0 .../sendAsset}/images/nearby.svg | 0 .../sendAsset}/images/p2p-nearby-selected.svg | 0 .../images/p2p-nearby-unselected.svg | 0 .../images/send-money-effect-sm.jpg | Bin .../hifi/commerce/purchases/PurchasedItem.qml | 781 ++++++++-------- .../qml/hifi/commerce/purchases/Purchases.qml | 204 +++-- .../hifi/commerce/wallet/PassphraseModal.qml | 4 +- .../qml/hifi/commerce/wallet/Wallet.qml | 12 +- .../qml/hifi/commerce/wallet/WalletChoice.qml | 17 +- .../qml/hifi/commerce/wallet/WalletSetup.qml | 4 +- .../qml/styles-uit/HifiConstants.qml | 5 + interface/src/Application.cpp | 2 +- interface/src/commerce/Ledger.cpp | 26 +- interface/src/commerce/Ledger.h | 16 +- interface/src/commerce/QmlCommerce.cpp | 16 +- interface/src/commerce/QmlCommerce.h | 8 +- .../entities/src/EntityScriptingInterface.cpp | 2 +- scripts/system/commerce/wallet.js | 196 ++-- scripts/system/libraries/connectionUtils.js | 94 ++ scripts/system/marketplaces/marketplaces.js | 836 +++++++++++++++--- 34 files changed, 1995 insertions(+), 976 deletions(-) rename interface/resources/fonts/{hifi-glyphs => hifi-glyphs-1.31}/fonts/hifi-glyphs.eot (82%) rename interface/resources/fonts/{hifi-glyphs => hifi-glyphs-1.31}/fonts/hifi-glyphs.svg (92%) rename interface/resources/fonts/{hifi-glyphs => hifi-glyphs-1.31}/fonts/hifi-glyphs.ttf (82%) create mode 100644 interface/resources/fonts/hifi-glyphs-1.31/fonts/hifi-glyphs.woff rename interface/resources/fonts/{hifi-glyphs => hifi-glyphs-1.31}/icons-reference.html (93%) rename interface/resources/fonts/{hifi-glyphs => hifi-glyphs-1.31}/styles.css (94%) delete mode 100644 interface/resources/fonts/hifi-glyphs/fonts/hifi-glyphs.woff rename interface/resources/qml/hifi/commerce/{wallet/sendMoney => common/sendAsset}/ConnectionItem.qml (97%) rename interface/resources/qml/hifi/commerce/{wallet/sendMoney => common/sendAsset}/RecipientDisplay.qml (97%) rename interface/resources/qml/hifi/commerce/{wallet/sendMoney/SendMoney.qml => common/sendAsset/SendAsset.qml} (77%) rename interface/resources/qml/hifi/commerce/{wallet/sendMoney => common/sendAsset}/images/connection.svg (100%) rename interface/resources/qml/hifi/commerce/{wallet/sendMoney => common/sendAsset}/images/nearby.svg (100%) rename interface/resources/qml/hifi/commerce/{wallet/sendMoney => common/sendAsset}/images/p2p-nearby-selected.svg (100%) rename interface/resources/qml/hifi/commerce/{wallet/sendMoney => common/sendAsset}/images/p2p-nearby-unselected.svg (100%) rename interface/resources/qml/hifi/commerce/{wallet/sendMoney => common/sendAsset}/images/send-money-effect-sm.jpg (100%) create mode 100644 scripts/system/libraries/connectionUtils.js diff --git a/interface/resources/fonts/hifi-glyphs/fonts/hifi-glyphs.eot b/interface/resources/fonts/hifi-glyphs-1.31/fonts/hifi-glyphs.eot similarity index 82% rename from interface/resources/fonts/hifi-glyphs/fonts/hifi-glyphs.eot rename to interface/resources/fonts/hifi-glyphs-1.31/fonts/hifi-glyphs.eot index d3591e6499c6afaf63e4a2c0f144f4722c2f8d9f..1be5435ced839789c55bbeb6584a2ae2d04400fd 100644 GIT binary patch delta 3467 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 QIOC1+r~f&WfB6IQ2jFE`i~s-t delta 1504 zcmYjRYfO`86n@_Kd%sJ+ek}#suca*o3barzr56eaPDBLc?hO$U?c^p>ZIn6W*3CKG zyd-K(w(JKn%R-jS7$cJyV+=9=Fw2se#Vw1vgqZyxY8*dYwq#3K+OTBrc~8!B&Uv4c z^Zt2W&eHpT65;+NpiEvCLTsh$f$ehb>DZ}=`VTO%3c%i2zqJ8(ApjGP0c3aV^!hvQ zwMGHb4WR2#BpiLO@Fy=op8#}lD10KiwgwKEcmzNi8a*|5XHSO+2;IQwo#BCSzrO8u zA%N!qLc_xYVOB<#0b&G@Hyjy@jc2{F7yxn;AkNWahr*pzkzs(Z0f;>k9*^P`=>te* zVxgnq$iS-&i(SBp1ZN?7?8I3AmfLn<>>(f!5Fp{U2VE-%QfmHymLhR}{_L*$UtD_z z(EMaw0*x;bFS!_BCHqNHyqz`@Yy2wxJ(hUPt-C!r733heB(j5%`own={N(tV<)XE< zB+6OFI!f*V0ZRZjpc*yUh)tM8EgDgWE!cquG+`T>QHBl_p#`lN#1OV(Gv4V$1u7B3 zF0`Q?yJ1Hrve1ugai15aK!sr zzRv^|W>}B`D{Sb(K6GO*_MjL0(T4*#h%ny8Aq-#`hj9d>@p~*IcLGzG#tdTk03YHs zKEfG%jB}X9S$u*|aRKM!67TNYP+hZe(`0R9-Ig5>kfKRah6;>^vAL#7aUca--!7*MCC5^0AbovxSYFfI{q?#=m zR$JG;?!EEL{A~OhFT~A4UaVJhPfnBj`N{Gt`X! zjO!V1tvijETeof2cEvVldt_U+JM5$OCHrcoGxK=N5pw*NRhRWTyEEr#&a!hN zw>Ix)eoy{Wm*nbl>)oa9dG{^%efP@(N5NvjUxm$u-+B~J)bqCJTJcEn=f#gp3QE2% zZ77{6oiBai9rby9i@t}xAN^(iUjL1N9HIz=HttfqVlDIy*stR5LNb;i$+o1_L>46=;Q8?V&^#7?UVRDXY_oQp}*}QZ?eVUX&zJucS&MIZinp z157WAae#OMdX>v36v4aM5>WQN(f<+hNq;xmk}Z` zC0kT@N%=~Y6rI6fkt9LZ>Le*uk!3L<3_+AHoU#19cR@R;C1LQ{uFRYjgh=@Kk%5IPGnK3{DH|YbYoJMW(F3p~ bi;0}W1rRV`U1<{fhVM6i`9mW9U)BBv{ diff --git a/interface/resources/fonts/hifi-glyphs/fonts/hifi-glyphs.svg b/interface/resources/fonts/hifi-glyphs-1.31/fonts/hifi-glyphs.svg similarity index 92% rename from interface/resources/fonts/hifi-glyphs/fonts/hifi-glyphs.svg rename to interface/resources/fonts/hifi-glyphs-1.31/fonts/hifi-glyphs.svg index 43c4932879..c68cb63a0d 100644 --- a/interface/resources/fonts/hifi-glyphs/fonts/hifi-glyphs.svg +++ b/interface/resources/fonts/hifi-glyphs-1.31/fonts/hifi-glyphs.svg @@ -25,7 +25,6 @@ - @@ -145,4 +144,14 @@ + + + + + + + + + + diff --git a/interface/resources/fonts/hifi-glyphs/fonts/hifi-glyphs.ttf b/interface/resources/fonts/hifi-glyphs-1.31/fonts/hifi-glyphs.ttf similarity index 82% rename from interface/resources/fonts/hifi-glyphs/fonts/hifi-glyphs.ttf rename to interface/resources/fonts/hifi-glyphs-1.31/fonts/hifi-glyphs.ttf index 8907cf7858dd304cdad024bfa1ff4ca5cd94caf9..edc447c13245b74845bcce8687c7432f37872c39 100644 GIT binary patch delta 3470 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 Fe*ppxP9FdO delta 1526 zcmYLJdrXs86#w1(-S5$_{YruMYiUb?0xc9M^g#i^7a|~npdtby+R00x+5swptZwtM z`ACdivS)}{7P4f<7@5Qnvl!zaW?3?0wqXXjN&=z1xRJ$LWjbU z{^x5JI)L#+&3yFm_(b2Pn|5I09w3n9a0Ia3?RdH`rRGm)DH8J2hl}cKOBdD4WG%TE zUq|+mqWEW|fmq{D$RDvpnp@rWWFL_I;F6vljMOCtgoM`(-&!hKSxL6eS;DG^BaL4ffgJZlPN*Y38UVP8mqKVQ4m7OPfr4k=~uYnEuiz8IKwlOkUHlX--wusCw7j zZvMm)vdmf@WT+W^8CNr2S(~gA)~nVRwocm_+hyCV?Y?c5BSZh*+IT@LMb5}Av`4<;TYoy<5`*_nyR+uQ-$%2BfO4M z#xcg^o;!@EgiyjsqRffBrkaU~8jgxgV=$0|R)JQi)gDS@fia14l(Jeylwt;*lByAB z^r9q*dR?j{k}=9Dlou$caMZ|i3MU$rRKiG#MwSWX6qz#?$eck+5qYL^0%e3Uk!mE7 z5<-}y;VIeH!w3HMmWToP zPy%0kWZJ_5z7k*j^Y0V(f3{mx{{zrIB&PrX diff --git a/interface/resources/fonts/hifi-glyphs-1.31/fonts/hifi-glyphs.woff b/interface/resources/fonts/hifi-glyphs-1.31/fonts/hifi-glyphs.woff new file mode 100644 index 0000000000000000000000000000000000000000..f26000caf42cd88ba2e2ba3ac079299b43515ce3 GIT binary patch literal 21496 zcmV(^K-Ir@Pew*hR8&s@08{t?3jhEB0Cz+H0RR91000000000000000000000000( zMn)h2009U908YCA0B{g>wiG@_MpR7z08hjK000^Q0010%0MQ;tL`6mb08iim0015U z001BW!2kqLQ!g?A08jt`002q=003Z7X-+R=ZDDW#08mT-00Dad00MXnyEZgvWnp9h z08z*Q001rk001@);crW5Xk}pl08#h=0015U001NeFah3ZZFG1508$tL008Fz00Ar> zAR6**VR&!=08;<}000I6000I6lu!U}VQpmq08LT19A1PmBLfDm?!4FoWR-FT5@ zZMODhG?GTMPjA)xtQzgIB=43tY_r&a0YesW022sFNVtULhU_=FY5lKr-}_Hhk8DHo zzkA>J{uybern{C?=bSoQooY{6Wo4Pi<2kLNv957ZeN%5+LuZ+%yv$Q})7nID9MamLoVp*OSId4}_Fmbq%l=qqdywbLo^N`Vc<%E&=Be|vc_JRcV|db@Vb3Pd4$rfm zS3IwI-tzq1^J~xVJ^$fx%Dv^MmH$im`Q;atUsZl<`Q7D@l&>srEN?DvEAJ`~l_$#O z@^txd`BeGl@*U;7%lDTbE`PrKSov$^ZWE^4=R3N@u!NvReCBvRe46`=PLb`=Tu%%d3EKjmCGvcuDq{uWo30`ePvr^Po-Fy zt{iP>UU&JrMV&PrwY4o9YJ1nVR(GsxsBT%esHU~0tE084skWoDp|*NmTSIG0ZReuq z#+v%-=GwOEbtf;vweGg2*6MZ8OJiGCS8cGXrh9E|XIn#UM{OU}Xlkr)=<2Cm3xA6) zuU*&JwXU(Fwx+AKqqn)XrMsr7wX>FfENW~C)OK{$u4`*-fxi>smXyn`x=3wZ7Gb zvN}-RRo$^@aa&V$4FJ`#VQp)$rnR}byQQ(Kx4xr#ZE4b-wbdOp4W|I}F(_R8*R-yy zb$hJt=xFWfgvRc7!2O1v+W?oH?$l0EhT$fYhz1SZAV*Ecjuzc_U>vJ ztJVFk1~S6*Ysqc5yuQ1$tFf-v{n1og*X5Qv2)Wl*cXYblF6wNm?riAnZK(nNYHDoR z(9~K}-PPFIQUh=TqTH{hy4I$3wH=F^>Pv;r=BC;}Z4*qbv8ArH8u+lQp|!cT7G~1X zS=-gs*izrw)d4-Xu3Znzw5YzLwY#mRxw$h?zpl2vE!Yg;H!mWLxURaUrWV@MLEEZ3 zx`2afI|Hr3+NMr`WkaB`vvF-xZ8KmGpy(i6Q=-e|6mN^xwYcBiZC#DcwJ>N)Cv;QW zQq$Yr(%cQ))7=T24t%|+4K6k|(QAR$rbU;LkHzHUa`JHn`S?2d2)eg|?#-ZkJLpyj zF8X?BLp9~^u9}A0nhl*zjewBOw$>(szS_>#?v9#Tpk6QG@kOLSn6N~x66631SyiO@ zqQ$kr8lY``Z9`oRK_RePMV0&YkGhqYr8sYfj6ogk&o z3MW{uvAMb)ghimSqqPOrZ&zmz@D1UkT3F-2ra&lQav*VSePdl$ciTEB0YA5N0(&%- zzG|V=*4YT0Nov*YiEk_dP!ViT|qS znCFKe_h0wCQTAoeanGBcAAt^d+w)`3JD#6-e(L#|=UvbUzwo^0`B%^To?m)C@cat& z!@qfc$M(#5{vXf(DC_k&p1*tk)AK() z|Es*L+*4j&UQu3I&VXKF%Tf6!$`_P>5;V-G%B#vhUH+N!&z7HFen$D33ZKFX(IN$xkQ?!lzYyYQd*2srvS(Pyh7bXO?{C zh0i|t*{4qTo_^KoPoII#SaQaZGk$RN^(cdp_x|qNC4~te_ z@})}}FL~k8<(J)aS@JUdvf^cLFFs>&`{fs2u3c_l@yORJuH1Un-L)4H{2e)UA}$t_UG>S>K)hI@yMMG_av5&EZ?^L;Jvrqd-r{w`=0vFXTCFf|CRTD z@W8qU-g@wwht@p&&?7%wvF@>!mFKQ>R#&Y4;hMA8G_46$&3)GPbI>38n-CX+@wZ5nC+PiCAmyzARGZ};1X-9EEvyU%{v zS;E1Ok%3~b&)Mwl9SHT3j(P_}BR<=QRe0N9z|6>Cal~IW_eophrrJB$_`<0+`U&OO z!he3n)@4qf8NrNYrV`0i3P9OD!zpdOm`SEgD{Y#V-=4^GQ%$tRhJW}xaoyGzetChj zeVS9+ON}ks_(kVyF!P!1{PEY^`s{dR&O3sOAti`n z&Us8&3&WuH@ws0U7izTCy zAd9ky6F8wIb+mSh31t%_+Hi0vJSoqhptqxEY|8&SJ2f^sbj?RX}CYN<}ha*j+ts|Yq&SDQnHQpZF73%D72{!li71}1o zUde7mHm(OI(vHAKdkdE~V7c%{!Y_FfJf9#W_8(nHXir#z@*Z3@QuRn&yy;BoC9sVV3M|XhmfuhJNR*-!WyR&smqwj1lm;nv`Z#y0?Y9(^MQM)YY zjV2ROzx_X#aIdkscslCqamvQLxlB6eud-jC^K$2~>)YGc`%>QZ?bF-+e`U8%PjB~` z-tE)v>-`<)aerY)L&cyk=?#W}OV4G4#n7nF@)Fkc|18bnyH`GPPYN~uggq%>?uHpt z(E_q=hxcA<A10GG$>gi-ckKtb2b=}oySuP`_CxsR?=i32 zS90&Yw&cnymn^x`AKRSuzV^Zkuf2BP3rqY>xGB;V=;{u&icLuB3g(!o8Py^f)ipKM z)oyLtYJ2u4WXYOTWH?{*25@gK zJT6$GC7H->^C}4~W=6BU<6V#AaXe%d2B$X*hh+=dap#z0T*hi424g)?2n@GOhqhoe z`6tfqu}7TstjuDpMC6bh7J6gRL?XtAaVPG}#zqoFxri~6^USM2=rrXTGvRmcBHTgP zChfQHx*Kj-AG?txH|`-Vh>V-R0YVO1RM~Cz7dS=4q9n@_yfEtb!Y@r$QQJE=;kIuv za9I@H%aSSsyU3cNqIc~9Mp0E&!zk<3uqr7MTIVd}p2MAQGEhswsw`pX6WM_5!vayUXh==j0RUFI>W=G8_z>k7;1{cK~ zZwXdHi{daI5C#&G3~xnJ2vmq4WB@W-wlf00?QDonJ4u{#Sna=w01h%)x6DZ54V?NBrc#v4maW-Zo zvLI0(p1X!KWrN2_TTHR`{j2rFahIq+tVCKJVn9+1_?#_XRo~5?&$vY510#_ zcQ|ZEo!BIHqDbMr+Ybu_r$7$s}FR(h`)=!yYa;X z`_Tu#vM<2Dx(qolc5`)gfk)+s(p_)0*f974{PtF3LVhOjRNb!H-H(nv3{U_CG3rh> z-+-M@pm2&!Dk*rQEQ?>XjuiHpBW5w3TbHT}Ha8=C)|urtZyDWX?TaP{lD+)ef%}v9 z;(PJ^R`p%wyv+_KR9ek8z|*id!d&{Zg4Q#1t~xI#_g6y_zum?9Jr=Cu@D7YxaS zss9^y-h$UF&sp$BrTcB~c>}K8y6}AH*ZsC%?&hF3O^25X1#C(N={TkF&~Zv69ZNjv zIHmHWV;C4Zc80n0p~rKfXZO3xK5XZ?iQeHrps%kxFx)pjJ~BM+TL+@}r9)4@^zx%m z-+j-ckKTRH(~rL7x9_VwI9tDJbv^l?J#cV#_JH5M^lQMn!^#M(9Yhv8l>+!7mPmmF zkpj-k3qd-75U>*dhe4Mzpi>f53=CsvB?Fg&PSvrdYFa*D$mjEhi8H*JGU7OuLiP0w zpTcp2*F;?c)^*a31+{gM0;F!fU>Z1+GI>&)kH9M&aqFW}1N#E|SuSmXP=~=_NJJon zrIi5X<_9^Ym zwr<(7b?a6%5%}geM}v%AWAEcOc1(6ocII>Br2{yEf$n>Ofz^TqArg&7V=*-8+|Io+ z_R0gv+vJ3lkP|YL2bKLXRAJ_|PMV`-kMI;&5?zqdGDG=oVE8{po@uM?fSK zjYc5c*ntG${`)7pfRQw?N0B4g-vHJH)tWRDbV0!?^4pKDL^i5rK;z09C|N~OVIdmMd))gwn1ZQk#Fm3Lih^YY zUEWA=$HYZmz!GwvXTgG2eD>VqpgNwHmCH`KEh7RZ^a!O7b})HUCtAMB&Q5Sg@zIHc z2M-+BNR>$Ei>vo9{*`kfUVPc=HJ$fj&^H_JJ+K-bTy?bjC5+~7sXUAi_v~4>yLS8$ z{2+cH@JMa#b=Ns(;Ol-|ySwKQehxo7c4+r*K-J-~XE6Gc^Lg%T3+&Zb(a&!Z^Tich z&T4Ohh$kyatd!g+_Yyuj31I9$0mgyF9}qAWuU>ruj5P#|uA>x;XYk=50b}eD`~ZHi z=TtBPhw!ubx$zPhqlYn?avtMey`8a=IGTi46elgT?3LSZXWVkq!a2)Aue@^mtBhN= ztQ@wI=#^!!zRI{|w=EFTgJF$ zw=GcY1^YZs>W+dEiG+J_xPWed<(jL(+m2z72qw;&7JBz*cl>~fA`)_-$%}5%T6>&dQ~W5={U1UtuzFbs!N*M#HJF zjsnJ|XESC*4NC(sNYTE9O9BZ9A%GkfdhK-}49*ea0SUoOyW!T4Rw*^0|?epTK2 zRroQyZV!GEPh}>Ch6?%N^q7V)E9kOL#IIt2T-WAhu_l5w#DEn7S^|u4uxC+gE91&! zkoJnGrA#?vSTQjnfL4u4{WywSCp*C#oxu}h+6>NQtPBC-09X(E*8n$Qa2t}z2w~yX z2Uf3U+;YOgdEl7+`_~*`+_Gim2@4-sec%A&mZ5DV0W54EwExVRqE5^q=OPxTgj5O~ z1TbugB??*!UHlV}*%Fz8p}~C6Z(e6i-NJ?l{O_>`xhysT8>w$U^w^zvDZc**K8AM| zwoQ&tjBm~FR#B)(mQj}Yu{jJH`@m|(;FYA5A_l!Ap*5=+Q2@)245tWM3Wx-%vN*)F zNL`8kP@qR>$3gt)-kPWJ6L`-~{h*Rfn;97(zr^0j#lUTfr4w0@&)#f0oy{iFV7fo* zt+E%}A{S4jGg%7^{I}nNyH+NXPR4vU{D{q3iC8?Di1}~4(Hn;~N9y^01Zqy7yN&zs z$Jbqa(RJ5fe9`r9|MtVTfBakjzd84DnRGe>OEK=h{w;4NnT|v2xbKGR*%*AsEg1jp z8@w?q2?VmTzPF&KVS5#K(E|Hxj*lBE6o&lva&{W#{iH!gjH z15*Jcb>xJUU-LMuXHrfODW3bKjk27vL?MnH_tM@;CQp!h&l((byQ(Q(i6LMTw zQ@?%36`FqcJER(6zy-0kWusEWuD<90716az8HofMu|(bquK_cgpkP>R67S8>!1D$>=v&S~I(_J6e)>5&eae+Eec(zu z{jSpVNf_p7IgRW-=P8y%nrN`io^aOAPan9lH2q9$I8l@bVfqC!{r;2F?{}v^$X&d^ zUbdWDw7~x2{L}~>%T6*Vtec;F9K!7Xj}Q_94T8m&{}_ZN0u??6A+cUR2H}zqxMyVs zL?9Jj{s$iNlJ9uZ%J`mrfK7l1%vkA+|G8(qAjF`YjDs*3nY)C0_tm9WU$boK)&6GO zn&}!s*Y?c3!^Fl?lXxTg*{jFi_3d^P4g`GGkJG%F)R0}yf`%q;+)WTaYNg;({h-LRo)!t@Sz&|rWKf1X=?-ZF5jYbUD1vT%b4Ja}n53_u$FLgmPE@Y|na!KdR>;LZ7*Pl2T& znm+rqN~0uqXt=|WNmK$lBvA=L1|*5h)X?)t_Esx*TH_KnfHzCVwfit66`YwG|pH*^7R?VV}m&ygn zs5aJ^Yt%5tg9>VzW4TKfRM}tnJ=e6Y?{Vb`W&iNrEn7Ct>=@dmYv77&Nq{LKreIlh zcO;tlHY9^X1U`?9h$rPcEW#(aWbpE175`2lK{yRub|a2%VzFCO0RetQBh^TZ4jefZ zDoHshE98(>WXzD(uZ0k)%8(!^h!4dJmLyh{f?Ck>7W`DmFbdHQ{9t$_G{_q%pr~$X zY0b(dbBRoR%ZA}dzZV3%!8nn#Pa9_422lUnu1hsR)IG*6~(}?*x@pxm>75y z>8xVmG^jDMPT(?$O8aE53`6?~L}7WYBw|JeW72E? z3hN9-i(JAEaKhlaU5zs-q*AUR)Kbvi823Y#P)|}&pVFerq<1X)X{>|dUuMjnbaydm zCJO?9PLRV8zaAhA*w=7%DkHn`Sxg7QN*_pyh|;I_Vo?=zoRKqfT1M8Og#C&a(^(-h zw*N;g8Q15a9VEQ0`eZgEWTmuZ%3wDTfJs#{cg3%;=CrkGWD1dJHA6{^ktj2bk>=J& z6N(2ppvG2=*xC-qK>BT}rRJ1bei=NPr{1y<{Ip@a-#Z zFK!#$rl*w*&WM{@$6NXJslLX+CaW*go9?qhW+>f{X6#RJ;6{c*;rx(KDdzJF$Z19LIgX~QeS!$(7ZZjm|0I;`8_t8|W$*Ki16to-( z&W9%%iNtm0LvA^Va-5)TIzn|{Zb9S*q znPn`sX_L3&O{9q{oB}sZos$!{^C^ymX_VV3{;=!$;Mz-6p zbC)hy*~1Y%q|HYwLC*;qQJXw)H;K|yJ;;+_x}XUq<@rSQiI&95{x4d>6=*3MqT4c> zN#wGbbS@ju#G>(d%(pV=g7Dw&h=5RKZ?W&=rqTGY^wU~ zfSq;LViv^syc0ltGnC}P0EHFdH*J%-qPm@=c@mt-M?tziL1Ar;tf1}EBA=w z_1@Ku?Xw=mKYf>}`nAn-Ke~}IQ(0`7rh&656Fui zEs6NAvNP{seBR1l|pL7goQH z-aO7|ZjCDYk8{^>)acUC&2KU!K+l)lA$0Rij3CN%5Ctqhod#aetaGs5OKSi_$`oD_ zzemS!Vn`I94g%&JI{qd@uv4-C$&!JdQN4X|)=O)EfeH#1K=|)q!DD-7*;AYSAA;<0 zJhR^a3p_&mdiMWf(g1(G_rIV-#*UZJ;7$oSXL`xH7e!$nM3@rVxAx+T8REKQk(i>Y zgto6|REexwB9~!pfB50PwJ;519;}ilfb1swI7f7(q@wlP8HwzjlTKtwLKk1Wb{{h@ zYlM@s#yOL9QR7Y%*=KrB$S8eYMxnL)KKzjGVqgs>V%T*YQAjY%hHZ2h>QK{R7Qry5 zQcMsCwcKG8vU^Ff?+&9Y0Q&qegge&m`%P&W71^COb{Utvm3ed#kKrQ}-M4m830*K( zimq)ND7rL~n?}*~8$j2oRMd5aQe>{xZsgYYwZ*$|6vxzrjuJW(1)nkn?nzRM>EJ|b zF(t0Vlo+nZYom_^kbMJtVB_xmcCxQ24W)+ok>qGRpDc(&cp7icY#T;@Kl2cWvtow0 z!O$GXa9kuoAt4UMqzZlODIIJYWnkZ=YXaPKcLsCfS7YF!(R5%qC5`0`p z!W(=!;_f*OESOd)OVntrnHn)@xWybVzJPAB|=Ugk7 z1@q5JSV=98qsX}`yNShFEp4SOE2Cv`>25*?I-&N=C=0$0Nro{k9qdM&7EE{JGmd&Q z9+QL+wEtdgXBeE--5UTH+Ev+udy@kL1EFLe?m^CFY{ZP{VGLIjaCIQr z3&nmTlno;gWEU`2Jd@1wIX)}qVWm}j3pl4|(^<>RYI!vMAB;JsPT&djT^5g|ijhLN z5Hfqodcr9wJlvZO5SEqVLa5Mh1&JLBHmr=k$Kvti@IY~(*lYEG$o=~TT-^3#yl*-l zE@peO-s4c9SE}aDv}a2KLZ-q2UGPUQ`AvS&-@RTcmWbN}-J=UHV99S;a>X9%W$99u z6}pVkpDyqcNk|qq{Y@8&Qd%e~`qQ6S@|#?s3ul*8&fy3TCRaQj6(WH8IG{eN$20K^ zpTl`%$5~u3vKe^g41%J#H;;2X+>RSD90r!W5_I<`=kDY_a@m1q|3}>(U&)bmO~zZoUA4eIenIK;>eA;tB+kW^v83CO1ik3^iI~5irO+LA zF5$A)DPSbYSi8L^n!s4kRG#|FUg1u_1uX76G2`RsyFEeAw3Cm|+gZb9K04v}$49b{ zxD%%BSA4Yn3NP)Qi19P$HHE8K|9*k@Big6VRX+3P!rTQXEfk^%>^mzzqR!`=mrMaf zY^+nPjZ>Q&Cz|X3wD~Ec&uiHE<|ovUotgVO_x>BVTye!MIwrmwc6d7T4XwfLFzbaTv!8 zScPdmiwm#_Ru(zyyP_ zF5HGYvR$LW(colk8Wj0tc61a?j4{~)&c|{f+tnmaf~m&y;NsX%a>23gY=_dJbSHX2 z(swY?FplJ+25*8;x3H-i2AZB?Ko00RDJNz4bUd3dNOB>_k60Xi^IE2}BOvq*gDIeq zo>L;=C?%z!m{fU#AMP8CkCQ!_>HO3b`sq)Z(b4QAz%?D4431Kc$#B1X{gx~I`0{I= zPhRVscdZS7pTxgJgm-*SSLN)cO|v^&H`h0`v^3OjZr$l8`}Zn$|9*TWxWwJI#vNIW z{}qa>=Qz$Oce3_-_FCsIZ|zUH3`xyOqRs2<>oGH280hyqYuUbVxXMdddz-u0Im^D)_I%abbC?5ND1i5r?|Tn3g) z>F7(0rh>gftQO!DxSQYwv|+-IsvG!amZpH1iCD zHP=2C9POEoZo+62p3aSqjg91H@Fsxz@Ae%~ zFv)U4A?G2|c{byA4oeX_-}GBV%QynPO* zQ=1>zaF+qkIxfPrk~~nn?&}=43!2) za`w60X1qB!0k8Zfyamv|xqE!|fm`tE)qy~y1vdkwTF1N5MEB+>30c%vPT{HeSkFjr zwgb20_E=|ca9!9-Su64?)i91M^Jd7Jaor6@yfQh*{brIB{M8zg%HA}Ay+T(GQkI*-!{*AgW4 zDd3io(KB>1V8AJCsgTR0q4z}8M|KHhfR=R&87VEKd6G`5l6fg40;^i-!hEJlg6bv$ zjYPBFjD((0<0Pi3k!_PwVe#GE6dz3AYL0lwGKmF)gNQ`Y zi36W901crENfgqNz0uCF&i%98;0{J1Hnf61@X{8wz#yL2uo0ZdZMs z_wTK<^m`XLC3UmAymJ>UgjOUJMQYQ4*72L^9p_Fv!yR`rPODvhvz@V9S?6aUBkc?A zJDm$z+jBGL+_{VNe%wopj2cjerUu$PnJ32;WcN)tpZF&t!BGjXGzH5*ZXOmnW~2}m zrBcqMnu^9<2~K5{&XJ&rDv+~BrBE0(Rz*>ez{ZeLGQ7#|Sb`+Qt0|R4I(V8wE0Wj} zI`V4{Y726TENYc*zhy#EVrG)CPBAD?ou(X}&7iw<>{6oiC&iiwu@*0^d7?@rw*5ksSD!HK~+EEUIKafE=0Tbdi9N zM14Am{sw5}`5x&%WiXZOV$ei+A|-?NGu*Wcs_YeZ9apr!)V~~iWrIY_MD0XakEC*x za3!C>RZ^ix2uS3dhO;D+culwQRI(qU0a0M-Z>_{M0nR<_MOKLmn@EFg)aleD4V^+$ zN>_yt)x{3UV^V3nhT@bE5->^r6_V*p{Dr4Q?kUSl682?NHY9@*PNTlbDdZ+oKq95L zL{17Ma7c^58jELyEHxr^k^pCDCW@F0fm9@0Lo&fHkWF=+VfZJ;4Fwf#&vWa&m=YT( z&y+|>kAr|FlE|LBN@5i6?Bc>Q3ux6`s8S>$P$n29K|zApkD*mfDJRehYzTu{;K7h2 zaupDRlmRc~GCaRRACbc;wX5soB$4g;Zhl*BB_=?7q9ix5UJRN@B_S4f2)3W;-> z=vQoL73X4UUXp#3N>nz&vO`iyqLsp}?$Xof!8-S)xKyI7Mi!hxsie?+AmFvN_H$gw z`NGii*sH+YfMHICZZ$GL)u51>&u1Q^W~ z0@PY1iw6mu|FPl`rYI7zOU zAty3PNQnH)i0BpB{g99)xuYwtvY^=sr0Uf%T`i<%fu8ns zdnPK9?7n091ZxpcP!h%fh6gDEST|h4fdFu0Osc!J=?24V?0@G3VnTsr#N;rUO3ytG zcomvsM#SaXL5#OCr8a7*52X~oa{H#*m!wCy+q!@Tm`20kR@ROAyLeXrp%v0Zk_|$~ z5pY8hJ^x)JK#%3?h6`2wx$yU9~Otb{7 z#WI14LUw}X2ypJ?O88J*#1Re@-4Y!g;nMnWxs+fKjR(1nx|h1H?pX^M z66WYC@WVkn2U; zpsa*T^O~O(N%bzxim)v8SqKi3+@16-|LH@Z~LlexNt6(FJ!ZYLM#h+Vqu?CvD>|v zgNxB@I1(inum6CHO_nxUrUFRwcYUM4O79xOHuriOm;G(!#@>JoZq<=Y46%injt z#Nk($@5D=)*yY@dJMP)h(#N=*PSWfp&~s|q)X?T(d~A6GzLt@`!X0hIuPooev_Hwg zwH?s%>Kz=u=C!pi?O48}sh6QEmnbT7uF0gWw~pXr%|wf{sFVyl&^Y#IVE z8u2%os=3eG1KhMQ(v92EO>9eNSBuZ-^R{+QZuY;);_0!8jXL@+d+f;bKRkBiJ4=1e zr(fmjnwsnUciUflncdaArOroueZ*n*4SZ;3^W@g);xtxt3uj2G!txKC&ub2+-nj@6 zn#6G(EEjpGeQU?Q#>0I_Fmk?PGu+t3(+7Sk9mIRXJ30nqnYfiqC4juK#am)U3C z!nic0j0HsO5{W}35a;)X5Bl#O4$)HxJWo}w>pf_wuehq0aa9rMV-2hdQ?meRPmBz` z420&5lnH!R2o1My>evi|1r)!gqv^vn(j$bLM2Jyp5|%LG&i1`C&rr2WQnE-&7gqd4 z>Cy}ZSA=2k=CR^cykw#Ju)^-?f1$g`BfIhUjG>w|h^?eV9<93NgCPbiA5rCz^O*Aq z?vM5r&h1yP4KVE^+?G5OGP^SUCTdv6?Sx6T?GCjt2N!cwt(FjgZoyA~S*$S$)_<80=gCH)LJX}^`zOBS-k3j(_M zTZ~9|dZ{uZ0+85X_SaZ!=_Z)Pnk5?o`fv&J|B-wF?9$5ZKXN6ph;sHUx90x$NHH__ z1@8FKe*EasI`*v=p0GlDV<2iQ5sf>A~W`v-{#~tzCG3GaGsBefQi3kFDSV%mMI=Z-t zZc-DL6lf{3r5YZ1;DIZ?9tcnllmmP~=n)XL5@mf-8`mb3G%%qtG5ME&fBI=OJOx+TPW&vgLx(XIL?AL zBK(mjX~@7IDmhl2%V)BAoCf|d%Sz#j=F8X+7q&mTeH4-w;K#3LO9-lFzSI!<{b z6KBBVCudH8L#k|#{a5b#1+NTpH!S$bk2jq&xf>Ud?FWmyX@T?5@BhmicAvA5yLo|g znfl+jZ{OtH&E2wq9QJsayA{3_`$cZag3R6Yhuii$hd+MBMhl^X8~^$BVdvY>qjRqv zIeGhw_UAeKVcX{=&r3-rOB>br8q7Oi#n`^cz^`J49?@69tEGt>L_w4ER3L|Qme*dj zkyC(y{3}+hcyz@IgEz@0i+#R*KE7iToDlk<(zZ8PKl0|?}LFEv8J1tsPJT0z2{B-|jL*+EcQ1J6}a{4}NBHOf^K`aXx#rkPR5fi0*)&L;^d!N$QH@c|?>T0#T06CZM# zl~YY2EhwNd1QO*ZyCgzfNveE?Zu;bmEIRr#4wQ^S@>6gu#m8dNXd)`45<SER~ zvx7NU@8~bz=F)mvG7@@9iY5Wcf~2Z|Y7suMBoF}xB*SPv`<}(6RC9_NN!Aq!NyJx_ z{TT42!c|R_RHgJuoLG{-PB5v-*v%{_`SBXrDF7b?C?d)(HZ>?IC1b_)sw7F*sh#3_ zx&p81t|>F`brAsF{CVWMVARebC*I+Q#Q=IGzs|Z&3UyV7)I z^PoeOkb&|HFq1BVhnbHRQ$wODr{#>2!G@Aii+bJ|%o1-+28sjP=zas`Z}=ynF8A;N zfgCXEdhgjmv!D;D8E~U4gp1gu79~A;q5+s0DJ`ZkmVl=8I(EZ2D3xJcXAuZyVC;r} z+z>KFJ6zF4NkKGTtVGfwBc#;p_3;fM;A=1x1WV0YTGjx@*3jO;r;NS*J3})q*}92q zA6|TI*V^bRYyC{~WbYnrx4w6J*Pc8Yw6z~F zwzfd9T~hk7pW@s-nc|CJ?~S=|srNbtr}o$&xhYZ`X!e|+c8{rnAe|4Wd#?8nd$C{wzlr>c7L3n7n+B_ zxm_U)M;^%liy+O+S8JQ-p79m&SjN&34Od}?$XgvBz+1Y99#d08tMl}8D+Zp@o3`yQPle04pyup~Ad5z213(cc2$VNONkChH$$!Sy1QKI8&e7Dk*Md3nN zh$<%zW8r}qJ&Yxh?1ser4#Gbk#zMEleA3@aJDw8v&(of@)awURJJ5|gmEgPe0YY?5f2MkGA2sw|4=+utVEny3pCU@VSz)95>i z#Hb*w@eXX5*j@%mW=yz|`(VC4L_6$5Z@T75Q7j+6U&q~Z?XTJGp8g`0^Vu zeu>G&vQcoVB4C@x?IDgvAf@%|8`rO2PeMGpNFTQXa)LZ3h*(cV`GN~QFvu8&4mL3w z93Unq)-;sKFo0vCVS7gyszx>R^2^Nr=4S?{c1-OQpK9LPym^J**iqjx@Zgp;umlft z>)Tq_`x=zCX}nV*kA=i&=X6`6ziQ3{e#pq+K(F6vV95h6eP_@7hnE21w;Na@SA9-{ z7ffQ&e*+sA;;A@~e#MRy2SoGtz#qcSj2a+Hxke0{d-tUo*Ss5A$HT` z7l#o7~UeMQqjAIm=%|B?Y4KCCC~df zk5f~l_u;GYl|2vB{qIC5*53nE4tj(A#ZmvWY)}mi;ZgJx5{e1!7w;%M9Loz-)=q09DdI%)!7w1mnpi`Wb zR`jjtd$g}1QXi=grzAlj%L-PZxGA(Lw0Qtg?W|om7GB{EkDVii14my+tA%#M{ zOmCpCyEj0BkcvFmQfw`@8gbA#CSeRkpZMOycgMen(&HAqRj|4R9aa6s9^)FuqQRX# z4L!M@onyFW0^_|qdvaq9V>`#9qYXXGzHZh&YwgEsP5wizF4q3i$7{KLa^o zQRP*hB+;S!?|wSLkSr3FM`Q%`qYqR)@etL2ykcuIH$6h0c9<+ZPIa1V?>qTiM|+|` zAEp{z_|G4y8h0P23cbvXupfCSYn$6ky7W}li@5E0W|O=fy~XZmcb}`ez8zN54ea{q z*6lv~M)F+M5%;;O!4Ryclh0KhDGrVJY{h-9>dgx~w$6W^`b1Utirv~?0wkH32ZTZKmB!8A(1V2?>ehPCZRd4#cx#DuiLkt6n@RU=2`7cQ#!!O~}Z+o3J zoZKx2Qh|+pF_{*M)9KB43*H*v5}J+)p;Uk;hX#~xVoeKf)F0kF6Z|tbq8Idx-aXSi z)|egYAMPqNqtwM5o)jih;{mZ->XMOj8as(6q%px7*C+5KTIpQR?aFMQ*tj*J4H!K} zsIjNBuMaib8Ey=Zs>5pkY}aJpAaZ_OIaJuVacF0s8U%925`P zofTYA2=Q@Ymf6yhuRa( zxEZ%tt%Ds|W5}2^Qe(n69!Ii4OfrRTgq=h&YEZ;ekROCEpg2&NDMqN?Qh> z^0l$=baVJ1ISgVNf|2sC@}>l6tP7^!`SwB+gXjeNhBtVO)_O^(CqSRD!IyFVITR_4C6*hR|Ni&_X%#8mjFOXkQ6ADoPydE}t z)dct(Y=)eoCZ|f|ES`}!%9HTFQJ#_MxiUBBL`GCC2xyhl#o=OjuwOy_;ZUfr5FQ#T z3=a97B?^bh6L`q=a9^k}FjO2Y41qoKkiCqHr6N*_c$qLughkeQ29`D5XB2Tt39AEU zQWGuJ(o9RY#H;|?Rd$2FX!sQ`IE_0tZW$Wevhg{*AMXflY}weXHR3qBeVTP2W@#wn`U#h^SDCC_Ol=H}_D;0r8*l?|i}ZF61XG%rCdmVKN{q)Z~)(|-F#uVsPUPZGI*F)@ELZAUIgonj?jS3Oc zl$I6*dIsfe!_tYS8))#5zyT4s#*)dS!J9N^6UQ!EwrkQ%edROaO9Es#=&O;=7_{qP znJ;g8;*W>=y8Qh&LyaMz(^W{jDlu#{)EF8P_%{78bO1n&23070o4!2^1~kwR_%=Tl zJ$=F5es72sT+?%0Ce3czWjcW5AjjrZn)e0|w)~4StuB8n=oWElqAWV32wkRHXwm;5 z)Zg`}lmBe`$9<86zPay@{XTb9l)Hj23~zjHW@FbYfvsBtZ^A7cHV0l0yc6gT91NTe z6atq5Hv-=Wo&ghFRdJmS)b z+Kwo6A8*}0G~#+|_G#W?F0N3Vprs&n+>)G9$&vlvASY;Htff+_3T}@ysX(otn<~+$ zLZeD4<$;G9ji_M^7sbKs2Q08$4ICZe~iBy zUl|+VWFq{61xc+S=y^J-6p87~+S69ux|X9OC0smB=8sP$Y&O(e2$02m0sLDE7J&SO z{GePSC@)?j_guEJkSk;mhQST2<)UoJtJY*pX0>{>7Oh2`v#bE`EQx4Q`p_ca0@Z6l4S&Qe=gT51>z@7Xr(_7#K7iW4+wvN?idZCmJ znBE*?-+T%SyGvk(opskQqEZ zJzbxftxjGr%SKIi6C^^XF&~mssQI=;##8aA&Q4YO7g21@ja(f6Vq%J`4HRXD({SSm z^YeVHmYYVtAYHsro0XyDi{>G&C=pf_RnZjYP^P7U)&wi{IEeyZMLSDgTcjhfkcTDk zELu1%6d1^Ysxg6oEL7C36!9wp9+?=8L?-5!mZs+G^{LSj8RzDWOX^&voOc}CD@~@Y zgfniRD~wr3jZb37jaV$5aFK3jO9juWSe1MwUj^SLgmZ`0Bhh1NMbkAdJWL(1Lpx)e z^lMbRR=S?Mj>uK*O8hIMoOkKB-G+$-IK&rp?~F5QoiP*inM43im^#fp1SEaqkGlWH z`~DWgO<0Pq7@2rcz26k0&Ctg?4Yd&W48(v^g0Q2RF;&&H7||TGZ+UR9z_($d>AL9l z-FL*W}JaOVAQj`gj^u}lC^J210rabzn z<-8=ievGk>d3s7Q9kEN|3ZTIiz$59|O)GY_6h?z94BjH+wVi>^$@pK5&}viwc${Nk zU|?hbf-|;@&V%S{52vfcXaGr ziy!_35J(Wggb<1fH(`XMCW1(!aL_{+PCDtOkA4OiWQbu#7-NztW|(E31r}LinH5%9 zW1S5)*Feho5Ev935~^~Cg{vbXqZ~b5&cE3IJw5?eh(z@Oc${NkWME(b z;s*YJ_woETUm3WW7(n3K!|CcU`u}YP1}0UoI0plm0st^h3UmMfc${NkWME)o00KQG zhX1$!-)2%}U}QiAOaNR31QGxMc$__tJxhWC6onuB2fB!egQ@U3s>zFrNfAaO=AteR z;i5FOwK)_f+82}`gD7qeLJdkZ3C%)-n}d_~E1K#cArF^(;BwEo*8*5zj~G7k1TYEl zfFaxjv9m9g7KW4qCsD$j&}YMh8E-Ub@<@g|aj?ZtMNTPI5HCvx%(Yvjps10`P?C*P zDN~&N^LNFVFFJhkE~XsIr9>Pn3%M^vmA3A=P}(i7 z9nKvMy5y*n#ly8o(c((i-BZ)fp^~D!Y8EF#Ql2r&`t3+M$@d>S+&2~g002+`0F(d# zc$|%oJr06E6oiK#NsKl&#&Qc2D+sKOasWz8Z-B4~0fICf!3%f~kKqA4h6k{7z-OX~ zg`2$W_hx6`&H|X?3=93TFu_9Dh6gR|V1<*gOV3q!M7|4qm{>D9Eq6?1KHTcr=KQ6w zgB`ZQEYUBj$y-cNp+r0E4J|1YzY!qh z9

HiFi Glyphs

-

This font was created for use inHigh Fidelity

+

This font was created for use in High Fidelity

CSS mapping

  • @@ -87,10 +87,6 @@
  • -
  • -
    - -
  • @@ -567,6 +563,46 @@
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +

Character mapping

    @@ -642,10 +678,6 @@
    -
  • -
    - -
  • @@ -1122,6 +1154,46 @@
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +
  • +
  • +
    + +