<?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>239480</bug_id>
          
          <creation_ts>2022-04-18 20:22:25 -0700</creation_ts>
          <short_desc>[Cocoa] Add explanatory comments in fillVectorWithVerticalGlyphPositions() and simplify it somewhat</short_desc>
          <delta_ts>2022-04-19 13:10:14 -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>New Bugs</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>
          
          <blocked>239484</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>heycam</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1862412</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-04-18 20:22:25 -0700</bug_when>
    <thetext>[Cocoa] Add explanatory comments in fillVectorWithVerticalGlyphPositions() and simplify it somewhat</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862415</commentid>
    <comment_count>1</comment_count>
      <attachid>457851</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-04-18 20:28:27 -0700</bug_when>
    <thetext>Created attachment 457851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862428</commentid>
    <comment_count>2</comment_count>
      <attachid>457857</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-04-18 22:42:22 -0700</bug_when>
    <thetext>Created attachment 457857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862435</commentid>
    <comment_count>3</comment_count>
      <attachid>457857</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-04-18 23:36:06 -0700</bug_when>
    <thetext>Comment on attachment 457857
Patch

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

&gt; Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp:228
&gt; +    // +------------A-------------+

I might want to add a point C ...

&gt; Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp:255
&gt; +    // adjust the pen position to start there. WebKit&apos;s text routines start out using the alphabetic baseline so we adjust the start position

... and reference it it here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862439</commentid>
    <comment_count>4</comment_count>
      <attachid>457857</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-04-18 23:39:18 -0700</bug_when>
    <thetext>Comment on attachment 457857
Patch

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

&gt; Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp:68
&gt;      result.setB(-result.b());
&gt;      result.setD(-result.d());

I probably should also add a comment here saying that this is a Y-flip</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862445</commentid>
    <comment_count>5</comment_count>
      <attachid>457862</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-04-19 00:02:03 -0700</bug_when>
    <thetext>Created attachment 457862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862448</commentid>
    <comment_count>6</comment_count>
      <attachid>457863</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-04-19 00:04:27 -0700</bug_when>
    <thetext>Created attachment 457863
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862654</commentid>
    <comment_count>7</comment_count>
      <attachid>457863</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-04-19 11:31:12 -0700</bug_when>
    <thetext>Comment on attachment 457863
Patch

great comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862690</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-19 13:09:47 -0700</bug_when>
    <thetext>Committed r293032 (249771@main): &lt;https://commits.webkit.org/249771@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 457863.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862691</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-19 13:10:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/91980794&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457851</attachid>
            <date>2022-04-18 20:28:27 -0700</date>
            <delta_ts>2022-04-18 23:11:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239480-20220418202826.patch</filename>
            <type>text/plain</type>
            <size>14056</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZlYzU1ZmIwN2UyODgw
NGI1MzIxOWQ4NTJkYWU1ZDAyMDA5MzhkZS4uNjY2NmM2NmZhMjNjYjc2MDQxMzEzYmM2OTJhZTkx
NTE0Mjc1NmFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTA0LTE4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBB
ZGQgZXhwbGFuYXRvcnkgY29tbWVudHMgaW4gZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9z
aXRpb25zKCkgYW5kIHNpbXBsaWZ5IGl0IHNvbWV3aGF0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk0ODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGFkZHMgYSBsb3Qgb2YgZXhwbGFuYXRvcnkg
dGV4dCBpbiBmaWxsVmVjdG9yV2l0aFZlcnRpY2FsR2x5cGhQb3NpdGlvbnMoKS4gSXQgYWxzbyBy
ZXdyaXRlcyBzb21lIG9mIGl0IHRvCisgICAgICAgIGNhbGwgc2hhcmVkIGZ1bmN0aW9ucyAoY29t
cHV0ZU92ZXJhbGxUZXh0TWF0cml4SW50ZXJuYWwoKSBhbmQgY29tcHV0ZVZlcnRpY2FsVGV4dE1h
dHJpeEludGVybmFsKCkpIGluc3RlYWQgb2YKKyAgICAgICAgcmVpbXBsZW1lbnRpbmcgdGhlIGNv
bnRlbnRzIG9mIHRob3NlIGZ1bmN0aW9ucy4KKworICAgICAgICBUaGUgbGFzdCB0aGluZyB0aGlz
IHBhdGNoIGRvZXMgaXMgaXQgc3RvcHMgYWRkaW5nIGluIENURm9udEdldE1hdHJpeCgpIHRvIHRo
ZSB0ZXh0IG1hdHJpeCwgYmVjYXVzZToKKyAgICAgICAgMS4gSXQncyBhbHdheXMgdGhlIGlkZW50
aXR5LCBiZWNhdXNlIHdlIG5ldmVyIGNyZWF0ZSBhIGZvbnQgd2l0aCBvbmUgb2YgdGhlc2UgdGhp
bmdzCisgICAgICAgIDIuIEV2ZW4gaWYgaXQgd2Fzbid0IHRoZSBpZGVudGl0eSwgQ29yZSBUZXh0
IGFscmVhZHkgYXBwbGllcyBpdCBpdHNlbGYsIHNvIGlmIHdlIGFwcGx5IGl0LCBpdCB3b3VsZCBi
ZSBkb3VibGUKKyAgICAgICAgICAgICAgIGFwcGxpZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjb21wdXRlT3ZlcmFsbFRleHRNYXRyaXhJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpjb21wdXRlT3ZlcmFsbFRleHRNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0
ZVZlcnRpY2FsVGV4dE1hdHJpeEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVW
ZXJ0aWNhbFRleHRNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbFZlY3RvcldpdGhWZXJ0
aWNhbEdseXBoUG9zaXRpb25zKToKKwogMjAyMi0wNC0xNSAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBOb24tZmF0YWwgZmF1bHQgdW5kZXIgUmVuZGVy
VGhlbWVJT1M6OnBhaW50QXR0YWNobWVudCBkdWUgdG8gdXNlIG9mIGR5bmFtaWMgVUlDb2xvcnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0Zv
bnRDYXNjYWRlQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAKaW5kZXggMWU4NDQyNzA0MmIwOTlkZGIz
ZTQxZWVmZjZjZThhM2YwY2NlYTUxNy4uZTZkOGE1NmM1YWMxYzY2ODIyODNmNmEyNzQyNThiODU5
Nzg4NmQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29y
ZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAKQEAgLTYwLDQ0ICs2
MCw1NSBAQCBzdGF0aWMgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiByb3RhdGVMZWZ0VHJhbnNmb3Jt
KCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1BZmZpbmVUcmFuc2Zvcm0gY29tcHV0ZU92ZXJh
bGxUZXh0TWF0cml4KGNvbnN0IEZvbnQmIGZvbnQpCitzdGF0aWMgQWZmaW5lVHJhbnNmb3JtIGNv
bXB1dGVPdmVyYWxsVGV4dE1hdHJpeEludGVybmFsKGNvbnN0IHN0ZDo6b3B0aW9uYWw8QWZmaW5l
VHJhbnNmb3JtPiYgc3ludGhldGljT2JsaXF1ZSA9IHN0ZDo6bnVsbG9wdCkKIHsKLSAgICBhdXRv
JiBwbGF0Zm9ybURhdGEgPSBmb250LnBsYXRmb3JtRGF0YSgpOwogICAgIEFmZmluZVRyYW5zZm9y
bSByZXN1bHQ7Ci0gICAgaWYgKCFwbGF0Zm9ybURhdGEuaXNDb2xvckJpdG1hcEZvbnQoKSkKLSAg
ICAgICAgcmVzdWx0ID0gQ1RGb250R2V0TWF0cml4KHBsYXRmb3JtRGF0YS5jdEZvbnQoKSk7CisK
ICAgICByZXN1bHQuc2V0QigtcmVzdWx0LmIoKSk7CiAgICAgcmVzdWx0LnNldEQoLXJlc3VsdC5k
KCkpOworCisgICAgaWYgKHN5bnRoZXRpY09ibGlxdWUpCisgICAgICAgIHJlc3VsdCA9ICpzeW50
aGV0aWNPYmxpcXVlICogcmVzdWx0OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworQWZmaW5l
VHJhbnNmb3JtIGNvbXB1dGVPdmVyYWxsVGV4dE1hdHJpeChjb25zdCBGb250JiBmb250KQorewor
ICAgIHN0ZDo6b3B0aW9uYWw8QWZmaW5lVHJhbnNmb3JtPiBzeW50aGV0aWNPYmxpcXVlOworICAg
IGF1dG8mIHBsYXRmb3JtRGF0YSA9IGZvbnQucGxhdGZvcm1EYXRhKCk7CiAgICAgaWYgKHBsYXRm
b3JtRGF0YS5zeW50aGV0aWNPYmxpcXVlKCkpIHsKICAgICAgICAgZmxvYXQgb2JsaXF1ZVNrZXcg
PSB0YW5mKGRlZzJyYWQoRm9udENhc2NhZGU6OnN5bnRoZXRpY09ibGlxdWVBbmdsZSgpKSk7CiAg
ICAgICAgIGlmIChwbGF0Zm9ybURhdGEub3JpZW50YXRpb24oKSA9PSBGb250T3JpZW50YXRpb246
OlZlcnRpY2FsKSB7CiAgICAgICAgICAgICBpZiAoZm9udC5pc1RleHRPcmllbnRhdGlvbkZhbGxi
YWNrKCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gQWZmaW5lVHJhbnNmb3JtKDEsIG9ibGlx
dWVTa2V3LCAwLCAxLCAwLCAwKSAqIHJlc3VsdDsKKyAgICAgICAgICAgICAgICBzeW50aGV0aWNP
YmxpcXVlID0gQWZmaW5lVHJhbnNmb3JtKDEsIG9ibGlxdWVTa2V3LCAwLCAxLCAwLCAwKTsKICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBBZmZpbmVUcmFuc2Zvcm0o
MSwgLW9ibGlxdWVTa2V3LCAwLCAxLCAwLCAwKSAqIHJlc3VsdDsKKyAgICAgICAgICAgICAgICBz
eW50aGV0aWNPYmxpcXVlID0gQWZmaW5lVHJhbnNmb3JtKDEsIC1vYmxpcXVlU2tldywgMCwgMSwg
MCwgMCk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gQWZmaW5lVHJhbnNm
b3JtKDEsIDAsIC1vYmxpcXVlU2tldywgMSwgMCwgMCkgKiByZXN1bHQ7CisgICAgICAgICAgICBz
eW50aGV0aWNPYmxpcXVlID0gQWZmaW5lVHJhbnNmb3JtKDEsIDAsIC1vYmxpcXVlU2tldywgMSwg
MCwgMCk7CiAgICAgfQogCi0gICAgLy8gV2UncmUgZW11bGF0aW5nIHRoZSBiZWhhdmlvciBvZiBD
R0NvbnRleHRTZXRUZXh0UG9zaXRpb24oKSBieSBhZGRpbmcgY29uc3RhbnQgYW1vdW50cyB0byBl
YWNoIGdseXBoJ3MgcG9zaXRpb24KLSAgICAvLyAoc2VlIGZpbGxWZWN0b3JXaXRoSG9yaXpvbnRh
bEdseXBoUG9zaXRpb25zKCkgYW5kIGZpbGxWZWN0b3JXaXRoVmVydGljYWxHbHlwaFBvc2l0aW9u
cygpKS4KLSAgICAvLyBDR0NvbnRleHRTZXRUZXh0UG9zaXRpb24oKSBoYXMgdGhlIHNpZGUgZWZm
ZWN0IG9mIGNsb2JiZXJpbmcgdGhlIEUgYW5kIEYgZmllbGRzIG9mIHRoZSB0ZXh0IG1hdHJpeCwK
LSAgICAvLyBzbyB3ZSBkbyB0aGF0IGV4cGxpY2l0bHkgaGVyZS4KLSAgICByZXN1bHQuc2V0RSgw
KTsKLSAgICByZXN1bHQuc2V0RigwKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBj
b21wdXRlT3ZlcmFsbFRleHRNYXRyaXhJbnRlcm5hbChzeW50aGV0aWNPYmxpcXVlKTsKIH0KIAot
QWZmaW5lVHJhbnNmb3JtIGNvbXB1dGVWZXJ0aWNhbFRleHRNYXRyaXgoY29uc3QgRm9udCYgZm9u
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwcmV2aW91c1RleHRNYXRyaXgpCitzdGF0aWMgQWZm
aW5lVHJhbnNmb3JtIGNvbXB1dGVWZXJ0aWNhbFRleHRNYXRyaXhJbnRlcm5hbChjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIHByZXZpb3VzVGV4dE1hdHJpeCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKGZv
bnQsIGZvbnQucGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBGb250T3JpZW50YXRpb246
OlZlcnRpY2FsKTsKICAgICAvLyBUaGUgdHJhbnNsYXRpb24gaGVyZSAoImUiIGFuZCAiZiIgZmll
bGRzKSBhcmUgaXJyZWxldmFudCwgYmVjYXVzZQogICAgIC8vIHRoaXMgbWF0cml4IGlzIGludmVy
dGVkIGluIGZpbGxWZWN0b3JXaXRoVmVydGljYWxHbHlwaFBvc2l0aW9ucyB0byBwbGFjZSB0aGUg
Z2x5cGhzIGluIHRoZSBDVE0ncyBjb29yZGluYXRlIHN5c3RlbS4KICAgICAvLyBBbGwgd2UncmUg
dHJ5aW5nIHRvIGRvIGhlcmUgaXMgcm90YXRlIHRoZSB0ZXh0IG1hdHJpeCBzbyBnbHlwaHMgYXBw
ZWFyIHZpc3VhbGx5IHVwcmlnaHQuCiAgICAgLy8gV2UgaGF2ZSB0byBpbmNsdWRlIHRoZSBwcmV2
aW91cyB0ZXh0IG1hdHJpeCBiZWNhdXNlIGl0IGluY2x1ZGVzIHRoaW5ncyBsaWtlIHN5bnRoZXRp
YyBvYmxpcXVlLgorICAgIC8vCisgICAgLy8gQmVjYXVzZSB0aGlzIGlzIGEgbGVmdC1tdWx0aXBs
eSwgd2UncmUgdGFraW5nIHRoZSBwb2ludHMgZnJvbSB1c2VyIGNvb3JkaW5hdGVzLCB3aGljaCBh
cmUgaW5jcmVhc2luZy1ZLWdvZXMtZG93biwKKyAgICAvLyBhbmQgd2UncmUgcm90YXRpbmcgdGhl
IHBvaW50cyB0byB0aGUgbGVmdCBpbiB0aGF0IGNvb3JkaW5hdGUgc3lzdGVtLCB0byBwdXQgdGhl
bSBwaHlzaWNhbGx5IHVwcmlnaHQuCiAgICAgcmV0dXJuIHJvdGF0ZUxlZnRUcmFuc2Zvcm0oKSAq
IHByZXZpb3VzVGV4dE1hdHJpeDsKIH0KIAorQWZmaW5lVHJhbnNmb3JtIGNvbXB1dGVWZXJ0aWNh
bFRleHRNYXRyaXgoY29uc3QgRm9udCYgZm9udCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwcmV2
aW91c1RleHRNYXRyaXgpCit7CisgICAgQVNTRVJUX1VOVVNFRChmb250LCBmb250LnBsYXRmb3Jt
RGF0YSgpLm9yaWVudGF0aW9uKCkgPT0gRm9udE9yaWVudGF0aW9uOjpWZXJ0aWNhbCk7CisgICAg
cmV0dXJuIGNvbXB1dGVWZXJ0aWNhbFRleHRNYXRyaXhJbnRlcm5hbChwcmV2aW91c1RleHRNYXRy
aXgpOworfQorCiAjaWYgIVBMQVRGT1JNKFdJTikKIAogLy8gQ29uZnVzaW5nbHksIGV2ZW4gd2hl
biBDR0ZvbnRSZW5kZXJpbmdHZXRGb250U21vb3RoaW5nRGlzYWJsZWQoKSByZXR1cm5zIHRydWUs
IENHQ29udGV4dFNldFNob3VsZFNtb290aEZvbnRzKCkgc3RpbGwgaW1wYWN0cyB0ZXh0CkBAIC0x
NDAsMTMgKzE1MSwxMzAgQEAgc3RhdGljIHZvaWQgZmlsbFZlY3RvcldpdGhIb3Jpem9udGFsR2x5
cGhQb3NpdGlvbnMoVmVjdG9yPENHUG9pbnQsIDI1Nj4mIHBvc2l0aW8KIAogc3RhdGljIHZvaWQg
ZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9zaXRpb25zKFZlY3RvcjxDR1BvaW50LCAyNTY+
JiBwb3NpdGlvbnMsIENHQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBDR1NpemUqIHRyYW5zbGF0
aW9ucywgY29uc3QgQ0dTaXplKiBhZHZhbmNlcywgdW5zaWduZWQgY291bnQsIGNvbnN0IEZsb2F0
UG9pbnQmIHBvaW50LCBmbG9hdCBhc2NlbnREZWx0YSkKIHsKLSAgICAvLyBLZWVwIHRoaXMgaW4g
c3luYyBhcyB0aGUgaW52ZXJzZSBvZiBgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5
cGhzYC4KKyAgICAvLyBLZWVwIHRoaXMgZnVuY3Rpb24gaW4gc3luYyBhcyB0aGUgaW52ZXJzZSBv
ZiBgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzYC4KKworICAgIC8vIEl0J3Mg
aW1wb3J0YW50IHRvIHJlYWxpemUgd2UncmUgZGVhbGluZyB3aXRoIDQgY29vcmRpbmF0ZSBzeXN0
ZW1zIGhlcmU6CisgICAgLy8gMS4gUGh5c2ljYWwgY29vcmRpbmF0ZSBzeXN0ZW0uIFRoaXMgaXMg
d2hhdCB0aGUgdXNlciBzZWVzLgorICAgIC8vIDIuIFVzZXIgY29vcmRpbmF0ZSBzeXN0ZW0uIFRo
aXMgaXMgdGhlIGNvb3JkaW5hdGUgc3lzdGVtIG9mIGp1c3QgdGhlIENUTS4gRm9yIHZlcnRpY2Fs
IHRleHQsIHRoaXMgaXMganVzdCBsaWtlIHRoZSBub3JtYWwgV2ViS2l0IGluY3JlYXNpbmctWS1k
b3duCisgICAgLy8gICAgICAgIGNvb3JkaW5hdGUgc3lzdGVtLCBleGNlcHQgd2UncmUgcm90YXRl
ZCByaWdodCwgc28gbG9naWNhbCByaWdodCBpcyBwaHlzaWNhbCBkb3duLiAoV2UgZG8gdGhpcyBz
byBsb2dpY2FsIGlubGluZSBwcm9ncmVzc2lvbiBwcm9jZWVkcyBpbiB0aGUKKyAgICAvLyAgICAg
ICAgbG9naWNhbGx5IGluY3JlYXNpbmctWCBkaW1lbnNpb24sIGp1c3QgYXMgaXQgd291bGQgaWYg
d2Ugd2VyZW4ndCBkb2luZyB2ZXJ0aWNhbCBzdHVmZi4pCisgICAgLy8gMy4gVGV4dCBjb29yZGlu
YXRlIHN5c3RlbS4gVGhpcyBpcyB0aGUgY29vcmRpbmF0ZSBvZiB0aGUgdGV4dCBtYXRyaXggY29u
Y2F0ZW5hdGVkIHdpdGggdGhlIENUTS4gRm9yIHZlcnRpY2FsIHRleHQsIHRoaXMgaXMgcm90YXRl
ZCBzdWNoIHRoYXQKKyAgICAvLyAgICAgICAgaW5jcmVhc2luZyBZIGdvZXMgcGh5c2ljYWxseSB1
cCwgYW5kIGluY3JlYXNpbmcgWCBnb2VzIHBoeXNpY2FsbHkgcmlnaHQuIFRoZSBjb250cm9sIHBv
aW50cyBpbiBmb250IGNvbnRvdXJzIGFyZSBhdXRob3JlZCBhY2NvcmRpbmcgdG8gdGhpcworICAg
IC8vICAgICAgICBpbmNyZWFzaW5nLVktdXAgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8gNC4g
U3ludGhldGljLW9ibGlxdWUtbGVzcyB0ZXh0IGNvb3JkaW5hdGUgc3lzdGVtLiBUaGlzIHdvdWxk
IGJlIGlkZW50aWNhbCB0byB0aGUgdGV4dCBjb29yZGluYXRlIHN5c3RlbSBpZiBzeW50aGV0aWMg
b2JsaXF1ZSB3YXMgbm90IGluIGVmZmVjdC4gVGhpcworICAgIC8vICAgICAgICBpcyB1c2VmdWwg
YmVjYXVzZSwgd2hlbiB3ZSdyZSBtb3ZpbmcgZ2x5cGhzIGFyb3VuZCwgd2UgdXN1YWxseSBkb24n
dCB3YW50IHRvIGNvbnNpZGVyIHN5bnRoZXRpYyBvYmxpcXVlLiBJbnN0ZWFkLCBzeW50aGV0aWMg
b2JsaXF1ZSBpcyBqdXN0CisgICAgLy8gICAgICAgIGEgcmFzdGVyaXphdGlvbi10aW1lIGVmZmVj
dCwgYW5kIG5vdCB1c2VkIGZvciBnbHlwaCBwb3NpdGlvbmluZy9sYXlvdXQuCisgICAgLy8gICAg
ICAgIEZJWE1FOiBEb2VzIHRoaXMgbWVhbiB0aGF0IHN5bnRoZXRpYyBvYmxpcXVlIHNob3VsZCBh
bHdheXMgYmUgYXBwbGllZCBvbiB0aGUgcmVzdWx0IG9mIHJvdGF0ZUxlZnRUcmFuc2Zvcm0oKSBp
biBjb21wdXRlVmVydGljYWxUZXh0TWF0cml4KCksCisgICAgLy8gICAgICAgIHJhdGhlciB0aGFu
IHRoZSBvdGhlciB3YXkgYXJvdW5kPworCisgICAgLy8gSW1hZ2luZSBhbiB2ZXJ0aWNhbCB1cHJp
Z2h0IGdseXBoOgorICAgIC8vICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLyB8
ICAgICAgX19fICAgICAgIF9fXyAgICAgICB8CisgICAgLy8gfCAgICAgIFwgIFwgICAgIC8gIC8g
ICAgICAgfAorICAgIC8vIHwgICAgICAgXCAgXCAgIC8gIC8gICAgICAgIHwKKyAgICAvLyB8ICAg
ICAgICBcICBcIC8gIC8gICAgICAgICB8CisgICAgLy8gfCAgICAgICAgIFwgIFYgIC8gICAgICAg
ICAgfAorICAgIC8vIHwgICAgICAgICAgXCAgIC8gICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAg
ICAgIHwgICB8ICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICB8ICAgfCAgICAgICAgICAg
fAorICAgIC8vIHwgICAgICAgICAgfCAgIHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAg
IHwgICB8ICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICB8X19ffCAgICAgICAgICAgfAor
ICAgIC8vIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAvLyArLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rCisgICAgLy8KKyAgICAvLyBUaGUgaWRlb2dyYXBoaWMgYmFzZWxpbmUg
bGllcyBpbiB0aGUgY2VudGVyIG9mIHRoZSBnbHlwaCwgYW5kIHRoZSBhbHBoYWJldGljIGJhc2Vs
aW5lIGxpZXMgdG8gdGhlIGxlZnQgb2YgaXQ6CisgICAgLy8gICAgIHwgICAgICAgIHwKKyAgICAv
LyArLS0tfC0tLS0tLS0tfC0tLS0tLS0tLS0tLS0rCisgICAgLy8gfCAgIHwgIF9fXyAgIHwgICBf
X18gICAgICAgfAorICAgIC8vIHwgICB8ICBcICBcICB8ICAvICAvICAgICAgIHwKKyAgICAvLyB8
ICAgfCAgIFwgIFwgfCAvICAvICAgICAgICB8CisgICAgLy8gfCAgIHwgICAgXCAgXHwvICAvICAg
ICAgICAgfAorICAgIC8vIHwgICB8ICAgICBcICB8ICAvICAgICAgICAgIHwKKyAgICAvLyB8ICAg
fCAgICAgIFwgfCAvICAgICAgICAgICB8CisgICAgLy8gfCAgIHwgICAgICB8IHwgfCAgICAgICAg
ICAgfAorICAgIC8vIHwgICB8ICAgICAgfCB8IHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgfCAg
ICAgIHwgfCB8ICAgICAgICAgICB8CisgICAgLy8gfCAgIHwgICAgICB8IHwgfCAgICAgICAgICAg
fAorICAgIC8vIHwgICB8ICAgICAgfF98X3wgICAgICAgICAgIHwKKyAgICAvLyB8ICAgfCAgICAg
ICAgfCAgICAgICAgICAgICB8CisgICAgLy8gKy0tLXwtLS0tLS0tLXwtLS0tLS0tLS0tLS0tKwor
ICAgIC8vICAgICB8ICAgICAgICB8IDw9PSBpZGVvZ3JhcGhpYyBiYXNlbGluZQorICAgIC8vICAg
ICB8IDw9PSBhbHBoYWJldGljIGJhc2VsaW5lCisgICAgLy8KKyAgICAvLyBUaGUgZ2x5cGggaXRz
ZWxmIGhhcyBhIGxvY2FsIG9yaWdpbiwgd2hpY2ggaXMgdGhlIHBvc2l0aW9uIHNlbnQgdG8gQ29y
ZSBUZXh0LiBUaGUgY29udHJvbCBwb2ludHMgb2YgdGhlIGNvbnRvdXJzIGFyZSBkZWZpbmVkIHJl
bGF0aXZlIHRvIHRoaXMgcG9pbnQuCisgICAgLy8gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
KworICAgIC8vIHwgICAgICBfX18gICAgICAgX19fICAgICAgIHwKKyAgICAvLyB8ICAgICAgXCAg
XCAgICAgLyAgLyAgICAgICB8CisgICAgLy8gfCAgICAgICBcICBcICAgLyAgLyAgICAgICAgfAor
ICAgIC8vIHwgICAgICAgIFwgIFwgLyAgLyAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgXCAg
ViAgLyAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICBcICAgLyAgICAgICAgICAgfAorICAg
IC8vIHwgICAgICAgICAgfCAgIHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgIHwgICB8
ICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICB8ICAgfCAgICAgICAgICAgfAorICAgIC8v
ICogPD0gaGVyZSAgfCAgIHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgIHxfX198ICAg
ICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLworICAgIC8vIE5vdywgZm9yIGhvcml6
b250YWwgdGV4dCwgd2UgY2FuIGRvIHRoZSBzaW1wbGUgdGhpbmcgb2YganVzdDoKKyAgICAvLyAx
LiBQbGFjZSB0aGUgcGVuIGF0IGEgcG9zaXRpb24uIFJlY29yZCB0aGlzIHBvc2l0aW9uIGFzIHRo
ZSBsb2NhbCBvcmlnaW4gb2YgdGhlIGZpcnN0IGdseXBoCisgICAgLy8gMi4gTW92ZSB0aGUgcGVu
IGFjY29yZGluZyB0byB0aGUgZ2x5cGgncyBhZHZhbmNlCisgICAgLy8gMy4gUmVjb3JkIGEgbmV3
IHBvc2l0aW9uIGFzIHRoZSBsb2NhbCBvcmlnaW4gb2YgdGhlIG5leHQgZ2x5cGgKKyAgICAvLyA0
LiBHbyB0byAyCisgICAgLy8gSG93ZXZlciwgZm9yIHZlcnRpY2FsIHRleHQsIHdlIGNhbid0IGdl
dCBhd2F5IHdpdGggdGhpcyBiZWNhdXNlIHRoZSBnbHlwaCBvcmlnaW5zIGFyZSBub3Qgb24gdGhl
IGJhc2VsaW5lLgorICAgIC8vIFRoaXMgaXMgd2hhdCB0aGUgInZlcnRpY2FsIHRyYW5zbGF0aW9u
IGZvciBhIGdseXBoIiBpcy4gSXQgY29udGFpbnMgdGhpcyB2ZWN0b3I6CisgICAgLy8gKy0tLS0t
LS0tLS0tLUEtLS0tLS0tLS0tLS0tKworICAgIC8vIHwgICAgICAgICAgIC8gICAgICAgICAgICAg
IHwKKyAgICAvLyB8ICAgICAgICAgIC8gICAgICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAg
LS0gICAgICAgICAgICAgICAgfAorICAgIC8vIHwgICAgICAgLyAgICAgICAgICAgICAgICAgIHwK
KyAgICAvLyB8ICAgICAgLyAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gfCAgICAtLSAgICAg
ICAgICAgICAgICAgICAgfAorICAgIC8vIHwgICAvICAgICAgICAgICAgICAgICAgICAgIHwKKyAg
ICAvLyB8ICAvICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gfHxfICAgICAgICAgICAg
ICAgICAgICAgICAgfAorICAgIC8vIEIgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAv
LyB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICAgICAgICAg
ICAgICAgICAgfAorICAgIC8vICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLyBJ
dCBwb2ludHMgZnJvbSB0aGUgcGVuIHBvc2l0aW9uIG9uIHRoZSBpZGVvZ3JhcGhpYyBiYXNlbGlu
ZSB0byB0aGUgZ2x5cGgncyBsb2NhbCBvcmlnaW4uIFRoaXMgaXMgKHVzdWFsbHkpIHBoeXNpY2Fs
bHkKKyAgICAvLyBkb3duLWFuZC10by10aGUtbGVmdC4gQ29yZSBUZXh0IGdpdmVzIHVzIHRoZXNl
IHZlY3RvcnMgaW4gdGhlIHRleHQgY29vcmRpbmF0ZSBzeXN0ZW0sIGFuZCBzbyB0aGVyZWZvcmUg
dGhlc2UgdmVjdG9ycyAodXN1YWxseSkgaGF2ZQorICAgIC8vIGJvdGggWCBhbmQgWSBjb21wb25l
bnRzIG5lZ2F0aXZlLgorCisgICAgLy8gVGhlIGdvYWwgb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBw
cm9kdWNlIGdseXBoIG9yaWdpbnMgaW4gdGhlIHRleHQgY29vcmRpbmF0ZSBzeXN0ZW0sIGJlY2F1
c2UgdGhhdCdzIHdoYXQgQ29yZSBUZXh0IGV4cGVjdHMuIFRoZSAiYWR2YW5jZXMiCisgICAgLy8g
YW5kICJwb2ludCIgcGFyYW1ldGVycyB0byB0aGlzIGZ1bmN0aW9uIGFyZSBpbiB0aGUgdXNlciBj
b29yZGluYXRlIHN5c3RlbS4gVGhlICJ0cmFuc2xhdGlvbnMiIHBhcmFtZXRlciBpcyBpbiB0aGUg
InN5bnRoZXRpYy1vYmxpcXVlLWxlc3MKKyAgICAvLyB0ZXh0IGNvb3JkaW5hdGUgc3lzdGVtLiIK
KworICAgIC8vIENHQ29udGV4dEdldFRleHRNYXRyaXgoKSB0cmFuc2Zvcm1zIHBvaW50cyBmcm9t
IHRleHQgY29vcmRpbmF0ZXMgdG8gdXNlciBjb29yZGluYXRlcy4gSG93ZXZlciwgd2UncmUgdHJ5
aW5nIHRvIHByb2R1Y2UgdGV4dCBjb29yZGluYXRlcyBmcm9tCisgICAgLy8gdXNlciBjb29yZGlu
YXRlcywgc28gd2UgaW52ZXJ0IGl0LgogICAgIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9
IENHQWZmaW5lVHJhbnNmb3JtSW52ZXJ0KENHQ29udGV4dEdldFRleHRNYXRyaXgoY29udGV4dCkp
OwogCisgICAgLy8gQmVjYXVzZSB0aGUgInZlcnRpY2FsIHRyYW5zbGF0aW9uIGZvciBhIGdseXBo
IiB2ZWN0b3Igc3RhcnRzIGF0IHRoZSBpZGVvZ3JhcGhpYyBiYXNlbGluZSAodGhlIHBvaW50IEEg
aW4gdGhlIGFib3ZlIGRpYWdyYW0pLCB3ZSBoYXZlIHRvCisgICAgLy8gYWRqdXN0IHRoZSBwZW4g
cG9zaXRpb24gdG8gc3RhcnQgdGhlcmUuIFdlYktpdCdzIHRleHQgcm91dGluZXMgc3RhcnQgb3V0
IHVzaW5nIHRoZSBhbHBoYWJldGljIGJhc2VsaW5lIHNvIHdlIGFkanVzdCB0aGUgc3RhcnQgcG9z
aXRpb24KKyAgICAvLyBoZXJlLCB3aGljaCBoYXMgdGhlIGVmZmVjdCBvZiBzaGlmdGluZyB0aGUg
d2hvbGUgcnVuIGFsdG9nZXRoZXIuCisgICAgLy8KKyAgICAvLyBhc2NlbnREZWx0YSBpcyAodXN1
YWxseSkgYSBuZWdhdGl2ZSBudW1iZXIsIGFuZCByZXByZXNlbnRzIHRoZSBkaXN0YW5jZSBiZXR3
ZWVuIHRoZSBpZGVvZ3JhcGhpYyBiYXNlbGluZSB0byB0aGUgYWxwaGFiZXRpYyBiYXNlbGluZS4K
KyAgICAvLyBJbiB1c2VyIGNvb3JkaW5hdGVzLCB3ZSB3YW50IHRvIGFkanVzdCB0aGUgWSBjb21w
b25lbnQgdG8gbWFrZSBhIGhvcml6b250YWwgcGh5c2ljYWwgY2hhbmdlLiBBbmQsIGJlY2F1c2Ug
dGhlIHVzZXIgY29vcmRpbmF0ZSBzeXN0ZW0gaXMKKyAgICAvLyBsb2dpY2FsbHkgaW5jcmVhc2lu
Zy1ZLWRvd24sIHdlIGFkZCB0aGUgdmFsdWUsIHdoaWNoIGlzIG5lZ2F0aXZlLCB0byBtb3ZlIHVz
IGxvZ2ljYWxseSB1cCwgd2hpY2ggaXMgcGh5c2ljYWxseSB0byB0aGUgcmlnaHQuIE5vdyBvdXIg
cG9zaXRpb24KKyAgICAvLyBpcyBhdCB0aGUgcG9pbnQgbGFiZWxsZWQgQSBpbiB0aGUgYWJvdmUg
ZGlhZ3JhbSwgaW4gdXNlciBjb29yZGluYXRlcy4KICAgICBhdXRvIHBvc2l0aW9uID0gQ0dQb2lu
dE1ha2UocG9pbnQueCgpLCBwb2ludC55KCkgKyBhc2NlbnREZWx0YSk7CisKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewotICAgICAgICBDR1NpemUgdHJhbnNsYXRp
b24gPSBDR1NpemVBcHBseUFmZmluZVRyYW5zZm9ybSh0cmFuc2xhdGlvbnNbaV0sIHJvdGF0ZUxl
ZnRUcmFuc2Zvcm0oKSk7Ci0gICAgICAgIHBvc2l0aW9uc1tpXSA9IENHUG9pbnRBcHBseUFmZmlu
ZVRyYW5zZm9ybShDR1BvaW50TWFrZShwb3NpdGlvbi54IC0gdHJhbnNsYXRpb24ud2lkdGgsIHBv
c2l0aW9uLnkgKyB0cmFuc2xhdGlvbi5oZWlnaHQpLCB0cmFuc2Zvcm0pOworICAgICAgICAvLyBU
aGUgInRyYW5zbGF0aW9ucyIgcGFyYW1ldGVyIGlzIGluIHRoZSAic3ludGhldGljLW9ibGlxdWUt
bGVzcyB0ZXh0IGNvb3JkaW5hdGUgc3lzdGVtIiBhbmQgd2Ugd2FudCB0byBhZGQgaXQgdG8gdGhl
IHBvc2l0aW9uIGluIHRoZSB1c2VyCisgICAgICAgIC8vIGNvb3JkaW5hdGUgc3lzdGVtLiBMdWNr
aWx5LCB0aGUgdGV4dCBtYXRyaXggKG9yLCBhdCBsZWFzdCB0aGUgdmVyc2lvbiBvZiB0aGUgdGV4
dCBtYXRyaXggdGhhdCBkb2Vzbid0IGluY2x1ZGUgc3ludGhldGljIG9ibGlxdWUpIGRvZXMgZXhh
Y3RseQorICAgICAgICAvLyB0aGlzLiBTbywgd2UganVzdCBjcmVhdGUgdGhlIHN5bnRoZXRpYy1v
YmxpcXVlLWxlc3MgdGV4dCBtYXRyaXgsIGFuZCBydW4gdGhlIHRyYW5zbGF0aW9uIHRocm91Z2gg
aXQuIFRoaXMgZ2l2ZXMgdXMgdGhlIHRyYW5zbGF0aW9uIGluIHVzZXIKKyAgICAgICAgLy8gY29v
cmRpbmF0ZXMuCisgICAgICAgIGF1dG8gdHJhbnNsYXRpb24gPSBDR1NpemVBcHBseUFmZmluZVRy
YW5zZm9ybSh0cmFuc2xhdGlvbnNbaV0sIGNvbXB1dGVWZXJ0aWNhbFRleHRNYXRyaXgoY29tcHV0
ZU92ZXJhbGxUZXh0TWF0cml4SW50ZXJuYWwoKSkpOworCisgICAgICAgIC8vIE5vdyB3ZSBjYW4g
YWRkIHRoZSBwb3NpdGlvbiBpbiB1c2VyIGNvb3JkaW5hdGVzIHdpdGggdGhlIHRyYW5zbGF0aW9u
IGluIHVzZXIgY29vcmRpbmF0ZXMuCisgICAgICAgIGF1dG8gcG9zaXRpb25JblVzZXJDb29yZGlu
YXRlcyA9IENHUG9pbnRNYWtlKHBvc2l0aW9uLnggKyB0cmFuc2xhdGlvbi53aWR0aCwgcG9zaXRp
b24ueSArIHRyYW5zbGF0aW9uLmhlaWdodCk7CisKKyAgICAgICAgLy8gQW5kIHRoZW4gcHV0IGl0
IGJhY2sgaW4gZm9udCBjb29yZGluYXRlcyBmb3Igc3VibWlzc2lvbiB0byBDb3JlIFRleHQuIFlh
eSEKKyAgICAgICAgcG9zaXRpb25zW2ldID0gQ0dQb2ludEFwcGx5QWZmaW5lVHJhbnNmb3JtKHBv
c2l0aW9uSW5Vc2VyQ29vcmRpbmF0ZXMsIHRyYW5zZm9ybSk7CisKKyAgICAgICAgLy8gQWR2YW5j
ZSB0aGUgcG9zaXRpb24gdG8gdGhlIG5leHQgcG9zaXRpb24gaW4gdXNlciBjb29yZGluYXRlcy4g
Qm90aCB0aGUgYWR2YW5jZXMgYW5kIHBvc2l0aW9uIGFyZSBpbiB1c2VyIGNvb3JkaW5hdGVzLgog
ICAgICAgICBwb3NpdGlvbi54ICs9IGFkdmFuY2VzW2ldLndpZHRoOwogICAgICAgICBwb3NpdGlv
bi55ICs9IGFkdmFuY2VzW2ldLmhlaWdodDsKICAgICB9Cg==
</data>
<flag name="commit-queue"
          id="486566"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457857</attachid>
            <date>2022-04-18 22:42:22 -0700</date>
            <delta_ts>2022-04-19 00:02:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239480-20220418224221.patch</filename>
            <type>text/plain</type>
            <size>14072</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQwODhjMmZhY2RlNTIw
