From 23ade70783a17ed6822d13e7a910544de2ef181f Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Tue, 21 Nov 2017 16:36:07 -0800 Subject: [PATCH] [doc] Optimize HarfBuzz.png; add HarfBuzz.svg SVG is unused. Just keeping it here. --- docs/HarfBuzz.png | Bin 14203 -> 8814 bytes docs/HarfBuzz.svg | 277 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 277 insertions(+) create mode 100644 docs/HarfBuzz.svg diff --git a/docs/HarfBuzz.png b/docs/HarfBuzz.png index ca72e9273101d1c6df686c1c61bfafd71f011dc6..771d955d01fc9cfe4511107137237eab35763de2 100644 GIT binary patch literal 8814 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 NFkKU!ihHil{tx~+dF=oI diff --git a/docs/HarfBuzz.svg b/docs/HarfBuzz.svg new file mode 100644 index 000000000..4e2df2541 --- /dev/null +++ b/docs/HarfBuzz.svg @@ -0,0 +1,277 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +