<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>223861</bug_id>
          
          <creation_ts>2021-03-28 20:02:04 -0700</creation_ts>
          <short_desc>[WinCairo] Custom fonts don&apos;t work in GPU process mode</short_desc>
          <delta_ts>2021-03-29 13:48:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>annulen</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pvollan</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1744675</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-03-28 20:02:04 -0700</bug_when>
    <thetext>[WinCairo] Custom fonts don&apos;t work in GPU process mode

The following some canvas tests are failing in WinCairo WebKit2 layout tests.

  canvas/philip/tests/2d.text.draw.align.center.html [ Failure ]
  canvas/philip/tests/2d.text.draw.align.end.ltr.html [ Failure ]
  canvas/philip/tests/2d.text.draw.align.end.rtl.html [ Failure ]
  canvas/philip/tests/2d.text.draw.align.left.html [ Failure ]
  canvas/philip/tests/2d.text.draw.align.right.html [ Failure ]
  canvas/philip/tests/2d.text.draw.align.start.ltr.html [ Failure ]
  canvas/philip/tests/2d.text.draw.align.start.rtl.html [ Failure ]
  canvas/philip/tests/2d.text.draw.baseline.alphabetic.html [ Failure ]
  canvas/philip/tests/2d.text.draw.fill.maxWidth.bound.html [ Failure ]
  canvas/philip/tests/2d.text.draw.fontface.html [ Failure ]
  canvas/philip/tests/2d.text.draw.fontface.notinpage.html [ Failure ]
  canvas/philip/tests/2d.text.draw.fontface.repeat.html [ Failure ]
  canvas/philip/tests/2d.text.draw.space.basic.html [ Failure ]
  canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html [ Failure ]

See also:
  Bug 223500 – [WinCairo] ASSERTION FAILED: isMainThread() in GPU process for some canvas/philip/tests tests
  Bug 222835 – [GPUP] Enable 2D Canvas in layout tests by default</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744676</commentid>
    <comment_count>1</comment_count>
      <attachid>424520</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-03-28 20:18:12 -0700</bug_when>
    <thetext>Created attachment 424520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744699</commentid>
    <comment_count>2</comment_count>
      <attachid>424529</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-03-28 23:48:02 -0700</bug_when>
    <thetext>Created attachment 424529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744850</commentid>
    <comment_count>3</comment_count>
      <attachid>424529</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-03-29 13:05:59 -0700</bug_when>
    <thetext>Comment on attachment 424529
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=424529&amp;action=review

&gt; Source/WebCore/platform/graphics/opentype/FontMemoryResource.h:55
&gt; +    HANDLE m_fontResourceHandle;

Do you have plans to make this class cross platform?

If not maybe it should be in a win directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744879</commentid>
    <comment_count>4</comment_count>
      <attachid>424529</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-03-29 13:29:40 -0700</bug_when>
    <thetext>Comment on attachment 424529
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=424529&amp;action=review

Thank you very much.

&gt;&gt; Source/WebCore/platform/graphics/opentype/FontMemoryResource.h:55
&gt;&gt; +    HANDLE m_fontResourceHandle;
&gt; 
&gt; Do you have plans to make this class cross platform?
&gt; 
&gt; If not maybe it should be in a win directory.

Yes, that mattered to me. However, I put it in the &apos;opentype&apos; directory.
Because OpenTypeUtilities.{h, cpp} also Windows specific and FontMemoryResource are used mainly by them.
If I put FontMemoryResource.h in &apos;win&apos; directory, source files in &apos;win&apos; directory include OpenTypeUtilities.h and it includes FontMemoryResource.h in &apos;win&apos; directory.
This bi-directional inclusion doesn&apos;t make me take the approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744882</commentid>
    <comment_count>5</comment_count>
      <attachid>424529</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-03-29 13:32:42 -0700</bug_when>
    <thetext>Comment on attachment 424529
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=424529&amp;action=review

&gt;&gt;&gt; Source/WebCore/platform/graphics/opentype/FontMemoryResource.h:55
&gt;&gt;&gt; +    HANDLE m_fontResourceHandle;
&gt;&gt; 
&gt;&gt; Do you have plans to make this class cross platform?
&gt;&gt; 
&gt;&gt; If not maybe it should be in a win directory.
&gt; 
&gt; Yes, that mattered to me. However, I put it in the &apos;opentype&apos; directory.
&gt; Because OpenTypeUtilities.{h, cpp} also Windows specific and FontMemoryResource are used mainly by them.
&gt; If I put FontMemoryResource.h in &apos;win&apos; directory, source files in &apos;win&apos; directory include OpenTypeUtilities.h and it includes FontMemoryResource.h in &apos;win&apos; directory.
&gt; This bi-directional inclusion doesn&apos;t make me take the approach.

I don&apos;t have the plan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744890</commentid>
    <comment_count>6</comment_count>
      <attachid>424529</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-03-29 13:47:17 -0700</bug_when>
    <thetext>Comment on attachment 424529
Patch

Clearing flags on attachment: 424529

Committed r275174 (235877@main): &lt;https://commits.webkit.org/235877@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744891</commentid>
    <comment_count>7</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-03-29 13:47:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744893</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-29 13:48:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/75971238&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424520</attachid>
            <date>2021-03-28 20:18:12 -0700</date>
            <delta_ts>2021-03-28 23:46:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223861-20210329121811.patch</filename>
            <type>text/plain</type>
            <size>18826</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTFkZGNjOTQyYmQ5MWMw
YTRmMTc2NzYxNThiNmFhMWM0Y2YzNGVjMS4uNDZkMzA2OWYxNTVhZTVlMWYwZDBhYjRiYjAwY2Nm
NWMzODVlNDIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTAzLTI4ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5DYWly
b10gQ3VzdG9tIGZvbnRzIGRvbid0IHdvcmsgaW4gR1BVIHByb2Nlc3MgbW9kZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzODYxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VzdG9tIGZvbnRzIGRpZG4n
dCB3b3JrIGluIEdQVSBwcm9jZXNzIG1vZGUgb2YgV2luQ2Fpcm8gcG9ydAorICAgICAgICBiZWNh
dXNlIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgd2FzIGRlc3RydWN0ZWQgc29vbi4gSW4gbm9uLUdQ
VQorICAgICAgICBwcm9jZXNzIG1vZGUsIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgaXMgcmV0YWlu
ZWQgYnkgQ2FjaGVkRm9udC4gSW4KKyAgICAgICAgR1BVIHByb2Nlc3MgbW9kZSwgdGhlcmUgaXMg
bm8gQ2FjaGVkRm9udC4gU28sIHRoZSBmb250IHJlc291cmNlCisgICAgICAgIGhhbmRsZSBzaG91
bGQgYmUgcmVmLWNvdW50ZWQgYW5kIHJldGFpbmVkIGJ5IEZvbnRQbGF0Zm9ybURhdGEuCisKKyAg
ICAgICAgQWRkZWQgYSBuZXcgY2xhc3MgRm9udE1lbW9yeVJlc291cmNlIHRvIHJlZi1jb3VudCB0
aGUgZm9udAorICAgICAgICByZXNvdXJjZSBoYW5kbGUuIEFkZGVkIGEgbmV3IG1lbWJlciBvZiBS
ZWY8Rm9udE1lbW9yeVJlc291cmNlPiB0bworICAgICAgICBGb250UGxhdGZvcm1EYXRhOjpDcmVh
dGlvbkRhdGEgc3RydWN0LgorCisgICAgICAgIENvbnZlcnRlZCBieSBleGlzdGluZyBjYW52YXMg
Y3VzdG9tIGZvbnQgdGVzdHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvRm9udE1lbW9yeVJlc291cmNlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpGb250TWVtb3J5UmVzb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpG
b250TWVtb3J5UmVzb3VyY2U6On5Gb250TWVtb3J5UmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udE1lbW9yeVJlc291cmNlOjpGb250TWVtb3J5UmVzb3VyY2UpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVXRpbGl0aWVzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlbmFtZUFuZEFjdGl2YXRlRm9udCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmb3JtRGF0
YSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
OkZvbnRDdXN0b21QbGF0Zm9ybURhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3Jt
RGF0YVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxh
dGZvcm1EYXRhKToKKwogMjAyMS0wMy0yOCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFICYgRU5BQkxFX0lOREVY
RURfREFUQUJBU0VfSU5fV09SS0VSUywgaXQgc2VlbXMgbGlrZSBpdCBpcyBvbiBmb3IgYWxsIHBv
cnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGE0N2FhYjZiOGEyZDRlNDJhY2U2M2ZiYjJlMTZlYjYyN2Q1ZDZjYzMu
LjM3Mzg2NjNjNjJmZDg1MjA2N2VmMzYxMzA3ZWI3OTBlNjkxNWM1MzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMjEtMDMtMjggIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlA
c29ueS5jb20+CisKKyAgICAgICAgW1dpbkNhaXJvXSBDdXN0b20gZm9udHMgZG9uJ3Qgd29yayBp
biBHUFUgcHJvY2VzcyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjM4NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNoYXJlZC93aW4vV2ViQ29yZUFyZ3VtZW50Q29kZXJzV2luLmNwcDoKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEp
OgorCiAyMDIxLTAzLTI4ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgRU5BQkxFX0lOREVYRURfREFUQUJBU0UgJiBFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RV9JTl9XT1JLRVJTLCBpdCBzZWVtcyBsaWtlIGl0IGlzIG9uIGZvciBhbGwgcG9ydHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1XaW4uY21ha2UKaW5kZXggZWY2ZDQzMGJlZDJjOGEwYjk0MTc2YzVkZWYyMTE5MWM1
OGUwOGQxOS4uZDA4MzA5OTg0ZmFmMTVlYWM2Njk0ZWM2MDRmM2U0NTlmZWY5NzUyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTEwOCw2ICsxMDgsOCBAQCBsaXN0KEFQUEVORCBXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAgIHBhZ2Uvd2luL0ZyYW1lV2luLmgK
IAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL0ZvbnRNZW1vcnlSZXNvdXJjZS5oCisK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRElCUGl4ZWxEYXRhLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAppbmRleCBkMzY2OTExYWZjM2QyMzkx
NjM1MzNmNjJhMjdmNDljODUyYTNjZjlmLi43N2FkYzEzNzg3NjdiNGNmN2FlNTNmNTk5OTE3ZDAz
MjViOGQwNWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250UGxhdGZvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udFBsYXRmb3JtRGF0YS5oCkBAIC0zMiw2ICszMiw3IEBACiAKICNpZiBQTEFURk9STShXSU4p
CiAjaW5jbHVkZSAiQ09NUHRyLmgiCisjaW5jbHVkZSAiRm9udE1lbW9yeVJlc291cmNlLmgiCiAj
aW5jbHVkZSAiU2hhcmVkR0RJT2JqZWN0LmgiCiAjZW5kaWYKIApAQCAtMTE0LDcgKzExNSw3IEBA
IHB1YmxpYzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQotICAgIEZvbnRQbGF0Zm9ybURh
dGEoR0RJT2JqZWN0PEhGT05UPiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29s
IHN5bnRoZXRpY09ibGlxdWUsIGJvb2wgdXNlR0RJKTsKKyAgICBGb250UGxhdGZvcm1EYXRhKEdE
SU9iamVjdDxIRk9OVD4sIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50
aGV0aWNPYmxpcXVlLCBib29sIHVzZUdESSwgQ3JlYXRpb25EYXRhKiA9IG51bGxwdHIpOwogI2lm
IFVTRShDT1JFX1RFWFQpCiAgICAgRm9udFBsYXRmb3JtRGF0YShHRElPYmplY3Q8SEZPTlQ+LCBD
VEZvbnRSZWYsIENHRm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29s
IHN5bnRoZXRpY09ibGlxdWUsIGJvb2wgdXNlR0RJKTsKICNlbmRpZgpAQCAtMjMwLDYgKzIzMSw5
IEBAIHB1YmxpYzoKICAgICBzdHJ1Y3QgQ3JlYXRpb25EYXRhIHsKICAgICAgICAgUmVmPFNoYXJl
ZEJ1ZmZlcj4gZm9udEZhY2VEYXRhOwogICAgICAgICBTdHJpbmcgaXRlbUluQ29sbGVjdGlvbjsK
KyNpZiBQTEFURk9STShXSU4pCisgICAgICAgIFJlZjxGb250TWVtb3J5UmVzb3VyY2U+IG1fZm9u
dFJlc291cmNlOworI2VuZGlmCiAgICAgfTsKIAogICAgIGNvbnN0IE9wdGlvbmFsPENyZWF0aW9u
RGF0YT4mIGNyZWF0aW9uRGF0YSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9Gb250TWVtb3J5UmVzb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL0ZvbnRNZW1vcnlSZXNvdXJjZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmIzMGQyZGUwYzgxMjYyZDZiODU1OTYyMjU2N2VjMDNjYTdlMzRhNDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9G
b250TWVtb3J5UmVzb3VyY2UuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIE9TKFdJ
TkRPV1MpCisKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGb250TWVtb3J5UmVzb3VyY2UgOiBw
dWJsaWMgUmVmQ291bnRlZDxGb250TWVtb3J5UmVzb3VyY2U+IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPEZvbnRNZW1vcnlSZXNvdXJjZT4gY3JlYXRlKEhBTkRMRSBoYW5kbGUpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGb250TWVtb3J5UmVzb3VyY2UoaGFuZGxlKSk7
CisgICAgfQorCisgICAgfkZvbnRNZW1vcnlSZXNvdXJjZSgpCisgICAgeworICAgICAgICBSZW1v
dmVGb250TWVtUmVzb3VyY2VFeChtX2ZvbnRSZXNvdXJjZUhhbmRsZSk7CisgICAgfQorICAgIAor
cHJpdmF0ZToKKyAgICBleHBsaWNpdCBGb250TWVtb3J5UmVzb3VyY2UoSEFORExFIGhhbmRsZSkK
KyAgICAgICAgOiBtX2ZvbnRSZXNvdXJjZUhhbmRsZShoYW5kbGUpCisgICAgeworICAgICAgICBB
U1NFUlQoaGFuZGxlKTsKKyAgICB9CisKKyAgICBIQU5ETEUgbV9mb250UmVzb3VyY2VIYW5kbGU7
Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gT1MoV0lORE9X
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBl
L09wZW5UeXBlVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW50eXBlL09wZW5UeXBlVXRpbGl0aWVzLmNwcAppbmRleCAxMTVjODIzYzEwY2Y3ZTI5YjZh
ZDg0YjNhZWVkZGIxZWMxYjdmMzE2Li5lYTVjNDEzYzE5YzU2OWRlZWYzNDAzZTQyYTdkYTdiOTI2
MWZlYjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
dHlwZS9PcGVuVHlwZVV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVVdGlsaXRpZXMuY3BwCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiT3BlblR5cGVVdGlsaXRpZXMuaCIKIAor
I2luY2x1ZGUgIkZvbnRNZW1vcnlSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgogCiAjaWYgVVNFKERJUkVDVDJEKQpAQCAtNDE0LDE4ICs0MTUsMTggQEAgYm9vbCByZW5hbWVG
b250KGNvbnN0IFNoYXJlZEJ1ZmZlciYgZm9udERhdGEsIGNvbnN0IFN0cmluZyYgZm9udE5hbWUs
IFZlY3RvcjxjaGEKIH0KIAogLy8gUmVuYW1lIHRoZSBmb250IGFuZCBpbnN0YWxsIHRoZSBuZXcg
Zm9udCBkYXRhIGludG8gdGhlIHN5c3RlbQotSEFORExFIHJlbmFtZUFuZEFjdGl2YXRlRm9udChj
b25zdCBTaGFyZWRCdWZmZXImIGZvbnREYXRhLCBjb25zdCBTdHJpbmcmIGZvbnROYW1lKQorUmVm
UHRyPEZvbnRNZW1vcnlSZXNvdXJjZT4gcmVuYW1lQW5kQWN0aXZhdGVGb250KGNvbnN0IFNoYXJl
ZEJ1ZmZlciYgZm9udERhdGEsIGNvbnN0IFN0cmluZyYgZm9udE5hbWUpCiB7CiAgICAgVmVjdG9y
PGNoYXI+IHJld3JpdHRlbkZvbnREYXRhOwogICAgIGlmICghcmVuYW1lRm9udChmb250RGF0YSwg
Zm9udE5hbWUsIHJld3JpdHRlbkZvbnREYXRhKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHJldHVybiB7IH07CiAKICAgICBEV09SRCBudW1Gb250cyA9IDA7CiAgICAgSEFORExFIGZvbnRI
YW5kbGUgPSBBZGRGb250TWVtUmVzb3VyY2VFeChyZXdyaXR0ZW5Gb250RGF0YS5kYXRhKCksIHJl
d3JpdHRlbkZvbnREYXRhLnNpemUoKSwgMCwgJm51bUZvbnRzKTsKIAogICAgIGlmIChmb250SGFu
ZGxlICYmIG51bUZvbnRzIDwgMSkgewogICAgICAgICBSZW1vdmVGb250TWVtUmVzb3VyY2VFeChm
b250SGFuZGxlKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiB7IH07CiAgICAg
fQogCiAjaWYgVVNFKERJUkVDVDJEKQpAQCAtNDMzLDcgKzQzNCw3IEBAIEhBTkRMRSByZW5hbWVB
bmRBY3RpdmF0ZUZvbnQoY29uc3QgU2hhcmVkQnVmZmVyJiBmb250RGF0YSwgY29uc3QgU3RyaW5n
JiBmb250TmFtCiAgICAgQVNTRVJUKFNVQ0NFRURFRChocikpOwogI2VuZGlmCiAKLSAgICByZXR1
cm4gZm9udEhhbmRsZTsKKyAgICByZXR1cm4gRm9udE1lbW9yeVJlc291cmNlOjpjcmVhdGUoZm9u
dEhhbmRsZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW50eXBlL09wZW5UeXBlVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVV0aWxpdGllcy5oCmluZGV4IDgzMmE0YTg1
ZDYyMjFmYzVmMDRiNjAzMjM5NDA2OGI5YzYyYTFmMzUuLmRkMjc2OTJjYTVkM2ZlNmNmMWUxYzI3
ZDcyNTJiY2M0OGM1ZmU4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW50eXBlL09wZW5UeXBlVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVVdGlsaXRpZXMuaApAQCAtMjksMTIg
KzI5LDE0IEBACiAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEJpZ0VuZGlhblVTaG9ydDsKIHN0
cnVjdCBFT1RQcmVmaXg7CitjbGFzcyBGb250TWVtb3J5UmVzb3VyY2U7CiBjbGFzcyBTaGFyZWRC
dWZmZXI7CiAKIHN0cnVjdCBFT1RIZWFkZXIgewpAQCAtNTQsNyArNTYsNyBAQCBwcml2YXRlOgog
CiBib29sIGdldEVPVEhlYWRlcihTaGFyZWRCdWZmZXIqIGZvbnREYXRhLCBFT1RIZWFkZXImIGVv
dEhlYWRlciwgc2l6ZV90JiBvdmVybGF5RHN0LCBzaXplX3QmIG92ZXJsYXlTcmMsIHNpemVfdCYg
b3ZlcmxheUxlbmd0aCk7CiBib29sIHJlbmFtZUZvbnQoY29uc3QgU2hhcmVkQnVmZmVyJiwgY29u
c3QgU3RyaW5nJiwgVmVjdG9yPGNoYXI+Jik7Ci1IQU5ETEUgcmVuYW1lQW5kQWN0aXZhdGVGb250
KGNvbnN0IFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYpOworUmVmUHRyPEZvbnRNZW1vcnlS
ZXNvdXJjZT4gcmVuYW1lQW5kQWN0aXZhdGVGb250KGNvbnN0IFNoYXJlZEJ1ZmZlciYsIGNvbnN0
IFN0cmluZyYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmNwcAppbmRleCBjY2UxNjdhZTMzMDgyYzJmOWQwYmM0OTQ4Njc2YmU3OTM0ZTI4YWRj
Li5jMTRiMWFlZDlmYTYyNzdhMmQ5Yzk4NzRlNzE2YmJmYWM5MTRmMjQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5oIgogCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCisjaW5jbHVk
ZSAiRm9udE1lbW9yeVJlc291cmNlLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgog
I2luY2x1ZGUgIk9wZW5UeXBlVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgi
CkBAIC00MCwxOCArNDEsMjAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpCitGb250Q3VzdG9tUGxhdGZv
cm1EYXRhOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgRm9udFBs
YXRmb3JtRGF0YTo6Q3JlYXRpb25EYXRhJiYgY3JlYXRpb25EYXRhKQorICAgIDogbmFtZShuYW1l
KQorICAgICwgY3JlYXRpb25EYXRhKFdURk1vdmUoY3JlYXRpb25EYXRhKSkKIHsKLSAgICBpZiAo
Zm9udFJlZmVyZW5jZSkKLSAgICAgICAgUmVtb3ZlRm9udE1lbVJlc291cmNlRXgoZm9udFJlZmVy
ZW5jZSk7CiB9CiAKK0ZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhKCkgPSBkZWZhdWx0OworCiBGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE6OmZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRp
b24sIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmLCBG
b250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzKQogewogICAgIGludCBzaXplID0gZm9u
dERlc2NyaXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCk7CiAgICAgRm9udFJlbmRlcmluZ01vZGUg
cmVuZGVyaW5nTW9kZSA9IGZvbnREZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCk7CiAKLSAgICBB
U1NFUlQoZm9udFJlZmVyZW5jZSk7CisgICAgQVNTRVJUKGZvbnRSZXNvdXJjZSk7CiAKICAgICBh
dXRvIGZhY2VOYW1lID0gbmFtZS5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpOwogICAg
IGlmIChmYWNlTmFtZS5zaXplKCkgPiBMRl9GQUNFU0laRSkgewpAQCAtMTA3LDEyICsxMTAsMTEg
QEAgc3RhdGljIFN0cmluZyBjcmVhdGVVbmlxdWVGb250TmFtZSgpCiBzdGQ6OnVuaXF1ZV9wdHI8
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFy
ZWRCdWZmZXImIGJ1ZmZlciwgY29uc3QgU3RyaW5nJiBpdGVtSW5Db2xsZWN0aW9uKQogewogICAg
IFN0cmluZyBmb250TmFtZSA9IGNyZWF0ZVVuaXF1ZUZvbnROYW1lKCk7Ci0gICAgSEFORExFIGZv
bnRSZWZlcmVuY2U7Ci0gICAgZm9udFJlZmVyZW5jZSA9IHJlbmFtZUFuZEFjdGl2YXRlRm9udChi
dWZmZXIsIGZvbnROYW1lKTsKLSAgICBpZiAoIWZvbnRSZWZlcmVuY2UpCisgICAgYXV0byBmb250
UmVzb3VyY2UgPSByZW5hbWVBbmRBY3RpdmF0ZUZvbnQoYnVmZmVyLCBmb250TmFtZSk7CisgICAg
aWYgKCFmb250UmVzb3VyY2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIEZvbnRQbGF0
Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSBjcmVhdGlvbkRhdGEgPSB7IGJ1ZmZlciwgaXRlbUluQ29s
bGVjdGlvbiB9OwotICAgIGF1dG8gcmVzdWx0ID0gbWFrZVVuaXF1ZTxGb250Q3VzdG9tUGxhdGZv
cm1EYXRhPihmb250UmVmZXJlbmNlLCBmb250TmFtZSwgV1RGTW92ZShjcmVhdGlvbkRhdGEpKTsK
KyAgICBGb250UGxhdGZvcm1EYXRhOjpDcmVhdGlvbkRhdGEgY3JlYXRpb25EYXRhID0geyBidWZm
ZXIsIGl0ZW1JbkNvbGxlY3Rpb24sIGZvbnRSZXNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpIH07Cisg
ICAgYXV0byByZXN1bHQgPSBtYWtlVW5pcXVlPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+KGZvbnRO
YW1lLCBXVEZNb3ZlKGNyZWF0aW9uRGF0YSkpOwogI2lmIFVTRShDT1JFX1RFWFQpCiAgICAgcmVz
dWx0LT5mb250RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250TWFuYWdlckNyZWF0ZUZvbnREZXNj
cmlwdG9yRnJvbURhdGEoYnVmZmVyLmNyZWF0ZUNGRGF0YSgpLmdldCgpKSk7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oCmluZGV4IDU0Yjk2NDAxY2ZhZTVlN2IxNzdlZDAzNzgyODlm
MGViMmVmOWJmNTguLmE3ZWYzOGZkMmE4NzkxYzAzOGVkZTdhZTQxMmU1NGNiMjRjZTZiYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPHdp
bmRvd3MuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5
YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogI2lmIFVTRShDT1JFX1RFWFQpCkBAIC0zNyw2ICszOCw3IEBAIHR5cGVkZWYgc3Ry
dWN0IENHRm9udCogQ0dGb250UmVmOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGb250
RGVzY3JpcHRpb247CitjbGFzcyBGb250TWVtb3J5UmVzb3VyY2U7CiBjbGFzcyBTaGFyZWRCdWZm
ZXI7CiBzdHJ1Y3QgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllczsKIHN0cnVjdCBG
b250VmFyaWFudFNldHRpbmdzOwpAQCAtNDgsMjAgKzUwLDEzIEBAIHN0cnVjdCBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShGb250Q3VzdG9tUGxhdGZvcm1EYXRhKTsKIHB1YmxpYzoKLSAgICBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhKEhBTkRMRSBmb250UmVmZXJlbmNlLCBjb25zdCBTdHJpbmcmIG5h
bWUsIEZvbnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSYmIGNyZWF0aW9uRGF0YSkKLSAgICAg
ICAgOiBmb250UmVmZXJlbmNlKGZvbnRSZWZlcmVuY2UpCi0gICAgICAgICwgbmFtZShuYW1lKQot
ICAgICAgICAsIGNyZWF0aW9uRGF0YShXVEZNb3ZlKGNyZWF0aW9uRGF0YSkpCi0gICAgewotICAg
IH0KLQorICAgIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBGb250
UGxhdGZvcm1EYXRhOjpDcmVhdGlvbkRhdGEmJik7CiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURh
dGEoKTsKIAogICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250
RGVzY3JpcHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNl
dHRpbmdzJiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyk7CiAKICAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIAotICAgIEhBTkRMRSBmb250
UmVmZXJlbmNlOwogICAgIFN0cmluZyBuYW1lOwogI2lmIFVTRShDT1JFX1RFWFQpCiAgICAgUmV0
YWluUHRyPENURm9udERlc2NyaXB0b3JSZWY+IGZvbnREZXNjcmlwdG9yOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGFDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1
c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcAppbmRleCBlYzQzMGUzNDMwZTBlMDljZTI4OGEwOWJk
YjM4ZTQ5ZTI0YjY5ZDc1Li4xZTRmYzJkNTRkZTFlOGRkN2VlNmZhZjYwZjVlNTBkMDM2ODc4MTdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1
c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcApAQCAtMjIsNiArMjIs
NyBAQAogI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCIKIAogI2luY2x1ZGUgIkZv
bnREZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIkZvbnRNZW1vcnlSZXNvdXJjZS5oIgogI2luY2x1
ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJPcGVuVHlwZVV0aWxpdGllcy5oIgog
I2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtMzIsMTIgKzMzLDE0IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0Zm9y
bURhdGEoKQorRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YShj
b25zdCBTdHJpbmcmIG5hbWUsIEZvbnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSYmIGNyZWF0
aW9uRGF0YSkKKyAgICA6IG5hbWUobmFtZSkKKyAgICAsIGNyZWF0aW9uRGF0YShXVEZNb3ZlKGNy
ZWF0aW9uRGF0YSkpCiB7Ci0gICAgaWYgKGZvbnRSZWZlcmVuY2UpCi0gICAgICAgIFJlbW92ZUZv
bnRNZW1SZXNvdXJjZUV4KGZvbnRSZWZlcmVuY2UpOwogfQogCitGb250Q3VzdG9tUGxhdGZvcm1E
YXRhOjp+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpID0gZGVmYXVsdDsKKwogRm9udFBsYXRmb3Jt
RGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25z
dCBGb250RmVhdHVyZVNldHRpbmdzJiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGll
cykKIHsKICAgICBpbnQgc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgp
OwpAQCAtODYsMTMgKzg5LDEzIEBAIHN0YXRpYyBTdHJpbmcgY3JlYXRlVW5pcXVlRm9udE5hbWUo
KQogc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0
b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyJiBidWZmZXIsIGNvbnN0IFN0cmluZyYgaXRlbUlu
Q29sbGVjdGlvbikKIHsKICAgICBTdHJpbmcgZm9udE5hbWUgPSBjcmVhdGVVbmlxdWVGb250TmFt
ZSgpOwotICAgIEhBTkRMRSBmb250UmVmZXJlbmNlID0gcmVuYW1lQW5kQWN0aXZhdGVGb250KGJ1
ZmZlciwgZm9udE5hbWUpOworICAgIGF1dG8gZm9udFJlc291cmNlID0gcmVuYW1lQW5kQWN0aXZh
dGVGb250KGJ1ZmZlciwgZm9udE5hbWUpOwogCi0gICAgaWYgKCFmb250UmVmZXJlbmNlKQorICAg
IGlmICghZm9udFJlc291cmNlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIEZvbnRQ
bGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSBjcmVhdGlvbkRhdGEgPSB7IGJ1ZmZlciwgaXRlbUlu
Q29sbGVjdGlvbiB9OwotICAgIHJldHVybiBtYWtlVW5pcXVlPEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE+KGZvbnRSZWZlcmVuY2UsIGZvbnROYW1lLCBXVEZNb3ZlKGNyZWF0aW9uRGF0YSkpOworICAg
IEZvbnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSBjcmVhdGlvbkRhdGEgPSB7IGJ1ZmZlciwg
aXRlbUluQ29sbGVjdGlvbiwgZm9udFJlc291cmNlLnJlbGVhc2VOb25OdWxsKCkgfTsKKyAgICBy
ZXR1cm4gbWFrZVVuaXF1ZTxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPihmb250TmFtZSwgV1RGTW92
ZShjcmVhdGlvbkRhdGEpKTsKIH0KIAogYm9vbCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpzdXBw
b3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmIGZvcm1hdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcApp
bmRleCAxYjU1NDQwNGQ0YmZkYWQwMzEzMjA0ZWQzZDA4Yzc5YmJhZGViZmRlLi4wYzBjMTM3MjAz
ZGYzNmNmNTc1NWYxMmY0OWI5NTYyMzYyZjI0YzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YVdpbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFXaW4uY3Bw
CkBAIC00MSwxMyArNDEsMTIgQEAgdXNpbmcgc3RkOjptaW47CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShHRElPYmplY3Q8SEZPTlQ+
IGZvbnQsIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBib29sIHVzZUdESSkK
LSAgICA6IG1fZm9udChTaGFyZWRHRElPYmplY3Q8SEZPTlQ+OjpjcmVhdGUoV1RGTW92ZShmb250
KSkpCi0gICAgLCBtX3NpemUoc2l6ZSkKLSAgICAsIG1fc3ludGhldGljQm9sZChib2xkKQotICAg
ICwgbV9zeW50aGV0aWNPYmxpcXVlKG9ibGlxdWUpCi0gICAgLCBtX3VzZUdESSh1c2VHREkpCitG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKEdESU9iamVjdDxIRk9OVD4gZm9udCwg
ZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUsIGJvb2wgdXNlR0RJLCBDcmVhdGlv
bkRhdGEqIGNyZWF0aW9uRGF0YSkKKyAgICA6IEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgYm9sZCwg
b2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uOjpIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50OjpS
ZWd1bGFyV2lkdGgsIFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRlcmluZywgY3JlYXRp
b25EYXRhKQogeworICAgIG1fZm9udCA9IFNoYXJlZEdESU9iamVjdDxIRk9OVD46OmNyZWF0ZShX
VEZNb3ZlKGZvbnQpKTsKKyAgICBtX3VzZUdESSA9IHVzZUdESTsKKwogICAgIEhXbmREQyBoZGMo
MCk7CiAgICAgU2F2ZURDKGhkYyk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC93aW4vV2ViQ29yZUFyZ3VtZW50Q29kZXJzV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL3dpbi9XZWJDb3JlQXJndW1lbnRDb2RlcnNXaW4uY3BwCmluZGV4IGUxOTU0NTI1MTk1ZjMy
MTdhZDdhOTJiOWM1NGU4NzJlMWEyNDY3NTMuLmJkMTkwODA2NmJkMTI1ZWQ4MTBhY2QwMTdiM2Rj
MWM2NDc5ZWZlMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dpbi9XZWJDb3Jl
QXJndW1lbnRDb2RlcnNXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dpbi9XZWJD
b3JlQXJndW1lbnRDb2RlcnNXaW4uY3BwCkBAIC0xMDQsNiArMTA0LDcgQEAgT3B0aW9uYWw8Rm9u
dFBsYXRmb3JtRGF0YT4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURh
dGEoRGVjb2RlciYKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBmb250Q3VzdG9tUGxhdGZvcm1EYXRhOwor
ICAgIEZvbnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSogY3JlYXRpb25EYXRhID0gbnVsbHB0
cjsKIAogICAgIGlmIChpbmNsdWRlc0NyZWF0aW9uRGF0YS52YWx1ZSgpKSB7CiAgICAgICAgIE9w
dGlvbmFsPFJlZjxTaGFyZWRCdWZmZXI+PiBmb250RmFjZURhdGE7CkBAIC0xMTksNiArMTIwLDcg
QEAgT3B0aW9uYWw8Rm9udFBsYXRmb3JtRGF0YT4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+Ojpk
ZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYKICAgICAgICAgZm9udEN1c3RvbVBsYXRmb3JtRGF0
YSA9IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoZm9udEZhY2VEYXRhLnZhbHVlKCksIGl0
ZW1JbkNvbGxlY3Rpb24udmFsdWUoKSk7CiAgICAgICAgIGlmICghZm9udEN1c3RvbVBsYXRmb3Jt
RGF0YSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIGNyZWF0aW9u
RGF0YSA9ICZmb250Q3VzdG9tUGxhdGZvcm1EYXRhLT5jcmVhdGlvbkRhdGE7CiAgICAgfQogCiAg
ICAgT3B0aW9uYWw8TE9HRk9OVD4gbG9nRm9udDsKQEAgLTEzMyw3ICsxMzUsNyBAQCBPcHRpb25h
bDxGb250UGxhdGZvcm1EYXRhPiBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29kZVBsYXRm
b3JtRGF0YShEZWNvZGVyJgogICAgIGlmICghZ2RpRm9udCkKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKIAotICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKFdURk1vdmUoZ2RpRm9udCks
ICpzaXplLCAqc3ludGhldGljQm9sZCwgKnN5bnRoZXRpY09ibGlxdWUsIGZhbHNlKTsKKyAgICBy
ZXR1cm4gRm9udFBsYXRmb3JtRGF0YShXVEZNb3ZlKGdkaUZvbnQpLCAqc2l6ZSwgKnN5bnRoZXRp
Y0JvbGQsICpzeW50aGV0aWNPYmxpcXVlLCBmYWxzZSwgY3JlYXRpb25EYXRhKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgSVBDCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424529</attachid>
            <date>2021-03-28 23:48:02 -0700</date>
            <delta_ts>2021-03-29 13:47:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223861-20210329154801.patch</filename>
            <type>text/plain</type>
            <size>18763</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTFkZGNjOTQyYmQ5MWMw
YTRmMTc2NzYxNThiNmFhMWM0Y2YzNGVjMS4uNDZkMzA2OWYxNTVhZTVlMWYwZDBhYjRiYjAwY2Nm
NWMzODVlNDIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTAzLTI4ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5DYWly
b10gQ3VzdG9tIGZvbnRzIGRvbid0IHdvcmsgaW4gR1BVIHByb2Nlc3MgbW9kZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzODYxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VzdG9tIGZvbnRzIGRpZG4n
dCB3b3JrIGluIEdQVSBwcm9jZXNzIG1vZGUgb2YgV2luQ2Fpcm8gcG9ydAorICAgICAgICBiZWNh
dXNlIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgd2FzIGRlc3RydWN0ZWQgc29vbi4gSW4gbm9uLUdQ
VQorICAgICAgICBwcm9jZXNzIG1vZGUsIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgaXMgcmV0YWlu
ZWQgYnkgQ2FjaGVkRm9udC4gSW4KKyAgICAgICAgR1BVIHByb2Nlc3MgbW9kZSwgdGhlcmUgaXMg
bm8gQ2FjaGVkRm9udC4gU28sIHRoZSBmb250IHJlc291cmNlCisgICAgICAgIGhhbmRsZSBzaG91
bGQgYmUgcmVmLWNvdW50ZWQgYW5kIHJldGFpbmVkIGJ5IEZvbnRQbGF0Zm9ybURhdGEuCisKKyAg
ICAgICAgQWRkZWQgYSBuZXcgY2xhc3MgRm9udE1lbW9yeVJlc291cmNlIHRvIHJlZi1jb3VudCB0
aGUgZm9udAorICAgICAgICByZXNvdXJjZSBoYW5kbGUuIEFkZGVkIGEgbmV3IG1lbWJlciBvZiBS
ZWY8Rm9udE1lbW9yeVJlc291cmNlPiB0bworICAgICAgICBGb250UGxhdGZvcm1EYXRhOjpDcmVh
dGlvbkRhdGEgc3RydWN0LgorCisgICAgICAgIENvbnZlcnRlZCBieSBleGlzdGluZyBjYW52YXMg
Y3VzdG9tIGZvbnQgdGVzdHMuCisKKyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvRm9udE1lbW9yeVJlc291cmNlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpGb250TWVtb3J5UmVzb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpG
b250TWVtb3J5UmVzb3VyY2U6On5Gb250TWVtb3J5UmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udE1lbW9yeVJlc291cmNlOjpGb250TWVtb3J5UmVzb3VyY2UpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVXRpbGl0aWVzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnJlbmFtZUFuZEFjdGl2YXRlRm9udCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmb3JtRGF0
YSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
OkZvbnRDdXN0b21QbGF0Zm9ybURhdGEpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhQ2Fpcm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3Jt
RGF0YVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpGb250UGxh
dGZvcm1EYXRhKToKKwogMjAyMS0wMy0yOCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFICYgRU5BQkxFX0lOREVY
RURfREFUQUJBU0VfSU5fV09SS0VSUywgaXQgc2VlbXMgbGlrZSBpdCBpcyBvbiBmb3IgYWxsIHBv
cnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGE0N2FhYjZiOGEyZDRlNDJhY2U2M2ZiYjJlMTZlYjYyN2Q1ZDZjYzMu
LjM3Mzg2NjNjNjJmZDg1MjA2N2VmMzYxMzA3ZWI3OTBlNjkxNWM1MzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMjEtMDMtMjggIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlA
c29ueS5jb20+CisKKyAgICAgICAgW1dpbkNhaXJvXSBDdXN0b20gZm9udHMgZG9uJ3Qgd29yayBp
biBHUFUgcHJvY2VzcyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjM4NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNoYXJlZC93aW4vV2ViQ29yZUFyZ3VtZW50Q29kZXJzV2luLmNwcDoKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEp
OgorCiAyMDIxLTAzLTI4ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgRU5BQkxFX0lOREVYRURfREFUQUJBU0UgJiBFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RV9JTl9XT1JLRVJTLCBpdCBzZWVtcyBsaWtlIGl0IGlzIG9uIGZvciBhbGwgcG9ydHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1XaW4uY21ha2UKaW5kZXggZWY2ZDQzMGJlZDJjOGEwYjk0MTc2YzVkZWYyMTE5MWM1
OGUwOGQxOS4uZDA4MzA5OTg0ZmFmMTVlYWM2Njk0ZWM2MDRmM2U0NTlmZWY5NzUyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTEwOCw2ICsxMDgsOCBAQCBsaXN0KEFQUEVORCBXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAgIHBhZ2Uvd2luL0ZyYW1lV2luLmgK
IAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL0ZvbnRNZW1vcnlSZXNvdXJjZS5oCisK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRElCUGl4ZWxEYXRhLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0Z1bGxTY3JlZW5Db250cm9sbGVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAppbmRleCBkMzY2OTExYWZjM2QyMzkx
NjM1MzNmNjJhMjdmNDljODUyYTNjZjlmLi43N2FkYzEzNzg3NjdiNGNmN2FlNTNmNTk5OTE3ZDAz
MjViOGQwNWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250UGxhdGZvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udFBsYXRmb3JtRGF0YS5oCkBAIC0zMiw2ICszMiw3IEBACiAKICNpZiBQTEFURk9STShXSU4p
CiAjaW5jbHVkZSAiQ09NUHRyLmgiCisjaW5jbHVkZSAiRm9udE1lbW9yeVJlc291cmNlLmgiCiAj
aW5jbHVkZSAiU2hhcmVkR0RJT2JqZWN0LmgiCiAjZW5kaWYKIApAQCAtMTE0LDcgKzExNSw3IEBA
IHB1YmxpYzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQotICAgIEZvbnRQbGF0Zm9ybURh
dGEoR0RJT2JqZWN0PEhGT05UPiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29s
IHN5bnRoZXRpY09ibGlxdWUsIGJvb2wgdXNlR0RJKTsKKyAgICBGb250UGxhdGZvcm1EYXRhKEdE
SU9iamVjdDxIRk9OVD4sIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50
aGV0aWNPYmxpcXVlLCBib29sIHVzZUdESSwgQ3JlYXRpb25EYXRhKiA9IG51bGxwdHIpOwogI2lm
IFVTRShDT1JFX1RFWFQpCiAgICAgRm9udFBsYXRmb3JtRGF0YShHRElPYmplY3Q8SEZPTlQ+LCBD
VEZvbnRSZWYsIENHRm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29s
IHN5bnRoZXRpY09ibGlxdWUsIGJvb2wgdXNlR0RJKTsKICNlbmRpZgpAQCAtMjMwLDYgKzIzMSw5
IEBAIHB1YmxpYzoKICAgICBzdHJ1Y3QgQ3JlYXRpb25EYXRhIHsKICAgICAgICAgUmVmPFNoYXJl
ZEJ1ZmZlcj4gZm9udEZhY2VEYXRhOwogICAgICAgICBTdHJpbmcgaXRlbUluQ29sbGVjdGlvbjsK
KyNpZiBQTEFURk9STShXSU4pCisgICAgICAgIFJlZjxGb250TWVtb3J5UmVzb3VyY2U+IG1fZm9u
dFJlc291cmNlOworI2VuZGlmCiAgICAgfTsKIAogICAgIGNvbnN0IE9wdGlvbmFsPENyZWF0aW9u
RGF0YT4mIGNyZWF0aW9uRGF0YSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9Gb250TWVtb3J5UmVzb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL0ZvbnRNZW1vcnlSZXNvdXJjZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmM5MmU3NDg0ZDE1YzJlZGU5NzBlMzQ1ZDFiZGIxZDVkNGM0NTNmNDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9G
b250TWVtb3J5UmVzb3VyY2UuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIE9TKFdJ
TkRPV1MpCisKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGb250TWVtb3J5UmVzb3VyY2UgOiBw
dWJsaWMgUmVmQ291bnRlZDxGb250TWVtb3J5UmVzb3VyY2U+IHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEZvbnRNZW1vcnlSZXNvdXJjZT4g
Y3JlYXRlKEhBTkRMRSBoYW5kbGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBGb250TWVtb3J5UmVzb3VyY2UoaGFuZGxlKSk7CisgICAgfQorCisgICAgfkZvbnRNZW1vcnlS
ZXNvdXJjZSgpCisgICAgeworICAgICAgICBSZW1vdmVGb250TWVtUmVzb3VyY2VFeChtX2ZvbnRS
ZXNvdXJjZUhhbmRsZSk7CisgICAgfQorICAgIAorcHJpdmF0ZToKKyAgICBleHBsaWNpdCBGb250
TWVtb3J5UmVzb3VyY2UoSEFORExFIGhhbmRsZSkKKyAgICAgICAgOiBtX2ZvbnRSZXNvdXJjZUhh
bmRsZShoYW5kbGUpCisgICAgeworICAgICAgICBBU1NFUlQoaGFuZGxlKTsKKyAgICB9CisKKyAg
ICBIQU5ETEUgbV9mb250UmVzb3VyY2VIYW5kbGU7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gT1MoV0lORE9XUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVXRpbGl0aWVzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVXRpbGl0aWVz
LmNwcAppbmRleCAxMTVjODIzYzEwY2Y3ZTI5YjZhZDg0YjNhZWVkZGIxZWMxYjdmMzE2Li5hMDNl
NzFhYjFiYzNiMWNhNTA3Y2YzOGUyNzQxODdiZWMwYTlkMTkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVV0aWxpdGllcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVV
dGlsaXRpZXMuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiT3BlblR5cGVVdGlsaXRpZXMuaCIKIAorI2luY2x1ZGUgIkZvbnRNZW1vcnlSZXNvdXJj
ZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCiAjaWYgVVNFKERJUkVDVDJEKQpAQCAt
NDE0LDE4ICs0MTUsMTkgQEAgYm9vbCByZW5hbWVGb250KGNvbnN0IFNoYXJlZEJ1ZmZlciYgZm9u
dERhdGEsIGNvbnN0IFN0cmluZyYgZm9udE5hbWUsIFZlY3RvcjxjaGEKIH0KIAogLy8gUmVuYW1l
IHRoZSBmb250IGFuZCBpbnN0YWxsIHRoZSBuZXcgZm9udCBkYXRhIGludG8gdGhlIHN5c3RlbQot
SEFORExFIHJlbmFtZUFuZEFjdGl2YXRlRm9udChjb25zdCBTaGFyZWRCdWZmZXImIGZvbnREYXRh
LCBjb25zdCBTdHJpbmcmIGZvbnROYW1lKQorUmVmUHRyPEZvbnRNZW1vcnlSZXNvdXJjZT4gcmVu
YW1lQW5kQWN0aXZhdGVGb250KGNvbnN0IFNoYXJlZEJ1ZmZlciYgZm9udERhdGEsIGNvbnN0IFN0
cmluZyYgZm9udE5hbWUpCiB7CiAgICAgVmVjdG9yPGNoYXI+IHJld3JpdHRlbkZvbnREYXRhOwog
ICAgIGlmICghcmVuYW1lRm9udChmb250RGF0YSwgZm9udE5hbWUsIHJld3JpdHRlbkZvbnREYXRh
KSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiB7IH07CiAKICAgICBEV09SRCBu
dW1Gb250cyA9IDA7CiAgICAgSEFORExFIGZvbnRIYW5kbGUgPSBBZGRGb250TWVtUmVzb3VyY2VF
eChyZXdyaXR0ZW5Gb250RGF0YS5kYXRhKCksIHJld3JpdHRlbkZvbnREYXRhLnNpemUoKSwgMCwg
Jm51bUZvbnRzKTsKLQotICAgIGlmIChmb250SGFuZGxlICYmIG51bUZvbnRzIDwgMSkgeworICAg
IGlmICghZm9udEhhbmRsZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAobnVtRm9udHMg
PCAxKSB7CiAgICAgICAgIFJlbW92ZUZvbnRNZW1SZXNvdXJjZUV4KGZvbnRIYW5kbGUpOwotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICNpZiBVU0UoRElS
RUNUMkQpCkBAIC00MzMsNyArNDM1LDcgQEAgSEFORExFIHJlbmFtZUFuZEFjdGl2YXRlRm9udChj
b25zdCBTaGFyZWRCdWZmZXImIGZvbnREYXRhLCBjb25zdCBTdHJpbmcmIGZvbnROYW0KICAgICBB
U1NFUlQoU1VDQ0VFREVEKGhyKSk7CiAjZW5kaWYKIAotICAgIHJldHVybiBmb250SGFuZGxlOwor
ICAgIHJldHVybiBGb250TWVtb3J5UmVzb3VyY2U6OmNyZWF0ZShmb250SGFuZGxlKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUv
T3BlblR5cGVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW50eXBlL09wZW5UeXBlVXRpbGl0aWVzLmgKaW5kZXggODMyYTRhODVkNjIyMWZjNWYwNGI2MDMy
Mzk0MDY4YjljNjJhMWYzNS4uZGQyNzY5MmNhNWQzZmU2Y2YxZTFjMjdkNzI1MmJjYzQ4YzVmZTgz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUv
T3BlblR5cGVVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVudHlwZS9PcGVuVHlwZVV0aWxpdGllcy5oCkBAIC0yOSwxMiArMjksMTQgQEAKIAogI2lu
Y2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBzdHJ1Y3QgQmlnRW5kaWFuVVNob3J0Owogc3RydWN0IEVPVFByZWZpeDsK
K2NsYXNzIEZvbnRNZW1vcnlSZXNvdXJjZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAogc3RydWN0
IEVPVEhlYWRlciB7CkBAIC01NCw3ICs1Niw3IEBAIHByaXZhdGU6CiAKIGJvb2wgZ2V0RU9USGVh
ZGVyKFNoYXJlZEJ1ZmZlciogZm9udERhdGEsIEVPVEhlYWRlciYgZW90SGVhZGVyLCBzaXplX3Qm
IG92ZXJsYXlEc3QsIHNpemVfdCYgb3ZlcmxheVNyYywgc2l6ZV90JiBvdmVybGF5TGVuZ3RoKTsK
IGJvb2wgcmVuYW1lRm9udChjb25zdCBTaGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmLCBWZWN0
b3I8Y2hhcj4mKTsKLUhBTkRMRSByZW5hbWVBbmRBY3RpdmF0ZUZvbnQoY29uc3QgU2hhcmVkQnVm
ZmVyJiwgY29uc3QgU3RyaW5nJik7CitSZWZQdHI8Rm9udE1lbW9yeVJlc291cmNlPiByZW5hbWVB
bmRBY3RpdmF0ZUZvbnQoY29uc3QgU2hhcmVkQnVmZmVyJiwgY29uc3QgU3RyaW5nJik7CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCmluZGV4
IGNjZTE2N2FlMzMwODJjMmY5ZDBiYzQ5NDg2NzZiZTc5MzRlMjhhZGMuLmZmNjM2YjgxMDc2NWVl
OWYzNmIzNzdiMzhhYzFhYjRjOTM1YTUwZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgi
CiAKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJGb250TWVtb3J5UmVz
b3VyY2UuaCIKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiT3BlblR5
cGVVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKQEAgLTQwLDE5ICs0MSwx
OSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5G
b250Q3VzdG9tUGxhdGZvcm1EYXRhKCkKK0ZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OkZvbnRDdXN0
b21QbGF0Zm9ybURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBGb250UGxhdGZvcm1EYXRhOjpDcmVh
dGlvbkRhdGEmJiBjcmVhdGlvbkRhdGEpCisgICAgOiBuYW1lKG5hbWUpCisgICAgLCBjcmVhdGlv
bkRhdGEoV1RGTW92ZShjcmVhdGlvbkRhdGEpKQogewotICAgIGlmIChmb250UmVmZXJlbmNlKQot
ICAgICAgICBSZW1vdmVGb250TWVtUmVzb3VyY2VFeChmb250UmVmZXJlbmNlKTsKIH0KIAorRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKSA9IGRlZmF1bHQ7
CisKIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3Jt
RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBib2xkLCBi
b29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYsIEZvbnRTZWxlY3Rpb25TcGVj
aWZpZWRDYXBhYmlsaXRpZXMpCiB7CiAgICAgaW50IHNpemUgPSBmb250RGVzY3JpcHRpb24uY29t
cHV0ZWRQaXhlbFNpemUoKTsKICAgICBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0g
Zm9udERlc2NyaXB0aW9uLnJlbmRlcmluZ01vZGUoKTsKIAotICAgIEFTU0VSVChmb250UmVmZXJl
bmNlKTsKLQogICAgIGF1dG8gZmFjZU5hbWUgPSBuYW1lLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1p
bmF0aW9uKCk7CiAgICAgaWYgKGZhY2VOYW1lLnNpemUoKSA+IExGX0ZBQ0VTSVpFKSB7CiAgICAg
ICAgIGZhY2VOYW1lLnJlc2l6ZShMRl9GQUNFU0laRSk7CkBAIC0xMDcsMTIgKzEwOCwxMSBAQCBz
dGF0aWMgU3RyaW5nIGNyZWF0ZVVuaXF1ZUZvbnROYW1lKCkKIHN0ZDo6dW5pcXVlX3B0cjxGb250
Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1
ZmZlciYgYnVmZmVyLCBjb25zdCBTdHJpbmcmIGl0ZW1JbkNvbGxlY3Rpb24pCiB7CiAgICAgU3Ry
aW5nIGZvbnROYW1lID0gY3JlYXRlVW5pcXVlRm9udE5hbWUoKTsKLSAgICBIQU5ETEUgZm9udFJl
ZmVyZW5jZTsKLSAgICBmb250UmVmZXJlbmNlID0gcmVuYW1lQW5kQWN0aXZhdGVGb250KGJ1ZmZl
ciwgZm9udE5hbWUpOwotICAgIGlmICghZm9udFJlZmVyZW5jZSkKKyAgICBhdXRvIGZvbnRSZXNv
dXJjZSA9IHJlbmFtZUFuZEFjdGl2YXRlRm9udChidWZmZXIsIGZvbnROYW1lKTsKKyAgICBpZiAo
IWZvbnRSZXNvdXJjZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgRm9udFBsYXRmb3Jt
RGF0YTo6Q3JlYXRpb25EYXRhIGNyZWF0aW9uRGF0YSA9IHsgYnVmZmVyLCBpdGVtSW5Db2xsZWN0
aW9uIH07Ci0gICAgYXV0byByZXN1bHQgPSBtYWtlVW5pcXVlPEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE+KGZvbnRSZWZlcmVuY2UsIGZvbnROYW1lLCBXVEZNb3ZlKGNyZWF0aW9uRGF0YSkpOworICAg
IEZvbnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSBjcmVhdGlvbkRhdGEgPSB7IGJ1ZmZlciwg
aXRlbUluQ29sbGVjdGlvbiwgZm9udFJlc291cmNlLnJlbGVhc2VOb25OdWxsKCkgfTsKKyAgICBh
dXRvIHJlc3VsdCA9IG1ha2VVbmlxdWU8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4oZm9udE5hbWUs
IFdURk1vdmUoY3JlYXRpb25EYXRhKSk7CiAjaWYgVVNFKENPUkVfVEVYVCkKICAgICByZXN1bHQt
PmZvbnREZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnRNYW5hZ2VyQ3JlYXRlRm9udERlc2NyaXB0
b3JGcm9tRGF0YShidWZmZXIuY3JlYXRlQ0ZEYXRhKCkuZ2V0KCkpKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhLmgKaW5kZXggNTRiOTY0MDFjZmFlNWU3YjE3N2VkMDM3ODI4OWYwZWIy
ZWY5YmY1OC4uNDRhNTIxM2RjOGI2YzcxM2ViZDExODY4ZDg4YjQzZjRmODM0ZWFmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oCkBAIC0zNyw2ICszNyw3IEBAIHR5cGVkZWYgc3RydWN0IENH
Rm9udCogQ0dGb250UmVmOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGb250RGVzY3Jp
cHRpb247CitjbGFzcyBGb250TWVtb3J5UmVzb3VyY2U7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBz
dHJ1Y3QgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllczsKIHN0cnVjdCBGb250VmFy
aWFudFNldHRpbmdzOwpAQCAtNDgsMjAgKzQ5LDEzIEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShGb250Q3VzdG9tUGxhdGZvcm1EYXRhKTsKIHB1YmxpYzoKLSAgICBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhKEhBTkRMRSBmb250UmVmZXJlbmNlLCBjb25zdCBTdHJpbmcmIG5hbWUsIEZv
bnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSYmIGNyZWF0aW9uRGF0YSkKLSAgICAgICAgOiBm
b250UmVmZXJlbmNlKGZvbnRSZWZlcmVuY2UpCi0gICAgICAgICwgbmFtZShuYW1lKQotICAgICAg
ICAsIGNyZWF0aW9uRGF0YShXVEZNb3ZlKGNyZWF0aW9uRGF0YSkpCi0gICAgewotICAgIH0KLQor
ICAgIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBGb250UGxhdGZv
cm1EYXRhOjpDcmVhdGlvbkRhdGEmJik7CiAgICAgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKTsK
IAogICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3Jp
cHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdz
JiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyk7CiAKICAgICBzdGF0aWMgYm9v
bCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIAotICAgIEhBTkRMRSBmb250UmVmZXJl
bmNlOwogICAgIFN0cmluZyBuYW1lOwogI2lmIFVTRShDT1JFX1RFWFQpCiAgICAgUmV0YWluUHRy
PENURm9udERlc2NyaXB0b3JSZWY+IGZvbnREZXNjcmlwdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWly
by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBs
YXRmb3JtRGF0YUNhaXJvLmNwcAppbmRleCBlYzQzMGUzNDMwZTBlMDljZTI4OGEwOWJkYjM4ZTQ5
ZTI0YjY5ZDc1Li4xZTRmYzJkNTRkZTFlOGRkN2VlNmZhZjYwZjVlNTBkMDM2ODc4MTdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBs
YXRmb3JtRGF0YUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcApAQCAtMjIsNiArMjIsNyBAQAog
I2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCIKIAogI2luY2x1ZGUgIkZvbnREZXNj
cmlwdGlvbi5oIgorI2luY2x1ZGUgIkZvbnRNZW1vcnlSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkZv
bnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJPcGVuVHlwZVV0aWxpdGllcy5oIgogI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtMzIsMTIgKzMzLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0Zm9ybURhdGEo
KQorRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YShjb25zdCBT
dHJpbmcmIG5hbWUsIEZvbnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSYmIGNyZWF0aW9uRGF0
YSkKKyAgICA6IG5hbWUobmFtZSkKKyAgICAsIGNyZWF0aW9uRGF0YShXVEZNb3ZlKGNyZWF0aW9u
RGF0YSkpCiB7Ci0gICAgaWYgKGZvbnRSZWZlcmVuY2UpCi0gICAgICAgIFJlbW92ZUZvbnRNZW1S
ZXNvdXJjZUV4KGZvbnRSZWZlcmVuY2UpOwogfQogCitGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpID0gZGVmYXVsdDsKKwogRm9udFBsYXRmb3JtRGF0YSBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYgZm9udERlc2NyaXB0aW9uLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250
RmVhdHVyZVNldHRpbmdzJiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcykKIHsK
ICAgICBpbnQgc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpOwpAQCAt
ODYsMTMgKzg5LDEzIEBAIHN0YXRpYyBTdHJpbmcgY3JlYXRlVW5pcXVlRm9udE5hbWUoKQogc3Rk
Ojp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0b21QbGF0
Zm9ybURhdGEoU2hhcmVkQnVmZmVyJiBidWZmZXIsIGNvbnN0IFN0cmluZyYgaXRlbUluQ29sbGVj
dGlvbikKIHsKICAgICBTdHJpbmcgZm9udE5hbWUgPSBjcmVhdGVVbmlxdWVGb250TmFtZSgpOwot
ICAgIEhBTkRMRSBmb250UmVmZXJlbmNlID0gcmVuYW1lQW5kQWN0aXZhdGVGb250KGJ1ZmZlciwg
Zm9udE5hbWUpOworICAgIGF1dG8gZm9udFJlc291cmNlID0gcmVuYW1lQW5kQWN0aXZhdGVGb250
KGJ1ZmZlciwgZm9udE5hbWUpOwogCi0gICAgaWYgKCFmb250UmVmZXJlbmNlKQorICAgIGlmICgh
Zm9udFJlc291cmNlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIEZvbnRQbGF0Zm9y
bURhdGE6OkNyZWF0aW9uRGF0YSBjcmVhdGlvbkRhdGEgPSB7IGJ1ZmZlciwgaXRlbUluQ29sbGVj
dGlvbiB9OwotICAgIHJldHVybiBtYWtlVW5pcXVlPEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+KGZv
bnRSZWZlcmVuY2UsIGZvbnROYW1lLCBXVEZNb3ZlKGNyZWF0aW9uRGF0YSkpOworICAgIEZvbnRQ
bGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSBjcmVhdGlvbkRhdGEgPSB7IGJ1ZmZlciwgaXRlbUlu
Q29sbGVjdGlvbiwgZm9udFJlc291cmNlLnJlbGVhc2VOb25OdWxsKCkgfTsKKyAgICByZXR1cm4g
bWFrZVVuaXF1ZTxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPihmb250TmFtZSwgV1RGTW92ZShjcmVh
dGlvbkRhdGEpKTsKIH0KIAogYm9vbCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpzdXBwb3J0c0Zv
cm1hdChjb25zdCBTdHJpbmcmIGZvcm1hdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250UGxhdGZvcm1EYXRhV2luLmNwcAppbmRleCAx
YjU1NDQwNGQ0YmZkYWQwMzEzMjA0ZWQzZDA4Yzc5YmJhZGViZmRlLi4wYzBjMTM3MjAzZGYzNmNm
NTc1NWYxMmY0OWI5NTYyMzYyZjI0YzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vRm9udFBsYXRmb3JtRGF0YVdpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRQbGF0Zm9ybURhdGFXaW4uY3BwCkBAIC00
MSwxMyArNDEsMTIgQEAgdXNpbmcgc3RkOjptaW47CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShHRElPYmplY3Q8SEZPTlQ+IGZvbnQs
IGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBvYmxpcXVlLCBib29sIHVzZUdESSkKLSAgICA6
IG1fZm9udChTaGFyZWRHRElPYmplY3Q8SEZPTlQ+OjpjcmVhdGUoV1RGTW92ZShmb250KSkpCi0g
ICAgLCBtX3NpemUoc2l6ZSkKLSAgICAsIG1fc3ludGhldGljQm9sZChib2xkKQotICAgICwgbV9z
eW50aGV0aWNPYmxpcXVlKG9ibGlxdWUpCi0gICAgLCBtX3VzZUdESSh1c2VHREkpCitGb250UGxh
dGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKEdESU9iamVjdDxIRk9OVD4gZm9udCwgZmxvYXQg
c2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUsIGJvb2wgdXNlR0RJLCBDcmVhdGlvbkRhdGEq
IGNyZWF0aW9uRGF0YSkKKyAgICA6IEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgYm9sZCwgb2JsaXF1
ZSwgRm9udE9yaWVudGF0aW9uOjpIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50OjpSZWd1bGFy
V2lkdGgsIFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRlcmluZywgY3JlYXRpb25EYXRh
KQogeworICAgIG1fZm9udCA9IFNoYXJlZEdESU9iamVjdDxIRk9OVD46OmNyZWF0ZShXVEZNb3Zl
KGZvbnQpKTsKKyAgICBtX3VzZUdESSA9IHVzZUdESTsKKwogICAgIEhXbmREQyBoZGMoMCk7CiAg
ICAgU2F2ZURDKGhkYyk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93
aW4vV2ViQ29yZUFyZ3VtZW50Q29kZXJzV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dp
bi9XZWJDb3JlQXJndW1lbnRDb2RlcnNXaW4uY3BwCmluZGV4IGUxOTU0NTI1MTk1ZjMyMTdhZDdh
OTJiOWM1NGU4NzJlMWEyNDY3NTMuLmJkMTkwODA2NmJkMTI1ZWQ4MTBhY2QwMTdiM2RjMWM2NDc5
ZWZlMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dpbi9XZWJDb3JlQXJndW1l
bnRDb2RlcnNXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dpbi9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNXaW4uY3BwCkBAIC0xMDQsNiArMTA0LDcgQEAgT3B0aW9uYWw8Rm9udFBsYXRm
b3JtRGF0YT4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVj
b2RlciYKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBmb250Q3VzdG9tUGxhdGZvcm1EYXRhOworICAgIEZv
bnRQbGF0Zm9ybURhdGE6OkNyZWF0aW9uRGF0YSogY3JlYXRpb25EYXRhID0gbnVsbHB0cjsKIAog
ICAgIGlmIChpbmNsdWRlc0NyZWF0aW9uRGF0YS52YWx1ZSgpKSB7CiAgICAgICAgIE9wdGlvbmFs
PFJlZjxTaGFyZWRCdWZmZXI+PiBmb250RmFjZURhdGE7CkBAIC0xMTksNiArMTIwLDcgQEAgT3B0
aW9uYWw8Rm9udFBsYXRmb3JtRGF0YT4gQXJndW1lbnRDb2RlcjxSZWY8Rm9udD4+OjpkZWNvZGVQ
bGF0Zm9ybURhdGEoRGVjb2RlciYKICAgICAgICAgZm9udEN1c3RvbVBsYXRmb3JtRGF0YSA9IGNy
ZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoZm9udEZhY2VEYXRhLnZhbHVlKCksIGl0ZW1JbkNv
bGxlY3Rpb24udmFsdWUoKSk7CiAgICAgICAgIGlmICghZm9udEN1c3RvbVBsYXRmb3JtRGF0YSkK
ICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIGNyZWF0aW9uRGF0YSA9
ICZmb250Q3VzdG9tUGxhdGZvcm1EYXRhLT5jcmVhdGlvbkRhdGE7CiAgICAgfQogCiAgICAgT3B0
aW9uYWw8TE9HRk9OVD4gbG9nRm9udDsKQEAgLTEzMyw3ICsxMzUsNyBAQCBPcHRpb25hbDxGb250
UGxhdGZvcm1EYXRhPiBBcmd1bWVudENvZGVyPFJlZjxGb250Pj46OmRlY29kZVBsYXRmb3JtRGF0
YShEZWNvZGVyJgogICAgIGlmICghZ2RpRm9udCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKIAotICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKFdURk1vdmUoZ2RpRm9udCksICpzaXpl
LCAqc3ludGhldGljQm9sZCwgKnN5bnRoZXRpY09ibGlxdWUsIGZhbHNlKTsKKyAgICByZXR1cm4g
Rm9udFBsYXRmb3JtRGF0YShXVEZNb3ZlKGdkaUZvbnQpLCAqc2l6ZSwgKnN5bnRoZXRpY0JvbGQs
ICpzeW50aGV0aWNPYmxpcXVlLCBmYWxzZSwgY3JlYXRpb25EYXRhKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgSVBDCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>