YjM0MjE4NDBlYzUxMWZjMDBjOGViZDZjOS4uNjBjOGY2Yzk2ZTcxMjg1MGFhMzAxMGNhYjY1NmVl
ODZhZjdhYzEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTA0LTE4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBB
ZGQgZXhwbGFuYXRvcnkgY29tbWVudHMgaW4gZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9z
aXRpb25zKCkgYW5kIHNpbXBsaWZ5IGl0IHNvbWV3aGF0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk0ODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGFkZHMgYSBsb3Qgb2YgZXhwbGFuYXRvcnkg
dGV4dCBpbiBmaWxsVmVjdG9yV2l0aFZlcnRpY2FsR2x5cGhQb3NpdGlvbnMoKS4gSXQgYWxzbyBy
ZXdyaXRlcyBzb21lIG9mIGl0IHRvCisgICAgICAgIGNhbGwgc2hhcmVkIGZ1bmN0aW9ucyAoY29t
cHV0ZU92ZXJhbGxUZXh0TWF0cml4SW50ZXJuYWwoKSBhbmQgY29tcHV0ZVZlcnRpY2FsVGV4dE1h
dHJpeEludGVybmFsKCkpIGluc3RlYWQgb2YKKyAgICAgICAgcmVpbXBsZW1lbnRpbmcgdGhlIGNv
bnRlbnRzIG9mIHRob3NlIGZ1bmN0aW9ucy4KKworICAgICAgICBUaGUgbGFzdCB0aGluZyB0aGlz
IHBhdGNoIGRvZXMgaXMgaXQgc3RvcHMgYWRkaW5nIGluIENURm9udEdldE1hdHJpeCgpIHRvIHRo
ZSB0ZXh0IG1hdHJpeCwgYmVjYXVzZToKKyAgICAgICAgMS4gSXQncyBhbHdheXMgdGhlIGlkZW50
aXR5LCBiZWNhdXNlIHdlIG5ldmVyIGNyZWF0ZSBhIGZvbnQgd2l0aCBvbmUgb2YgdGhlc2UgdGhp
bmdzCisgICAgICAgIDIuIEV2ZW4gaWYgaXQgd2Fzbid0IHRoZSBpZGVudGl0eSwgQ29yZSBUZXh0
IGFscmVhZHkgYXBwbGllcyBpdCBpdHNlbGYsIHNvIGlmIHdlIGFwcGx5IGl0LCBpdCB3b3VsZCBi
ZSBkb3VibGUKKyAgICAgICAgICAgICAgIGFwcGxpZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjb21wdXRlT3ZlcmFsbFRleHRNYXRyaXhJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpjb21wdXRlT3ZlcmFsbFRleHRNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0
ZVZlcnRpY2FsVGV4dE1hdHJpeEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVW
ZXJ0aWNhbFRleHRNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbFZlY3RvcldpdGhWZXJ0
aWNhbEdseXBoUG9zaXRpb25zKToKKwogMjAyMi0wNC0xOCAgVHlsZXIgV2lsY29jayAgPHR5bGVy
X3dAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBVcGRhdGUgdGhlIGlzb2xhdGVkIHRyZWUgaW4g
cmVzcG9uc2UgdG8gQVhFbGVtZW50QnVzeUNoYW5nZWQgYW5kIEFYVGV4dENoYW5nZWQgbm90aWZp
Y2F0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29y
ZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcAppbmRleCAxZTg0NDI3MDQy
YjA5OWRkYjNlNDFlZWZmNmNlOGEzZjBjY2VhNTE3Li44ODFjYzFiMDIxYzRjMmMwMzY5Yjk2OTcz
ZWE2YWMwMzI2ODU1MzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcApAQCAt
NjAsNDQgKzYwLDU1IEBAIHN0YXRpYyBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHJvdGF0ZUxlZnRU
cmFuc2Zvcm0oKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUFmZmluZVRyYW5zZm9ybSBjb21w
dXRlT3ZlcmFsbFRleHRNYXRyaXgoY29uc3QgRm9udCYgZm9udCkKK3N0YXRpYyBBZmZpbmVUcmFu
c2Zvcm0gY29tcHV0ZU92ZXJhbGxUZXh0TWF0cml4SW50ZXJuYWwoY29uc3Qgc3RkOjpvcHRpb25h
bDxBZmZpbmVUcmFuc2Zvcm0+JiBzeW50aGV0aWNPYmxpcXVlID0gc3RkOjpudWxsb3B0KQogewot
ICAgIGF1dG8mIHBsYXRmb3JtRGF0YSA9IGZvbnQucGxhdGZvcm1EYXRhKCk7CiAgICAgQWZmaW5l
VHJhbnNmb3JtIHJlc3VsdDsKLSAgICBpZiAoIXBsYXRmb3JtRGF0YS5pc0NvbG9yQml0bWFwRm9u
dCgpKQotICAgICAgICByZXN1bHQgPSBDVEZvbnRHZXRNYXRyaXgocGxhdGZvcm1EYXRhLmN0Rm9u
dCgpKTsKKwogICAgIHJlc3VsdC5zZXRCKC1yZXN1bHQuYigpKTsKICAgICByZXN1bHQuc2V0RCgt
cmVzdWx0LmQoKSk7CisKKyAgICBpZiAoc3ludGhldGljT2JsaXF1ZSkKKyAgICAgICAgcmVzdWx0
ID0gKnN5bnRoZXRpY09ibGlxdWUgKiByZXN1bHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CitBZmZpbmVUcmFuc2Zvcm0gY29tcHV0ZU92ZXJhbGxUZXh0TWF0cml4KGNvbnN0IEZvbnQmIGZv
bnQpCit7CisgICAgc3RkOjpvcHRpb25hbDxBZmZpbmVUcmFuc2Zvcm0+IHN5bnRoZXRpY09ibGlx
dWU7CisgICAgYXV0byYgcGxhdGZvcm1EYXRhID0gZm9udC5wbGF0Zm9ybURhdGEoKTsKICAgICBp
ZiAocGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKSkgewogICAgICAgICBmbG9hdCBvYmxp
cXVlU2tldyA9IHRhbmYoZGVnMnJhZChGb250Q2FzY2FkZTo6c3ludGhldGljT2JsaXF1ZUFuZ2xl
KCkpKTsKICAgICAgICAgaWYgKHBsYXRmb3JtRGF0YS5vcmllbnRhdGlvbigpID09IEZvbnRPcmll
bnRhdGlvbjo6VmVydGljYWwpIHsKICAgICAgICAgICAgIGlmIChmb250LmlzVGV4dE9yaWVudGF0
aW9uRmFsbGJhY2soKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBBZmZpbmVUcmFuc2Zvcm0o
MSwgb2JsaXF1ZVNrZXcsIDAsIDEsIDAsIDApICogcmVzdWx0OworICAgICAgICAgICAgICAgIHN5
bnRoZXRpY09ibGlxdWUgPSBBZmZpbmVUcmFuc2Zvcm0oMSwgb2JsaXF1ZVNrZXcsIDAsIDEsIDAs
IDApOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IEFmZmluZVRy
YW5zZm9ybSgxLCAtb2JsaXF1ZVNrZXcsIDAsIDEsIDAsIDApICogcmVzdWx0OworICAgICAgICAg
ICAgICAgIHN5bnRoZXRpY09ibGlxdWUgPSBBZmZpbmVUcmFuc2Zvcm0oMSwgLW9ibGlxdWVTa2V3
LCAwLCAxLCAwLCAwKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICByZXN1bHQgPSBBZmZp
bmVUcmFuc2Zvcm0oMSwgMCwgLW9ibGlxdWVTa2V3LCAxLCAwLCAwKSAqIHJlc3VsdDsKKyAgICAg
ICAgICAgIHN5bnRoZXRpY09ibGlxdWUgPSBBZmZpbmVUcmFuc2Zvcm0oMSwgMCwgLW9ibGlxdWVT
a2V3LCAxLCAwLCAwKTsKICAgICB9CiAKLSAgICAvLyBXZSdyZSBlbXVsYXRpbmcgdGhlIGJlaGF2
aW9yIG9mIENHQ29udGV4dFNldFRleHRQb3NpdGlvbigpIGJ5IGFkZGluZyBjb25zdGFudCBhbW91
bnRzIHRvIGVhY2ggZ2x5cGgncyBwb3NpdGlvbgotICAgIC8vIChzZWUgZmlsbFZlY3RvcldpdGhI
b3Jpem9udGFsR2x5cGhQb3NpdGlvbnMoKSBhbmQgZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBo
UG9zaXRpb25zKCkpLgotICAgIC8vIENHQ29udGV4dFNldFRleHRQb3NpdGlvbigpIGhhcyB0aGUg
c2lkZSBlZmZlY3Qgb2YgY2xvYmJlcmluZyB0aGUgRSBhbmQgRiBmaWVsZHMgb2YgdGhlIHRleHQg
bWF0cml4LAotICAgIC8vIHNvIHdlIGRvIHRoYXQgZXhwbGljaXRseSBoZXJlLgotICAgIHJlc3Vs
dC5zZXRFKDApOwotICAgIHJlc3VsdC5zZXRGKDApOwotICAgIHJldHVybiByZXN1bHQ7CisgICAg
cmV0dXJuIGNvbXB1dGVPdmVyYWxsVGV4dE1hdHJpeEludGVybmFsKHN5bnRoZXRpY09ibGlxdWUp
OwogfQogCi1BZmZpbmVUcmFuc2Zvcm0gY29tcHV0ZVZlcnRpY2FsVGV4dE1hdHJpeChjb25zdCBG
b250JiBmb250LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHByZXZpb3VzVGV4dE1hdHJpeCkKK3N0
YXRpYyBBZmZpbmVUcmFuc2Zvcm0gY29tcHV0ZVZlcnRpY2FsVGV4dE1hdHJpeEludGVybmFsKGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgcHJldmlvdXNUZXh0TWF0cml4KQogewotICAgIEFTU0VSVF9V
TlVTRUQoZm9udCwgZm9udC5wbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IEZvbnRPcmll
bnRhdGlvbjo6VmVydGljYWwpOwogICAgIC8vIFRoZSB0cmFuc2xhdGlvbiBoZXJlICgiZSIgYW5k
ICJmIiBmaWVsZHMpIGFyZSBpcnJlbGV2YW50LCBiZWNhdXNlCiAgICAgLy8gdGhpcyBtYXRyaXgg
aXMgaW52ZXJ0ZWQgaW4gZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9zaXRpb25zIHRvIHBs
YWNlIHRoZSBnbHlwaHMgaW4gdGhlIENUTSdzIGNvb3JkaW5hdGUgc3lzdGVtLgogICAgIC8vIEFs
bCB3ZSdyZSB0cnlpbmcgdG8gZG8gaGVyZSBpcyByb3RhdGUgdGhlIHRleHQgbWF0cml4IHNvIGds
eXBocyBhcHBlYXIgdmlzdWFsbHkgdXByaWdodC4KICAgICAvLyBXZSBoYXZlIHRvIGluY2x1ZGUg
dGhlIHByZXZpb3VzIHRleHQgbWF0cml4IGJlY2F1c2UgaXQgaW5jbHVkZXMgdGhpbmdzIGxpa2Ug
c3ludGhldGljIG9ibGlxdWUuCisgICAgLy8KKyAgICAvLyBCZWNhdXNlIHRoaXMgaXMgYSBsZWZ0
LW11bHRpcGx5LCB3ZSdyZSB0YWtpbmcgdGhlIHBvaW50cyBmcm9tIHVzZXIgY29vcmRpbmF0ZXMs
IHdoaWNoIGFyZSBpbmNyZWFzaW5nLVktZ29lcy1kb3duLAorICAgIC8vIGFuZCB3ZSdyZSByb3Rh
dGluZyB0aGUgcG9pbnRzIHRvIHRoZSBsZWZ0IGluIHRoYXQgY29vcmRpbmF0ZSBzeXN0ZW0sIHRv
IHB1dCB0aGVtIHBoeXNpY2FsbHkgdXByaWdodC4KICAgICByZXR1cm4gcm90YXRlTGVmdFRyYW5z
Zm9ybSgpICogcHJldmlvdXNUZXh0TWF0cml4OwogfQogCitBZmZpbmVUcmFuc2Zvcm0gY29tcHV0
ZVZlcnRpY2FsVGV4dE1hdHJpeChjb25zdCBGb250JiBmb250LCBjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHByZXZpb3VzVGV4dE1hdHJpeCkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKGZvbnQsIGZvbnQu
cGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBGb250T3JpZW50YXRpb246OlZlcnRpY2Fs
KTsKKyAgICByZXR1cm4gY29tcHV0ZVZlcnRpY2FsVGV4dE1hdHJpeEludGVybmFsKHByZXZpb3Vz
VGV4dE1hdHJpeCk7Cit9CisKICNpZiAhUExBVEZPUk0oV0lOKQogCiAvLyBDb25mdXNpbmdseSwg
ZXZlbiB3aGVuIENHRm9udFJlbmRlcmluZ0dldEZvbnRTbW9vdGhpbmdEaXNhYmxlZCgpIHJldHVy
bnMgdHJ1ZSwgQ0dDb250ZXh0U2V0U2hvdWxkU21vb3RoRm9udHMoKSBzdGlsbCBpbXBhY3RzIHRl
eHQKQEAgLTE0MCwxMyArMTUxLDEzMCBAQCBzdGF0aWMgdm9pZCBmaWxsVmVjdG9yV2l0aEhvcml6
b250YWxHbHlwaFBvc2l0aW9ucyhWZWN0b3I8Q0dQb2ludCwgMjU2PiYgcG9zaXRpbwogCiBzdGF0
aWMgdm9pZCBmaWxsVmVjdG9yV2l0aFZlcnRpY2FsR2x5cGhQb3NpdGlvbnMoVmVjdG9yPENHUG9p
bnQsIDI1Nj4mIHBvc2l0aW9ucywgQ0dDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IENHU2l6ZSog
dHJhbnNsYXRpb25zLCBjb25zdCBDR1NpemUqIGFkdmFuY2VzLCB1bnNpZ25lZCBjb3VudCwgY29u
c3QgRmxvYXRQb2ludCYgcG9pbnQsIGZsb2F0IGFzY2VudERlbHRhKQogewotICAgIC8vIEtlZXAg
dGhpcyBpbiBzeW5jIGFzIHRoZSBpbnZlcnNlIG9mIGBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29y
ZERyYXdHbHlwaHNgLgorICAgIC8vIEtlZXAgdGhpcyBmdW5jdGlvbiBpbiBzeW5jIGFzIHRoZSBp
bnZlcnNlIG9mIGBEcmF3R2x5cGhzUmVjb3JkZXI6OnJlY29yZERyYXdHbHlwaHNgLgorCisgICAg
Ly8gSXQncyBpbXBvcnRhbnQgdG8gcmVhbGl6ZSB3ZSdyZSBkZWFsaW5nIHdpdGggNCBjb29yZGlu
YXRlIHN5c3RlbXMgaGVyZToKKyAgICAvLyAxLiBQaHlzaWNhbCBjb29yZGluYXRlIHN5c3RlbS4g
VGhpcyBpcyB3aGF0IHRoZSB1c2VyIHNlZXMuCisgICAgLy8gMi4gVXNlciBjb29yZGluYXRlIHN5
c3RlbS4gVGhpcyBpcyB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gb2YganVzdCB0aGUgQ1RNLiBGb3Ig
dmVydGljYWwgdGV4dCwgdGhpcyBpcyBqdXN0IGxpa2UgdGhlIG5vcm1hbCBXZWJLaXQgaW5jcmVh
c2luZy1ZLWRvd24KKyAgICAvLyAgICAgICAgY29vcmRpbmF0ZSBzeXN0ZW0sIGV4Y2VwdCB3ZSdy
ZSByb3RhdGVkIHJpZ2h0LCBzbyBsb2dpY2FsIHJpZ2h0IGlzIHBoeXNpY2FsIGRvd24uIChXZSBk
byB0aGlzIHNvIGxvZ2ljYWwgaW5saW5lIHByb2dyZXNzaW9uIHByb2NlZWRzIGluIHRoZQorICAg
IC8vICAgICAgICBsb2dpY2FsbHkgaW5jcmVhc2luZy1YIGRpbWVuc2lvbiwganVzdCBhcyBpdCB3
b3VsZCBpZiB3ZSB3ZXJlbid0IGRvaW5nIHZlcnRpY2FsIHN0dWZmLikKKyAgICAvLyAzLiBUZXh0
IGNvb3JkaW5hdGUgc3lzdGVtLiBUaGlzIGlzIHRoZSBjb29yZGluYXRlIG9mIHRoZSB0ZXh0IG1h
dHJpeCBjb25jYXRlbmF0ZWQgd2l0aCB0aGUgQ1RNLiBGb3IgdmVydGljYWwgdGV4dCwgdGhpcyBp
cyByb3RhdGVkIHN1Y2ggdGhhdAorICAgIC8vICAgICAgICBpbmNyZWFzaW5nIFkgZ29lcyBwaHlz
aWNhbGx5IHVwLCBhbmQgaW5jcmVhc2luZyBYIGdvZXMgcGh5c2ljYWxseSByaWdodC4gVGhlIGNv
bnRyb2wgcG9pbnRzIGluIGZvbnQgY29udG91cnMgYXJlIGF1dGhvcmVkIGFjY29yZGluZyB0byB0
aGlzCisgICAgLy8gICAgICAgIGluY3JlYXNpbmctWS11cCBjb29yZGluYXRlIHN5c3RlbS4KKyAg
ICAvLyA0LiBTeW50aGV0aWMtb2JsaXF1ZS1sZXNzIHRleHQgY29vcmRpbmF0ZSBzeXN0ZW0uIFRo
aXMgd291bGQgYmUgaWRlbnRpY2FsIHRvIHRoZSB0ZXh0IGNvb3JkaW5hdGUgc3lzdGVtIGlmIHN5
bnRoZXRpYyBvYmxpcXVlIHdhcyBub3QgaW4gZWZmZWN0LiBUaGlzCisgICAgLy8gICAgICAgIGlz
IHVzZWZ1bCBiZWNhdXNlLCB3aGVuIHdlJ3JlIG1vdmluZyBnbHlwaHMgYXJvdW5kLCB3ZSB1c3Vh
bGx5IGRvbid0IHdhbnQgdG8gY29uc2lkZXIgc3ludGhldGljIG9ibGlxdWUuIEluc3RlYWQsIHN5
bnRoZXRpYyBvYmxpcXVlIGlzIGp1c3QKKyAgICAvLyAgICAgICAgYSByYXN0ZXJpemF0aW9uLXRp
bWUgZWZmZWN0LCBhbmQgbm90IHVzZWQgZm9yIGdseXBoIHBvc2l0aW9uaW5nL2xheW91dC4KKyAg
ICAvLyAgICAgICAgRklYTUU6IERvZXMgdGhpcyBtZWFuIHRoYXQgc3ludGhldGljIG9ibGlxdWUg
c2hvdWxkIGFsd2F5cyBiZSBhcHBsaWVkIG9uIHRoZSByZXN1bHQgb2Ygcm90YXRlTGVmdFRyYW5z
Zm9ybSgpIGluIGNvbXB1dGVWZXJ0aWNhbFRleHRNYXRyaXgoKSwKKyAgICAvLyAgICAgICAgcmF0
aGVyIHRoYW4gdGhlIG90aGVyIHdheSBhcm91bmQ/CisKKyAgICAvLyBJbWFnaW5lIGFuIHZlcnRp
Y2FsIHVwcmlnaHQgZ2x5cGg6CisgICAgLy8gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwor
ICAgIC8vIHwgICAgICBfX18gICAgICAgX19fICAgICAgIHwKKyAgICAvLyB8ICAgICAgXCAgXCAg
ICAgLyAgLyAgICAgICB8CisgICAgLy8gfCAgICAgICBcICBcICAgLyAgLyAgICAgICAgfAorICAg
IC8vIHwgICAgICAgIFwgIFwgLyAgLyAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgXCAgViAg
LyAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICBcICAgLyAgICAgICAgICAgfAorICAgIC8v
IHwgICAgICAgICAgfCAgIHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgIHwgICB8ICAg
ICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICB8ICAgfCAgICAgICAgICAgfAorICAgIC8vIHwg
ICAgICAgICAgfCAgIHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgIHxfX198ICAgICAg
ICAgICB8CisgICAgLy8gfCAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLworICAgIC8vIFRoZSBpZGVvZ3JhcGhpYyBi
YXNlbGluZSBsaWVzIGluIHRoZSBjZW50ZXIgb2YgdGhlIGdseXBoLCBhbmQgdGhlIGFscGhhYmV0
aWMgYmFzZWxpbmUgbGllcyB0byB0aGUgbGVmdCBvZiBpdDoKKyAgICAvLyAgICAgfCAgICAgICAg
fAorICAgIC8vICstLS18LS0tLS0tLS18LS0tLS0tLS0tLS0tLSsKKyAgICAvLyB8ICAgfCAgX19f
ICAgfCAgIF9fXyAgICAgICB8CisgICAgLy8gfCAgIHwgIFwgIFwgIHwgIC8gIC8gICAgICAgfAor
ICAgIC8vIHwgICB8ICAgXCAgXCB8IC8gIC8gICAgICAgIHwKKyAgICAvLyB8ICAgfCAgICBcICBc
fC8gIC8gICAgICAgICB8CisgICAgLy8gfCAgIHwgICAgIFwgIHwgIC8gICAgICAgICAgfAorICAg
IC8vIHwgICB8ICAgICAgXCB8IC8gICAgICAgICAgIHwKKyAgICAvLyB8ICAgfCAgICAgIHwgfCB8
ICAgICAgICAgICB8CisgICAgLy8gfCAgIHwgICAgICB8IHwgfCAgICAgICAgICAgfAorICAgIC8v
IHwgICB8ICAgICAgfCB8IHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgfCAgICAgIHwgfCB8ICAg
ICAgICAgICB8CisgICAgLy8gfCAgIHwgICAgICB8X3xffCAgICAgICAgICAgfAorICAgIC8vIHwg
ICB8ICAgICAgICB8ICAgICAgICAgICAgIHwKKyAgICAvLyArLS0tfC0tLS0tLS0tfC0tLS0tLS0t
LS0tLS0rCisgICAgLy8gICAgIHwgICAgICAgIHwgPD09IGlkZW9ncmFwaGljIGJhc2VsaW5lCisg
ICAgLy8gICAgIHwgPD09IGFscGhhYmV0aWMgYmFzZWxpbmUKKyAgICAvLworICAgIC8vIFRoZSBn
bHlwaCBpdHNlbGYgaGFzIGEgbG9jYWwgb3JpZ2luLCB3aGljaCBpcyB0aGUgcG9zaXRpb24gc2Vu
dCB0byBDb3JlIFRleHQuIFRoZSBjb250cm9sIHBvaW50cyBvZiB0aGUgY29udG91cnMgYXJlIGRl
ZmluZWQgcmVsYXRpdmUgdG8gdGhpcyBwb2ludC4KKyAgICAvLyArLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rCisgICAgLy8gfCAgICAgIF9fXyAgICAgICBfX18gICAgICAgfAorICAgIC8vIHwg
ICAgICBcICBcICAgICAvICAvICAgICAgIHwKKyAgICAvLyB8ICAgICAgIFwgIFwgICAvICAvICAg
ICAgICB8CisgICAgLy8gfCAgICAgICAgXCAgXCAvICAvICAgICAgICAgfAorICAgIC8vIHwgICAg
ICAgICBcICBWICAvICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgIFwgICAvICAgICAgICAg
ICB8CisgICAgLy8gfCAgICAgICAgICB8ICAgfCAgICAgICAgICAgfAorICAgIC8vIHwgICAgICAg
ICAgfCAgIHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgIHwgICB8ICAgICAgICAgICB8
CisgICAgLy8gKiA8PSBoZXJlICB8ICAgfCAgICAgICAgICAgfAorICAgIC8vIHwgICAgICAgICAg
fF9fX3wgICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8Cisg
ICAgLy8gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgIC8vCisgICAgLy8gTm93LCBm
b3IgaG9yaXpvbnRhbCB0ZXh0LCB3ZSBjYW4gZG8gdGhlIHNpbXBsZSB0aGluZyBvZiBqdXN0Ogor
ICAgIC8vIDEuIFBsYWNlIHRoZSBwZW4gYXQgYSBwb3NpdGlvbi4gUmVjb3JkIHRoaXMgcG9zaXRp
b24gYXMgdGhlIGxvY2FsIG9yaWdpbiBvZiB0aGUgZmlyc3QgZ2x5cGgKKyAgICAvLyAyLiBNb3Zl
IHRoZSBwZW4gYWNjb3JkaW5nIHRvIHRoZSBnbHlwaCdzIGFkdmFuY2UKKyAgICAvLyAzLiBSZWNv
cmQgYSBuZXcgcG9zaXRpb24gYXMgdGhlIGxvY2FsIG9yaWdpbiBvZiB0aGUgbmV4dCBnbHlwaAor
ICAgIC8vIDQuIEdvIHRvIDIKKyAgICAvLyBIb3dldmVyLCBmb3IgdmVydGljYWwgdGV4dCwgd2Ug
Y2FuJ3QgZ2V0IGF3YXkgd2l0aCB0aGlzIGJlY2F1c2UgdGhlIGdseXBoIG9yaWdpbnMgYXJlIG5v
dCBvbiB0aGUgYmFzZWxpbmUuCisgICAgLy8gVGhpcyBpcyB3aGF0IHRoZSAidmVydGljYWwgdHJh
bnNsYXRpb24gZm9yIGEgZ2x5cGgiIGlzLiBJdCBjb250YWlucyB0aGlzIHZlY3RvcjoKKyAgICAv
LyArLS0tLS0tLS0tLS0tQS0tLS0tLS0tLS0tLS0rCisgICAgLy8gfCAgICAgICAgICAgLyAgICAg
ICAgICAgICAgfAorICAgIC8vIHwgICAgICAgICAgLyAgICAgICAgICAgICAgIHwKKyAgICAvLyB8
ICAgICAgICAtLSAgICAgICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAvICAgICAgICAgICAg
ICAgICAgfAorICAgIC8vIHwgICAgICAvICAgICAgICAgICAgICAgICAgIHwKKyAgICAvLyB8ICAg
IC0tICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gfCAgIC8gICAgICAgICAgICAgICAgICAg
ICAgfAorICAgIC8vIHwgIC8gICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAvLyB8fF8gICAg
ICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gQiAgICAgICAgICAgICAgICAgICAgICAgICAg
fAorICAgIC8vIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAg
ICAgICAgICAgICAgICAgICB8CisgICAgLy8gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwor
ICAgIC8vIEl0IHBvaW50cyBmcm9tIHRoZSBwZW4gcG9zaXRpb24gb24gdGhlIGlkZW9ncmFwaGlj
IGJhc2VsaW5lIHRvIHRoZSBnbHlwaCdzIGxvY2FsIG9yaWdpbi4gVGhpcyBpcyAodXN1YWxseSkg
cGh5c2ljYWxseQorICAgIC8vIGRvd24tYW5kLXRvLXRoZS1sZWZ0LiBDb3JlIFRleHQgZ2l2ZXMg
dXMgdGhlc2UgdmVjdG9ycyBpbiB0aGUgdGV4dCBjb29yZGluYXRlIHN5c3RlbSwgYW5kIHNvIHRo
ZXJlZm9yZSB0aGVzZSB2ZWN0b3JzICh1c3VhbGx5KSBoYXZlCisgICAgLy8gYm90aCBYIGFuZCBZ
IGNvbXBvbmVudHMgbmVnYXRpdmUuCisKKyAgICAvLyBUaGUgZ29hbCBvZiB0aGlzIGZ1bmN0aW9u
IGlzIHRvIHByb2R1Y2UgZ2x5cGggb3JpZ2lucyBpbiB0aGUgdGV4dCBjb29yZGluYXRlIHN5c3Rl
bSwgYmVjYXVzZSB0aGF0J3Mgd2hhdCBDb3JlIFRleHQgZXhwZWN0cy4gVGhlICJhZHZhbmNlcyIK
KyAgICAvLyBhbmQgInBvaW50IiBwYXJhbWV0ZXJzIHRvIHRoaXMgZnVuY3Rpb24gYXJlIGluIHRo
ZSB1c2VyIGNvb3JkaW5hdGUgc3lzdGVtLiBUaGUgInRyYW5zbGF0aW9ucyIgcGFyYW1ldGVyIGlz
IGluIHRoZSAic3ludGhldGljLW9ibGlxdWUtbGVzcworICAgIC8vIHRleHQgY29vcmRpbmF0ZSBz
eXN0ZW0uIgorCisgICAgLy8gQ0dDb250ZXh0R2V0VGV4dE1hdHJpeCgpIHRyYW5zZm9ybXMgcG9p
bnRzIGZyb20gdGV4dCBjb29yZGluYXRlcyB0byB1c2VyIGNvb3JkaW5hdGVzLiBIb3dldmVyLCB3
ZSdyZSB0cnlpbmcgdG8gcHJvZHVjZSB0ZXh0IGNvb3JkaW5hdGVzIGZyb20KKyAgICAvLyB1c2Vy
IGNvb3JkaW5hdGVzLCBzbyB3ZSBpbnZlcnQgaXQuCiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJh
bnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1JbnZlcnQoQ0dDb250ZXh0R2V0VGV4dE1hdHJpeChj
b250ZXh0KSk7CiAKKyAgICAvLyBCZWNhdXNlIHRoZSAidmVydGljYWwgdHJhbnNsYXRpb24gZm9y
IGEgZ2x5cGgiIHZlY3RvciBzdGFydHMgYXQgdGhlIGlkZW9ncmFwaGljIGJhc2VsaW5lICh0aGUg
cG9pbnQgQSBpbiB0aGUgYWJvdmUgZGlhZ3JhbSksIHdlIGhhdmUgdG8KKyAgICAvLyBhZGp1c3Qg
dGhlIHBlbiBwb3NpdGlvbiB0byBzdGFydCB0aGVyZS4gV2ViS2l0J3MgdGV4dCByb3V0aW5lcyBz
dGFydCBvdXQgdXNpbmcgdGhlIGFscGhhYmV0aWMgYmFzZWxpbmUgc28gd2UgYWRqdXN0IHRoZSBz
dGFydCBwb3NpdGlvbgorICAgIC8vIGhlcmUsIHdoaWNoIGhhcyB0aGUgZWZmZWN0IG9mIHNoaWZ0
aW5nIHRoZSB3aG9sZSBydW4gYWx0b2dldGhlci4KKyAgICAvLworICAgIC8vIGFzY2VudERlbHRh
IGlzICh1c3VhbGx5KSBhIG5lZ2F0aXZlIG51bWJlciwgYW5kIHJlcHJlc2VudHMgdGhlIGRpc3Rh
bmNlIGJldHdlZW4gdGhlIGlkZW9ncmFwaGljIGJhc2VsaW5lIHRvIHRoZSBhbHBoYWJldGljIGJh
c2VsaW5lLgorICAgIC8vIEluIHVzZXIgY29vcmRpbmF0ZXMsIHdlIHdhbnQgdG8gYWRqdXN0IHRo
ZSBZIGNvbXBvbmVudCB0byBtYWtlIGEgaG9yaXpvbnRhbCBwaHlzaWNhbCBjaGFuZ2UuIEFuZCwg
YmVjYXVzZSB0aGUgdXNlciBjb29yZGluYXRlIHN5c3RlbSBpcworICAgIC8vIGxvZ2ljYWxseSBp
bmNyZWFzaW5nLVktZG93biwgd2UgYWRkIHRoZSB2YWx1ZSwgd2hpY2ggaXMgbmVnYXRpdmUsIHRv
IG1vdmUgdXMgbG9naWNhbGx5IHVwLCB3aGljaCBpcyBwaHlzaWNhbGx5IHRvIHRoZSByaWdodC4g
Tm93IG91ciBwb3NpdGlvbgorICAgIC8vIGlzIGF0IHRoZSBwb2ludCBsYWJlbGxlZCBBIGluIHRo
ZSBhYm92ZSBkaWFncmFtLCBpbiB1c2VyIGNvb3JkaW5hdGVzLgogICAgIGF1dG8gcG9zaXRpb24g
PSBDR1BvaW50TWFrZShwb2ludC54KCksIHBvaW50LnkoKSArIGFzY2VudERlbHRhKTsKKwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7Ci0gICAgICAgIENHU2l6ZSB0
cmFuc2xhdGlvbiA9IENHU2l6ZUFwcGx5QWZmaW5lVHJhbnNmb3JtKHRyYW5zbGF0aW9uc1tpXSwg
cm90YXRlTGVmdFRyYW5zZm9ybSgpKTsKLSAgICAgICAgcG9zaXRpb25zW2ldID0gQ0dQb2ludEFw
cGx5QWZmaW5lVHJhbnNmb3JtKENHUG9pbnRNYWtlKHBvc2l0aW9uLnggLSB0cmFuc2xhdGlvbi53
aWR0aCwgcG9zaXRpb24ueSArIHRyYW5zbGF0aW9uLmhlaWdodCksIHRyYW5zZm9ybSk7CisgICAg
ICAgIC8vIFRoZSAidHJhbnNsYXRpb25zIiBwYXJhbWV0ZXIgaXMgaW4gdGhlICJzeW50aGV0aWMt
b2JsaXF1ZS1sZXNzIHRleHQgY29vcmRpbmF0ZSBzeXN0ZW0iIGFuZCB3ZSB3YW50IHRvIGFkZCBp
dCB0byB0aGUgcG9zaXRpb24gaW4gdGhlIHVzZXIKKyAgICAgICAgLy8gY29vcmRpbmF0ZSBzeXN0
ZW0uIEx1Y2tpbHksIHRoZSB0ZXh0IG1hdHJpeCAob3IsIGF0IGxlYXN0IHRoZSB2ZXJzaW9uIG9m
IHRoZSB0ZXh0IG1hdHJpeCB0aGF0IGRvZXNuJ3QgaW5jbHVkZSBzeW50aGV0aWMgb2JsaXF1ZSkg
ZG9lcyBleGFjdGx5CisgICAgICAgIC8vIHRoaXMuIFNvLCB3ZSBqdXN0IGNyZWF0ZSB0aGUgc3lu
dGhldGljLW9ibGlxdWUtbGVzcyB0ZXh0IG1hdHJpeCwgYW5kIHJ1biB0aGUgdHJhbnNsYXRpb24g
dGhyb3VnaCBpdC4gVGhpcyBnaXZlcyB1cyB0aGUgdHJhbnNsYXRpb24gaW4gdXNlcgorICAgICAg
ICAvLyBjb29yZGluYXRlcy4KKyAgICAgICAgYXV0byB0cmFuc2xhdGlvbiA9IENHU2l6ZUFwcGx5
QWZmaW5lVHJhbnNmb3JtKHRyYW5zbGF0aW9uc1tpXSwgY29tcHV0ZVZlcnRpY2FsVGV4dE1hdHJp
eEludGVybmFsKGNvbXB1dGVPdmVyYWxsVGV4dE1hdHJpeEludGVybmFsKCkpKTsKKworICAgICAg
ICAvLyBOb3cgd2UgY2FuIGFkZCB0aGUgcG9zaXRpb24gaW4gdXNlciBjb29yZGluYXRlcyB3aXRo
IHRoZSB0cmFuc2xhdGlvbiBpbiB1c2VyIGNvb3JkaW5hdGVzLgorICAgICAgICBhdXRvIHBvc2l0
aW9uSW5Vc2VyQ29vcmRpbmF0ZXMgPSBDR1BvaW50TWFrZShwb3NpdGlvbi54ICsgdHJhbnNsYXRp
b24ud2lkdGgsIHBvc2l0aW9uLnkgKyB0cmFuc2xhdGlvbi5oZWlnaHQpOworCisgICAgICAgIC8v
IEFuZCB0aGVuIHB1dCBpdCBiYWNrIGluIGZvbnQgY29vcmRpbmF0ZXMgZm9yIHN1Ym1pc3Npb24g
dG8gQ29yZSBUZXh0LiBZYXkhCisgICAgICAgIHBvc2l0aW9uc1tpXSA9IENHUG9pbnRBcHBseUFm
ZmluZVRyYW5zZm9ybShwb3NpdGlvbkluVXNlckNvb3JkaW5hdGVzLCB0cmFuc2Zvcm0pOworCisg
ICAgICAgIC8vIEFkdmFuY2UgdGhlIHBvc2l0aW9uIHRvIHRoZSBuZXh0IHBvc2l0aW9uIGluIHVz
ZXIgY29vcmRpbmF0ZXMuIEJvdGggdGhlIGFkdmFuY2VzIGFuZCBwb3NpdGlvbiBhcmUgaW4gdXNl
ciBjb29yZGluYXRlcy4KICAgICAgICAgcG9zaXRpb24ueCArPSBhZHZhbmNlc1tpXS53aWR0aDsK
ICAgICAgICAgcG9zaXRpb24ueSArPSBhZHZhbmNlc1tpXS5oZWlnaHQ7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457862</attachid>
            <date>2022-04-19 00:02:03 -0700</date>
            <delta_ts>2022-04-19 00:04:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239480-20220419000202.patch</filename>
            <type>text/plain</type>
            <size>16359</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQwODhjMmZhY2RlNTIw
YjM0MjE4NDBlYzUxMWZjMDBjOGViZDZjOS4uOWVkMTZkZjQ1MjM4ZGY4MjI2ZDhkZjE4OGVmNzJj
NmZhMzU2ZGY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTA0LTE5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBB
ZGQgZXhwbGFuYXRvcnkgY29tbWVudHMgaW4gZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9z
aXRpb25zKCkgYW5kIHNpbXBsaWZ5IGl0IHNvbWV3aGF0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk0ODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGFkZHMgYSBsb3Qgb2YgZXhwbGFuYXRvcnkg
dGV4dCBpbiBmaWxsVmVjdG9yV2l0aFZlcnRpY2FsR2x5cGhQb3NpdGlvbnMoKS4gSXQgYWxzbyBy
ZXdyaXRlcyBzb21lIG9mIGl0IHRvCisgICAgICAgIGNhbGwgc2hhcmVkIGZ1bmN0aW9ucyAoY29t
cHV0ZU92ZXJhbGxUZXh0TWF0cml4SW50ZXJuYWwoKSBhbmQgY29tcHV0ZVZlcnRpY2FsVGV4dE1h
dHJpeEludGVybmFsKCkpIGluc3RlYWQgb2YKKyAgICAgICAgcmVpbXBsZW1lbnRpbmcgdGhlIGNv
bnRlbnRzIG9mIHRob3NlIGZ1bmN0aW9ucy4KKworICAgICAgICBUaGUgbGFzdCB0aGluZyB0aGlz
IHBhdGNoIGRvZXMgaXMgaXQgc3RvcHMgYWRkaW5nIGluIENURm9udEdldE1hdHJpeCgpIHRvIHRo
ZSB0ZXh0IG1hdHJpeCwgYmVjYXVzZToKKyAgICAgICAgMS4gSXQncyBhbHdheXMgdGhlIGlkZW50
aXR5LCBiZWNhdXNlIHdlIG5ldmVyIGNyZWF0ZSBhIGZvbnQgd2l0aCBvbmUgb2YgdGhlc2UgdGhp
bmdzCisgICAgICAgIDIuIEV2ZW4gaWYgaXQgd2Fzbid0IHRoZSBpZGVudGl0eSwgQ29yZSBUZXh0
IGFscmVhZHkgYXBwbGllcyBpdCBpdHNlbGYsIHNvIGlmIHdlIGFwcGx5IGl0LCBpdCB3b3VsZCBi
ZSBkb3VibGUKKyAgICAgICAgICAgICAgIGFwcGxpZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
b3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1
dGVCYXNlT3ZlcmFsbFRleHRNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZU92ZXJh
bGxUZXh0TWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVCYXNlVmVydGljYWxUZXh0
TWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVWZXJ0aWNhbFRleHRNYXRyaXgpOgor
ICAgICAgICAoV2ViQ29yZTo6ZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9zaXRpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OnNob3dHbHlwaHNXaXRoQWR2YW5jZXMpOgorCiAyMDIyLTA0LTE4
ICBUeWxlciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IFVwZGF0
ZSB0aGUgaXNvbGF0ZWQgdHJlZSBpbiByZXNwb25zZSB0byBBWEVsZW1lbnRCdXN5Q2hhbmdlZCBh
bmQgQVhUZXh0Q2hhbmdlZCBub3RpZmljYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaAppbmRleCAwOWY0MWQ2MDFkNjBjYjEwZmI5OTY1NDAx
NDlhMWJjNjUyZmNlODM1Li5lZTYzNzY0NjkzYmIwOGI3MGE0ZWU2YzU0YmY1NjZmNTE0MzE4MmNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2Fk
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJGb250Q2FzY2FkZURlc2NyaXB0aW9uLmgiCiAj
aW5jbHVkZSAiRm9udENhc2NhZGVGb250cy5oIgogI2luY2x1ZGUgIlBhdGguaCIKKyNpbmNsdWRl
IDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KQEAgLTkxLDcg
KzkyLDkgQEAgc3RydWN0IEdseXBoT3ZlcmZsb3cgewogfTsKIAogI2lmIFVTRShDT1JFX1RFWFQp
CitBZmZpbmVUcmFuc2Zvcm0gY29tcHV0ZUJhc2VPdmVyYWxsVGV4dE1hdHJpeChjb25zdCBzdGQ6
Om9wdGlvbmFsPEFmZmluZVRyYW5zZm9ybT4mIHN5bnRoZXRpY09ibGlxdWUpOwogQWZmaW5lVHJh
bnNmb3JtIGNvbXB1dGVPdmVyYWxsVGV4dE1hdHJpeChjb25zdCBGb250Jik7CitBZmZpbmVUcmFu
c2Zvcm0gY29tcHV0ZUJhc2VWZXJ0aWNhbFRleHRNYXRyaXgoY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBwcmV2aW91c1RleHRNYXRyaXgpOwogQWZmaW5lVHJhbnNmb3JtIGNvbXB1dGVWZXJ0aWNhbFRl
eHRNYXRyaXgoY29uc3QgRm9udCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcHJldmlvdXNUZXh0
TWF0cml4KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQuY3BwCmluZGV4
IDFlODQ0MjcwNDJiMDk5ZGRiM2U0MWVlZmY2Y2U4YTNmMGNjZWE1MTcuLjEzNzFkY2UyMGE1ZDU3
YjMwZmVjYzZkMjM5MGVlN2VlNjdlYThkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRl
eHQuY3BwCkBAIC02MCw0NCArNjAsNTcgQEAgc3RhdGljIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
cm90YXRlTGVmdFRyYW5zZm9ybSgpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotQWZmaW5lVHJh
bnNmb3JtIGNvbXB1dGVPdmVyYWxsVGV4dE1hdHJpeChjb25zdCBGb250JiBmb250KQorQWZmaW5l
VHJhbnNmb3JtIGNvbXB1dGVCYXNlT3ZlcmFsbFRleHRNYXRyaXgoY29uc3Qgc3RkOjpvcHRpb25h
bDxBZmZpbmVUcmFuc2Zvcm0+JiBzeW50aGV0aWNPYmxpcXVlKQogewotICAgIGF1dG8mIHBsYXRm
b3JtRGF0YSA9IGZvbnQucGxhdGZvcm1EYXRhKCk7CiAgICAgQWZmaW5lVHJhbnNmb3JtIHJlc3Vs
dDsKLSAgICBpZiAoIXBsYXRmb3JtRGF0YS5pc0NvbG9yQml0bWFwRm9udCgpKQotICAgICAgICBy
ZXN1bHQgPSBDVEZvbnRHZXRNYXRyaXgocGxhdGZvcm1EYXRhLmN0Rm9udCgpKTsKKworICAgIC8v
IFRoaXMgaXMgYSBZLWZsaXAsIGJlY2F1c2UgdGV4dCdzIGNvb3JkaW5hdGUgc3lzdGVtIGlzIGlu
Y3JlYXNpbmctWS1nb2VzLXVwLAorICAgIC8vIGJ1dCBXZWJLaXQncyBjb29yZGluYXRlIHN5c3Rl
bSBpcyBpbmNyZWFzaW5nLVktZ29lcy1kb3duLgogICAgIHJlc3VsdC5zZXRCKC1yZXN1bHQuYigp
KTsKICAgICByZXN1bHQuc2V0RCgtcmVzdWx0LmQoKSk7CisKKyAgICBpZiAoc3ludGhldGljT2Js
aXF1ZSkKKyAgICAgICAgcmVzdWx0ID0gKnN5bnRoZXRpY09ibGlxdWUgKiByZXN1bHQ7CisKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitBZmZpbmVUcmFuc2Zvcm0gY29tcHV0ZU92ZXJhbGxUZXh0
TWF0cml4KGNvbnN0IEZvbnQmIGZvbnQpCit7CisgICAgc3RkOjpvcHRpb25hbDxBZmZpbmVUcmFu
c2Zvcm0+IHN5bnRoZXRpY09ibGlxdWU7CisgICAgYXV0byYgcGxhdGZvcm1EYXRhID0gZm9udC5w
bGF0Zm9ybURhdGEoKTsKICAgICBpZiAocGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKSkg
ewogICAgICAgICBmbG9hdCBvYmxpcXVlU2tldyA9IHRhbmYoZGVnMnJhZChGb250Q2FzY2FkZTo6
c3ludGhldGljT2JsaXF1ZUFuZ2xlKCkpKTsKICAgICAgICAgaWYgKHBsYXRmb3JtRGF0YS5vcmll
bnRhdGlvbigpID09IEZvbnRPcmllbnRhdGlvbjo6VmVydGljYWwpIHsKICAgICAgICAgICAgIGlm
IChmb250LmlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2soKSkKLSAgICAgICAgICAgICAgICByZXN1
bHQgPSBBZmZpbmVUcmFuc2Zvcm0oMSwgb2JsaXF1ZVNrZXcsIDAsIDEsIDAsIDApICogcmVzdWx0
OworICAgICAgICAgICAgICAgIHN5bnRoZXRpY09ibGlxdWUgPSBBZmZpbmVUcmFuc2Zvcm0oMSwg
b2JsaXF1ZVNrZXcsIDAsIDEsIDAsIDApOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IEFmZmluZVRyYW5zZm9ybSgxLCAtb2JsaXF1ZVNrZXcsIDAsIDEsIDAsIDAp
ICogcmVzdWx0OworICAgICAgICAgICAgICAgIHN5bnRoZXRpY09ibGlxdWUgPSBBZmZpbmVUcmFu
c2Zvcm0oMSwgLW9ibGlxdWVTa2V3LCAwLCAxLCAwLCAwKTsKICAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICByZXN1bHQgPSBBZmZpbmVUcmFuc2Zvcm0oMSwgMCwgLW9ibGlxdWVTa2V3LCAxLCAw
LCAwKSAqIHJlc3VsdDsKKyAgICAgICAgICAgIHN5bnRoZXRpY09ibGlxdWUgPSBBZmZpbmVUcmFu
c2Zvcm0oMSwgMCwgLW9ibGlxdWVTa2V3LCAxLCAwLCAwKTsKICAgICB9CiAKLSAgICAvLyBXZSdy
ZSBlbXVsYXRpbmcgdGhlIGJlaGF2aW9yIG9mIENHQ29udGV4dFNldFRleHRQb3NpdGlvbigpIGJ5
IGFkZGluZyBjb25zdGFudCBhbW91bnRzIHRvIGVhY2ggZ2x5cGgncyBwb3NpdGlvbgotICAgIC8v
IChzZWUgZmlsbFZlY3RvcldpdGhIb3Jpem9udGFsR2x5cGhQb3NpdGlvbnMoKSBhbmQgZmlsbFZl
Y3RvcldpdGhWZXJ0aWNhbEdseXBoUG9zaXRpb25zKCkpLgotICAgIC8vIENHQ29udGV4dFNldFRl
eHRQb3NpdGlvbigpIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgY2xvYmJlcmluZyB0aGUgRSBhbmQg
RiBmaWVsZHMgb2YgdGhlIHRleHQgbWF0cml4LAotICAgIC8vIHNvIHdlIGRvIHRoYXQgZXhwbGlj
aXRseSBoZXJlLgotICAgIHJlc3VsdC5zZXRFKDApOwotICAgIHJlc3VsdC5zZXRGKDApOwotICAg
IHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGNvbXB1dGVCYXNlT3ZlcmFsbFRleHRNYXRyaXgo
c3ludGhldGljT2JsaXF1ZSk7CiB9CiAKLUFmZmluZVRyYW5zZm9ybSBjb21wdXRlVmVydGljYWxU
ZXh0TWF0cml4KGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcHJldmlv
dXNUZXh0TWF0cml4KQorQWZmaW5lVHJhbnNmb3JtIGNvbXB1dGVCYXNlVmVydGljYWxUZXh0TWF0
cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcHJldmlvdXNUZXh0TWF0cml4KQogewotICAgIEFT
U0VSVF9VTlVTRUQoZm9udCwgZm9udC5wbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IEZv
bnRPcmllbnRhdGlvbjo6VmVydGljYWwpOwogICAgIC8vIFRoZSB0cmFuc2xhdGlvbiBoZXJlICgi
ZSIgYW5kICJmIiBmaWVsZHMpIGFyZSBpcnJlbGV2YW50LCBiZWNhdXNlCiAgICAgLy8gdGhpcyBt
YXRyaXggaXMgaW52ZXJ0ZWQgaW4gZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9zaXRpb25z
IHRvIHBsYWNlIHRoZSBnbHlwaHMgaW4gdGhlIENUTSdzIGNvb3JkaW5hdGUgc3lzdGVtLgogICAg
IC8vIEFsbCB3ZSdyZSB0cnlpbmcgdG8gZG8gaGVyZSBpcyByb3RhdGUgdGhlIHRleHQgbWF0cml4
IHNvIGdseXBocyBhcHBlYXIgdmlzdWFsbHkgdXByaWdodC4KICAgICAvLyBXZSBoYXZlIHRvIGlu
Y2x1ZGUgdGhlIHByZXZpb3VzIHRleHQgbWF0cml4IGJlY2F1c2UgaXQgaW5jbHVkZXMgdGhpbmdz
IGxpa2Ugc3ludGhldGljIG9ibGlxdWUuCisgICAgLy8KKyAgICAvLyBCZWNhdXNlIHRoaXMgaXMg
YSBsZWZ0LW11bHRpcGx5LCB3ZSdyZSB0YWtpbmcgdGhlIHBvaW50cyBmcm9tIHVzZXIgY29vcmRp
bmF0ZXMsIHdoaWNoIGFyZSBpbmNyZWFzaW5nLVktZ29lcy1kb3duLAorICAgIC8vIGFuZCB3ZSdy
ZSByb3RhdGluZyB0aGUgcG9pbnRzIHRvIHRoZSBsZWZ0IGluIHRoYXQgY29vcmRpbmF0ZSBzeXN0
ZW0sIHRvIHB1dCB0aGVtIHBoeXNpY2FsbHkgdXByaWdodC4KICAgICByZXR1cm4gcm90YXRlTGVm
dFRyYW5zZm9ybSgpICogcHJldmlvdXNUZXh0TWF0cml4OwogfQogCitBZmZpbmVUcmFuc2Zvcm0g
Y29tcHV0ZVZlcnRpY2FsVGV4dE1hdHJpeChjb25zdCBGb250JiBmb250LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHByZXZpb3VzVGV4dE1hdHJpeCkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKGZvbnQs
IGZvbnQucGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBGb250T3JpZW50YXRpb246OlZl
cnRpY2FsKTsKKyAgICByZXR1cm4gY29tcHV0ZUJhc2VWZXJ0aWNhbFRleHRNYXRyaXgocHJldmlv
dXNUZXh0TWF0cml4KTsKK30KKwogI2lmICFQTEFURk9STShXSU4pCiAKIC8vIENvbmZ1c2luZ2x5
LCBldmVuIHdoZW4gQ0dGb250UmVuZGVyaW5nR2V0Rm9udFNtb290aGluZ0Rpc2FibGVkKCkgcmV0
dXJucyB0cnVlLCBDR0NvbnRleHRTZXRTaG91bGRTbW9vdGhGb250cygpIHN0aWxsIGltcGFjdHMg
dGV4dApAQCAtMTM4LDE1ICsxNTEsMTMyIEBAIHN0YXRpYyB2b2lkIGZpbGxWZWN0b3JXaXRoSG9y
aXpvbnRhbEdseXBoUG9zaXRpb25zKFZlY3RvcjxDR1BvaW50LCAyNTY+JiBwb3NpdGlvCiAgICAg
fQogfQogCi1zdGF0aWMgdm9pZCBmaWxsVmVjdG9yV2l0aFZlcnRpY2FsR2x5cGhQb3NpdGlvbnMo
VmVjdG9yPENHUG9pbnQsIDI1Nj4mIHBvc2l0aW9ucywgQ0dDb250ZXh0UmVmIGNvbnRleHQsIGNv
bnN0IENHU2l6ZSogdHJhbnNsYXRpb25zLCBjb25zdCBDR1NpemUqIGFkdmFuY2VzLCB1bnNpZ25l
ZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGZsb2F0IGFzY2VudERlbHRhKQorc3Rh
dGljIHZvaWQgZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9zaXRpb25zKFZlY3RvcjxDR1Bv
aW50LCAyNTY+JiBwb3NpdGlvbnMsIGNvbnN0IENHU2l6ZSB0cmFuc2xhdGlvbnNbXSwgY29uc3Qg
Q0dTaXplIGFkdmFuY2VzW10sIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCwgZmxvYXQgYXNjZW50RGVsdGEsIENHQWZmaW5lVHJhbnNmb3JtIHRleHRNYXRyaXgpCiB7Ci0g
ICAgLy8gS2VlcCB0aGlzIGluIHN5bmMgYXMgdGhlIGludmVyc2Ugb2YgYERyYXdHbHlwaHNSZWNv
cmRlcjo6cmVjb3JkRHJhd0dseXBoc2AuCi0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3Jt
ID0gQ0dBZmZpbmVUcmFuc2Zvcm1JbnZlcnQoQ0dDb250ZXh0R2V0VGV4dE1hdHJpeChjb250ZXh0
KSk7Ci0KKyAgICAvLyBLZWVwIHRoaXMgZnVuY3Rpb24gaW4gc3luYyBhcyB0aGUgaW52ZXJzZSBv
ZiBgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzYC4KKworICAgIC8vIEl0J3Mg
aW1wb3J0YW50IHRvIHJlYWxpemUgd2UncmUgZGVhbGluZyB3aXRoIDQgY29vcmRpbmF0ZSBzeXN0
ZW1zIGhlcmU6CisgICAgLy8gMS4gUGh5c2ljYWwgY29vcmRpbmF0ZSBzeXN0ZW0uIFRoaXMgaXMg
d2hhdCB0aGUgdXNlciBzZWVzLgorICAgIC8vIDIuIFVzZXIgY29vcmRpbmF0ZSBzeXN0ZW0uIFRo
aXMgaXMgdGhlIGNvb3JkaW5hdGUgc3lzdGVtIG9mIGp1c3QgdGhlIENUTS4gRm9yIHZlcnRpY2Fs
IHRleHQsIHRoaXMgaXMganVzdCBsaWtlIHRoZSBub3JtYWwgV2ViS2l0IGluY3JlYXNpbmctWS1k
b3duCisgICAgLy8gICAgICAgIGNvb3JkaW5hdGUgc3lzdGVtLCBleGNlcHQgd2UncmUgcm90YXRl
ZCByaWdodCwgc28gbG9naWNhbCByaWdodCBpcyBwaHlzaWNhbCBkb3duLiAoV2UgZG8gdGhpcyBz
byBsb2dpY2FsIGlubGluZSBwcm9ncmVzc2lvbiBwcm9jZWVkcyBpbiB0aGUKKyAgICAvLyAgICAg
ICAgbG9naWNhbGx5IGluY3JlYXNpbmctWCBkaW1lbnNpb24sIGp1c3QgYXMgaXQgd291bGQgaWYg
d2Ugd2VyZW4ndCBkb2luZyB2ZXJ0aWNhbCBzdHVmZi4pCisgICAgLy8gMy4gVGV4dCBjb29yZGlu
YXRlIHN5c3RlbS4gVGhpcyBpcyB0aGUgY29vcmRpbmF0ZSBvZiB0aGUgdGV4dCBtYXRyaXggY29u
Y2F0ZW5hdGVkIHdpdGggdGhlIENUTS4gRm9yIHZlcnRpY2FsIHRleHQsIHRoaXMgaXMgcm90YXRl
ZCBzdWNoIHRoYXQKKyAgICAvLyAgICAgICAgaW5jcmVhc2luZyBZIGdvZXMgcGh5c2ljYWxseSB1
cCwgYW5kIGluY3JlYXNpbmcgWCBnb2VzIHBoeXNpY2FsbHkgcmlnaHQuIFRoZSBjb250cm9sIHBv
aW50cyBpbiBmb250IGNvbnRvdXJzIGFyZSBhdXRob3JlZCBhY2NvcmRpbmcgdG8gdGhpcworICAg
IC8vICAgICAgICBpbmNyZWFzaW5nLVktdXAgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8gNC4g
U3ludGhldGljLW9ibGlxdWUtbGVzcyB0ZXh0IGNvb3JkaW5hdGUgc3lzdGVtLiBUaGlzIHdvdWxk
IGJlIGlkZW50aWNhbCB0byB0aGUgdGV4dCBjb29yZGluYXRlIHN5c3RlbSBpZiBzeW50aGV0aWMg
b2JsaXF1ZSB3YXMgbm90IGluIGVmZmVjdC4gVGhpcworICAgIC8vICAgICAgICBpcyB1c2VmdWwg
YmVjYXVzZSwgd2hlbiB3ZSdyZSBtb3ZpbmcgZ2x5cGhzIGFyb3VuZCwgd2UgdXN1YWxseSBkb24n
dCB3YW50IHRvIGNvbnNpZGVyIHN5bnRoZXRpYyBvYmxpcXVlLiBJbnN0ZWFkLCBzeW50aGV0aWMg
b2JsaXF1ZSBpcyBqdXN0CisgICAgLy8gICAgICAgIGEgcmFzdGVyaXphdGlvbi10aW1lIGVmZmVj
dCwgYW5kIG5vdCB1c2VkIGZvciBnbHlwaCBwb3NpdGlvbmluZy9sYXlvdXQuCisgICAgLy8gICAg
ICAgIEZJWE1FOiBEb2VzIHRoaXMgbWVhbiB0aGF0IHN5bnRoZXRpYyBvYmxpcXVlIHNob3VsZCBh
bHdheXMgYmUgYXBwbGllZCBvbiB0aGUgcmVzdWx0IG9mIHJvdGF0ZUxlZnRUcmFuc2Zvcm0oKSBp
biBjb21wdXRlVmVydGljYWxUZXh0TWF0cml4KCksCisgICAgLy8gICAgICAgIHJhdGhlciB0aGFu
IHRoZSBvdGhlciB3YXkgYXJvdW5kPworCisgICAgLy8gSW1hZ2luZSBhbiB2ZXJ0aWNhbCB1cHJp
Z2h0IGdseXBoOgorICAgIC8vICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLyB8
ICAgICAgX19fICAgICAgIF9fXyAgICAgICB8CisgICAgLy8gfCAgICAgIFwgIFwgICAgIC8gIC8g
ICAgICAgfAorICAgIC8vIHwgICAgICAgXCAgXCAgIC8gIC8gICAgICAgIHwKKyAgICAvLyB8ICAg
ICAgICBcICBcIC8gIC8gICAgICAgICB8CisgICAgLy8gfCAgICAgICAgIFwgIFYgIC8gICAgICAg
ICAgfAorICAgIC8vIHwgICAgICAgICAgXCAgIC8gICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAg
ICAgIHwgICB8ICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICB8ICAgfCAgICAgICAgICAg
fAorICAgIC8vIHwgICAgICAgICAgfCAgIHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAg
IHwgICB8ICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICB8X19ffCAgICAgICAgICAgfAor
ICAgIC8vIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAvLyArLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rCisgICAgLy8KKyAgICAvLyBUaGUgaWRlb2dyYXBoaWMgYmFzZWxpbmUg
bGllcyBpbiB0aGUgY2VudGVyIG9mIHRoZSBnbHlwaCwgYW5kIHRoZSBhbHBoYWJldGljIGJhc2Vs
aW5lIGxpZXMgdG8gdGhlIGxlZnQgb2YgaXQ6CisgICAgLy8gICAgIHwgICAgICAgIHwKKyAgICAv
LyArLS0tfC0tLS0tLS0tfC0tLS0tLS0tLS0tLS0rCisgICAgLy8gfCAgIHwgIF9fXyAgIHwgICBf
X18gICAgICAgfAorICAgIC8vIHwgICB8ICBcICBcICB8ICAvICAvICAgICAgIHwKKyAgICAvLyB8
ICAgfCAgIFwgIFwgfCAvICAvICAgICAgICB8CisgICAgLy8gfCAgIHwgICAgXCAgXHwvICAvICAg
ICAgICAgfAorICAgIC8vIHwgICB8ICAgICBcICB8ICAvICAgICAgICAgIHwKKyAgICAvLyB8ICAg
fCAgICAgIFwgfCAvICAgICAgICAgICB8CisgICAgLy8gfCAgIHwgICAgICB8IHwgfCAgICAgICAg
ICAgfAorICAgIC8vIHwgICB8ICAgICAgfCB8IHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgfCAg
ICAgIHwgfCB8ICAgICAgICAgICB8CisgICAgLy8gfCAgIHwgICAgICB8IHwgfCAgICAgICAgICAg
fAorICAgIC8vIHwgICB8ICAgICAgfF98X3wgICAgICAgICAgIHwKKyAgICAvLyB8ICAgfCAgICAg
ICAgfCAgICAgICAgICAgICB8CisgICAgLy8gKy0tLXwtLS0tLS0tLXwtLS0tLS0tLS0tLS0tKwor
ICAgIC8vICAgICB8ICAgICAgICB8IDw9PSBpZGVvZ3JhcGhpYyBiYXNlbGluZQorICAgIC8vICAg
ICB8IDw9PSBhbHBoYWJldGljIGJhc2VsaW5lCisgICAgLy8KKyAgICAvLyBUaGUgZ2x5cGggaXRz
ZWxmIGhhcyBhIGxvY2FsIG9yaWdpbiwgd2hpY2ggaXMgdGhlIHBvc2l0aW9uIHNlbnQgdG8gQ29y
ZSBUZXh0LiBUaGUgY29udHJvbCBwb2ludHMgb2YgdGhlIGNvbnRvdXJzIGFyZSBkZWZpbmVkIHJl
bGF0aXZlIHRvIHRoaXMgcG9pbnQuCisgICAgLy8gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
KworICAgIC8vIHwgICAgICBfX18gICAgICAgX19fICAgICAgIHwKKyAgICAvLyB8ICAgICAgXCAg
XCAgICAgLyAgLyAgICAgICB8CisgICAgLy8gfCAgICAgICBcICBcICAgLyAgLyAgICAgICAgfAor
ICAgIC8vIHwgICAgICAgIFwgIFwgLyAgLyAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgXCAg
ViAgLyAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICBcICAgLyAgICAgICAgICAgfAorICAg
IC8vIHwgICAgICAgICAgfCAgIHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgIHwgICB8
ICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICB8ICAgfCAgICAgICAgICAgfAorICAgIC8v
ICogPD0gaGVyZSAgfCAgIHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgIHxfX198ICAg
ICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLworICAgIC8vIE5vdywgZm9yIGhvcml6
b250YWwgdGV4dCwgd2UgY2FuIGRvIHRoZSBzaW1wbGUgdGhpbmcgb2YganVzdDoKKyAgICAvLyAx
LiBQbGFjZSB0aGUgcGVuIGF0IGEgcG9zaXRpb24uIFJlY29yZCB0aGlzIHBvc2l0aW9uIGFzIHRo
ZSBsb2NhbCBvcmlnaW4gb2YgdGhlIGZpcnN0IGdseXBoCisgICAgLy8gMi4gTW92ZSB0aGUgcGVu
IGFjY29yZGluZyB0byB0aGUgZ2x5cGgncyBhZHZhbmNlCisgICAgLy8gMy4gUmVjb3JkIGEgbmV3
IHBvc2l0aW9uIGFzIHRoZSBsb2NhbCBvcmlnaW4gb2YgdGhlIG5leHQgZ2x5cGgKKyAgICAvLyA0
LiBHbyB0byAyCisgICAgLy8gSG93ZXZlciwgZm9yIHZlcnRpY2FsIHRleHQsIHdlIGNhbid0IGdl
dCBhd2F5IHdpdGggdGhpcyBiZWNhdXNlIHRoZSBnbHlwaCBvcmlnaW5zIGFyZSBub3Qgb24gdGhl
IGJhc2VsaW5lLgorICAgIC8vIFRoaXMgaXMgd2hhdCB0aGUgInZlcnRpY2FsIHRyYW5zbGF0aW9u
IGZvciBhIGdseXBoIiBpcy4gSXQgY29udGFpbnMgdGhpcyB2ZWN0b3I6CisgICAgLy8gKy0tLUEt
LS0tLS0tLUItLS0tLS0tLS0tLS0tKworICAgIC8vIHwgICAgICAgICAgIC8gICAgICAgICAgICAg
IHwKKyAgICAvLyB8ICAgICAgICAgIC8gICAgICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAg
LS0gICAgICAgICAgICAgICAgfAorICAgIC8vIHwgICAgICAgLyAgICAgICAgICAgICAgICAgIHwK
KyAgICAvLyB8ICAgICAgLyAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gfCAgICAtLSAgICAg
ICAgICAgICAgICAgICAgfAorICAgIC8vIHwgICAvICAgICAgICAgICAgICAgICAgICAgIHwKKyAg
ICAvLyB8ICAvICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gfHxfICAgICAgICAgICAg
ICAgICAgICAgICAgfAorICAgIC8vIEMgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAv
LyB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICAgICAgICAg
ICAgICAgICAgfAorICAgIC8vICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLyBJ
dCBwb2ludHMgZnJvbSB0aGUgcGVuIHBvc2l0aW9uIG9uIHRoZSBpZGVvZ3JhcGhpYyBiYXNlbGlu
ZSB0byB0aGUgZ2x5cGgncyBsb2NhbCBvcmlnaW4uIFRoaXMgaXMgKHVzdWFsbHkpIHBoeXNpY2Fs
bHkKKyAgICAvLyBkb3duLWFuZC10by10aGUtbGVmdC4gQ29yZSBUZXh0IGdpdmVzIHVzIHRoZXNl
IHZlY3RvcnMgaW4gdGhlIHRleHQgY29vcmRpbmF0ZSBzeXN0ZW0sIGFuZCBzbyB0aGVyZWZvcmUg
dGhlc2UgdmVjdG9ycyAodXN1YWxseSkgaGF2ZQorICAgIC8vIGJvdGggWCBhbmQgWSBjb21wb25l
bnRzIG5lZ2F0aXZlLgorCisgICAgLy8gVGhlIGdvYWwgb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBw
cm9kdWNlIGdseXBoIG9yaWdpbnMgaW4gdGhlIHRleHQgY29vcmRpbmF0ZSBzeXN0ZW0sIGJlY2F1
c2UgdGhhdCdzIHdoYXQgQ29yZSBUZXh0IGV4cGVjdHMuIFRoZSAiYWR2YW5jZXMiCisgICAgLy8g
YW5kICJwb2ludCIgcGFyYW1ldGVycyB0byB0aGlzIGZ1bmN0aW9uIGFyZSBpbiB0aGUgdXNlciBj
b29yZGluYXRlIHN5c3RlbS4gVGhlICJ0cmFuc2xhdGlvbnMiIHBhcmFtZXRlciBpcyBpbiB0aGUg
InN5bnRoZXRpYy1vYmxpcXVlLWxlc3MKKyAgICAvLyB0ZXh0IGNvb3JkaW5hdGUgc3lzdGVtLiIK
KworICAgIC8vIENHQ29udGV4dEdldFRleHRNYXRyaXgoKSB0cmFuc2Zvcm1zIHBvaW50cyBmcm9t
IHRleHQgY29vcmRpbmF0ZXMgdG8gdXNlciBjb29yZGluYXRlcy4gSG93ZXZlciwgd2UncmUgdHJ5
aW5nIHRvIHByb2R1Y2UgdGV4dCBjb29yZGluYXRlcyBmcm9tCisgICAgLy8gdXNlciBjb29yZGlu
YXRlcywgc28gd2UgaW52ZXJ0IGl0LgorICAgIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9
IENHQWZmaW5lVHJhbnNmb3JtSW52ZXJ0KHRleHRNYXRyaXgpOworCisgICAgLy8gQmVjYXVzZSB0
aGUgInZlcnRpY2FsIHRyYW5zbGF0aW9uIGZvciBhIGdseXBoIiB2ZWN0b3Igc3RhcnRzIGF0IHRo
ZSBpZGVvZ3JhcGhpYyBiYXNlbGluZSAodGhlIHBvaW50IEEgaW4gdGhlIGFib3ZlIGRpYWdyYW0p
LCB3ZSBoYXZlIHRvCisgICAgLy8gYWRqdXN0IHRoZSBwZW4gcG9zaXRpb24gdG8gc3RhcnQgdGhl
cmUuIFdlYktpdCdzIHRleHQgcm91dGluZXMgc3RhcnQgb3V0IHVzaW5nIHRoZSBhbHBoYWJldGlj
IGJhc2VsaW5lIChwb2ludCBBIGluIHRoZSBkaWFncmFtIGFib3ZlKSBzbyB3ZQorICAgIC8vIGFk
anVzdCB0aGUgc3RhcnQgcG9zaXRpb24gaGVyZSwgd2hpY2ggaGFzIHRoZSBlZmZlY3Qgb2Ygc2hp
ZnRpbmcgdGhlIHdob2xlIHJ1biBhbHRvZ2V0aGVyLgorICAgIC8vCisgICAgLy8gYXNjZW50RGVs
dGEgaXMgKHVzdWFsbHkpIGEgbmVnYXRpdmUgbnVtYmVyLCBhbmQgcmVwcmVzZW50cyB0aGUgZGlz
dGFuY2UgYmV0d2VlbiB0aGUgaWRlb2dyYXBoaWMgYmFzZWxpbmUgdG8gdGhlIGFscGhhYmV0aWMg
YmFzZWxpbmUuCisgICAgLy8gSW4gdXNlciBjb29yZGluYXRlcywgd2Ugd2FudCB0byBhZGp1c3Qg
dGhlIFkgY29tcG9uZW50IHRvIG1ha2UgYSBob3Jpem9udGFsIHBoeXNpY2FsIGNoYW5nZS4gQW5k
LCBiZWNhdXNlIHRoZSB1c2VyIGNvb3JkaW5hdGUgc3lzdGVtIGlzCisgICAgLy8gbG9naWNhbGx5
IGluY3JlYXNpbmctWS1kb3duLCB3ZSBhZGQgdGhlIHZhbHVlLCB3aGljaCBpcyBuZWdhdGl2ZSwg
dG8gbW92ZSB1cyBsb2dpY2FsbHkgdXAsIHdoaWNoIGlzIHBoeXNpY2FsbHkgdG8gdGhlIHJpZ2h0
LiBOb3cgb3VyIHBvc2l0aW9uCisgICAgLy8gaXMgYXQgdGhlIHBvaW50IGxhYmVsZWQgQiBpbiB0
aGUgYWJvdmUgZGlhZ3JhbSwgaW4gdXNlciBjb29yZGluYXRlcy4KICAgICBhdXRvIHBvc2l0aW9u
ID0gQ0dQb2ludE1ha2UocG9pbnQueCgpLCBwb2ludC55KCkgKyBhc2NlbnREZWx0YSk7CisKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewotICAgICAgICBDR1NpemUg
dHJhbnNsYXRpb24gPSBDR1NpemVBcHBseUFmZmluZVRyYW5zZm9ybSh0cmFuc2xhdGlvbnNbaV0s
IHJvdGF0ZUxlZnRUcmFuc2Zvcm0oKSk7Ci0gICAgICAgIHBvc2l0aW9uc1tpXSA9IENHUG9pbnRB
cHBseUFmZmluZVRyYW5zZm9ybShDR1BvaW50TWFrZShwb3NpdGlvbi54IC0gdHJhbnNsYXRpb24u
d2lkdGgsIHBvc2l0aW9uLnkgKyB0cmFuc2xhdGlvbi5oZWlnaHQpLCB0cmFuc2Zvcm0pOworICAg
ICAgICAvLyBUaGUgInRyYW5zbGF0aW9ucyIgcGFyYW1ldGVyIGlzIGluIHRoZSAic3ludGhldGlj
LW9ibGlxdWUtbGVzcyB0ZXh0IGNvb3JkaW5hdGUgc3lzdGVtIiBhbmQgd2Ugd2FudCB0byBhZGQg
aXQgdG8gdGhlIHBvc2l0aW9uIGluIHRoZSB1c2VyCisgICAgICAgIC8vIGNvb3JkaW5hdGUgc3lz
dGVtLiBMdWNraWx5LCB0aGUgdGV4dCBtYXRyaXggKG9yLCBhdCBsZWFzdCB0aGUgdmVyc2lvbiBv
ZiB0aGUgdGV4dCBtYXRyaXggdGhhdCBkb2Vzbid0IGluY2x1ZGUgc3ludGhldGljIG9ibGlxdWUp
IGRvZXMgZXhhY3RseQorICAgICAgICAvLyB0aGlzLiBTbywgd2UganVzdCBjcmVhdGUgdGhlIHN5
bnRoZXRpYy1vYmxpcXVlLWxlc3MgdGV4dCBtYXRyaXgsIGFuZCBydW4gdGhlIHRyYW5zbGF0aW9u
IHRocm91Z2ggaXQuIFRoaXMgZ2l2ZXMgdXMgdGhlIHRyYW5zbGF0aW9uIGluIHVzZXIKKyAgICAg
ICAgLy8gY29vcmRpbmF0ZXMuCisgICAgICAgIGF1dG8gdHJhbnNsYXRpb24gPSBDR1NpemVBcHBs
eUFmZmluZVRyYW5zZm9ybSh0cmFuc2xhdGlvbnNbaV0sIGNvbXB1dGVCYXNlVmVydGljYWxUZXh0
TWF0cml4KGNvbXB1dGVCYXNlT3ZlcmFsbFRleHRNYXRyaXgoc3RkOjpudWxsb3B0KSkpOworCisg
ICAgICAgIC8vIE5vdyB3ZSBjYW4gYWRkIHRoZSBwb3NpdGlvbiBpbiB1c2VyIGNvb3JkaW5hdGVz
IHdpdGggdGhlIHRyYW5zbGF0aW9uIGluIHVzZXIgY29vcmRpbmF0ZXMuCisgICAgICAgIGF1dG8g
cG9zaXRpb25JblVzZXJDb29yZGluYXRlcyA9IENHUG9pbnRNYWtlKHBvc2l0aW9uLnggKyB0cmFu
c2xhdGlvbi53aWR0aCwgcG9zaXRpb24ueSArIHRyYW5zbGF0aW9uLmhlaWdodCk7CisKKyAgICAg
ICAgLy8gQW5kIHRoZW4gcHV0IGl0IGJhY2sgaW4gZm9udCBjb29yZGluYXRlcyBmb3Igc3VibWlz
c2lvbiB0byBDb3JlIFRleHQuIFlheSEKKyAgICAgICAgcG9zaXRpb25zW2ldID0gQ0dQb2ludEFw
cGx5QWZmaW5lVHJhbnNmb3JtKHBvc2l0aW9uSW5Vc2VyQ29vcmRpbmF0ZXMsIHRyYW5zZm9ybSk7
CisKKyAgICAgICAgLy8gQWR2YW5jZSB0aGUgcG9zaXRpb24gdG8gdGhlIG5leHQgcG9zaXRpb24g
aW4gdXNlciBjb29yZGluYXRlcy4gQm90aCB0aGUgYWR2YW5jZXMgYW5kIHBvc2l0aW9uIGFyZSBp
biB1c2VyIGNvb3JkaW5hdGVzLgogICAgICAgICBwb3NpdGlvbi54ICs9IGFkdmFuY2VzW2ldLndp
ZHRoOwogICAgICAgICBwb3NpdGlvbi55ICs9IGFkdmFuY2VzW2ldLmhlaWdodDsKICAgICB9CkBA
IC0xNjYsNyArMjk2LDcgQEAgc3RhdGljIHZvaWQgc2hvd0dseXBoc1dpdGhBZHZhbmNlcyhjb25z
dCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3QgRm9udCYgZm9udCwgQ0cKICAgICAgICAgQ1RGb250
R2V0VmVydGljYWxUcmFuc2xhdGlvbnNGb3JHbHlwaHMocGxhdGZvcm1EYXRhLmN0Rm9udCgpLCBn
bHlwaHMsIHRyYW5zbGF0aW9ucy5kYXRhKCksIGNvdW50KTsKIAogICAgICAgICBhdXRvIGFzY2Vu
dERlbHRhID0gZm9udC5mb250TWV0cmljcygpLmZsb2F0QXNjZW50KElkZW9ncmFwaGljQmFzZWxp
bmUpIC0gZm9udC5mb250TWV0cmljcygpLmZsb2F0QXNjZW50KCk7Ci0gICAgICAgIGZpbGxWZWN0
b3JXaXRoVmVydGljYWxHbHlwaFBvc2l0aW9ucyhwb3NpdGlvbnMsIGNvbnRleHQsIHRyYW5zbGF0
aW9ucy5kYXRhKCksIGFkdmFuY2VzLCBjb3VudCwgcG9pbnQsIGFzY2VudERlbHRhKTsKKyAgICAg
ICAgZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9zaXRpb25zKHBvc2l0aW9ucywgdHJhbnNs
YXRpb25zLmRhdGEoKSwgYWR2YW5jZXMsIGNvdW50LCBwb2ludCwgYXNjZW50RGVsdGEsIENHQ29u
dGV4dEdldFRleHRNYXRyaXgoY29udGV4dCkpOwogICAgICAgICBDVEZvbnREcmF3R2x5cGhzKHBs
YXRmb3JtRGF0YS5jdEZvbnQoKSwgZ2x5cGhzLCBwb3NpdGlvbnMuZGF0YSgpLCBjb3VudCwgY29u
dGV4dCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZmlsbFZlY3RvcldpdGhIb3Jpem9udGFsR2x5
cGhQb3NpdGlvbnMocG9zaXRpb25zLCBjb250ZXh0LCBhZHZhbmNlcywgY291bnQsIHBvaW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457863</attachid>
            <date>2022-04-19 00:04:27 -0700</date>
            <delta_ts>2022-04-19 13:09:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239480-20220419000426.patch</filename>
            <type>text/plain</type>
            <size>16359</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQwODhjMmZhY2RlNTIw
YjM0MjE4NDBlYzUxMWZjMDBjOGViZDZjOS4uOWVkMTZkZjQ1MjM4ZGY4MjI2ZDhkZjE4OGVmNzJj
NmZhMzU2ZGY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTA0LTE5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBB
ZGQgZXhwbGFuYXRvcnkgY29tbWVudHMgaW4gZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9z
aXRpb25zKCkgYW5kIHNpbXBsaWZ5IGl0IHNvbWV3aGF0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk0ODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGFkZHMgYSBsb3Qgb2YgZXhwbGFuYXRvcnkg
dGV4dCBpbiBmaWxsVmVjdG9yV2l0aFZlcnRpY2FsR2x5cGhQb3NpdGlvbnMoKS4gSXQgYWxzbyBy
ZXdyaXRlcyBzb21lIG9mIGl0IHRvCisgICAgICAgIGNhbGwgc2hhcmVkIGZ1bmN0aW9ucyAoY29t
cHV0ZU92ZXJhbGxUZXh0TWF0cml4SW50ZXJuYWwoKSBhbmQgY29tcHV0ZVZlcnRpY2FsVGV4dE1h
dHJpeEludGVybmFsKCkpIGluc3RlYWQgb2YKKyAgICAgICAgcmVpbXBsZW1lbnRpbmcgdGhlIGNv
bnRlbnRzIG9mIHRob3NlIGZ1bmN0aW9ucy4KKworICAgICAgICBUaGUgbGFzdCB0aGluZyB0aGlz
IHBhdGNoIGRvZXMgaXMgaXQgc3RvcHMgYWRkaW5nIGluIENURm9udEdldE1hdHJpeCgpIHRvIHRo
ZSB0ZXh0IG1hdHJpeCwgYmVjYXVzZToKKyAgICAgICAgMS4gSXQncyBhbHdheXMgdGhlIGlkZW50
aXR5LCBiZWNhdXNlIHdlIG5ldmVyIGNyZWF0ZSBhIGZvbnQgd2l0aCBvbmUgb2YgdGhlc2UgdGhp
bmdzCisgICAgICAgIDIuIEV2ZW4gaWYgaXQgd2Fzbid0IHRoZSBpZGVudGl0eSwgQ29yZSBUZXh0
IGFscmVhZHkgYXBwbGllcyBpdCBpdHNlbGYsIHNvIGlmIHdlIGFwcGx5IGl0LCBpdCB3b3VsZCBi
ZSBkb3VibGUKKyAgICAgICAgICAgICAgIGFwcGxpZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
b3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1
dGVCYXNlT3ZlcmFsbFRleHRNYXRyaXgpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZU92ZXJh
bGxUZXh0TWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVCYXNlVmVydGljYWxUZXh0
TWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVWZXJ0aWNhbFRleHRNYXRyaXgpOgor
ICAgICAgICAoV2ViQ29yZTo6ZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9zaXRpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OnNob3dHbHlwaHNXaXRoQWR2YW5jZXMpOgorCiAyMDIyLTA0LTE4
ICBUeWxlciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IFVwZGF0
ZSB0aGUgaXNvbGF0ZWQgdHJlZSBpbiByZXNwb25zZSB0byBBWEVsZW1lbnRCdXN5Q2hhbmdlZCBh
bmQgQVhUZXh0Q2hhbmdlZCBub3RpZmljYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaAppbmRleCAwOWY0MWQ2MDFkNjBjYjEwZmI5OTY1NDAx
NDlhMWJjNjUyZmNlODM1Li5lZTYzNzY0NjkzYmIwOGI3MGE0ZWU2YzU0YmY1NjZmNTE0MzE4MmNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2Fk
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJGb250Q2FzY2FkZURlc2NyaXB0aW9uLmgiCiAj
aW5jbHVkZSAiRm9udENhc2NhZGVGb250cy5oIgogI2luY2x1ZGUgIlBhdGguaCIKKyNpbmNsdWRl
IDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KQEAgLTkxLDcg
KzkyLDkgQEAgc3RydWN0IEdseXBoT3ZlcmZsb3cgewogfTsKIAogI2lmIFVTRShDT1JFX1RFWFQp
CitBZmZpbmVUcmFuc2Zvcm0gY29tcHV0ZUJhc2VPdmVyYWxsVGV4dE1hdHJpeChjb25zdCBzdGQ6
Om9wdGlvbmFsPEFmZmluZVRyYW5zZm9ybT4mIHN5bnRoZXRpY09ibGlxdWUpOwogQWZmaW5lVHJh
bnNmb3JtIGNvbXB1dGVPdmVyYWxsVGV4dE1hdHJpeChjb25zdCBGb250Jik7CitBZmZpbmVUcmFu
c2Zvcm0gY29tcHV0ZUJhc2VWZXJ0aWNhbFRleHRNYXRyaXgoY29uc3QgQWZmaW5lVHJhbnNmb3Jt
JiBwcmV2aW91c1RleHRNYXRyaXgpOwogQWZmaW5lVHJhbnNmb3JtIGNvbXB1dGVWZXJ0aWNhbFRl
eHRNYXRyaXgoY29uc3QgRm9udCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcHJldmlvdXNUZXh0
TWF0cml4KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQuY3BwCmluZGV4
IDFlODQ0MjcwNDJiMDk5ZGRiM2U0MWVlZmY2Y2U4YTNmMGNjZWE1MTcuLjAxNzVlYjcxYWE1NzJh
YTk1YjliZWQ0ODE0MzU3ZWEzNGI3YTM4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDYXNjYWRlQ29yZVRl
eHQuY3BwCkBAIC02MCw0NCArNjAsNTcgQEAgc3RhdGljIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
cm90YXRlTGVmdFRyYW5zZm9ybSgpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotQWZmaW5lVHJh
bnNmb3JtIGNvbXB1dGVPdmVyYWxsVGV4dE1hdHJpeChjb25zdCBGb250JiBmb250KQorQWZmaW5l
VHJhbnNmb3JtIGNvbXB1dGVCYXNlT3ZlcmFsbFRleHRNYXRyaXgoY29uc3Qgc3RkOjpvcHRpb25h
bDxBZmZpbmVUcmFuc2Zvcm0+JiBzeW50aGV0aWNPYmxpcXVlKQogewotICAgIGF1dG8mIHBsYXRm
b3JtRGF0YSA9IGZvbnQucGxhdGZvcm1EYXRhKCk7CiAgICAgQWZmaW5lVHJhbnNmb3JtIHJlc3Vs
dDsKLSAgICBpZiAoIXBsYXRmb3JtRGF0YS5pc0NvbG9yQml0bWFwRm9udCgpKQotICAgICAgICBy
ZXN1bHQgPSBDVEZvbnRHZXRNYXRyaXgocGxhdGZvcm1EYXRhLmN0Rm9udCgpKTsKKworICAgIC8v
IFRoaXMgaXMgYSBZLWZsaXAsIGJlY2F1c2UgdGV4dCdzIGNvb3JkaW5hdGUgc3lzdGVtIGlzIGlu
Y3JlYXNpbmctWS1nb2VzLXVwLAorICAgIC8vIGJ1dCBXZWJLaXQncyBjb29yZGluYXRlIHN5c3Rl
bSBpcyBpbmNyZWFzaW5nLVktZ29lcy1kb3duLgogICAgIHJlc3VsdC5zZXRCKC1yZXN1bHQuYigp
KTsKICAgICByZXN1bHQuc2V0RCgtcmVzdWx0LmQoKSk7CisKKyAgICBpZiAoc3ludGhldGljT2Js
aXF1ZSkKKyAgICAgICAgcmVzdWx0ID0gKnN5bnRoZXRpY09ibGlxdWUgKiByZXN1bHQ7CisKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitBZmZpbmVUcmFuc2Zvcm0gY29tcHV0ZU92ZXJhbGxUZXh0
TWF0cml4KGNvbnN0IEZvbnQmIGZvbnQpCit7CisgICAgc3RkOjpvcHRpb25hbDxBZmZpbmVUcmFu
c2Zvcm0+IHN5bnRoZXRpY09ibGlxdWU7CisgICAgYXV0byYgcGxhdGZvcm1EYXRhID0gZm9udC5w
bGF0Zm9ybURhdGEoKTsKICAgICBpZiAocGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKSkg
ewogICAgICAgICBmbG9hdCBvYmxpcXVlU2tldyA9IHRhbmYoZGVnMnJhZChGb250Q2FzY2FkZTo6
c3ludGhldGljT2JsaXF1ZUFuZ2xlKCkpKTsKICAgICAgICAgaWYgKHBsYXRmb3JtRGF0YS5vcmll
bnRhdGlvbigpID09IEZvbnRPcmllbnRhdGlvbjo6VmVydGljYWwpIHsKICAgICAgICAgICAgIGlm
IChmb250LmlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2soKSkKLSAgICAgICAgICAgICAgICByZXN1
bHQgPSBBZmZpbmVUcmFuc2Zvcm0oMSwgb2JsaXF1ZVNrZXcsIDAsIDEsIDAsIDApICogcmVzdWx0
OworICAgICAgICAgICAgICAgIHN5bnRoZXRpY09ibGlxdWUgPSBBZmZpbmVUcmFuc2Zvcm0oMSwg
b2JsaXF1ZVNrZXcsIDAsIDEsIDAsIDApOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IEFmZmluZVRyYW5zZm9ybSgxLCAtb2JsaXF1ZVNrZXcsIDAsIDEsIDAsIDAp
ICogcmVzdWx0OworICAgICAgICAgICAgICAgIHN5bnRoZXRpY09ibGlxdWUgPSBBZmZpbmVUcmFu
c2Zvcm0oMSwgLW9ibGlxdWVTa2V3LCAwLCAxLCAwLCAwKTsKICAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICByZXN1bHQgPSBBZmZpbmVUcmFuc2Zvcm0oMSwgMCwgLW9ibGlxdWVTa2V3LCAxLCAw
LCAwKSAqIHJlc3VsdDsKKyAgICAgICAgICAgIHN5bnRoZXRpY09ibGlxdWUgPSBBZmZpbmVUcmFu
c2Zvcm0oMSwgMCwgLW9ibGlxdWVTa2V3LCAxLCAwLCAwKTsKICAgICB9CiAKLSAgICAvLyBXZSdy
ZSBlbXVsYXRpbmcgdGhlIGJlaGF2aW9yIG9mIENHQ29udGV4dFNldFRleHRQb3NpdGlvbigpIGJ5
IGFkZGluZyBjb25zdGFudCBhbW91bnRzIHRvIGVhY2ggZ2x5cGgncyBwb3NpdGlvbgotICAgIC8v
IChzZWUgZmlsbFZlY3RvcldpdGhIb3Jpem9udGFsR2x5cGhQb3NpdGlvbnMoKSBhbmQgZmlsbFZl
Y3RvcldpdGhWZXJ0aWNhbEdseXBoUG9zaXRpb25zKCkpLgotICAgIC8vIENHQ29udGV4dFNldFRl
eHRQb3NpdGlvbigpIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgY2xvYmJlcmluZyB0aGUgRSBhbmQg
RiBmaWVsZHMgb2YgdGhlIHRleHQgbWF0cml4LAotICAgIC8vIHNvIHdlIGRvIHRoYXQgZXhwbGlj
aXRseSBoZXJlLgotICAgIHJlc3VsdC5zZXRFKDApOwotICAgIHJlc3VsdC5zZXRGKDApOwotICAg
IHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGNvbXB1dGVCYXNlT3ZlcmFsbFRleHRNYXRyaXgo
c3ludGhldGljT2JsaXF1ZSk7CiB9CiAKLUFmZmluZVRyYW5zZm9ybSBjb21wdXRlVmVydGljYWxU
ZXh0TWF0cml4KGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcHJldmlv
dXNUZXh0TWF0cml4KQorQWZmaW5lVHJhbnNmb3JtIGNvbXB1dGVCYXNlVmVydGljYWxUZXh0TWF0
cml4KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcHJldmlvdXNUZXh0TWF0cml4KQogewotICAgIEFT
U0VSVF9VTlVTRUQoZm9udCwgZm9udC5wbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IEZv
bnRPcmllbnRhdGlvbjo6VmVydGljYWwpOwogICAgIC8vIFRoZSB0cmFuc2xhdGlvbiBoZXJlICgi
ZSIgYW5kICJmIiBmaWVsZHMpIGFyZSBpcnJlbGV2YW50LCBiZWNhdXNlCiAgICAgLy8gdGhpcyBt
YXRyaXggaXMgaW52ZXJ0ZWQgaW4gZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9zaXRpb25z
IHRvIHBsYWNlIHRoZSBnbHlwaHMgaW4gdGhlIENUTSdzIGNvb3JkaW5hdGUgc3lzdGVtLgogICAg
IC8vIEFsbCB3ZSdyZSB0cnlpbmcgdG8gZG8gaGVyZSBpcyByb3RhdGUgdGhlIHRleHQgbWF0cml4
IHNvIGdseXBocyBhcHBlYXIgdmlzdWFsbHkgdXByaWdodC4KICAgICAvLyBXZSBoYXZlIHRvIGlu
Y2x1ZGUgdGhlIHByZXZpb3VzIHRleHQgbWF0cml4IGJlY2F1c2UgaXQgaW5jbHVkZXMgdGhpbmdz
IGxpa2Ugc3ludGhldGljIG9ibGlxdWUuCisgICAgLy8KKyAgICAvLyBCZWNhdXNlIHRoaXMgaXMg
YSBsZWZ0LW11bHRpcGx5LCB3ZSdyZSB0YWtpbmcgdGhlIHBvaW50cyBmcm9tIHVzZXIgY29vcmRp
bmF0ZXMsIHdoaWNoIGFyZSBpbmNyZWFzaW5nLVktZ29lcy1kb3duLAorICAgIC8vIGFuZCB3ZSdy
ZSByb3RhdGluZyB0aGUgcG9pbnRzIHRvIHRoZSBsZWZ0IGluIHRoYXQgY29vcmRpbmF0ZSBzeXN0
ZW0sIHRvIHB1dCB0aGVtIHBoeXNpY2FsbHkgdXByaWdodC4KICAgICByZXR1cm4gcm90YXRlTGVm
dFRyYW5zZm9ybSgpICogcHJldmlvdXNUZXh0TWF0cml4OwogfQogCitBZmZpbmVUcmFuc2Zvcm0g
Y29tcHV0ZVZlcnRpY2FsVGV4dE1hdHJpeChjb25zdCBGb250JiBmb250LCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIHByZXZpb3VzVGV4dE1hdHJpeCkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKGZvbnQs
IGZvbnQucGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBGb250T3JpZW50YXRpb246OlZl
cnRpY2FsKTsKKyAgICByZXR1cm4gY29tcHV0ZUJhc2VWZXJ0aWNhbFRleHRNYXRyaXgocHJldmlv
dXNUZXh0TWF0cml4KTsKK30KKwogI2lmICFQTEFURk9STShXSU4pCiAKIC8vIENvbmZ1c2luZ2x5
LCBldmVuIHdoZW4gQ0dGb250UmVuZGVyaW5nR2V0Rm9udFNtb290aGluZ0Rpc2FibGVkKCkgcmV0
dXJucyB0cnVlLCBDR0NvbnRleHRTZXRTaG91bGRTbW9vdGhGb250cygpIHN0aWxsIGltcGFjdHMg
dGV4dApAQCAtMTM4LDE1ICsxNTEsMTMyIEBAIHN0YXRpYyB2b2lkIGZpbGxWZWN0b3JXaXRoSG9y
aXpvbnRhbEdseXBoUG9zaXRpb25zKFZlY3RvcjxDR1BvaW50LCAyNTY+JiBwb3NpdGlvCiAgICAg
fQogfQogCi1zdGF0aWMgdm9pZCBmaWxsVmVjdG9yV2l0aFZlcnRpY2FsR2x5cGhQb3NpdGlvbnMo
VmVjdG9yPENHUG9pbnQsIDI1Nj4mIHBvc2l0aW9ucywgQ0dDb250ZXh0UmVmIGNvbnRleHQsIGNv
bnN0IENHU2l6ZSogdHJhbnNsYXRpb25zLCBjb25zdCBDR1NpemUqIGFkdmFuY2VzLCB1bnNpZ25l
ZCBjb3VudCwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGZsb2F0IGFzY2VudERlbHRhKQorc3Rh
dGljIHZvaWQgZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9zaXRpb25zKFZlY3RvcjxDR1Bv
aW50LCAyNTY+JiBwb3NpdGlvbnMsIGNvbnN0IENHU2l6ZSB0cmFuc2xhdGlvbnNbXSwgY29uc3Qg
Q0dTaXplIGFkdmFuY2VzW10sIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCwgZmxvYXQgYXNjZW50RGVsdGEsIENHQWZmaW5lVHJhbnNmb3JtIHRleHRNYXRyaXgpCiB7Ci0g
ICAgLy8gS2VlcCB0aGlzIGluIHN5bmMgYXMgdGhlIGludmVyc2Ugb2YgYERyYXdHbHlwaHNSZWNv
cmRlcjo6cmVjb3JkRHJhd0dseXBoc2AuCi0gICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3Jt
ID0gQ0dBZmZpbmVUcmFuc2Zvcm1JbnZlcnQoQ0dDb250ZXh0R2V0VGV4dE1hdHJpeChjb250ZXh0
KSk7Ci0KKyAgICAvLyBLZWVwIHRoaXMgZnVuY3Rpb24gaW4gc3luYyBhcyB0aGUgaW52ZXJzZSBv
ZiBgRHJhd0dseXBoc1JlY29yZGVyOjpyZWNvcmREcmF3R2x5cGhzYC4KKworICAgIC8vIEl0J3Mg
aW1wb3J0YW50IHRvIHJlYWxpemUgd2UncmUgZGVhbGluZyB3aXRoIDQgY29vcmRpbmF0ZSBzeXN0
ZW1zIGhlcmU6CisgICAgLy8gMS4gUGh5c2ljYWwgY29vcmRpbmF0ZSBzeXN0ZW0uIFRoaXMgaXMg
d2hhdCB0aGUgdXNlciBzZWVzLgorICAgIC8vIDIuIFVzZXIgY29vcmRpbmF0ZSBzeXN0ZW0uIFRo
aXMgaXMgdGhlIGNvb3JkaW5hdGUgc3lzdGVtIG9mIGp1c3QgdGhlIENUTS4gRm9yIHZlcnRpY2Fs
IHRleHQsIHRoaXMgaXMganVzdCBsaWtlIHRoZSBub3JtYWwgV2ViS2l0IGluY3JlYXNpbmctWS1k
b3duCisgICAgLy8gICAgICAgIGNvb3JkaW5hdGUgc3lzdGVtLCBleGNlcHQgd2UncmUgcm90YXRl
ZCByaWdodCwgc28gbG9naWNhbCByaWdodCBpcyBwaHlzaWNhbCBkb3duLiAoV2UgZG8gdGhpcyBz
byBsb2dpY2FsIGlubGluZSBwcm9ncmVzc2lvbiBwcm9jZWVkcyBpbiB0aGUKKyAgICAvLyAgICAg
ICAgbG9naWNhbGx5IGluY3JlYXNpbmctWCBkaW1lbnNpb24sIGp1c3QgYXMgaXQgd291bGQgaWYg
d2Ugd2VyZW4ndCBkb2luZyB2ZXJ0aWNhbCBzdHVmZi4pCisgICAgLy8gMy4gVGV4dCBjb29yZGlu
YXRlIHN5c3RlbS4gVGhpcyBpcyB0aGUgY29vcmRpbmF0ZSBvZiB0aGUgdGV4dCBtYXRyaXggY29u
Y2F0ZW5hdGVkIHdpdGggdGhlIENUTS4gRm9yIHZlcnRpY2FsIHRleHQsIHRoaXMgaXMgcm90YXRl
ZCBzdWNoIHRoYXQKKyAgICAvLyAgICAgICAgaW5jcmVhc2luZyBZIGdvZXMgcGh5c2ljYWxseSB1
cCwgYW5kIGluY3JlYXNpbmcgWCBnb2VzIHBoeXNpY2FsbHkgcmlnaHQuIFRoZSBjb250cm9sIHBv
aW50cyBpbiBmb250IGNvbnRvdXJzIGFyZSBhdXRob3JlZCBhY2NvcmRpbmcgdG8gdGhpcworICAg
IC8vICAgICAgICBpbmNyZWFzaW5nLVktdXAgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgLy8gNC4g
U3ludGhldGljLW9ibGlxdWUtbGVzcyB0ZXh0IGNvb3JkaW5hdGUgc3lzdGVtLiBUaGlzIHdvdWxk
IGJlIGlkZW50aWNhbCB0byB0aGUgdGV4dCBjb29yZGluYXRlIHN5c3RlbSBpZiBzeW50aGV0aWMg
b2JsaXF1ZSB3YXMgbm90IGluIGVmZmVjdC4gVGhpcworICAgIC8vICAgICAgICBpcyB1c2VmdWwg
YmVjYXVzZSwgd2hlbiB3ZSdyZSBtb3ZpbmcgZ2x5cGhzIGFyb3VuZCwgd2UgdXN1YWxseSBkb24n
dCB3YW50IHRvIGNvbnNpZGVyIHN5bnRoZXRpYyBvYmxpcXVlLiBJbnN0ZWFkLCBzeW50aGV0aWMg
b2JsaXF1ZSBpcyBqdXN0CisgICAgLy8gICAgICAgIGEgcmFzdGVyaXphdGlvbi10aW1lIGVmZmVj
dCwgYW5kIG5vdCB1c2VkIGZvciBnbHlwaCBwb3NpdGlvbmluZy9sYXlvdXQuCisgICAgLy8gICAg
ICAgIEZJWE1FOiBEb2VzIHRoaXMgbWVhbiB0aGF0IHN5bnRoZXRpYyBvYmxpcXVlIHNob3VsZCBh
bHdheXMgYmUgYXBwbGllZCBvbiB0aGUgcmVzdWx0IG9mIHJvdGF0ZUxlZnRUcmFuc2Zvcm0oKSBp
biBjb21wdXRlVmVydGljYWxUZXh0TWF0cml4KCksCisgICAgLy8gICAgICAgIHJhdGhlciB0aGFu
IHRoZSBvdGhlciB3YXkgYXJvdW5kPworCisgICAgLy8gSW1hZ2luZSBhbiB2ZXJ0aWNhbCB1cHJp
Z2h0IGdseXBoOgorICAgIC8vICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLyB8
ICAgICAgX19fICAgICAgIF9fXyAgICAgICB8CisgICAgLy8gfCAgICAgIFwgIFwgICAgIC8gIC8g
ICAgICAgfAorICAgIC8vIHwgICAgICAgXCAgXCAgIC8gIC8gICAgICAgIHwKKyAgICAvLyB8ICAg
ICAgICBcICBcIC8gIC8gICAgICAgICB8CisgICAgLy8gfCAgICAgICAgIFwgIFYgIC8gICAgICAg
ICAgfAorICAgIC8vIHwgICAgICAgICAgXCAgIC8gICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAg
ICAgIHwgICB8ICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICB8ICAgfCAgICAgICAgICAg
fAorICAgIC8vIHwgICAgICAgICAgfCAgIHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAg
IHwgICB8ICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICB8X19ffCAgICAgICAgICAgfAor
ICAgIC8vIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAvLyArLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rCisgICAgLy8KKyAgICAvLyBUaGUgaWRlb2dyYXBoaWMgYmFzZWxpbmUg
bGllcyBpbiB0aGUgY2VudGVyIG9mIHRoZSBnbHlwaCwgYW5kIHRoZSBhbHBoYWJldGljIGJhc2Vs
aW5lIGxpZXMgdG8gdGhlIGxlZnQgb2YgaXQ6CisgICAgLy8gICAgIHwgICAgICAgIHwKKyAgICAv
LyArLS0tfC0tLS0tLS0tfC0tLS0tLS0tLS0tLS0rCisgICAgLy8gfCAgIHwgIF9fXyAgIHwgICBf
X18gICAgICAgfAorICAgIC8vIHwgICB8ICBcICBcICB8ICAvICAvICAgICAgIHwKKyAgICAvLyB8
ICAgfCAgIFwgIFwgfCAvICAvICAgICAgICB8CisgICAgLy8gfCAgIHwgICAgXCAgXHwvICAvICAg
ICAgICAgfAorICAgIC8vIHwgICB8ICAgICBcICB8ICAvICAgICAgICAgIHwKKyAgICAvLyB8ICAg
fCAgICAgIFwgfCAvICAgICAgICAgICB8CisgICAgLy8gfCAgIHwgICAgICB8IHwgfCAgICAgICAg
ICAgfAorICAgIC8vIHwgICB8ICAgICAgfCB8IHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgfCAg
ICAgIHwgfCB8ICAgICAgICAgICB8CisgICAgLy8gfCAgIHwgICAgICB8IHwgfCAgICAgICAgICAg
fAorICAgIC8vIHwgICB8ICAgICAgfF98X3wgICAgICAgICAgIHwKKyAgICAvLyB8ICAgfCAgICAg
ICAgfCAgICAgICAgICAgICB8CisgICAgLy8gKy0tLXwtLS0tLS0tLXwtLS0tLS0tLS0tLS0tKwor
ICAgIC8vICAgICB8ICAgICAgICB8IDw9PSBpZGVvZ3JhcGhpYyBiYXNlbGluZQorICAgIC8vICAg
ICB8IDw9PSBhbHBoYWJldGljIGJhc2VsaW5lCisgICAgLy8KKyAgICAvLyBUaGUgZ2x5cGggaXRz
ZWxmIGhhcyBhIGxvY2FsIG9yaWdpbiwgd2hpY2ggaXMgdGhlIHBvc2l0aW9uIHNlbnQgdG8gQ29y
ZSBUZXh0LiBUaGUgY29udHJvbCBwb2ludHMgb2YgdGhlIGNvbnRvdXJzIGFyZSBkZWZpbmVkIHJl
bGF0aXZlIHRvIHRoaXMgcG9pbnQuCisgICAgLy8gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
KworICAgIC8vIHwgICAgICBfX18gICAgICAgX19fICAgICAgIHwKKyAgICAvLyB8ICAgICAgXCAg
XCAgICAgLyAgLyAgICAgICB8CisgICAgLy8gfCAgICAgICBcICBcICAgLyAgLyAgICAgICAgfAor
ICAgIC8vIHwgICAgICAgIFwgIFwgLyAgLyAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgXCAg
ViAgLyAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICBcICAgLyAgICAgICAgICAgfAorICAg
IC8vIHwgICAgICAgICAgfCAgIHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgIHwgICB8
ICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICB8ICAgfCAgICAgICAgICAgfAorICAgIC8v
ICogPD0gaGVyZSAgfCAgIHwgICAgICAgICAgIHwKKyAgICAvLyB8ICAgICAgICAgIHxfX198ICAg
ICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLworICAgIC8vIE5vdywgZm9yIGhvcml6
b250YWwgdGV4dCwgd2UgY2FuIGRvIHRoZSBzaW1wbGUgdGhpbmcgb2YganVzdDoKKyAgICAvLyAx
LiBQbGFjZSB0aGUgcGVuIGF0IGEgcG9zaXRpb24uIFJlY29yZCB0aGlzIHBvc2l0aW9uIGFzIHRo
ZSBsb2NhbCBvcmlnaW4gb2YgdGhlIGZpcnN0IGdseXBoCisgICAgLy8gMi4gTW92ZSB0aGUgcGVu
IGFjY29yZGluZyB0byB0aGUgZ2x5cGgncyBhZHZhbmNlCisgICAgLy8gMy4gUmVjb3JkIGEgbmV3
IHBvc2l0aW9uIGFzIHRoZSBsb2NhbCBvcmlnaW4gb2YgdGhlIG5leHQgZ2x5cGgKKyAgICAvLyA0
LiBHbyB0byAyCisgICAgLy8gSG93ZXZlciwgZm9yIHZlcnRpY2FsIHRleHQsIHdlIGNhbid0IGdl
dCBhd2F5IHdpdGggdGhpcyBiZWNhdXNlIHRoZSBnbHlwaCBvcmlnaW5zIGFyZSBub3Qgb24gdGhl
IGJhc2VsaW5lLgorICAgIC8vIFRoaXMgaXMgd2hhdCB0aGUgInZlcnRpY2FsIHRyYW5zbGF0aW9u
IGZvciBhIGdseXBoIiBpcy4gSXQgY29udGFpbnMgdGhpcyB2ZWN0b3I6CisgICAgLy8gKy0tLUEt
LS0tLS0tLUItLS0tLS0tLS0tLS0tKworICAgIC8vIHwgICAgICAgICAgIC8gICAgICAgICAgICAg
IHwKKyAgICAvLyB8ICAgICAgICAgIC8gICAgICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAg
LS0gICAgICAgICAgICAgICAgfAorICAgIC8vIHwgICAgICAgLyAgICAgICAgICAgICAgICAgIHwK
KyAgICAvLyB8ICAgICAgLyAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gfCAgICAtLSAgICAg
ICAgICAgICAgICAgICAgfAorICAgIC8vIHwgICAvICAgICAgICAgICAgICAgICAgICAgIHwKKyAg
ICAvLyB8ICAvICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gfHxfICAgICAgICAgICAg
ICAgICAgICAgICAgfAorICAgIC8vIEMgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAv
LyB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gfCAgICAgICAgICAgICAgICAg
ICAgICAgICAgfAorICAgIC8vICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLyBJ
dCBwb2ludHMgZnJvbSB0aGUgcGVuIHBvc2l0aW9uIG9uIHRoZSBpZGVvZ3JhcGhpYyBiYXNlbGlu
ZSB0byB0aGUgZ2x5cGgncyBsb2NhbCBvcmlnaW4uIFRoaXMgaXMgKHVzdWFsbHkpIHBoeXNpY2Fs
bHkKKyAgICAvLyBkb3duLWFuZC10by10aGUtbGVmdC4gQ29yZSBUZXh0IGdpdmVzIHVzIHRoZXNl
IHZlY3RvcnMgaW4gdGhlIHRleHQgY29vcmRpbmF0ZSBzeXN0ZW0sIGFuZCBzbyB0aGVyZWZvcmUg
dGhlc2UgdmVjdG9ycyAodXN1YWxseSkgaGF2ZQorICAgIC8vIGJvdGggWCBhbmQgWSBjb21wb25l
bnRzIG5lZ2F0aXZlLgorCisgICAgLy8gVGhlIGdvYWwgb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBw
cm9kdWNlIGdseXBoIG9yaWdpbnMgaW4gdGhlIHRleHQgY29vcmRpbmF0ZSBzeXN0ZW0sIGJlY2F1
c2UgdGhhdCdzIHdoYXQgQ29yZSBUZXh0IGV4cGVjdHMuIFRoZSAiYWR2YW5jZXMiCisgICAgLy8g
YW5kICJwb2ludCIgcGFyYW1ldGVycyB0byB0aGlzIGZ1bmN0aW9uIGFyZSBpbiB0aGUgdXNlciBj
b29yZGluYXRlIHN5c3RlbS4gVGhlICJ0cmFuc2xhdGlvbnMiIHBhcmFtZXRlciBpcyBpbiB0aGUg
InN5bnRoZXRpYy1vYmxpcXVlLWxlc3MKKyAgICAvLyB0ZXh0IGNvb3JkaW5hdGUgc3lzdGVtLiIK
KworICAgIC8vIENHQ29udGV4dEdldFRleHRNYXRyaXgoKSB0cmFuc2Zvcm1zIHBvaW50cyBmcm9t
IHRleHQgY29vcmRpbmF0ZXMgdG8gdXNlciBjb29yZGluYXRlcy4gSG93ZXZlciwgd2UncmUgdHJ5
aW5nIHRvIHByb2R1Y2UgdGV4dCBjb29yZGluYXRlcyBmcm9tCisgICAgLy8gdXNlciBjb29yZGlu
YXRlcywgc28gd2UgaW52ZXJ0IGl0LgorICAgIENHQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9
IENHQWZmaW5lVHJhbnNmb3JtSW52ZXJ0KHRleHRNYXRyaXgpOworCisgICAgLy8gQmVjYXVzZSB0
aGUgInZlcnRpY2FsIHRyYW5zbGF0aW9uIGZvciBhIGdseXBoIiB2ZWN0b3Igc3RhcnRzIGF0IHRo
ZSBpZGVvZ3JhcGhpYyBiYXNlbGluZSAodGhlIHBvaW50IEIgaW4gdGhlIGFib3ZlIGRpYWdyYW0p
LCB3ZSBoYXZlIHRvCisgICAgLy8gYWRqdXN0IHRoZSBwZW4gcG9zaXRpb24gdG8gc3RhcnQgdGhl
cmUuIFdlYktpdCdzIHRleHQgcm91dGluZXMgc3RhcnQgb3V0IHVzaW5nIHRoZSBhbHBoYWJldGlj
IGJhc2VsaW5lIChwb2ludCBBIGluIHRoZSBkaWFncmFtIGFib3ZlKSBzbyB3ZQorICAgIC8vIGFk
anVzdCB0aGUgc3RhcnQgcG9zaXRpb24gaGVyZSwgd2hpY2ggaGFzIHRoZSBlZmZlY3Qgb2Ygc2hp
ZnRpbmcgdGhlIHdob2xlIHJ1biBhbHRvZ2V0aGVyLgorICAgIC8vCisgICAgLy8gYXNjZW50RGVs
dGEgaXMgKHVzdWFsbHkpIGEgbmVnYXRpdmUgbnVtYmVyLCBhbmQgcmVwcmVzZW50cyB0aGUgZGlz
dGFuY2UgYmV0d2VlbiB0aGUgaWRlb2dyYXBoaWMgYmFzZWxpbmUgdG8gdGhlIGFscGhhYmV0aWMg
YmFzZWxpbmUuCisgICAgLy8gSW4gdXNlciBjb29yZGluYXRlcywgd2Ugd2FudCB0byBhZGp1c3Qg
dGhlIFkgY29tcG9uZW50IHRvIG1ha2UgYSBob3Jpem9udGFsIHBoeXNpY2FsIGNoYW5nZS4gQW5k
LCBiZWNhdXNlIHRoZSB1c2VyIGNvb3JkaW5hdGUgc3lzdGVtIGlzCisgICAgLy8gbG9naWNhbGx5
IGluY3JlYXNpbmctWS1kb3duLCB3ZSBhZGQgdGhlIHZhbHVlLCB3aGljaCBpcyBuZWdhdGl2ZSwg
dG8gbW92ZSB1cyBsb2dpY2FsbHkgdXAsIHdoaWNoIGlzIHBoeXNpY2FsbHkgdG8gdGhlIHJpZ2h0
LiBOb3cgb3VyIHBvc2l0aW9uCisgICAgLy8gaXMgYXQgdGhlIHBvaW50IGxhYmVsZWQgQiBpbiB0
aGUgYWJvdmUgZGlhZ3JhbSwgaW4gdXNlciBjb29yZGluYXRlcy4KICAgICBhdXRvIHBvc2l0aW9u
ID0gQ0dQb2ludE1ha2UocG9pbnQueCgpLCBwb2ludC55KCkgKyBhc2NlbnREZWx0YSk7CisKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewotICAgICAgICBDR1NpemUg
dHJhbnNsYXRpb24gPSBDR1NpemVBcHBseUFmZmluZVRyYW5zZm9ybSh0cmFuc2xhdGlvbnNbaV0s
IHJvdGF0ZUxlZnRUcmFuc2Zvcm0oKSk7Ci0gICAgICAgIHBvc2l0aW9uc1tpXSA9IENHUG9pbnRB
cHBseUFmZmluZVRyYW5zZm9ybShDR1BvaW50TWFrZShwb3NpdGlvbi54IC0gdHJhbnNsYXRpb24u
d2lkdGgsIHBvc2l0aW9uLnkgKyB0cmFuc2xhdGlvbi5oZWlnaHQpLCB0cmFuc2Zvcm0pOworICAg
ICAgICAvLyBUaGUgInRyYW5zbGF0aW9ucyIgcGFyYW1ldGVyIGlzIGluIHRoZSAic3ludGhldGlj
LW9ibGlxdWUtbGVzcyB0ZXh0IGNvb3JkaW5hdGUgc3lzdGVtIiBhbmQgd2Ugd2FudCB0byBhZGQg
aXQgdG8gdGhlIHBvc2l0aW9uIGluIHRoZSB1c2VyCisgICAgICAgIC8vIGNvb3JkaW5hdGUgc3lz
dGVtLiBMdWNraWx5LCB0aGUgdGV4dCBtYXRyaXggKG9yLCBhdCBsZWFzdCB0aGUgdmVyc2lvbiBv
ZiB0aGUgdGV4dCBtYXRyaXggdGhhdCBkb2Vzbid0IGluY2x1ZGUgc3ludGhldGljIG9ibGlxdWUp
IGRvZXMgZXhhY3RseQorICAgICAgICAvLyB0aGlzLiBTbywgd2UganVzdCBjcmVhdGUgdGhlIHN5
bnRoZXRpYy1vYmxpcXVlLWxlc3MgdGV4dCBtYXRyaXgsIGFuZCBydW4gdGhlIHRyYW5zbGF0aW9u
IHRocm91Z2ggaXQuIFRoaXMgZ2l2ZXMgdXMgdGhlIHRyYW5zbGF0aW9uIGluIHVzZXIKKyAgICAg
ICAgLy8gY29vcmRpbmF0ZXMuCisgICAgICAgIGF1dG8gdHJhbnNsYXRpb24gPSBDR1NpemVBcHBs
eUFmZmluZVRyYW5zZm9ybSh0cmFuc2xhdGlvbnNbaV0sIGNvbXB1dGVCYXNlVmVydGljYWxUZXh0
TWF0cml4KGNvbXB1dGVCYXNlT3ZlcmFsbFRleHRNYXRyaXgoc3RkOjpudWxsb3B0KSkpOworCisg
ICAgICAgIC8vIE5vdyB3ZSBjYW4gYWRkIHRoZSBwb3NpdGlvbiBpbiB1c2VyIGNvb3JkaW5hdGVz
IHdpdGggdGhlIHRyYW5zbGF0aW9uIGluIHVzZXIgY29vcmRpbmF0ZXMuCisgICAgICAgIGF1dG8g
cG9zaXRpb25JblVzZXJDb29yZGluYXRlcyA9IENHUG9pbnRNYWtlKHBvc2l0aW9uLnggKyB0cmFu
c2xhdGlvbi53aWR0aCwgcG9zaXRpb24ueSArIHRyYW5zbGF0aW9uLmhlaWdodCk7CisKKyAgICAg
ICAgLy8gQW5kIHRoZW4gcHV0IGl0IGJhY2sgaW4gZm9udCBjb29yZGluYXRlcyBmb3Igc3VibWlz
c2lvbiB0byBDb3JlIFRleHQuIFlheSEKKyAgICAgICAgcG9zaXRpb25zW2ldID0gQ0dQb2ludEFw
cGx5QWZmaW5lVHJhbnNmb3JtKHBvc2l0aW9uSW5Vc2VyQ29vcmRpbmF0ZXMsIHRyYW5zZm9ybSk7
CisKKyAgICAgICAgLy8gQWR2YW5jZSB0aGUgcG9zaXRpb24gdG8gdGhlIG5leHQgcG9zaXRpb24g
aW4gdXNlciBjb29yZGluYXRlcy4gQm90aCB0aGUgYWR2YW5jZXMgYW5kIHBvc2l0aW9uIGFyZSBp
biB1c2VyIGNvb3JkaW5hdGVzLgogICAgICAgICBwb3NpdGlvbi54ICs9IGFkdmFuY2VzW2ldLndp
ZHRoOwogICAgICAgICBwb3NpdGlvbi55ICs9IGFkdmFuY2VzW2ldLmhlaWdodDsKICAgICB9CkBA
IC0xNjYsNyArMjk2LDcgQEAgc3RhdGljIHZvaWQgc2hvd0dseXBoc1dpdGhBZHZhbmNlcyhjb25z
dCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3QgRm9udCYgZm9udCwgQ0cKICAgICAgICAgQ1RGb250
R2V0VmVydGljYWxUcmFuc2xhdGlvbnNGb3JHbHlwaHMocGxhdGZvcm1EYXRhLmN0Rm9udCgpLCBn
bHlwaHMsIHRyYW5zbGF0aW9ucy5kYXRhKCksIGNvdW50KTsKIAogICAgICAgICBhdXRvIGFzY2Vu
dERlbHRhID0gZm9udC5mb250TWV0cmljcygpLmZsb2F0QXNjZW50KElkZW9ncmFwaGljQmFzZWxp
bmUpIC0gZm9udC5mb250TWV0cmljcygpLmZsb2F0QXNjZW50KCk7Ci0gICAgICAgIGZpbGxWZWN0
b3JXaXRoVmVydGljYWxHbHlwaFBvc2l0aW9ucyhwb3NpdGlvbnMsIGNvbnRleHQsIHRyYW5zbGF0
aW9ucy5kYXRhKCksIGFkdmFuY2VzLCBjb3VudCwgcG9pbnQsIGFzY2VudERlbHRhKTsKKyAgICAg
ICAgZmlsbFZlY3RvcldpdGhWZXJ0aWNhbEdseXBoUG9zaXRpb25zKHBvc2l0aW9ucywgdHJhbnNs
YXRpb25zLmRhdGEoKSwgYWR2YW5jZXMsIGNvdW50LCBwb2ludCwgYXNjZW50RGVsdGEsIENHQ29u
dGV4dEdldFRleHRNYXRyaXgoY29udGV4dCkpOwogICAgICAgICBDVEZvbnREcmF3R2x5cGhzKHBs
YXRmb3JtRGF0YS5jdEZvbnQoKSwgZ2x5cGhzLCBwb3NpdGlvbnMuZGF0YSgpLCBjb3VudCwgY29u
dGV4dCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZmlsbFZlY3RvcldpdGhIb3Jpem9udGFsR2x5
cGhQb3NpdGlvbnMocG9zaXRpb25zLCBjb250ZXh0LCBhZHZhbmNlcywgY291bnQsIHBvaW50KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>