<?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>235011</bug_id>
          
          <creation_ts>2022-01-08 19:01:42 -0800</creation_ts>
          <short_desc>[LFC][IFC] imported/w3c/web-platform-tests/css/css-text/word-break/word-break-normal-ar-000.html fails with incorrect run position</short_desc>
          <delta_ts>2022-01-15 05:38:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1829272</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-01-08 19:01:42 -0800</bug_when>
    <thetext>ssia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829275</commentid>
    <comment_count>1</comment_count>
      <attachid>448693</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-01-08 19:27:28 -0800</bug_when>
    <thetext>Created attachment 448693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829282</commentid>
    <comment_count>2</comment_count>
      <attachid>448693</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-08 23:07:25 -0800</bug_when>
    <thetext>Comment on attachment 448693
Patch

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

&gt; Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h:47
&gt; +    enum class UseTrailingWhitespaceMeasuringQuirk : uint8_t { Yes, No };

It is more like an optimization rather than quirk.

It would be good to add a comment that explains what this does and why it is ok in LTR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829305</commentid>
    <comment_count>3</comment_count>
      <attachid>448702</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-01-09 07:25:59 -0800</bug_when>
    <thetext>Created attachment 448702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829422</commentid>
    <comment_count>4</comment_count>
      <attachid>448735</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-01-10 05:09:45 -0800</bug_when>
    <thetext>Created attachment 448735
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831156</commentid>
    <comment_count>5</comment_count>
      <attachid>449240</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-01-14 20:28:43 -0800</bug_when>
    <thetext>Created attachment 449240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831185</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-15 05:37:57 -0800</bug_when>
    <thetext>Committed r288055 (246075@main): &lt;https://commits.webkit.org/246075@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449240.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831186</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-15 05:38:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/87637264&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448693</attachid>
            <date>2022-01-08 19:27:28 -0800</date>
            <delta_ts>2022-01-09 07:25:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235011-20220108192727.patch</filename>
            <type>text/plain</type>
            <size>12451</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTRiOTJkZWRhMGMwNDIx
OTUxZDNkY2NmMjY1NDMyOWU5MTY5ZTNhYS4uNTNhOWYyNTJkNmJkMGE0ODNhNTI2MDJhNWQ1ZDlk
NzJhNTQzZGE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAxLTA4ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10ZXh0L3dvcmQtYnJlYWsvd29yZC1icmVh
ay1ub3JtYWwtYXItMDAwLmh0bWwgZmFpbHMgd2l0aCBpbmNvcnJlY3QgcnVuIHBvc2l0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwMTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJRkMgKGluaGVy
aXRlZCBmcm9tIHNpbXBsZSBsaW5lIGxheW91dCkgdXNlcyB0aGlzIHRlY2huaXF1ZSBvZiBtZWFz
dXJpbmcgdGhlIGNvbnRlbnQgd2l0aCB0aGUgdHJhaWxpbmcgd2hpdGVzcGFjZQorICAgICAgICBh
bmQgdGhlbiBzaW1wbHkgc3VidHJhY3QgdGhlIHdoaXRlc3BhY2Ugd2lkdGguIEl0IGVuYWJsZXMg
dXMgdG8ga2VlcCBwdXNoaW5nIGNvbnRlbnQgdG8gdGhlIGxpbmUgd2l0aG91dCByZS1tZWFzdXJp
bmcgaXQgZWFjaCB0aW1lLgorICAgICAgICAodGhlICJub24td2hpdGVzcGFjZSArIHdoaXRlc3Bh
Y2UiIHBhdHRlcm4gaXMgZXh0cmVtZWx5IGNvbW1vbiBmb3IgSUZDIGNvbnRlbnQpLgorICAgICAg
ICBIb3dldmVyIGluIHNvbWUgY2FzZXMgd2hlbiB0aGUgdHJhaWxpbmcgd2hpdGVzcGFjZSBpcyB0
cmltbWVkLCBzdWJ0cmFjdGluZyB0aGUgdHJpbW1lZCB3aWR0aCBmcm9tIHRoZQorICAgICAgICBj
b250ZW50IHdpZHRoIGluc3RlYWQgb2YgbWVhc3VyaW5nIGl0IHByb2R1Y2VzIGEgdmlzdWFsbHkg
aW5jb3JyZWN0IHJlc3VsdC4KKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgbW9zdCBvYnZp
b3VzIGNhc2VzIHdoZW4gdGhlIGluY29ycmVjdCB3aWR0aCB0dXJucyBpbnRvIGFuIG9mZnNldCBm
b3IgdGhlIFJUTCBjb250ZW50LgorCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6
OlRyaW1tYWJsZVRyYWlsaW5nQ29udGVudDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6TGluZTo6UnVuOjpyZW1vdmVUcmFpbGluZ0xldHRlclNwYWNpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSk6Cisg
ICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oOgor
ICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUZXh0VXRpbDo6d2lkdGgpOgorICAgICAg
ICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaDoKKwog
MjAyMi0wMS0wOCAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xG
Q11bSUZDXSBJbnRyb2R1Y2UgYSBkZWRpY2F0ZWQgc3RydWN0dXJlIGZvciBMaW5lOjpSdW4ncyB0
cmFpbGluZyB3aGl0ZXNwYWNlIGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3Bw
CmluZGV4IGYwMDEwYzFmMmI5M2VjZjY5ZWIxY2U4ZjJkNzA4ZjNhMTViMWYxN2QuLmJmOGMzZTZl
YWE4NGNhOTZkZTMyOTU5Y2JlMzRkNGY2N2I0NzA2ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmUuY3BwCkBAIC00NzMsMTIgKzQ3MywxMiBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmU6OlRyaW1t
YWJsZVRyYWlsaW5nQ29udGVudDo6cmVtb3ZlKCkKICAgICBhdXRvJiB0cmltbWFibGVSdW4gPSBt
X3J1bnNbKm1fZmlyc3RUcmltbWFibGVSdW5JbmRleF07CiAgICAgQVNTRVJUKHRyaW1tYWJsZVJ1
bi5pc1RleHQoKSk7CiAKKyAgICBhdXRvIHRyaW1tZWRXaWR0aCA9IElubGluZUxheW91dFVuaXQg
eyB9OwogICAgIGlmIChtX2hhc0Z1bGx5VHJpbW1hYmxlQ29udGVudCkKLSAgICAgICAgdHJpbW1h
YmxlUnVuLnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSgpOworICAgICAgICB0cmltbWVkV2lkdGgg
Kz0gdHJpbW1hYmxlUnVuLnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSgpOwogICAgIGlmIChtX3Bh
cnRpYWxseVRyaW1tYWJsZVdpZHRoKQotICAgICAgICB0cmltbWFibGVSdW4ucmVtb3ZlVHJhaWxp
bmdMZXR0ZXJTcGFjaW5nKCk7CisgICAgICAgIHRyaW1tZWRXaWR0aCArPSB0cmltbWFibGVSdW4u
cmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7CiAKLSAgICBhdXRvIHRyaW1tYWJsZVdpZHRo
ID0gd2lkdGgoKTsKICAgICAvLyBXaGVuIHRoZSB0cmltbWFibGUgcnVuIGlzIGZvbGxvd2VkIGJ5
IHNvbWUgbm9uLWNvbnRlbnQgcnVucywgd2UgbmVlZCB0byBhZGp1c3QgdGhlaXIgaG9yaXpvbnRh
bCBwb3NpdGlvbnMuCiAgICAgLy8gZS5nLiA8ZGl2PnRleHQgaXMgZm9sbG93ZWQgYnkgdHJpbW1h
YmxlIGNvbnRlbnQgICAgPHNwYW4+IDwvc3Bhbj48L2Rpdj4KICAgICAvLyBXaGVuIHRoZSBbdGV4
dC4uLl0gcnVuIGlzIHRyaW1tZWQgKHRyYWlsaW5nIHdoaXRlc3BhY2UgaXMgcmVtb3ZlZCksIGJv
dGggIjxzcGFuPiIgYW5kICI8L3NwYW4+IiBydW5zCkBAIC00ODcsNyArNDg3LDcgQEAgSW5saW5l
TGF5b3V0VW5pdCBMaW5lOjpUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlbW92ZSgpCiAgICAg
Zm9yIChhdXRvIGluZGV4ID0gKm1fZmlyc3RUcmltbWFibGVSdW5JbmRleCArIDE7IGluZGV4IDwg
bV9ydW5zLnNpemUoKTsgKytpbmRleCkgewogICAgICAgICBhdXRvJiBydW4gPSBtX3J1bnNbaW5k
ZXhdOwogICAgICAgICBBU1NFUlQocnVuLmlzV29yZEJyZWFrT3Bwb3J0dW5pdHkoKSB8fCBydW4u
aXNMaW5lU3Bhbm5pbmdJbmxpbmVCb3hTdGFydCgpIHx8IHJ1bi5pc0lubGluZUJveFN0YXJ0KCkg
fHwgcnVuLmlzSW5saW5lQm94RW5kKCkgfHwgcnVuLmlzTGluZUJyZWFrKCkpOwotICAgICAgICBy
dW4ubW92ZUhvcml6b250YWxseSgtdHJpbW1hYmxlV2lkdGgpOworICAgICAgICBydW4ubW92ZUhv
cml6b250YWxseSgtdHJpbW1lZFdpZHRoKTsKICAgICB9CiAgICAgaWYgKCF0cmltbWFibGVSdW4u
dGV4dENvbnRlbnQoKS0+bGVuZ3RoKSB7CiAgICAgICAgIC8vIFRoaXMgdHJpbW1hYmxlIHJ1biBp
cyBmdWxseSBjb2xsYXBzZWQgbm93IChlLmcuIDxkaXY+PGltZz4gICAgPHNwYW4+PC9zcGFuPjwv
ZGl2PikuCkBAIC00OTUsNyArNDk1LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBMaW5lOjpUcmltbWFi
bGVUcmFpbGluZ0NvbnRlbnQ6OnJlbW92ZSgpCiAgICAgICAgIG1fcnVucy5yZW1vdmUoKm1fZmly
c3RUcmltbWFibGVSdW5JbmRleCk7CiAgICAgfQogICAgIHJlc2V0KCk7Ci0gICAgcmV0dXJuIHRy
aW1tYWJsZVdpZHRoOworICAgIHJldHVybiB0cmltbWVkV2lkdGg7CiB9CiAKIElubGluZUxheW91
dFVuaXQgTGluZTo6VHJpbW1hYmxlVHJhaWxpbmdDb250ZW50OjpyZW1vdmVQYXJ0aWFsbHlUcmlt
bWFibGVDb250ZW50KCkKQEAgLTYzMCwyMiArNjMwLDMyIEBAIElubGluZUxheW91dFVuaXQgTGlu
ZTo6UnVuOjp0cmFpbGluZ0xldHRlclNwYWNpbmcoKSBjb25zdAogICAgIHJldHVybiBJbmxpbmVM
YXlvdXRVbml0IHsgbGV0dGVyU3BhY2luZygpIH07CiB9CiAKLXZvaWQgTGluZTo6UnVuOjpyZW1v
dmVUcmFpbGluZ0xldHRlclNwYWNpbmcoKQorSW5saW5lTGF5b3V0VW5pdCBMaW5lOjpSdW46OnJl
bW92ZVRyYWlsaW5nTGV0dGVyU3BhY2luZygpCiB7CiAgICAgQVNTRVJUKGhhc1RyYWlsaW5nTGV0
dGVyU3BhY2luZygpKTsKLSAgICBzaHJpbmtIb3Jpem9udGFsbHkodHJhaWxpbmdMZXR0ZXJTcGFj
aW5nKCkpOworICAgIGF1dG8gdHJhaWxpbmdXaWR0aCA9IHRyYWlsaW5nTGV0dGVyU3BhY2luZygp
OworICAgIHNocmlua0hvcml6b250YWxseSh0cmFpbGluZ1dpZHRoKTsKICAgICBBU1NFUlQobG9n
aWNhbFdpZHRoKCkgPiAwIHx8ICghbG9naWNhbFdpZHRoKCkgJiYgbGV0dGVyU3BhY2luZygpID49
IHN0YXRpY19jYXN0PGZsb2F0PihpbnRNYXhGb3JMYXlvdXRVbml0KSkpOworICAgIHJldHVybiB0
cmFpbGluZ1dpZHRoOwogfQogCi12b2lkIExpbmU6OlJ1bjo6cmVtb3ZlVHJhaWxpbmdXaGl0ZXNw
YWNlKCkKK0lubGluZUxheW91dFVuaXQgTGluZTo6UnVuOjpyZW1vdmVUcmFpbGluZ1doaXRlc3Bh
Y2UoKQogewogICAgIC8vIEFjY29yZGluZyB0byBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXRl
eHQtMy8jd2hpdGUtc3BhY2UtcHJvcGVydHkgbWF0cml4CiAgICAgLy8gVHJpbW1hYmxlIHdoaXRl
c3BhY2UgaXMgYWx3YXlzIGNvbGxhcHNpYmxlIHNvIHRoZSBsZW5ndGggb2YgdGhlIHRyYWlsaW5n
IHRyaW1tYWJsZSB3aGl0ZXNwYWNlIGlzIGFsd2F5cyAxIChvciBub24tZXhpc3RlbnQpLgotICAg
IEFTU0VSVChtX3RleHRDb250ZW50LT5sZW5ndGgpOworICAgIEFTU0VSVChtX3RleHRDb250ZW50
ICYmIG1fdGV4dENvbnRlbnQtPmxlbmd0aCk7CiAgICAgY29uc3RleHByIHNpemVfdCB0cmFpbGlu
Z1RyaW1tYWJsZUNvbnRlbnRMZW5ndGggPSAxOwogICAgIG1fdGV4dENvbnRlbnQtPmxlbmd0aCAt
PSB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5ndGg7Ci0gICAgc2hyaW5rSG9yaXpvbnRhbGx5
KG1fdHJhaWxpbmdXaGl0ZXNwYWNlLndpZHRoKTsKKyAgICBhdXRvIHRyaW1tZWRXaWR0aCA9IG1f
dHJhaWxpbmdXaGl0ZXNwYWNlLndpZHRoOworICAgIGlmIChtX3RleHRDb250ZW50LT5sZW5ndGgg
JiYgaW5saW5lRGlyZWN0aW9uKCkgPT0gVGV4dERpcmVjdGlvbjo6UlRMKSB7CisgICAgICAgIC8v
IEZJWE1FOiBUaGlzIG1heSBzdGlsbCBpbmNvcnJlY3RseSBsZWF2ZSBzb21lIGNvbnRlbnQgb24g
dGhlIGxpbmUgKHZzLiByZS1tZWFzdXJpbmcgYWxzbyBhdCA6OmV4cGFuZCkuCisgICAgICAgIGF1
dG8mIGlubGluZVRleHRCb3ggPSBkb3duY2FzdDxJbmxpbmVUZXh0Qm94PigqbV9sYXlvdXRCb3gp
OworICAgICAgICBhdXRvIGxvZ2ljYWxXaWR0aFdpdGhvdXRUcmFpbGluZ1doaXRlc3BhY2UgPSBU
ZXh0VXRpbDo6d2lkdGgoaW5saW5lVGV4dEJveCwgbV9zdHlsZS5mb250Q2FzY2FkZSgpLCBtX3Rl
eHRDb250ZW50LT5zdGFydCwgbV90ZXh0Q29udGVudC0+c3RhcnQgKyBtX3RleHRDb250ZW50LT5s
ZW5ndGgsIGxvZ2ljYWxMZWZ0KCksIFRleHRVdGlsOjpVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFz
dXJpbmdRdWlyazo6Tm8pOworICAgICAgICB0cmltbWVkV2lkdGggPSBsb2dpY2FsV2lkdGgoKSAt
IGxvZ2ljYWxXaWR0aFdpdGhvdXRUcmFpbGluZ1doaXRlc3BhY2U7CisgICAgfQogICAgIG1fdHJh
aWxpbmdXaGl0ZXNwYWNlID0geyB9OworICAgIHNocmlua0hvcml6b250YWxseSh0cmltbWVkV2lk
dGgpOworICAgIHJldHVybiB0cmltbWVkV2lkdGg7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmUuaAppbmRleCA3OGI3NjU2Mjc3MmZkMDlkYWFkNTc3YzdkMTk0MGE2Y2UyMGEzMWI1Li5hNzI4
ZWE1MjE0ZWE5MjE0OTZiYjgzYzdkMDAxOWIzN2FjNTZkYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
TGluZS5oCkBAIC0xNDQsMTEgKzE0NCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgaGFzQ29s
bGFwc2libGVUcmFpbGluZ1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hp
dGVzcGFjZS50eXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZTo6Q29sbGFwc2libGUgfHwg
aGFzQ29sbGFwc2VkVHJhaWxpbmdXaGl0ZXNwYWNlKCk7IH0KICAgICAgICAgYm9vbCBoYXNDb2xs
YXBzZWRUcmFpbGluZ1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVz
cGFjZS50eXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZTo6Q29sbGFwc2VkOyB9CiAgICAg
ICAgIHN0YXRpYyBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGUgdHJhaWxpbmdXaGl0ZXNwYWNlVHlw
ZShjb25zdCBJbmxpbmVUZXh0SXRlbSYpOwotICAgICAgICB2b2lkIHJlbW92ZVRyYWlsaW5nV2hp
dGVzcGFjZSgpOworICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHJlbW92ZVRyYWlsaW5nV2hpdGVz
cGFjZSgpOwogCiAgICAgICAgIGJvb2wgaGFzVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCkgY29uc3Q7
CiAgICAgICAgIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCkgY29uc3Q7
Ci0gICAgICAgIHZvaWQgcmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7CisgICAgICAgIElu
bGluZUxheW91dFVuaXQgcmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7CiAKICAgICAgICAg
VHlwZSBtX3R5cGUgeyBUeXBlOjpUZXh0IH07CiAgICAgICAgIGNvbnN0IEJveCogbV9sYXlvdXRC
b3ggeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwCmluZGV4IDgw
MDEwNGZlZGYxZGNhNjFhMTI4ZTM5NzJmYmU5YTExNjUzYzc0OGIuLjM2OTUyMjNjYzFjOTZmMmQ2
NGM2NzAyMzZiYzVmNTJhY2RjMzZhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwu
Y3BwCkBAIC00MSwxMiArNDEsMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBM
YXlvdXQgewogCi1JbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVU
ZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwg
SW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpCitJbmxpbmVMYXlvdXRVbml0IFRl
eHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0
IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNh
bExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ1F1aXJrIHVzZVRyYWlsaW5nV2hp
dGVzcGFjZU1lYXN1cmluZ1F1aXJrKQogewotICAgIHJldHVybiBUZXh0VXRpbDo6d2lkdGgoaW5s
aW5lVGV4dEl0ZW0sIGZvbnRDYXNjYWRlLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVU
ZXh0SXRlbS5lbmQoKSwgY29udGVudExvZ2ljYWxMZWZ0KTsKKyAgICByZXR1cm4gVGV4dFV0aWw6
OndpZHRoKGlubGluZVRleHRJdGVtLCBmb250Q2FzY2FkZSwgaW5saW5lVGV4dEl0ZW0uc3RhcnQo
KSwgaW5saW5lVGV4dEl0ZW0uZW5kKCksIGNvbnRlbnRMb2dpY2FsTGVmdCwgdXNlVHJhaWxpbmdX
aGl0ZXNwYWNlTWVhc3VyaW5nUXVpcmspOwogfQogCi1JbmxpbmVMYXlvdXRVbml0IFRleHRVdGls
Ojp3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IEZvbnRD
YXNjYWRlJiBmb250Q2FzY2FkZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxh
eW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KQorSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6
d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb250Q2Fz
Y2FkZSYgZm9udENhc2NhZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlv
dXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5n
UXVpcmsgdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nUXVpcmspCiB7CiAgICAgUkVMRUFT
RV9BU1NFUlQoZnJvbSA+PSBpbmxpbmVUZXh0SXRlbS5zdGFydCgpKTsKICAgICBSRUxFQVNFX0FT
U0VSVCh0byA8PSBpbmxpbmVUZXh0SXRlbS5lbmQoKSk7CkBAIC01NCwxMCArNTQsMTAgQEAgSW5s
aW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGlu
ZVRleHRJdGVtLCBjb25zdCBGb24KICAgICAgICAgYXV0byBzcGFjZVdpZHRoID0gZm9udENhc2Nh
ZGUuc3BhY2VXaWR0aCgpOwogICAgICAgICByZXR1cm4gc3RkOjppc25hbihzcGFjZVdpZHRoKSA/
IDAuMGYgOiBzdGQ6OmlzaW5mKHNwYWNlV2lkdGgpID8gbWF4SW5saW5lTGF5b3V0VW5pdCgpIDog
c3BhY2VXaWR0aDsKICAgICB9Ci0gICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0
SXRlbS5pbmxpbmVUZXh0Qm94KCksIGZvbnRDYXNjYWRlLCBmcm9tLCB0bywgY29udGVudExvZ2lj
YWxMZWZ0KTsKKyAgICByZXR1cm4gVGV4dFV0aWw6OndpZHRoKGlubGluZVRleHRJdGVtLmlubGlu
ZVRleHRCb3goKSwgZm9udENhc2NhZGUsIGZyb20sIHRvLCBjb250ZW50TG9naWNhbExlZnQsIHVz
ZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ1F1aXJrKTsKIH0KIAotSW5saW5lTGF5b3V0VW5p
dCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29u
c3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywg
SW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpCitJbmxpbmVMYXlvdXRVbml0IFRl
eHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBjb25zdCBG
b250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxp
bmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVh
c3VyaW5nUXVpcmsgdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nUXVpcmspCiB7CiAgICAg
aWYgKGZyb20gPT0gdG8pCiAgICAgICAgIHJldHVybiAwOwpAQCAtNjUsOCArNjUsOCBAQCBJbmxp
bmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVU
ZXh0Qm94LCBjb25zdCBGb250QwogICAgIGF1dG8gdGV4dCA9IGlubGluZVRleHRCb3guY29udGVu
dCgpOwogICAgIEFTU0VSVCh0byA8PSB0ZXh0Lmxlbmd0aCgpKTsKICAgICBhdXRvIGhhc0tlcm5p
bmdPckxpZ2F0dXJlcyA9IGZvbnRDYXNjYWRlLmVuYWJsZUtlcm5pbmcoKSB8fCBmb250Q2FzY2Fk
ZS5yZXF1aXJlc1NoYXBpbmcoKTsKLSAgICBhdXRvIG1lYXN1cmVXaXRoRW5kU3BhY2UgPSBoYXNL
ZXJuaW5nT3JMaWdhdHVyZXMgJiYgdG8gPCB0ZXh0Lmxlbmd0aCgpICYmIHRleHRbdG9dID09ICcg
JzsKLSAgICBpZiAobWVhc3VyZVdpdGhFbmRTcGFjZSkKKyAgICBhdXRvIGV4dGVuZGVkTWVhc3Vy
aW5nID0gdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nUXVpcmsgPT0gVXNlVHJhaWxpbmdX
aGl0ZXNwYWNlTWVhc3VyaW5nUXVpcms6OlllcyAmJiBoYXNLZXJuaW5nT3JMaWdhdHVyZXMgJiYg
dG8gPCB0ZXh0Lmxlbmd0aCgpICYmIHRleHRbdG9dID09ICcgJzsKKyAgICBpZiAoZXh0ZW5kZWRN
ZWFzdXJpbmcpCiAgICAgICAgICsrdG87CiAgICAgZmxvYXQgd2lkdGggPSAwOwogICAgIGlmIChp
bmxpbmVUZXh0Qm94LmNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nKCkpCkBAIC03OSw3
ICs3OSw3IEBAIElubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRl
eHRCb3gmIGlubGluZVRleHRCb3gsIGNvbnN0IEZvbnRDCiAgICAgICAgIHdpZHRoID0gZm9udENh
c2NhZGUud2lkdGgocnVuKTsKICAgICB9CiAKLSAgICBpZiAobWVhc3VyZVdpdGhFbmRTcGFjZSkK
KyAgICBpZiAoZXh0ZW5kZWRNZWFzdXJpbmcpCiAgICAgICAgIHdpZHRoIC09IChmb250Q2FzY2Fk
ZS5zcGFjZVdpZHRoKCkgKyBmb250Q2FzY2FkZS53b3JkU3BhY2luZygpKTsKIAogICAgIHJldHVy
biBzdGQ6OmlzbmFuKHdpZHRoKSA/IDAuMGYgOiBzdGQ6OmlzaW5mKHdpZHRoKSA/IG1heElubGlu
ZUxheW91dFVuaXQoKSA6IHdpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oCmluZGV4
IDk2Yzc3MDk1ZDc2OWRkMDM4MzlhYjMyYTIyNTM5NGZmNGFkMTlmZjAuLjkwNTI5MjMwYjliZjQ4
MDdjMjU3ZDNiZjE0NDZjY2I0YjRiYjE3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGls
LmgKQEAgLTQ0LDkgKzQ0LDEwIEBAIGNsYXNzIElubGluZVRleHRJdGVtOwogCiBjbGFzcyBUZXh0
VXRpbCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIElubGluZUxheW91dFVuaXQgd2lkdGgoY29uc3Qg
SW5saW5lVGV4dEl0ZW0mLCBjb25zdCBGb250Q2FzY2FkZSYsIElubGluZUxheW91dFVuaXQgY29u
dGVudExvZ2ljYWxMZWZ0KTsKLSAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25z
dCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgdW5zaWduZWQgZnJvbSwgdW5z
aWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KTsKLSAgICBzdGF0
aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiwgY29uc3QgRm9u
dENhc2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBj
b250ZW50TG9naWNhbExlZnQpOworICAgIGVudW0gY2xhc3MgVXNlVHJhaWxpbmdXaGl0ZXNwYWNl
TWVhc3VyaW5nUXVpcmsgOiB1aW50OF90IHsgWWVzLCBObyB9OworICAgIHN0YXRpYyBJbmxpbmVM
YXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENhc2NhZGUm
LCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNw
YWNlTWVhc3VyaW5nUXVpcmsgPSBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdRdWlyazo6
WWVzKTsKKyAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0
SXRlbSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElu
bGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VN
ZWFzdXJpbmdRdWlyayA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ1F1aXJrOjpZZXMp
OworICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRCb3gm
LCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVM
YXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3Vy
aW5nUXVpcmsgPSBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdRdWlyazo6WWVzKTsKIAog
ICAgIHVzaW5nIEZhbGxiYWNrRm9udExpc3QgPSBIYXNoU2V0PGNvbnN0IEZvbnQqPjsKICAgICBz
dGF0aWMgRmFsbGJhY2tGb250TGlzdCBmYWxsYmFja0ZvbnRzRm9yUnVuKGNvbnN0IExpbmU6OlJ1
biYsIGNvbnN0IFJlbmRlclN0eWxlJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448702</attachid>
            <date>2022-01-09 07:25:59 -0800</date>
            <delta_ts>2022-01-10 05:09:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235011-20220109072558.patch</filename>
            <type>text/plain</type>
            <size>13258</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjJlMmFjMzU2NzJhM2U3
OTQ3MWE2ZDczM2IzZTUyMTk5MWQ3YzM3Yy4uYjZhMWVjM2VlNjQ4MTMxZmJlOGE0MWIwMDRiY2Ez
Y2NmOGZlMzhkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAxLTA4ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10ZXh0L3dvcmQtYnJlYWsvd29yZC1icmVh
ay1ub3JtYWwtYXItMDAwLmh0bWwgZmFpbHMgd2l0aCBpbmNvcnJlY3QgcnVuIHBvc2l0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwMTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBJRkMgKGluaGVy
aXRlZCBmcm9tIHNpbXBsZSBsaW5lIGxheW91dCkgdXNlcyB0aGlzIHRlY2huaXF1ZSBvZiBtZWFz
dXJpbmcgdGhlIGNvbnRlbnQgd2l0aCB0aGUgdHJhaWxpbmcgd2hpdGVzcGFjZQorICAgICAgICBh
bmQgdGhlbiBzaW1wbHkgc3VidHJhY3QgdGhlIHdoaXRlc3BhY2Ugd2lkdGguIEl0IGVuYWJsZXMg
dXMgdG8ga2VlcCBwdXNoaW5nIGNvbnRlbnQgdG8gdGhlIGxpbmUgd2l0aG91dCByZS1tZWFzdXJp
bmcgaXQgZWFjaCB0aW1lLgorICAgICAgICAodGhlICJub24td2hpdGVzcGFjZSArIHdoaXRlc3Bh
Y2UiIHBhdHRlcm4gaXMgZXh0cmVtZWx5IGNvbW1vbiBmb3IgSUZDIGNvbnRlbnQpLgorICAgICAg
ICBIb3dldmVyIGluIHNvbWUgY2FzZXMgd2hlbiB0aGUgdHJhaWxpbmcgd2hpdGVzcGFjZSBpcyB0
cmltbWVkLCBzdWJ0cmFjdGluZyB0aGUgdHJpbW1lZCB3aWR0aCBmcm9tIHRoZQorICAgICAgICBj
b250ZW50IHdpZHRoIGluc3RlYWQgb2YgbWVhc3VyaW5nIGl0IHByb2R1Y2VzIGEgdmlzdWFsbHkg
aW5jb3JyZWN0IHJlc3VsdC4KKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgbW9zdCBvYnZp
b3VzIGNhc2VzIHdoZW4gdGhlIGluY29ycmVjdCB3aWR0aCB0dXJucyBpbnRvIGFuIG9mZnNldCBm
b3IgdGhlIFJUTCBjb250ZW50LgorCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6
OlRyaW1tYWJsZVRyYWlsaW5nQ29udGVudDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6TGluZTo6UnVuOjpyZW1vdmVUcmFpbGluZ0xldHRlclNwYWNpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSk6Cisg
ICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oOgor
ICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUZXh0VXRpbDo6d2lkdGgpOgorICAgICAg
ICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaDoKKwog
MjAyMi0wMS0wOCAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xG
Q11bSUZDXSBJbnRyb2R1Y2UgYSBkZWRpY2F0ZWQgc3RydWN0dXJlIGZvciBMaW5lOjpSdW4ncyB0
cmFpbGluZyB3aGl0ZXNwYWNlIGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3Bw
CmluZGV4IGYyM2Q4ZTM3ZjYwODRiOWZlODM1NGZmM2VhMTZmMTQzZjkzNzIxNWIuLjk4NDM2YjAx
MmQ2ZGE3NWI2MGEzNjkyOGUwMTA1NWY0OGIzOWZjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmUuY3BwCkBAIC00NzMsMTIgKzQ3MywxMiBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmU6OlRyaW1t
YWJsZVRyYWlsaW5nQ29udGVudDo6cmVtb3ZlKCkKICAgICBhdXRvJiB0cmltbWFibGVSdW4gPSBt
X3J1bnNbKm1fZmlyc3RUcmltbWFibGVSdW5JbmRleF07CiAgICAgQVNTRVJUKHRyaW1tYWJsZVJ1
bi5pc1RleHQoKSk7CiAKKyAgICBhdXRvIHRyaW1tZWRXaWR0aCA9IElubGluZUxheW91dFVuaXQg
eyB9OwogICAgIGlmIChtX2hhc0Z1bGx5VHJpbW1hYmxlQ29udGVudCkKLSAgICAgICAgdHJpbW1h
YmxlUnVuLnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSgpOworICAgICAgICB0cmltbWVkV2lkdGgg
Kz0gdHJpbW1hYmxlUnVuLnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSgpOwogICAgIGlmIChtX3Bh
cnRpYWxseVRyaW1tYWJsZVdpZHRoKQotICAgICAgICB0cmltbWFibGVSdW4ucmVtb3ZlVHJhaWxp
bmdMZXR0ZXJTcGFjaW5nKCk7CisgICAgICAgIHRyaW1tZWRXaWR0aCArPSB0cmltbWFibGVSdW4u
cmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7CiAKLSAgICBhdXRvIHRyaW1tYWJsZVdpZHRo
ID0gd2lkdGgoKTsKICAgICAvLyBXaGVuIHRoZSB0cmltbWFibGUgcnVuIGlzIGZvbGxvd2VkIGJ5
IHNvbWUgbm9uLWNvbnRlbnQgcnVucywgd2UgbmVlZCB0byBhZGp1c3QgdGhlaXIgaG9yaXpvbnRh
bCBwb3NpdGlvbnMuCiAgICAgLy8gZS5nLiA8ZGl2PnRleHQgaXMgZm9sbG93ZWQgYnkgdHJpbW1h
YmxlIGNvbnRlbnQgICAgPHNwYW4+IDwvc3Bhbj48L2Rpdj4KICAgICAvLyBXaGVuIHRoZSBbdGV4
dC4uLl0gcnVuIGlzIHRyaW1tZWQgKHRyYWlsaW5nIHdoaXRlc3BhY2UgaXMgcmVtb3ZlZCksIGJv
dGggIjxzcGFuPiIgYW5kICI8L3NwYW4+IiBydW5zCkBAIC00ODcsNyArNDg3LDcgQEAgSW5saW5l
TGF5b3V0VW5pdCBMaW5lOjpUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlbW92ZSgpCiAgICAg
Zm9yIChhdXRvIGluZGV4ID0gKm1fZmlyc3RUcmltbWFibGVSdW5JbmRleCArIDE7IGluZGV4IDwg
bV9ydW5zLnNpemUoKTsgKytpbmRleCkgewogICAgICAgICBhdXRvJiBydW4gPSBtX3J1bnNbaW5k
ZXhdOwogICAgICAgICBBU1NFUlQocnVuLmlzV29yZEJyZWFrT3Bwb3J0dW5pdHkoKSB8fCBydW4u
aXNMaW5lU3Bhbm5pbmdJbmxpbmVCb3hTdGFydCgpIHx8IHJ1bi5pc0lubGluZUJveFN0YXJ0KCkg
fHwgcnVuLmlzSW5saW5lQm94RW5kKCkgfHwgcnVuLmlzTGluZUJyZWFrKCkpOwotICAgICAgICBy
dW4ubW92ZUhvcml6b250YWxseSgtdHJpbW1hYmxlV2lkdGgpOworICAgICAgICBydW4ubW92ZUhv
cml6b250YWxseSgtdHJpbW1lZFdpZHRoKTsKICAgICB9CiAgICAgaWYgKCF0cmltbWFibGVSdW4u
dGV4dENvbnRlbnQoKS0+bGVuZ3RoKSB7CiAgICAgICAgIC8vIFRoaXMgdHJpbW1hYmxlIHJ1biBp
cyBmdWxseSBjb2xsYXBzZWQgbm93IChlLmcuIDxkaXY+PGltZz4gICAgPHNwYW4+PC9zcGFuPjwv
ZGl2PikuCkBAIC00OTUsNyArNDk1LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBMaW5lOjpUcmltbWFi
bGVUcmFpbGluZ0NvbnRlbnQ6OnJlbW92ZSgpCiAgICAgICAgIG1fcnVucy5yZW1vdmUoKm1fZmly
c3RUcmltbWFibGVSdW5JbmRleCk7CiAgICAgfQogICAgIHJlc2V0KCk7Ci0gICAgcmV0dXJuIHRy
aW1tYWJsZVdpZHRoOworICAgIHJldHVybiB0cmltbWVkV2lkdGg7CiB9CiAKIElubGluZUxheW91
dFVuaXQgTGluZTo6VHJpbW1hYmxlVHJhaWxpbmdDb250ZW50OjpyZW1vdmVQYXJ0aWFsbHlUcmlt
bWFibGVDb250ZW50KCkKQEAgLTYzNiwyMyArNjM2LDM1IEBAIElubGluZUxheW91dFVuaXQgTGlu
ZTo6UnVuOjp0cmFpbGluZ0xldHRlclNwYWNpbmcoKSBjb25zdAogICAgIHJldHVybiBJbmxpbmVM
YXlvdXRVbml0IHsgbGV0dGVyU3BhY2luZygpIH07CiB9CiAKLXZvaWQgTGluZTo6UnVuOjpyZW1v
dmVUcmFpbGluZ0xldHRlclNwYWNpbmcoKQorSW5saW5lTGF5b3V0VW5pdCBMaW5lOjpSdW46OnJl
bW92ZVRyYWlsaW5nTGV0dGVyU3BhY2luZygpCiB7CiAgICAgQVNTRVJUKGhhc1RyYWlsaW5nTGV0
dGVyU3BhY2luZygpKTsKLSAgICBzaHJpbmtIb3Jpem9udGFsbHkodHJhaWxpbmdMZXR0ZXJTcGFj
aW5nKCkpOworICAgIGF1dG8gdHJhaWxpbmdXaWR0aCA9IHRyYWlsaW5nTGV0dGVyU3BhY2luZygp
OworICAgIHNocmlua0hvcml6b250YWxseSh0cmFpbGluZ1dpZHRoKTsKICAgICBBU1NFUlQobG9n
aWNhbFdpZHRoKCkgPiAwIHx8ICghbG9naWNhbFdpZHRoKCkgJiYgbGV0dGVyU3BhY2luZygpID49
IHN0YXRpY19jYXN0PGZsb2F0PihpbnRNYXhGb3JMYXlvdXRVbml0KSkpOworICAgIHJldHVybiB0
cmFpbGluZ1dpZHRoOwogfQogCi12b2lkIExpbmU6OlJ1bjo6cmVtb3ZlVHJhaWxpbmdXaGl0ZXNw
YWNlKCkKK0lubGluZUxheW91dFVuaXQgTGluZTo6UnVuOjpyZW1vdmVUcmFpbGluZ1doaXRlc3Bh
Y2UoKQogewogICAgIEFTU0VSVChtX3RyYWlsaW5nV2hpdGVzcGFjZSk7CiAgICAgLy8gQWNjb3Jk
aW5nIHRvIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdGV4dC0zLyN3aGl0ZS1zcGFjZS1wcm9w
ZXJ0eSBtYXRyaXgKICAgICAvLyBUcmltbWFibGUgd2hpdGVzcGFjZSBpcyBhbHdheXMgY29sbGFw
c2libGUgc28gdGhlIGxlbmd0aCBvZiB0aGUgdHJhaWxpbmcgdHJpbW1hYmxlIHdoaXRlc3BhY2Ug
aXMgYWx3YXlzIDEgKG9yIG5vbi1leGlzdGVudCkuCi0gICAgQVNTRVJUKG1fdGV4dENvbnRlbnQt
Pmxlbmd0aCk7CisgICAgQVNTRVJUKG1fdGV4dENvbnRlbnQgJiYgbV90ZXh0Q29udGVudC0+bGVu
Z3RoKTsKICAgICBjb25zdGV4cHIgc2l6ZV90IHRyYWlsaW5nVHJpbW1hYmxlQ29udGVudExlbmd0
aCA9IDE7CiAgICAgbV90ZXh0Q29udGVudC0+bGVuZ3RoIC09IHRyYWlsaW5nVHJpbW1hYmxlQ29u
dGVudExlbmd0aDsKLSAgICBzaHJpbmtIb3Jpem9udGFsbHkobV90cmFpbGluZ1doaXRlc3BhY2Ut
PndpZHRoKTsKKyAgICBhdXRvIHRyaW1tZWRXaWR0aCA9IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT53
aWR0aDsKKyAgICBpZiAobV90ZXh0Q29udGVudC0+bGVuZ3RoICYmIGlubGluZURpcmVjdGlvbigp
ID09IFRleHREaXJlY3Rpb246OlJUTCkgeworICAgICAgICAvLyBXaGlsZSBMVFIgY29udGVudCBj
b3VsZCBhbHNvIHN1ZmZlciBmcm9tIHNsaWdodGx5IGluY29ycmVjdCBjb250ZW50IHdpZHRoIGFm
dGVyIHRyaW1taW5nIHRyYWlsaW5nIHdoaXRlc3BhY2UgKHNlZSBUZXh0VXRpbDo6d2lkdGgpCisg
ICAgICAgIC8vIGl0IGhhcmRseSBwcm9kdWNlcyB2aXN1YWxseSBvYnNlcnZhYmxlIHJlc3VsdC4K
KyAgICAgICAgLy8gRklYTUU6IFRoaXMgbWF5IHN0aWxsIGluY29ycmVjdGx5IGxlYXZlIHNvbWUg
Y29udGVudCBvbiB0aGUgbGluZSAodnMuIHJlLW1lYXN1cmluZyBhbHNvIGF0IDo6ZXhwYW5kKS4K
KyAgICAgICAgYXV0byYgaW5saW5lVGV4dEJveCA9IGRvd25jYXN0PElubGluZVRleHRCb3g+KCpt
X2xheW91dEJveCk7CisgICAgICAgIGF1dG8gbG9naWNhbFdpZHRoV2l0aG91dFRyYWlsaW5nV2hp
dGVzcGFjZSA9IFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0Qm94LCBtX3N0eWxlLmZvbnRDYXNj
YWRlKCksIG1fdGV4dENvbnRlbnQtPnN0YXJ0LCBtX3RleHRDb250ZW50LT5zdGFydCArIG1fdGV4
dENvbnRlbnQtPmxlbmd0aCwgbG9naWNhbExlZnQoKSwgVGV4dFV0aWw6OlVzZVRyYWlsaW5nV2hp
dGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6Tm8pOworICAgICAgICB0cmltbWVkV2lkdGgg
PSBsb2dpY2FsV2lkdGgoKSAtIGxvZ2ljYWxXaWR0aFdpdGhvdXRUcmFpbGluZ1doaXRlc3BhY2U7
CisgICAgfQogICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlID0geyB9OworICAgIHNocmlua0hvcml6
b250YWxseSh0cmltbWVkV2lkdGgpOworICAgIHJldHVybiB0cmltbWVkV2lkdGg7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmUuaAppbmRleCA5YWM5NTlmZDZjNmUzYTAxYWUwOTExYjczYmJh
M2NjM2VmOTgzMzcwLi5iNGVlMzQ4OGMxMmUzMTcyOGEyNTUxMjc0ZjkxZTkxN2IwN2U3MzQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCkBAIC0xNDMsMTEgKzE0MywxMSBAQCBwdWJsaWM6CiAg
ICAgICAgIGJvb2wgaGFzQ29sbGFwc2libGVUcmFpbGluZ1doaXRlc3BhY2UoKSBjb25zdCB7IHJl
dHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZSAmJiAobV90cmFpbGluZ1doaXRlc3BhY2UtPnR5cGUg
PT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzaWJsZSB8fCBoYXNDb2xsYXBzZWRU
cmFpbGluZ1doaXRlc3BhY2UoKSk7IH0KICAgICAgICAgYm9vbCBoYXNDb2xsYXBzZWRUcmFpbGlu
Z1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3RyYWlsaW5nV2hpdGVzcGFjZSAmJiBtX3Ry
YWlsaW5nV2hpdGVzcGFjZS0+dHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5cGU6OkNvbGxh
cHNlZDsgfQogICAgICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxUcmFpbGluZ1doaXRlc3BhY2U6
OlR5cGU+IHRyYWlsaW5nV2hpdGVzcGFjZVR5cGUoY29uc3QgSW5saW5lVGV4dEl0ZW0mKTsKLSAg
ICAgICAgdm9pZCByZW1vdmVUcmFpbGluZ1doaXRlc3BhY2UoKTsKKyAgICAgICAgSW5saW5lTGF5
b3V0VW5pdCByZW1vdmVUcmFpbGluZ1doaXRlc3BhY2UoKTsKIAogICAgICAgICBib29sIGhhc1Ry
YWlsaW5nTGV0dGVyU3BhY2luZygpIGNvbnN0OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHRy
YWlsaW5nTGV0dGVyU3BhY2luZygpIGNvbnN0OwotICAgICAgICB2b2lkIHJlbW92ZVRyYWlsaW5n
TGV0dGVyU3BhY2luZygpOworICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHJlbW92ZVRyYWlsaW5n
TGV0dGVyU3BhY2luZygpOwogCiAgICAgICAgIFR5cGUgbV90eXBlIHsgVHlwZTo6VGV4dCB9Owog
ICAgICAgICBjb25zdCBCb3gqIG1fbGF5b3V0Qm94IHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0
VXRpbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS90ZXh0L1RleHRVdGlsLmNwcAppbmRleCA4MDAxMDRmZWRmMWRjYTYxYTEyOGUzOTcyZmJlOWEx
MTY1M2M3NDhiLi40MmU3ZDVkNWNhYmMwNmUzYTY4YWIwNDdlMjJjMGYwNjAzM2RlMjJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90
ZXh0L1RleHRVdGlsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcApAQCAtNDEsMTIgKzQxLDEyIEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAotSW5saW5lTGF5b3V0VW5pdCBU
ZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25z
dCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2lj
YWxMZWZ0KQorSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4
dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIElu
bGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VN
ZWFzdXJpbmdPcHRpbWl6YXRpb24gdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1p
emF0aW9uKQogewotICAgIHJldHVybiBUZXh0VXRpbDo6d2lkdGgoaW5saW5lVGV4dEl0ZW0sIGZv
bnRDYXNjYWRlLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0SXRlbS5lbmQoKSwg
Y29udGVudExvZ2ljYWxMZWZ0KTsKKyAgICByZXR1cm4gVGV4dFV0aWw6OndpZHRoKGlubGluZVRl
eHRJdGVtLCBmb250Q2FzY2FkZSwgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgaW5saW5lVGV4dEl0
ZW0uZW5kKCksIGNvbnRlbnRMb2dpY2FsTGVmdCwgdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3Vy
aW5nT3B0aW1pemF0aW9uKTsKIH0KIAotSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgo
Y29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb250Q2FzY2FkZSYg
Zm9udENhc2NhZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0
IGNvbnRlbnRMb2dpY2FsTGVmdCkKK0lubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNv
bnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgRm9udENhc2NhZGUmIGZv
bnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBj
b250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXph
dGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24pCiB7CiAgICAg
UkVMRUFTRV9BU1NFUlQoZnJvbSA+PSBpbmxpbmVUZXh0SXRlbS5zdGFydCgpKTsKICAgICBSRUxF
QVNFX0FTU0VSVCh0byA8PSBpbmxpbmVUZXh0SXRlbS5lbmQoKSk7CkBAIC01NCwxMCArNTQsMTAg
QEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0m
IGlubGluZVRleHRJdGVtLCBjb25zdCBGb24KICAgICAgICAgYXV0byBzcGFjZVdpZHRoID0gZm9u
dENhc2NhZGUuc3BhY2VXaWR0aCgpOwogICAgICAgICByZXR1cm4gc3RkOjppc25hbihzcGFjZVdp
ZHRoKSA/IDAuMGYgOiBzdGQ6OmlzaW5mKHNwYWNlV2lkdGgpID8gbWF4SW5saW5lTGF5b3V0VW5p
dCgpIDogc3BhY2VXaWR0aDsKICAgICB9Ci0gICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxp
bmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCksIGZvbnRDYXNjYWRlLCBmcm9tLCB0bywgY29udGVu
dExvZ2ljYWxMZWZ0KTsKKyAgICByZXR1cm4gVGV4dFV0aWw6OndpZHRoKGlubGluZVRleHRJdGVt
LmlubGluZVRleHRCb3goKSwgZm9udENhc2NhZGUsIGZyb20sIHRvLCBjb250ZW50TG9naWNhbExl
ZnQsIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbik7CiB9CiAKLUlu
bGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRCb3gmIGlubGlu
ZVRleHRCb3gsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgdW5zaWduZWQgZnJvbSwg
dW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KQorSW5saW5l
TGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4
dEJveCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNp
Z25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5n
V2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFz
dXJpbmdPcHRpbWl6YXRpb24pCiB7CiAgICAgaWYgKGZyb20gPT0gdG8pCiAgICAgICAgIHJldHVy
biAwOwpAQCAtNjUsOCArNjUsMTEgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgo
Y29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udEMKICAgICBhdXRv
IHRleHQgPSBpbmxpbmVUZXh0Qm94LmNvbnRlbnQoKTsKICAgICBBU1NFUlQodG8gPD0gdGV4dC5s
ZW5ndGgoKSk7CiAgICAgYXV0byBoYXNLZXJuaW5nT3JMaWdhdHVyZXMgPSBmb250Q2FzY2FkZS5l
bmFibGVLZXJuaW5nKCkgfHwgZm9udENhc2NhZGUucmVxdWlyZXNTaGFwaW5nKCk7Ci0gICAgYXV0
byBtZWFzdXJlV2l0aEVuZFNwYWNlID0gaGFzS2VybmluZ09yTGlnYXR1cmVzICYmIHRvIDwgdGV4
dC5sZW5ndGgoKSAmJiB0ZXh0W3RvXSA9PSAnICc7Ci0gICAgaWYgKG1lYXN1cmVXaXRoRW5kU3Bh
Y2UpCisgICAgLy8gVGhlICJub24td2hpdGVzcGFjZSIgKyAid2hpdGVzcGFjZSIgcGF0dGVybiBp
cyB2ZXJ5IGNvbW1vbiBmb3IgaW5saW5lIGNvbnRlbnQgYW5kIHNpbmNlIG1vc3Qgb2YgdGhlICJu
b24td2hpdGVzcGFjZSIgcnVucyBlbmQgdXAgd2l0aAorICAgIC8vIHRoZWlyICJ3aGl0ZXNwYWNl
IiBwYWlyIG9uIHRoZSBsaW5lIChub3RhYmxlIGV4Y2VwdGlvbiBpcyB3aGVuIHRyYWlsaW5nIHdo
aXRlc3BhY2UgaXMgdHJpbW1lZCkuCisgICAgLy8gSW5jbHVkaW5nIHRoZSB0cmFpbGluZyB3aGl0
ZXNwYWNlIGhlcmUgZW5hYmxlcyB1cyB0byBjdXQgdGhlIG51bWJlciBvZiB0ZXh0IG1lYXN1cmVz
IHdoZW4gcGxhY2luZyBjb250ZW50IG9uIHRoZSBsaW5lLiAKKyAgICBhdXRvIGV4dGVuZGVkTWVh
c3VyaW5nID0gdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID09IFVz
ZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzICYmIGhhc0tlcm5p
bmdPckxpZ2F0dXJlcyAmJiB0byA8IHRleHQubGVuZ3RoKCkgJiYgdGV4dFt0b10gPT0gJyAnOwor
ICAgIGlmIChleHRlbmRlZE1lYXN1cmluZykKICAgICAgICAgKyt0bzsKICAgICBmbG9hdCB3aWR0
aCA9IDA7CiAgICAgaWYgKGlubGluZVRleHRCb3guY2FuVXNlU2ltcGxpZmllZENvbnRlbnRNZWFz
dXJpbmcoKSkKQEAgLTc5LDcgKzgyLDcgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lk
dGgoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udEMKICAgICAg
ICAgd2lkdGggPSBmb250Q2FzY2FkZS53aWR0aChydW4pOwogICAgIH0KIAotICAgIGlmIChtZWFz
dXJlV2l0aEVuZFNwYWNlKQorICAgIGlmIChleHRlbmRlZE1lYXN1cmluZykKICAgICAgICAgd2lk
dGggLT0gKGZvbnRDYXNjYWRlLnNwYWNlV2lkdGgoKSArIGZvbnRDYXNjYWRlLndvcmRTcGFjaW5n
KCkpOwogCiAgICAgcmV0dXJuIHN0ZDo6aXNuYW4od2lkdGgpID8gMC4wZiA6IHN0ZDo6aXNpbmYo
d2lkdGgpID8gbWF4SW5saW5lTGF5b3V0VW5pdCgpIDogd2lkdGg7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGls
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0
L1RleHRVdGlsLmgKaW5kZXggOTZjNzcwOTVkNzY5ZGQwMzgzOWFiMzJhMjI1Mzk0ZmY0YWQxOWZm
MC4uMjg4ZTQwY2JhMTNkY2E2Yjc2OGI3NTU5ZGY2NDc1ZDA0NzNhM2QzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0
VXRpbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL3RleHQvVGV4dFV0aWwuaApAQCAtNDQsOSArNDQsMTAgQEAgY2xhc3MgSW5saW5lVGV4dEl0
ZW07CiAKIGNsYXNzIFRleHRVdGlsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgSW5saW5lTGF5b3V0
VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgSW5s
aW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpOwotICAgIHN0YXRpYyBJbmxpbmVMYXlv
dXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENhc2NhZGUmLCB1
bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNh
bExlZnQpOwotICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRl
eHRCb3gmLCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJ
bmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCk7CisgICAgZW51bSBjbGFzcyBVc2VU
cmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gOiB1aW50OF90IHsgWWVzLCBO
byB9OworICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJ
dGVtJiwgY29uc3QgRm9udENhc2NhZGUmLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2Fs
TGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID0gVXNlVHJh
aWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMpOworICAgIHN0YXRpYyBJ
bmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENh
c2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250
ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlv
biA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzKTsKKyAg
ICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiwgY29u
c3QgRm9udENhc2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0
VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09w
dGltaXphdGlvbiA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6
WWVzKTsKIAogICAgIHVzaW5nIEZhbGxiYWNrRm9udExpc3QgPSBIYXNoU2V0PGNvbnN0IEZvbnQq
PjsKICAgICBzdGF0aWMgRmFsbGJhY2tGb250TGlzdCBmYWxsYmFja0ZvbnRzRm9yUnVuKGNvbnN0
IExpbmU6OlJ1biYsIGNvbnN0IFJlbmRlclN0eWxlJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448735</attachid>
            <date>2022-01-10 05:09:45 -0800</date>
            <delta_ts>2022-01-14 20:28:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235011-20220110050944.patch</filename>
            <type>text/plain</type>
            <size>17362</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjJlMmFjMzU2NzJhM2U3
OTQ3MWE2ZDczM2IzZTUyMTk5MWQ3YzM3Yy4uYjZhMWVjM2VlNjQ4MTMxZmJlOGE0MWIwMDRiY2Ez
Y2NmOGZlMzhkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAxLTA4ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10ZXh0L3dvcmQtYnJlYWsvd29yZC1icmVh
ay1ub3JtYWwtYXItMDAwLmh0bWwgZmFpbHMgd2l0aCBpbmNvcnJlY3QgcnVuIHBvc2l0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwMTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBJRkMgKGluaGVy
aXRlZCBmcm9tIHNpbXBsZSBsaW5lIGxheW91dCkgdXNlcyB0aGlzIHRlY2huaXF1ZSBvZiBtZWFz
dXJpbmcgdGhlIGNvbnRlbnQgd2l0aCB0aGUgdHJhaWxpbmcgd2hpdGVzcGFjZQorICAgICAgICBh
bmQgdGhlbiBzaW1wbHkgc3VidHJhY3QgdGhlIHdoaXRlc3BhY2Ugd2lkdGguIEl0IGVuYWJsZXMg
dXMgdG8ga2VlcCBwdXNoaW5nIGNvbnRlbnQgdG8gdGhlIGxpbmUgd2l0aG91dCByZS1tZWFzdXJp
bmcgaXQgZWFjaCB0aW1lLgorICAgICAgICAodGhlICJub24td2hpdGVzcGFjZSArIHdoaXRlc3Bh
Y2UiIHBhdHRlcm4gaXMgZXh0cmVtZWx5IGNvbW1vbiBmb3IgSUZDIGNvbnRlbnQpLgorICAgICAg
ICBIb3dldmVyIGluIHNvbWUgY2FzZXMgd2hlbiB0aGUgdHJhaWxpbmcgd2hpdGVzcGFjZSBpcyB0
cmltbWVkLCBzdWJ0cmFjdGluZyB0aGUgdHJpbW1lZCB3aWR0aCBmcm9tIHRoZQorICAgICAgICBj
b250ZW50IHdpZHRoIGluc3RlYWQgb2YgbWVhc3VyaW5nIGl0IHByb2R1Y2VzIGEgdmlzdWFsbHkg
aW5jb3JyZWN0IHJlc3VsdC4KKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgbW9zdCBvYnZp
b3VzIGNhc2VzIHdoZW4gdGhlIGluY29ycmVjdCB3aWR0aCB0dXJucyBpbnRvIGFuIG9mZnNldCBm
b3IgdGhlIFJUTCBjb250ZW50LgorCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6
OlRyaW1tYWJsZVRyYWlsaW5nQ29udGVudDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6TGluZTo6UnVuOjpyZW1vdmVUcmFpbGluZ0xldHRlclNwYWNpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSk6Cisg
ICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oOgor
ICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUZXh0VXRpbDo6d2lkdGgpOgorICAgICAg
ICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaDoKKwog
MjAyMi0wMS0wOCAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xG
Q11bSUZDXSBJbnRyb2R1Y2UgYSBkZWRpY2F0ZWQgc3RydWN0dXJlIGZvciBMaW5lOjpSdW4ncyB0
cmFpbGluZyB3aGl0ZXNwYWNlIGluZm9ybWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3Bw
CmluZGV4IGYyM2Q4ZTM3ZjYwODRiOWZlODM1NGZmM2VhMTZmMTQzZjkzNzIxNWIuLjY1NzY4ZGE4
OWYwYTFmMzU5YTUyNWRhNDMyODExOWZjZmI0Nzk3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmUuY3BwCkBAIC0zMzYsNyArMzM2LDkgQEAgdm9pZCBMaW5lOjphcHBlbmRUZXh0Q29udGVudChj
b25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclMKICAgICAg
ICAgICAgICAgICBtX2hhbmdpbmdUcmFpbGluZ0NvbnRlbnQuYWRkKGlubGluZVRleHRJdGVtLCBs
b2dpY2FsV2lkdGgpOwogICAgICAgICB9IGVsc2UgIHsKICAgICAgICAgICAgIG1faGFuZ2luZ1Ry
YWlsaW5nQ29udGVudC5yZXNldCgpOwotICAgICAgICAgICAgbV90cmltbWFibGVUcmFpbGluZ0Nv
bnRlbnQuYWRkRnVsbHlUcmltbWFibGVDb250ZW50KGxhc3RSdW5JbmRleCwgY29udGVudExvZ2lj
YWxXaWR0aCgpIC0gb2xkQ29udGVudExvZ2ljYWxXaWR0aCk7CisgICAgICAgICAgICBhdXRvIHRy
aW1tYWJsZVdpZHRoID0gbG9naWNhbFdpZHRoOworICAgICAgICAgICAgYXV0byB0cmltbWFibGVD
b250ZW50T2Zmc2V0ID0gKGNvbnRlbnRMb2dpY2FsV2lkdGgoKSAtIG9sZENvbnRlbnRMb2dpY2Fs
V2lkdGgpIC0gdHJpbW1hYmxlV2lkdGg7CisgICAgICAgICAgICBtX3RyaW1tYWJsZVRyYWlsaW5n
Q29udGVudC5hZGRGdWxseVRyaW1tYWJsZUNvbnRlbnQobGFzdFJ1bkluZGV4LCB0cmltbWFibGVD
b250ZW50T2Zmc2V0LCB0cmltbWFibGVXaWR0aCk7CiAgICAgICAgIH0KICAgICAgICAgbV90cmFp
bGluZ1NvZnRIeXBoZW5XaWR0aCA9IHsgfTsKICAgICB9IGVsc2UgewpAQCAtNDQyLDExICs0NDQs
MTIgQEAgTGluZTo6VHJpbW1hYmxlVHJhaWxpbmdDb250ZW50OjpUcmltbWFibGVUcmFpbGluZ0Nv
bnRlbnQoUnVuTGlzdCYgcnVucykKIHsKIH0KIAotdm9pZCBMaW5lOjpUcmltbWFibGVUcmFpbGlu
Z0NvbnRlbnQ6OmFkZEZ1bGx5VHJpbW1hYmxlQ29udGVudChzaXplX3QgcnVuSW5kZXgsIElubGlu
ZUxheW91dFVuaXQgdHJpbW1hYmxlV2lkdGgpCit2b2lkIExpbmU6OlRyaW1tYWJsZVRyYWlsaW5n
Q29udGVudDo6YWRkRnVsbHlUcmltbWFibGVDb250ZW50KHNpemVfdCBydW5JbmRleCwgSW5saW5l
TGF5b3V0VW5pdCB0cmltbWFibGVDb250ZW50T2Zmc2V0LCBJbmxpbmVMYXlvdXRVbml0IHRyaW1t
YWJsZVdpZHRoKQogewogICAgIC8vIEFueSBzdWJzZXF1ZW50IHRyaW1tYWJsZSB3aGl0ZXNwYWNl
IHNob3VsZCBjb2xsYXBzZSB0byB6ZXJvIGFkdmFuY2VkIHdpZHRoIGFuZCBpZ25vcmVkIGF0IDo6
YXBwZW5kVGV4dENvbnRlbnQoKS4KICAgICBBU1NFUlQoIW1faGFzRnVsbHlUcmltbWFibGVDb250
ZW50KTsKLSAgICBtX2Z1bGx5VHJpbW1hYmxlV2lkdGggPSB0cmltbWFibGVXaWR0aDsKKyAgICBt
X2Z1bGx5VHJpbW1hYmxlV2lkdGggPSB0cmltbWFibGVDb250ZW50T2Zmc2V0ICsgdHJpbW1hYmxl
V2lkdGg7CisgICAgbV90cmltbWFibGVDb250ZW50T2Zmc2V0ID0gdHJpbW1hYmxlQ29udGVudE9m
ZnNldDsKICAgICAvLyBOb3RlIHRoYXQganVzdCBiZWNhdXNlIHRoZSB0cmltbWFibGUgd2lkdGgg
aXMgMCAoZm9udC1zaXplOiAwcHgpLCBpdCBkb2VzIG5vdCBtZWFuIHdlIGRvbid0IGhhdmUgYSB0
cmltbWFibGUgdHJhaWxpbmcgY29udGVudC4KICAgICBtX2hhc0Z1bGx5VHJpbW1hYmxlQ29udGVu
dCA9IHRydWU7CiAgICAgbV9maXJzdFRyaW1tYWJsZVJ1bkluZGV4ID0gbV9maXJzdFRyaW1tYWJs
ZVJ1bkluZGV4LnZhbHVlX29yKHJ1bkluZGV4KTsKQEAgLTQ3MywxMiArNDc2LDEyIEBAIElubGlu
ZUxheW91dFVuaXQgTGluZTo6VHJpbW1hYmxlVHJhaWxpbmdDb250ZW50OjpyZW1vdmUoKQogICAg
IGF1dG8mIHRyaW1tYWJsZVJ1biA9IG1fcnVuc1sqbV9maXJzdFRyaW1tYWJsZVJ1bkluZGV4XTsK
ICAgICBBU1NFUlQodHJpbW1hYmxlUnVuLmlzVGV4dCgpKTsKIAorICAgIGF1dG8gdHJpbW1lZFdp
ZHRoID0gbV90cmltbWFibGVDb250ZW50T2Zmc2V0OwogICAgIGlmIChtX2hhc0Z1bGx5VHJpbW1h
YmxlQ29udGVudCkKLSAgICAgICAgdHJpbW1hYmxlUnVuLnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFj
ZSgpOworICAgICAgICB0cmltbWVkV2lkdGggKz0gdHJpbW1hYmxlUnVuLnJlbW92ZVRyYWlsaW5n
V2hpdGVzcGFjZSgpOwogICAgIGlmIChtX3BhcnRpYWxseVRyaW1tYWJsZVdpZHRoKQotICAgICAg
ICB0cmltbWFibGVSdW4ucmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7CisgICAgICAgIHRy
aW1tZWRXaWR0aCArPSB0cmltbWFibGVSdW4ucmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7
CiAKLSAgICBhdXRvIHRyaW1tYWJsZVdpZHRoID0gd2lkdGgoKTsKICAgICAvLyBXaGVuIHRoZSB0
cmltbWFibGUgcnVuIGlzIGZvbGxvd2VkIGJ5IHNvbWUgbm9uLWNvbnRlbnQgcnVucywgd2UgbmVl
ZCB0byBhZGp1c3QgdGhlaXIgaG9yaXpvbnRhbCBwb3NpdGlvbnMuCiAgICAgLy8gZS5nLiA8ZGl2
PnRleHQgaXMgZm9sbG93ZWQgYnkgdHJpbW1hYmxlIGNvbnRlbnQgICAgPHNwYW4+IDwvc3Bhbj48
L2Rpdj4KICAgICAvLyBXaGVuIHRoZSBbdGV4dC4uLl0gcnVuIGlzIHRyaW1tZWQgKHRyYWlsaW5n
IHdoaXRlc3BhY2UgaXMgcmVtb3ZlZCksIGJvdGggIjxzcGFuPiIgYW5kICI8L3NwYW4+IiBydW5z
CkBAIC00ODcsNyArNDkwLDcgQEAgSW5saW5lTGF5b3V0VW5pdCBMaW5lOjpUcmltbWFibGVUcmFp
bGluZ0NvbnRlbnQ6OnJlbW92ZSgpCiAgICAgZm9yIChhdXRvIGluZGV4ID0gKm1fZmlyc3RUcmlt
bWFibGVSdW5JbmRleCArIDE7IGluZGV4IDwgbV9ydW5zLnNpemUoKTsgKytpbmRleCkgewogICAg
ICAgICBhdXRvJiBydW4gPSBtX3J1bnNbaW5kZXhdOwogICAgICAgICBBU1NFUlQocnVuLmlzV29y
ZEJyZWFrT3Bwb3J0dW5pdHkoKSB8fCBydW4uaXNMaW5lU3Bhbm5pbmdJbmxpbmVCb3hTdGFydCgp
IHx8IHJ1bi5pc0lubGluZUJveFN0YXJ0KCkgfHwgcnVuLmlzSW5saW5lQm94RW5kKCkgfHwgcnVu
LmlzTGluZUJyZWFrKCkpOwotICAgICAgICBydW4ubW92ZUhvcml6b250YWxseSgtdHJpbW1hYmxl
V2lkdGgpOworICAgICAgICBydW4ubW92ZUhvcml6b250YWxseSgtdHJpbW1lZFdpZHRoKTsKICAg
ICB9CiAgICAgaWYgKCF0cmltbWFibGVSdW4udGV4dENvbnRlbnQoKS0+bGVuZ3RoKSB7CiAgICAg
ICAgIC8vIFRoaXMgdHJpbW1hYmxlIHJ1biBpcyBmdWxseSBjb2xsYXBzZWQgbm93IChlLmcuIDxk
aXY+PGltZz4gICAgPHNwYW4+PC9zcGFuPjwvZGl2PikuCkBAIC00OTUsNyArNDk4LDcgQEAgSW5s
aW5lTGF5b3V0VW5pdCBMaW5lOjpUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlbW92ZSgpCiAg
ICAgICAgIG1fcnVucy5yZW1vdmUoKm1fZmlyc3RUcmltbWFibGVSdW5JbmRleCk7CiAgICAgfQog
ICAgIHJlc2V0KCk7Ci0gICAgcmV0dXJuIHRyaW1tYWJsZVdpZHRoOworICAgIHJldHVybiB0cmlt
bWVkV2lkdGg7CiB9CiAKIElubGluZUxheW91dFVuaXQgTGluZTo6VHJpbW1hYmxlVHJhaWxpbmdD
b250ZW50OjpyZW1vdmVQYXJ0aWFsbHlUcmltbWFibGVDb250ZW50KCkKQEAgLTYxNyw2ICs2MjAs
NyBAQCB2b2lkIExpbmU6OlJ1bjo6ZXhwYW5kKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVU
ZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsbwogICAgIGlmICghd2hpdGVzcGFjZVR5cGUpIHsK
ICAgICAgICAgbV90cmFpbGluZ1doaXRlc3BhY2UgPSB7IH07CiAgICAgICAgIG1fdGV4dENvbnRl
bnQtPmxlbmd0aCArPSBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKTsKKyAgICAgICAgbV9sYXN0Tm9u
V2hpdGVzcGFjZUNvbnRlbnRTdGFydCA9IGlubGluZVRleHRJdGVtLnN0YXJ0KCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgYXV0byB3aGl0ZXNwYWNlV2lkdGggPSAhbV90cmFpbGluZ1do
aXRlc3BhY2UgPyBsb2dpY2FsV2lkdGggOiBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+d2lkdGggKyBs
b2dpY2FsV2lkdGg7CkBAIC02MzYsMjMgKzY0MCw0MSBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmU6
OlJ1bjo6dHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCkgY29uc3QKICAgICByZXR1cm4gSW5saW5lTGF5
b3V0VW5pdCB7IGxldHRlclNwYWNpbmcoKSB9OwogfQogCi12b2lkIExpbmU6OlJ1bjo6cmVtb3Zl
VHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCkKK0lubGluZUxheW91dFVuaXQgTGluZTo6UnVuOjpyZW1v
dmVUcmFpbGluZ0xldHRlclNwYWNpbmcoKQogewogICAgIEFTU0VSVChoYXNUcmFpbGluZ0xldHRl
clNwYWNpbmcoKSk7Ci0gICAgc2hyaW5rSG9yaXpvbnRhbGx5KHRyYWlsaW5nTGV0dGVyU3BhY2lu
ZygpKTsKKyAgICBhdXRvIHRyYWlsaW5nV2lkdGggPSB0cmFpbGluZ0xldHRlclNwYWNpbmcoKTsK
KyAgICBzaHJpbmtIb3Jpem9udGFsbHkodHJhaWxpbmdXaWR0aCk7CiAgICAgQVNTRVJUKGxvZ2lj
YWxXaWR0aCgpID4gMCB8fCAoIWxvZ2ljYWxXaWR0aCgpICYmIGxldHRlclNwYWNpbmcoKSA+PSBz
dGF0aWNfY2FzdDxmbG9hdD4oaW50TWF4Rm9yTGF5b3V0VW5pdCkpKTsKKyAgICByZXR1cm4gdHJh
aWxpbmdXaWR0aDsKIH0KIAotdm9pZCBMaW5lOjpSdW46OnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFj
ZSgpCitJbmxpbmVMYXlvdXRVbml0IExpbmU6OlJ1bjo6cmVtb3ZlVHJhaWxpbmdXaGl0ZXNwYWNl
KCkKIHsKICAgICBBU1NFUlQobV90cmFpbGluZ1doaXRlc3BhY2UpOwogICAgIC8vIEFjY29yZGlu
ZyB0byBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXRleHQtMy8jd2hpdGUtc3BhY2UtcHJvcGVy
dHkgbWF0cml4CiAgICAgLy8gVHJpbW1hYmxlIHdoaXRlc3BhY2UgaXMgYWx3YXlzIGNvbGxhcHNp
YmxlIHNvIHRoZSBsZW5ndGggb2YgdGhlIHRyYWlsaW5nIHRyaW1tYWJsZSB3aGl0ZXNwYWNlIGlz
IGFsd2F5cyAxIChvciBub24tZXhpc3RlbnQpLgotICAgIEFTU0VSVChtX3RleHRDb250ZW50LT5s
ZW5ndGgpOworICAgIEFTU0VSVChtX3RleHRDb250ZW50ICYmIG1fdGV4dENvbnRlbnQtPmxlbmd0
aCk7CiAgICAgY29uc3RleHByIHNpemVfdCB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5ndGgg
PSAxOworCisgICAgYXV0byB0cmltbWVkV2lkdGggPSBtX3RyYWlsaW5nV2hpdGVzcGFjZS0+d2lk
dGg7CisgICAgaWYgKG1fbGFzdE5vbldoaXRlc3BhY2VDb250ZW50U3RhcnQgJiYgaW5saW5lRGly
ZWN0aW9uKCkgPT0gVGV4dERpcmVjdGlvbjo6UlRMKSB7CisgICAgICAgIC8vIFdoaWxlIExUUiBj
b250ZW50IGNvdWxkIGFsc28gc3VmZmVyIGZyb20gc2xpZ2h0bHkgaW5jb3JyZWN0IGNvbnRlbnQg
d2lkdGggYWZ0ZXIgdHJpbW1pbmcgdHJhaWxpbmcgd2hpdGVzcGFjZSAoc2VlIFRleHRVdGlsOjp3
aWR0aCkKKyAgICAgICAgLy8gaXQgaGFyZGx5IHByb2R1Y2VzIHZpc3VhbGx5IG9ic2VydmFibGUg
cmVzdWx0LgorICAgICAgICAvLyBGSVhNRTogVGhpcyBtYXkgc3RpbGwgaW5jb3JyZWN0bHkgbGVh
dmUgc29tZSBjb250ZW50IG9uIHRoZSBsaW5lICh2cy4gcmUtbWVhc3VyaW5nIGFsc28gYXQgOjpl
eHBhbmQpLgorICAgICAgICBhdXRvJiBpbmxpbmVUZXh0Qm94ID0gZG93bmNhc3Q8SW5saW5lVGV4
dEJveD4oKm1fbGF5b3V0Qm94KTsKKyAgICAgICAgYXV0byYgZm9udENhc2NhZGUgPSBtX3N0eWxl
LmZvbnRDYXNjYWRlKCk7CisgICAgICAgIGF1dG8gc3RhcnRQb3NpdGlvbiA9ICptX2xhc3ROb25X
aGl0ZXNwYWNlQ29udGVudFN0YXJ0OworICAgICAgICBhdXRvIGVuZFBvc2l0aW9uID0gbV90ZXh0
Q29udGVudC0+c3RhcnQgKyBtX3RleHRDb250ZW50LT5sZW5ndGg7CisgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKHN0YXJ0UG9zaXRpb24gPCBlbmRQb3NpdGlvbiAtIHRyYWlsaW5nVHJpbW1hYmxlQ29u
dGVudExlbmd0aCk7CisgICAgICAgIGF1dG8gbG9naWNhbFdpZHRoV2l0aFRyYWlsaW5nV2hpdGVz
cGFjZSA9IFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0Qm94LCBmb250Q2FzY2FkZSwgc3RhcnRQ
b3NpdGlvbiwgZW5kUG9zaXRpb24sIGxvZ2ljYWxMZWZ0KCksIFRleHRVdGlsOjpVc2VUcmFpbGlu
Z1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246Olllcyk7CisgICAgICAgIGF1dG8gbG9n
aWNhbFdpZHRoV2l0aG91dFRyYWlsaW5nV2hpdGVzcGFjZSA9IFRleHRVdGlsOjp3aWR0aChpbmxp
bmVUZXh0Qm94LCBmb250Q2FzY2FkZSwgc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24gLSB0cmFp
bGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5ndGgsIGxvZ2ljYWxMZWZ0KCksIFRleHRVdGlsOjpVc2VU
cmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246Ok5vKTsKKyAgICAgICAgdHJp
bW1lZFdpZHRoID0gbG9naWNhbFdpZHRoV2l0aFRyYWlsaW5nV2hpdGVzcGFjZSAtIGxvZ2ljYWxX
aWR0aFdpdGhvdXRUcmFpbGluZ1doaXRlc3BhY2U7CisgICAgfQogICAgIG1fdGV4dENvbnRlbnQt
Pmxlbmd0aCAtPSB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5ndGg7Ci0gICAgc2hyaW5rSG9y
aXpvbnRhbGx5KG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT53aWR0aCk7CiAgICAgbV90cmFpbGluZ1do
aXRlc3BhY2UgPSB7IH07CisgICAgc2hyaW5rSG9yaXpvbnRhbGx5KHRyaW1tZWRXaWR0aCk7Cisg
ICAgcmV0dXJuIHRyaW1tZWRXaWR0aDsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCmlu
ZGV4IDlhYzk1OWZkNmM2ZTNhMDFhZTA5MTFiNzNiYmEzY2MzZWY5ODMzNzAuLmExZjlkNDMyZjkz
MjQyYjZlN2IwNWY4MTA4MzA3NWUwYzVhMTU5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgK
QEAgLTE0MywxMSArMTQzLDExIEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBoYXNDb2xsYXBzaWJs
ZVRyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXaGl0ZXNwYWNl
ICYmIChtX3RyYWlsaW5nV2hpdGVzcGFjZS0+dHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6OlR5
cGU6OkNvbGxhcHNpYmxlIHx8IGhhc0NvbGxhcHNlZFRyYWlsaW5nV2hpdGVzcGFjZSgpKTsgfQog
ICAgICAgICBib29sIGhhc0NvbGxhcHNlZFRyYWlsaW5nV2hpdGVzcGFjZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHJhaWxpbmdXaGl0ZXNwYWNlICYmIG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT50eXBlID09
IFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZTo6Q29sbGFwc2VkOyB9CiAgICAgICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZT4gdHJhaWxpbmdXaGl0ZXNwYWNl
VHlwZShjb25zdCBJbmxpbmVUZXh0SXRlbSYpOwotICAgICAgICB2b2lkIHJlbW92ZVRyYWlsaW5n
V2hpdGVzcGFjZSgpOworICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHJlbW92ZVRyYWlsaW5nV2hp
dGVzcGFjZSgpOwogCiAgICAgICAgIGJvb2wgaGFzVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCkgY29u
c3Q7CiAgICAgICAgIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCkgY29u
c3Q7Ci0gICAgICAgIHZvaWQgcmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7CisgICAgICAg
IElubGluZUxheW91dFVuaXQgcmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7CiAKICAgICAg
ICAgVHlwZSBtX3R5cGUgeyBUeXBlOjpUZXh0IH07CiAgICAgICAgIGNvbnN0IEJveCogbV9sYXlv
dXRCb3ggeyBudWxscHRyIH07CkBAIC0xNTcsNiArMTU3LDcgQEAgcHVibGljOgogICAgICAgICBJ
bmxpbmVEaXNwbGF5OjpCb3g6OkV4cGFuc2lvbiBtX2V4cGFuc2lvbjsKICAgICAgICAgVUJpRGlM
ZXZlbCBtX2JpZGlMZXZlbCB7IFVCSURJX0RFRkFVTFRfTFRSIH07CiAgICAgICAgIHN0ZDo6b3B0
aW9uYWw8VHJhaWxpbmdXaGl0ZXNwYWNlPiBtX3RyYWlsaW5nV2hpdGVzcGFjZSB7IH07CisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBtX2xhc3ROb25XaGl0ZXNwYWNlQ29udGVudFN0YXJ0
IHsgfTsKICAgICAgICAgc3RkOjpvcHRpb25hbDxUZXh0PiBtX3RleHRDb250ZW50OwogICAgIH07
CiAgICAgdXNpbmcgUnVuTGlzdCA9IFZlY3RvcjxSdW4sIDEwPjsKQEAgLTE4NSw3ICsxODYsNyBA
QCBwcml2YXRlOgogICAgIHN0cnVjdCBUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQgewogICAgICAg
ICBUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQoUnVuTGlzdCYpOwogCi0gICAgICAgIHZvaWQgYWRk
RnVsbHlUcmltbWFibGVDb250ZW50KHNpemVfdCBydW5JbmRleCwgSW5saW5lTGF5b3V0VW5pdCB0
cmltbWFibGVXaWR0aCk7CisgICAgICAgIHZvaWQgYWRkRnVsbHlUcmltbWFibGVDb250ZW50KHNp
emVfdCBydW5JbmRleCwgSW5saW5lTGF5b3V0VW5pdCB0cmltbWFibGVDb250ZW50T2Zmc2V0LCBJ
bmxpbmVMYXlvdXRVbml0IHRyaW1tYWJsZVdpZHRoKTsKICAgICAgICAgdm9pZCBhZGRQYXJ0aWFs
bHlUcmltbWFibGVDb250ZW50KHNpemVfdCBydW5JbmRleCwgSW5saW5lTGF5b3V0VW5pdCB0cmlt
bWFibGVXaWR0aCk7CiAgICAgICAgIElubGluZUxheW91dFVuaXQgcmVtb3ZlKCk7CiAgICAgICAg
IElubGluZUxheW91dFVuaXQgcmVtb3ZlUGFydGlhbGx5VHJpbW1hYmxlQ29udGVudCgpOwpAQCAt
MjAxLDYgKzIwMiw3IEBAIHByaXZhdGU6CiAgICAgICAgIFJ1bkxpc3QmIG1fcnVuczsKICAgICAg
ICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IG1fZmlyc3RUcmltbWFibGVSdW5JbmRleDsKICAgICAg
ICAgYm9vbCBtX2hhc0Z1bGx5VHJpbW1hYmxlQ29udGVudCB7IGZhbHNlIH07CisgICAgICAgIElu
bGluZUxheW91dFVuaXQgbV90cmltbWFibGVDb250ZW50T2Zmc2V0IHsgMCB9OwogICAgICAgICBJ
bmxpbmVMYXlvdXRVbml0IG1fZnVsbHlUcmltbWFibGVXaWR0aCB7IDAgfTsKICAgICAgICAgSW5s
aW5lTGF5b3V0VW5pdCBtX3BhcnRpYWxseVRyaW1tYWJsZVdpZHRoIHsgMCB9OwogICAgIH07CkBA
IC0yNDUsNiArMjQ3LDcgQEAgaW5saW5lIHZvaWQgTGluZTo6VHJpbW1hYmxlVHJhaWxpbmdDb250
ZW50OjpyZXNldCgpCiAgICAgbV9maXJzdFRyaW1tYWJsZVJ1bkluZGV4ID0geyB9OwogICAgIG1f
ZnVsbHlUcmltbWFibGVXaWR0aCA9IHsgfTsKICAgICBtX3BhcnRpYWxseVRyaW1tYWJsZVdpZHRo
ID0geyB9OworICAgIG1fdHJpbW1hYmxlQ29udGVudE9mZnNldCA9IHsgfTsKIH0KIAogaW5saW5l
IHZvaWQgTGluZTo6SGFuZ2luZ1RyYWlsaW5nQ29udGVudDo6cmVzZXQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0
VXRpbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS90ZXh0L1RleHRVdGlsLmNwcAppbmRleCA4MDAxMDRmZWRmMWRjYTYxYTEyOGUzOTcyZmJlOWEx
MTY1M2M3NDhiLi40MmU3ZDVkNWNhYmMwNmUzYTY4YWIwNDdlMjJjMGYwNjAzM2RlMjJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90
ZXh0L1RleHRVdGlsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcApAQCAtNDEsMTIgKzQxLDEyIEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAotSW5saW5lTGF5b3V0VW5pdCBU
ZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25z
dCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2lj
YWxMZWZ0KQorSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4
dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIElu
bGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VN
ZWFzdXJpbmdPcHRpbWl6YXRpb24gdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1p
emF0aW9uKQogewotICAgIHJldHVybiBUZXh0VXRpbDo6d2lkdGgoaW5saW5lVGV4dEl0ZW0sIGZv
bnRDYXNjYWRlLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0SXRlbS5lbmQoKSwg
Y29udGVudExvZ2ljYWxMZWZ0KTsKKyAgICByZXR1cm4gVGV4dFV0aWw6OndpZHRoKGlubGluZVRl
eHRJdGVtLCBmb250Q2FzY2FkZSwgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgaW5saW5lVGV4dEl0
ZW0uZW5kKCksIGNvbnRlbnRMb2dpY2FsTGVmdCwgdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3Vy
aW5nT3B0aW1pemF0aW9uKTsKIH0KIAotSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgo
Y29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb250Q2FzY2FkZSYg
Zm9udENhc2NhZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0
IGNvbnRlbnRMb2dpY2FsTGVmdCkKK0lubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNv
bnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgRm9udENhc2NhZGUmIGZv
bnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBj
b250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXph
dGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24pCiB7CiAgICAg
UkVMRUFTRV9BU1NFUlQoZnJvbSA+PSBpbmxpbmVUZXh0SXRlbS5zdGFydCgpKTsKICAgICBSRUxF
QVNFX0FTU0VSVCh0byA8PSBpbmxpbmVUZXh0SXRlbS5lbmQoKSk7CkBAIC01NCwxMCArNTQsMTAg
QEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0m
IGlubGluZVRleHRJdGVtLCBjb25zdCBGb24KICAgICAgICAgYXV0byBzcGFjZVdpZHRoID0gZm9u
dENhc2NhZGUuc3BhY2VXaWR0aCgpOwogICAgICAgICByZXR1cm4gc3RkOjppc25hbihzcGFjZVdp
ZHRoKSA/IDAuMGYgOiBzdGQ6OmlzaW5mKHNwYWNlV2lkdGgpID8gbWF4SW5saW5lTGF5b3V0VW5p
dCgpIDogc3BhY2VXaWR0aDsKICAgICB9Ci0gICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxp
bmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCksIGZvbnRDYXNjYWRlLCBmcm9tLCB0bywgY29udGVu
dExvZ2ljYWxMZWZ0KTsKKyAgICByZXR1cm4gVGV4dFV0aWw6OndpZHRoKGlubGluZVRleHRJdGVt
LmlubGluZVRleHRCb3goKSwgZm9udENhc2NhZGUsIGZyb20sIHRvLCBjb250ZW50TG9naWNhbExl
ZnQsIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbik7CiB9CiAKLUlu
bGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRCb3gmIGlubGlu
ZVRleHRCb3gsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgdW5zaWduZWQgZnJvbSwg
dW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KQorSW5saW5l
TGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4
dEJveCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNp
Z25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5n
V2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFz
dXJpbmdPcHRpbWl6YXRpb24pCiB7CiAgICAgaWYgKGZyb20gPT0gdG8pCiAgICAgICAgIHJldHVy
biAwOwpAQCAtNjUsOCArNjUsMTEgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgo
Y29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udEMKICAgICBhdXRv
IHRleHQgPSBpbmxpbmVUZXh0Qm94LmNvbnRlbnQoKTsKICAgICBBU1NFUlQodG8gPD0gdGV4dC5s
ZW5ndGgoKSk7CiAgICAgYXV0byBoYXNLZXJuaW5nT3JMaWdhdHVyZXMgPSBmb250Q2FzY2FkZS5l
bmFibGVLZXJuaW5nKCkgfHwgZm9udENhc2NhZGUucmVxdWlyZXNTaGFwaW5nKCk7Ci0gICAgYXV0
byBtZWFzdXJlV2l0aEVuZFNwYWNlID0gaGFzS2VybmluZ09yTGlnYXR1cmVzICYmIHRvIDwgdGV4
dC5sZW5ndGgoKSAmJiB0ZXh0W3RvXSA9PSAnICc7Ci0gICAgaWYgKG1lYXN1cmVXaXRoRW5kU3Bh
Y2UpCisgICAgLy8gVGhlICJub24td2hpdGVzcGFjZSIgKyAid2hpdGVzcGFjZSIgcGF0dGVybiBp
cyB2ZXJ5IGNvbW1vbiBmb3IgaW5saW5lIGNvbnRlbnQgYW5kIHNpbmNlIG1vc3Qgb2YgdGhlICJu
b24td2hpdGVzcGFjZSIgcnVucyBlbmQgdXAgd2l0aAorICAgIC8vIHRoZWlyICJ3aGl0ZXNwYWNl
IiBwYWlyIG9uIHRoZSBsaW5lIChub3RhYmxlIGV4Y2VwdGlvbiBpcyB3aGVuIHRyYWlsaW5nIHdo
aXRlc3BhY2UgaXMgdHJpbW1lZCkuCisgICAgLy8gSW5jbHVkaW5nIHRoZSB0cmFpbGluZyB3aGl0
ZXNwYWNlIGhlcmUgZW5hYmxlcyB1cyB0byBjdXQgdGhlIG51bWJlciBvZiB0ZXh0IG1lYXN1cmVz
IHdoZW4gcGxhY2luZyBjb250ZW50IG9uIHRoZSBsaW5lLiAKKyAgICBhdXRvIGV4dGVuZGVkTWVh
c3VyaW5nID0gdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID09IFVz
ZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzICYmIGhhc0tlcm5p
bmdPckxpZ2F0dXJlcyAmJiB0byA8IHRleHQubGVuZ3RoKCkgJiYgdGV4dFt0b10gPT0gJyAnOwor
ICAgIGlmIChleHRlbmRlZE1lYXN1cmluZykKICAgICAgICAgKyt0bzsKICAgICBmbG9hdCB3aWR0
aCA9IDA7CiAgICAgaWYgKGlubGluZVRleHRCb3guY2FuVXNlU2ltcGxpZmllZENvbnRlbnRNZWFz
dXJpbmcoKSkKQEAgLTc5LDcgKzgyLDcgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lk
dGgoY29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udEMKICAgICAg
ICAgd2lkdGggPSBmb250Q2FzY2FkZS53aWR0aChydW4pOwogICAgIH0KIAotICAgIGlmIChtZWFz
dXJlV2l0aEVuZFNwYWNlKQorICAgIGlmIChleHRlbmRlZE1lYXN1cmluZykKICAgICAgICAgd2lk
dGggLT0gKGZvbnRDYXNjYWRlLnNwYWNlV2lkdGgoKSArIGZvbnRDYXNjYWRlLndvcmRTcGFjaW5n
KCkpOwogCiAgICAgcmV0dXJuIHN0ZDo6aXNuYW4od2lkdGgpID8gMC4wZiA6IHN0ZDo6aXNpbmYo
d2lkdGgpID8gbWF4SW5saW5lTGF5b3V0VW5pdCgpIDogd2lkdGg7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGls
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0
L1RleHRVdGlsLmgKaW5kZXggOTZjNzcwOTVkNzY5ZGQwMzgzOWFiMzJhMjI1Mzk0ZmY0YWQxOWZm
MC4uMjg4ZTQwY2JhMTNkY2E2Yjc2OGI3NTU5ZGY2NDc1ZDA0NzNhM2QzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0
VXRpbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL3RleHQvVGV4dFV0aWwuaApAQCAtNDQsOSArNDQsMTAgQEAgY2xhc3MgSW5saW5lVGV4dEl0
ZW07CiAKIGNsYXNzIFRleHRVdGlsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgSW5saW5lTGF5b3V0
VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgSW5s
aW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpOwotICAgIHN0YXRpYyBJbmxpbmVMYXlv
dXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENhc2NhZGUmLCB1
bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNh
bExlZnQpOwotICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRl
eHRCb3gmLCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJ
bmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCk7CisgICAgZW51bSBjbGFzcyBVc2VU
cmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gOiB1aW50OF90IHsgWWVzLCBO
byB9OworICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJ
dGVtJiwgY29uc3QgRm9udENhc2NhZGUmLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2Fs
TGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID0gVXNlVHJh
aWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMpOworICAgIHN0YXRpYyBJ
bmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENh
c2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250
ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlv
biA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzKTsKKyAg
ICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiwgY29u
c3QgRm9udENhc2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0
VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09w
dGltaXphdGlvbiA9IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6
WWVzKTsKIAogICAgIHVzaW5nIEZhbGxiYWNrRm9udExpc3QgPSBIYXNoU2V0PGNvbnN0IEZvbnQq
PjsKICAgICBzdGF0aWMgRmFsbGJhY2tGb250TGlzdCBmYWxsYmFja0ZvbnRzRm9yUnVuKGNvbnN0
IExpbmU6OlJ1biYsIGNvbnN0IFJlbmRlclN0eWxlJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449240</attachid>
            <date>2022-01-14 20:28:43 -0800</date>
            <delta_ts>2022-01-15 05:37:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235011-20220114202842.patch</filename>
            <type>text/plain</type>
            <size>15837</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2MzYTRhZDA0MWIxY2E4
YmZjNDdjMzM4NWFhOGQzMzk3NjNiMzI4Mi4uMTFjMDdhMTM0NmZlZjY4OWU4OThiYTE2NWZjMGI3
NmYzZTdiN2UwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIyLTAxLTE0ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10ZXh0L3dvcmQtYnJlYWsvd29yZC1icmVh
ay1ub3JtYWwtYXItMDAwLmh0bWwgZmFpbHMgd2l0aCBpbmNvcnJlY3QgcnVuIHBvc2l0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwMTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBJRkMgKGluaGVy
aXRlZCBmcm9tIHNpbXBsZSBsaW5lIGxheW91dCkgdXNlcyB0aGlzIHRlY2huaXF1ZSBvZiBtZWFz
dXJpbmcgdGhlIGNvbnRlbnQgd2l0aCB0aGUgdHJhaWxpbmcgd2hpdGVzcGFjZQorICAgICAgICBh
bmQgdGhlbiBzaW1wbHkgc3VidHJhY3QgdGhlIHdoaXRlc3BhY2Ugd2lkdGguIEl0IGVuYWJsZXMg
dXMgdG8ga2VlcCBwdXNoaW5nIGNvbnRlbnQgdG8gdGhlIGxpbmUgd2l0aG91dCByZS1tZWFzdXJp
bmcgaXQgZWFjaCB0aW1lLgorICAgICAgICAodGhlICJub24td2hpdGVzcGFjZSArIHdoaXRlc3Bh
Y2UiIHBhdHRlcm4gaXMgZXh0cmVtZWx5IGNvbW1vbiBmb3IgSUZDIGNvbnRlbnQpLgorICAgICAg
ICBIb3dldmVyIGluIHNvbWUgY2FzZXMgd2hlbiB0aGUgdHJhaWxpbmcgd2hpdGVzcGFjZSBpcyB0
cmltbWVkLCBzdWJ0cmFjdGluZyB0aGUgdHJpbW1lZCB3aWR0aCBmcm9tIHRoZQorICAgICAgICBj
b250ZW50IHdpZHRoIGluc3RlYWQgb2YgbWVhc3VyaW5nIGl0IHByb2R1Y2VzIGEgdmlzdWFsbHkg
aW5jb3JyZWN0IHJlc3VsdC4KKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgbW9zdCBvYnZp
b3VzIGNhc2VzIHdoZW4gdGhlIGluY29ycmVjdCB3aWR0aCB0dXJucyBpbnRvIGFuIG9mZnNldCBm
b3IgdGhlIFJUTCBjb250ZW50LgorCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6
OlRyaW1tYWJsZVRyYWlsaW5nQ29udGVudDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6TGluZTo6UnVuOjpyZW1vdmVUcmFpbGluZ0xldHRlclNwYWNpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OnJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSk6Cisg
ICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oOgor
ICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUZXh0VXRpbDo6d2lkdGgpOgorICAgICAg
ICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaDoKKwog
MjAyMi0wMS0xNCAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0Ns
ZWFudXBdIFJlbW92ZSByZWR1bmRhbnQgKGFuZCBpbmNvcnJlY3QpIFJlbmRlclN0eWxlOjppc0Rp
c3BsYXlSZXBsYWNlZFR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKaW5kZXggNDY2MTcw
M2ZmZjljMGE5YzcyZTVlNGU1NjVlOTYyNzliYjBiMTc5NC4uODcwMmM0MTI5OGY0MzViNTQ3NmVm
NWExNDdiZjUwMmY3ZDI2Mzk3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKQEAgLTM0
Myw3ICszNDMsOSBAQCB2b2lkIExpbmU6OmFwcGVuZFRleHRDb250ZW50KGNvbnN0IElubGluZVRl
eHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgUmVuZGVyUwogICAgICAgICAgICAgICAgIG1f
aGFuZ2luZ1RyYWlsaW5nQ29udGVudC5hZGQoaW5saW5lVGV4dEl0ZW0sIGxvZ2ljYWxXaWR0aCk7
CiAgICAgICAgIH0gZWxzZSAgewogICAgICAgICAgICAgbV9oYW5naW5nVHJhaWxpbmdDb250ZW50
LnJlc2V0KCk7Ci0gICAgICAgICAgICBtX3RyaW1tYWJsZVRyYWlsaW5nQ29udGVudC5hZGRGdWxs
eVRyaW1tYWJsZUNvbnRlbnQobGFzdFJ1bkluZGV4LCBjb250ZW50TG9naWNhbFdpZHRoKCkgLSBv
bGRDb250ZW50TG9naWNhbFdpZHRoKTsKKyAgICAgICAgICAgIGF1dG8gdHJpbW1hYmxlV2lkdGgg
PSBsb2dpY2FsV2lkdGg7CisgICAgICAgICAgICBhdXRvIHRyaW1tYWJsZUNvbnRlbnRPZmZzZXQg
PSAoY29udGVudExvZ2ljYWxXaWR0aCgpIC0gb2xkQ29udGVudExvZ2ljYWxXaWR0aCkgLSB0cmlt
bWFibGVXaWR0aDsKKyAgICAgICAgICAgIG1fdHJpbW1hYmxlVHJhaWxpbmdDb250ZW50LmFkZEZ1
bGx5VHJpbW1hYmxlQ29udGVudChsYXN0UnVuSW5kZXgsIHRyaW1tYWJsZUNvbnRlbnRPZmZzZXQs
IHRyaW1tYWJsZVdpZHRoKTsKICAgICAgICAgfQogICAgICAgICBtX3RyYWlsaW5nU29mdEh5cGhl
bldpZHRoID0geyB9OwogICAgIH0gZWxzZSB7CkBAIC00NTAsMTEgKzQ1MiwxMiBAQCBMaW5lOjpU
cmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6OlRyaW1tYWJsZVRyYWlsaW5nQ29udGVudChSdW5MaXN0
JiBydW5zKQogewogfQogCi12b2lkIExpbmU6OlRyaW1tYWJsZVRyYWlsaW5nQ29udGVudDo6YWRk
RnVsbHlUcmltbWFibGVDb250ZW50KHNpemVfdCBydW5JbmRleCwgSW5saW5lTGF5b3V0VW5pdCB0
cmltbWFibGVXaWR0aCkKK3ZvaWQgTGluZTo6VHJpbW1hYmxlVHJhaWxpbmdDb250ZW50OjphZGRG
dWxseVRyaW1tYWJsZUNvbnRlbnQoc2l6ZV90IHJ1bkluZGV4LCBJbmxpbmVMYXlvdXRVbml0IHRy
aW1tYWJsZUNvbnRlbnRPZmZzZXQsIElubGluZUxheW91dFVuaXQgdHJpbW1hYmxlV2lkdGgpCiB7
CiAgICAgLy8gQW55IHN1YnNlcXVlbnQgdHJpbW1hYmxlIHdoaXRlc3BhY2Ugc2hvdWxkIGNvbGxh
cHNlIHRvIHplcm8gYWR2YW5jZWQgd2lkdGggYW5kIGlnbm9yZWQgYXQgOjphcHBlbmRUZXh0Q29u
dGVudCgpLgogICAgIEFTU0VSVCghbV9oYXNGdWxseVRyaW1tYWJsZUNvbnRlbnQpOwotICAgIG1f
ZnVsbHlUcmltbWFibGVXaWR0aCA9IHRyaW1tYWJsZVdpZHRoOworICAgIG1fZnVsbHlUcmltbWFi
bGVXaWR0aCA9IHRyaW1tYWJsZUNvbnRlbnRPZmZzZXQgKyB0cmltbWFibGVXaWR0aDsKKyAgICBt
X3RyaW1tYWJsZUNvbnRlbnRPZmZzZXQgPSB0cmltbWFibGVDb250ZW50T2Zmc2V0OwogICAgIC8v
IE5vdGUgdGhhdCBqdXN0IGJlY2F1c2UgdGhlIHRyaW1tYWJsZSB3aWR0aCBpcyAwIChmb250LXNp
emU6IDBweCksIGl0IGRvZXMgbm90IG1lYW4gd2UgZG9uJ3QgaGF2ZSBhIHRyaW1tYWJsZSB0cmFp
bGluZyBjb250ZW50LgogICAgIG1faGFzRnVsbHlUcmltbWFibGVDb250ZW50ID0gdHJ1ZTsKICAg
ICBtX2ZpcnN0VHJpbW1hYmxlUnVuSW5kZXggPSBtX2ZpcnN0VHJpbW1hYmxlUnVuSW5kZXgudmFs
dWVfb3IocnVuSW5kZXgpOwpAQCAtNDgxLDEyICs0ODQsMTIgQEAgSW5saW5lTGF5b3V0VW5pdCBM
aW5lOjpUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlbW92ZSgpCiAgICAgYXV0byYgdHJpbW1h
YmxlUnVuID0gbV9ydW5zWyptX2ZpcnN0VHJpbW1hYmxlUnVuSW5kZXhdOwogICAgIEFTU0VSVCh0
cmltbWFibGVSdW4uaXNUZXh0KCkpOwogCisgICAgYXV0byB0cmltbWVkV2lkdGggPSBtX3RyaW1t
YWJsZUNvbnRlbnRPZmZzZXQ7CiAgICAgaWYgKG1faGFzRnVsbHlUcmltbWFibGVDb250ZW50KQot
ICAgICAgICB0cmltbWFibGVSdW4ucmVtb3ZlVHJhaWxpbmdXaGl0ZXNwYWNlKCk7CisgICAgICAg
IHRyaW1tZWRXaWR0aCArPSB0cmltbWFibGVSdW4ucmVtb3ZlVHJhaWxpbmdXaGl0ZXNwYWNlKCk7
CiAgICAgaWYgKG1fcGFydGlhbGx5VHJpbW1hYmxlV2lkdGgpCi0gICAgICAgIHRyaW1tYWJsZVJ1
bi5yZW1vdmVUcmFpbGluZ0xldHRlclNwYWNpbmcoKTsKKyAgICAgICAgdHJpbW1lZFdpZHRoICs9
IHRyaW1tYWJsZVJ1bi5yZW1vdmVUcmFpbGluZ0xldHRlclNwYWNpbmcoKTsKIAotICAgIGF1dG8g
dHJpbW1hYmxlV2lkdGggPSB3aWR0aCgpOwogICAgIC8vIFdoZW4gdGhlIHRyaW1tYWJsZSBydW4g
aXMgZm9sbG93ZWQgYnkgc29tZSBub24tY29udGVudCBydW5zLCB3ZSBuZWVkIHRvIGFkanVzdCB0
aGVpciBob3Jpem9udGFsIHBvc2l0aW9ucy4KICAgICAvLyBlLmcuIDxkaXY+dGV4dCBpcyBmb2xs
b3dlZCBieSB0cmltbWFibGUgY29udGVudCAgICA8c3Bhbj4gPC9zcGFuPjwvZGl2PgogICAgIC8v
IFdoZW4gdGhlIFt0ZXh0Li4uXSBydW4gaXMgdHJpbW1lZCAodHJhaWxpbmcgd2hpdGVzcGFjZSBp
cyByZW1vdmVkKSwgYm90aCAiPHNwYW4+IiBhbmQgIjwvc3Bhbj4iIHJ1bnMKQEAgLTQ5NSw3ICs0
OTgsNyBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmU6OlRyaW1tYWJsZVRyYWlsaW5nQ29udGVudDo6
cmVtb3ZlKCkKICAgICBmb3IgKGF1dG8gaW5kZXggPSAqbV9maXJzdFRyaW1tYWJsZVJ1bkluZGV4
ICsgMTsgaW5kZXggPCBtX3J1bnMuc2l6ZSgpOyArK2luZGV4KSB7CiAgICAgICAgIGF1dG8mIHJ1
biA9IG1fcnVuc1tpbmRleF07CiAgICAgICAgIEFTU0VSVChydW4uaXNXb3JkQnJlYWtPcHBvcnR1
bml0eSgpIHx8IHJ1bi5pc0xpbmVTcGFubmluZ0lubGluZUJveFN0YXJ0KCkgfHwgcnVuLmlzSW5s
aW5lQm94U3RhcnQoKSB8fCBydW4uaXNJbmxpbmVCb3hFbmQoKSB8fCBydW4uaXNMaW5lQnJlYWso
KSk7Ci0gICAgICAgIHJ1bi5tb3ZlSG9yaXpvbnRhbGx5KC10cmltbWFibGVXaWR0aCk7CisgICAg
ICAgIHJ1bi5tb3ZlSG9yaXpvbnRhbGx5KC10cmltbWVkV2lkdGgpOwogICAgIH0KICAgICBpZiAo
IXRyaW1tYWJsZVJ1bi50ZXh0Q29udGVudCgpLT5sZW5ndGgpIHsKICAgICAgICAgLy8gVGhpcyB0
cmltbWFibGUgcnVuIGlzIGZ1bGx5IGNvbGxhcHNlZCBub3cgKGUuZy4gPGRpdj48aW1nPiAgICA8
c3Bhbj48L3NwYW4+PC9kaXY+KS4KQEAgLTUwMyw3ICs1MDYsNyBAQCBJbmxpbmVMYXlvdXRVbml0
IExpbmU6OlRyaW1tYWJsZVRyYWlsaW5nQ29udGVudDo6cmVtb3ZlKCkKICAgICAgICAgbV9ydW5z
LnJlbW92ZSgqbV9maXJzdFRyaW1tYWJsZVJ1bkluZGV4KTsKICAgICB9CiAgICAgcmVzZXQoKTsK
LSAgICByZXR1cm4gdHJpbW1hYmxlV2lkdGg7CisgICAgcmV0dXJuIHRyaW1tZWRXaWR0aDsKIH0K
IAogSW5saW5lTGF5b3V0VW5pdCBMaW5lOjpUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6OnJlbW92
ZVBhcnRpYWxseVRyaW1tYWJsZUNvbnRlbnQoKQpAQCAtNjI1LDYgKzYyOCw3IEBAIHZvaWQgTGlu
ZTo6UnVuOjpleHBhbmQoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBJbmxp
bmVMYXlvdXRVbml0IGxvCiAgICAgaWYgKCF3aGl0ZXNwYWNlVHlwZSkgewogICAgICAgICBtX3Ry
YWlsaW5nV2hpdGVzcGFjZSA9IHsgfTsKICAgICAgICAgbV90ZXh0Q29udGVudC0+bGVuZ3RoICs9
IGlubGluZVRleHRJdGVtLmxlbmd0aCgpOworICAgICAgICBtX2xhc3ROb25XaGl0ZXNwYWNlQ29u
dGVudFN0YXJ0ID0gaW5saW5lVGV4dEl0ZW0uc3RhcnQoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBhdXRvIHdoaXRlc3BhY2VXaWR0aCA9ICFtX3RyYWlsaW5nV2hpdGVzcGFjZSA/IGxv
Z2ljYWxXaWR0aCA6IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT53aWR0aCArIGxvZ2ljYWxXaWR0aDsK
QEAgLTY0NCwyMyArNjQ4LDM5IEBAIElubGluZUxheW91dFVuaXQgTGluZTo6UnVuOjp0cmFpbGlu
Z0xldHRlclNwYWNpbmcoKSBjb25zdAogICAgIHJldHVybiBJbmxpbmVMYXlvdXRVbml0IHsgbGV0
dGVyU3BhY2luZygpIH07CiB9CiAKLXZvaWQgTGluZTo6UnVuOjpyZW1vdmVUcmFpbGluZ0xldHRl
clNwYWNpbmcoKQorSW5saW5lTGF5b3V0VW5pdCBMaW5lOjpSdW46OnJlbW92ZVRyYWlsaW5nTGV0
dGVyU3BhY2luZygpCiB7CiAgICAgQVNTRVJUKGhhc1RyYWlsaW5nTGV0dGVyU3BhY2luZygpKTsK
LSAgICBzaHJpbmtIb3Jpem9udGFsbHkodHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCkpOworICAgIGF1
dG8gdHJhaWxpbmdXaWR0aCA9IHRyYWlsaW5nTGV0dGVyU3BhY2luZygpOworICAgIHNocmlua0hv
cml6b250YWxseSh0cmFpbGluZ1dpZHRoKTsKICAgICBBU1NFUlQobG9naWNhbFdpZHRoKCkgPiAw
IHx8ICghbG9naWNhbFdpZHRoKCkgJiYgbGV0dGVyU3BhY2luZygpID49IHN0YXRpY19jYXN0PGZs
b2F0PihpbnRNYXhGb3JMYXlvdXRVbml0KSkpOworICAgIHJldHVybiB0cmFpbGluZ1dpZHRoOwog
fQogCi12b2lkIExpbmU6OlJ1bjo6cmVtb3ZlVHJhaWxpbmdXaGl0ZXNwYWNlKCkKK0lubGluZUxh
eW91dFVuaXQgTGluZTo6UnVuOjpyZW1vdmVUcmFpbGluZ1doaXRlc3BhY2UoKQogewogICAgIEFT
U0VSVChtX3RyYWlsaW5nV2hpdGVzcGFjZSk7CiAgICAgLy8gQWNjb3JkaW5nIHRvIGh0dHBzOi8v
d3d3LnczLm9yZy9UUi9jc3MtdGV4dC0zLyN3aGl0ZS1zcGFjZS1wcm9wZXJ0eSBtYXRyaXgKICAg
ICAvLyBUcmltbWFibGUgd2hpdGVzcGFjZSBpcyBhbHdheXMgY29sbGFwc2libGUgc28gdGhlIGxl
bmd0aCBvZiB0aGUgdHJhaWxpbmcgdHJpbW1hYmxlIHdoaXRlc3BhY2UgaXMgYWx3YXlzIDEgKG9y
IG5vbi1leGlzdGVudCkuCi0gICAgQVNTRVJUKG1fdGV4dENvbnRlbnQtPmxlbmd0aCk7CisgICAg
QVNTRVJUKG1fdGV4dENvbnRlbnQgJiYgbV90ZXh0Q29udGVudC0+bGVuZ3RoKTsKICAgICBjb25z
dGV4cHIgc2l6ZV90IHRyYWlsaW5nVHJpbW1hYmxlQ29udGVudExlbmd0aCA9IDE7CisKKyAgICBh
dXRvIHRyaW1tZWRXaWR0aCA9IG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT53aWR0aDsKKyAgICBpZiAo
bV9sYXN0Tm9uV2hpdGVzcGFjZUNvbnRlbnRTdGFydCAmJiBpbmxpbmVEaXJlY3Rpb24oKSA9PSBU
ZXh0RGlyZWN0aW9uOjpSVEwpIHsKKyAgICAgICAgLy8gV2hpbGUgTFRSIGNvbnRlbnQgY291bGQg
YWxzbyBzdWZmZXIgZnJvbSBzbGlnaHRseSBpbmNvcnJlY3QgY29udGVudCB3aWR0aCBhZnRlciB0
cmltbWluZyB0cmFpbGluZyB3aGl0ZXNwYWNlIChzZWUgVGV4dFV0aWw6OndpZHRoKQorICAgICAg
ICAvLyBpdCBoYXJkbHkgcHJvZHVjZXMgdmlzdWFsbHkgb2JzZXJ2YWJsZSByZXN1bHQuCisgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIG1heSBzdGlsbCBpbmNvcnJlY3RseSBsZWF2ZSBzb21lIGNvbnRl
bnQgb24gdGhlIGxpbmUgKHZzLiByZS1tZWFzdXJpbmcgYWxzbyBhdCA6OmV4cGFuZCkuCisgICAg
ICAgIGF1dG8mIGlubGluZVRleHRCb3ggPSBkb3duY2FzdDxJbmxpbmVUZXh0Qm94PigqbV9sYXlv
dXRCb3gpOworICAgICAgICBhdXRvIHN0YXJ0UG9zaXRpb24gPSAqbV9sYXN0Tm9uV2hpdGVzcGFj
ZUNvbnRlbnRTdGFydDsKKyAgICAgICAgYXV0byBlbmRQb3NpdGlvbiA9IG1fdGV4dENvbnRlbnQt
PnN0YXJ0ICsgbV90ZXh0Q29udGVudC0+bGVuZ3RoOworICAgICAgICBSRUxFQVNFX0FTU0VSVChz
dGFydFBvc2l0aW9uIDwgZW5kUG9zaXRpb24gLSB0cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnRMZW5n
dGgpOworICAgICAgICBpZiAoaW5saW5lVGV4dEJveC5jb250ZW50KClbZW5kUG9zaXRpb24gLSAx
XSA9PSBzcGFjZSkKKyAgICAgICAgICAgIHRyaW1tZWRXaWR0aCA9IFRleHRVdGlsOjp0cmFpbGlu
Z1doaXRlc3BhY2VXaWR0aChpbmxpbmVUZXh0Qm94LCBtX3N0eWxlLmZvbnRDYXNjYWRlKCksIHN0
YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTsKKyAgICB9CiAgICAgbV90ZXh0Q29udGVudC0+bGVu
Z3RoIC09IHRyYWlsaW5nVHJpbW1hYmxlQ29udGVudExlbmd0aDsKLSAgICBzaHJpbmtIb3Jpem9u
dGFsbHkobV90cmFpbGluZ1doaXRlc3BhY2UtPndpZHRoKTsKICAgICBtX3RyYWlsaW5nV2hpdGVz
cGFjZSA9IHsgfTsKKyAgICBzaHJpbmtIb3Jpem9udGFsbHkodHJpbW1lZFdpZHRoKTsKKyAgICBy
ZXR1cm4gdHJpbW1lZFdpZHRoOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgKaW5kZXgg
OWFjOTU5ZmQ2YzZlM2EwMWFlMDkxMWI3M2JiYTNjYzNlZjk4MzM3MC4uYTFmOWQ0MzJmOTMyNDJi
NmU3YjA1ZjgxMDgzMDc1ZTBjNWExNTk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaApAQCAt
MTQzLDExICsxNDMsMTEgQEAgcHVibGljOgogICAgICAgICBib29sIGhhc0NvbGxhcHNpYmxlVHJh
aWxpbmdXaGl0ZXNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV90cmFpbGluZ1doaXRlc3BhY2UgJiYg
KG1fdHJhaWxpbmdXaGl0ZXNwYWNlLT50eXBlID09IFRyYWlsaW5nV2hpdGVzcGFjZTo6VHlwZTo6
Q29sbGFwc2libGUgfHwgaGFzQ29sbGFwc2VkVHJhaWxpbmdXaGl0ZXNwYWNlKCkpOyB9CiAgICAg
ICAgIGJvb2wgaGFzQ29sbGFwc2VkVHJhaWxpbmdXaGl0ZXNwYWNlKCkgY29uc3QgeyByZXR1cm4g
bV90cmFpbGluZ1doaXRlc3BhY2UgJiYgbV90cmFpbGluZ1doaXRlc3BhY2UtPnR5cGUgPT0gVHJh
aWxpbmdXaGl0ZXNwYWNlOjpUeXBlOjpDb2xsYXBzZWQ7IH0KICAgICAgICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8VHJhaWxpbmdXaGl0ZXNwYWNlOjpUeXBlPiB0cmFpbGluZ1doaXRlc3BhY2VUeXBl
KGNvbnN0IElubGluZVRleHRJdGVtJik7Ci0gICAgICAgIHZvaWQgcmVtb3ZlVHJhaWxpbmdXaGl0
ZXNwYWNlKCk7CisgICAgICAgIElubGluZUxheW91dFVuaXQgcmVtb3ZlVHJhaWxpbmdXaGl0ZXNw
YWNlKCk7CiAKICAgICAgICAgYm9vbCBoYXNUcmFpbGluZ0xldHRlclNwYWNpbmcoKSBjb25zdDsK
ICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCB0cmFpbGluZ0xldHRlclNwYWNpbmcoKSBjb25zdDsK
LSAgICAgICAgdm9pZCByZW1vdmVUcmFpbGluZ0xldHRlclNwYWNpbmcoKTsKKyAgICAgICAgSW5s
aW5lTGF5b3V0VW5pdCByZW1vdmVUcmFpbGluZ0xldHRlclNwYWNpbmcoKTsKIAogICAgICAgICBU
eXBlIG1fdHlwZSB7IFR5cGU6OlRleHQgfTsKICAgICAgICAgY29uc3QgQm94KiBtX2xheW91dEJv
eCB7IG51bGxwdHIgfTsKQEAgLTE1Nyw2ICsxNTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIElubGlu
ZURpc3BsYXk6OkJveDo6RXhwYW5zaW9uIG1fZXhwYW5zaW9uOwogICAgICAgICBVQmlEaUxldmVs
IG1fYmlkaUxldmVsIHsgVUJJRElfREVGQVVMVF9MVFIgfTsKICAgICAgICAgc3RkOjpvcHRpb25h
bDxUcmFpbGluZ1doaXRlc3BhY2U+IG1fdHJhaWxpbmdXaGl0ZXNwYWNlIHsgfTsKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxzaXplX3Q+IG1fbGFzdE5vbldoaXRlc3BhY2VDb250ZW50U3RhcnQgeyB9
OwogICAgICAgICBzdGQ6Om9wdGlvbmFsPFRleHQ+IG1fdGV4dENvbnRlbnQ7CiAgICAgfTsKICAg
ICB1c2luZyBSdW5MaXN0ID0gVmVjdG9yPFJ1biwgMTA+OwpAQCAtMTg1LDcgKzE4Niw3IEBAIHBy
aXZhdGU6CiAgICAgc3RydWN0IFRyaW1tYWJsZVRyYWlsaW5nQ29udGVudCB7CiAgICAgICAgIFRy
aW1tYWJsZVRyYWlsaW5nQ29udGVudChSdW5MaXN0Jik7CiAKLSAgICAgICAgdm9pZCBhZGRGdWxs
eVRyaW1tYWJsZUNvbnRlbnQoc2l6ZV90IHJ1bkluZGV4LCBJbmxpbmVMYXlvdXRVbml0IHRyaW1t
YWJsZVdpZHRoKTsKKyAgICAgICAgdm9pZCBhZGRGdWxseVRyaW1tYWJsZUNvbnRlbnQoc2l6ZV90
IHJ1bkluZGV4LCBJbmxpbmVMYXlvdXRVbml0IHRyaW1tYWJsZUNvbnRlbnRPZmZzZXQsIElubGlu
ZUxheW91dFVuaXQgdHJpbW1hYmxlV2lkdGgpOwogICAgICAgICB2b2lkIGFkZFBhcnRpYWxseVRy
aW1tYWJsZUNvbnRlbnQoc2l6ZV90IHJ1bkluZGV4LCBJbmxpbmVMYXlvdXRVbml0IHRyaW1tYWJs
ZVdpZHRoKTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCByZW1vdmUoKTsKICAgICAgICAgSW5s
aW5lTGF5b3V0VW5pdCByZW1vdmVQYXJ0aWFsbHlUcmltbWFibGVDb250ZW50KCk7CkBAIC0yMDEs
NiArMjAyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgUnVuTGlzdCYgbV9ydW5zOwogICAgICAgICBz
dGQ6Om9wdGlvbmFsPHNpemVfdD4gbV9maXJzdFRyaW1tYWJsZVJ1bkluZGV4OwogICAgICAgICBi
b29sIG1faGFzRnVsbHlUcmltbWFibGVDb250ZW50IHsgZmFsc2UgfTsKKyAgICAgICAgSW5saW5l
TGF5b3V0VW5pdCBtX3RyaW1tYWJsZUNvbnRlbnRPZmZzZXQgeyAwIH07CiAgICAgICAgIElubGlu
ZUxheW91dFVuaXQgbV9mdWxseVRyaW1tYWJsZVdpZHRoIHsgMCB9OwogICAgICAgICBJbmxpbmVM
YXlvdXRVbml0IG1fcGFydGlhbGx5VHJpbW1hYmxlV2lkdGggeyAwIH07CiAgICAgfTsKQEAgLTI0
NSw2ICsyNDcsNyBAQCBpbmxpbmUgdm9pZCBMaW5lOjpUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQ6
OnJlc2V0KCkKICAgICBtX2ZpcnN0VHJpbW1hYmxlUnVuSW5kZXggPSB7IH07CiAgICAgbV9mdWxs
eVRyaW1tYWJsZVdpZHRoID0geyB9OwogICAgIG1fcGFydGlhbGx5VHJpbW1hYmxlV2lkdGggPSB7
IH07CisgICAgbV90cmltbWFibGVDb250ZW50T2Zmc2V0ID0geyB9OwogfQogCiBpbmxpbmUgdm9p
ZCBMaW5lOjpIYW5naW5nVHJhaWxpbmdDb250ZW50OjpyZXNldCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGls
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3Rl
eHQvVGV4dFV0aWwuY3BwCmluZGV4IDgwMDEwNGZlZGYxZGNhNjFhMTI4ZTM5NzJmYmU5YTExNjUz
Yzc0OGIuLjQzYTQ0YTJiNDg3NjY0YTJjZWY2ZTZhZjE4YTNlZmI3MjYxOTA2ZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQv
VGV4dFV0aWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIElubGluZUxheW91
dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRl
bSwgY29uc3QgRm9uCiAgICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0SXRlbS5p
bmxpbmVUZXh0Qm94KCksIGZvbnRDYXNjYWRlLCBmcm9tLCB0bywgY29udGVudExvZ2ljYWxMZWZ0
KTsKIH0KIAotSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4
dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNp
Z25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExl
ZnQpCitJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94
JiBpbmxpbmVUZXh0Qm94LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHVuc2lnbmVk
IGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwg
VXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uIHVzZVRyYWlsaW5nV2hp
dGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbikKIHsKICAgICBpZiAoZnJvbSA9PSB0bykKICAg
ICAgICAgcmV0dXJuIDA7CkBAIC02NSw4ICs2NSwxMSBAQCBJbmxpbmVMYXlvdXRVbml0IFRleHRV
dGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBjb25zdCBGb250
QwogICAgIGF1dG8gdGV4dCA9IGlubGluZVRleHRCb3guY29udGVudCgpOwogICAgIEFTU0VSVCh0
byA8PSB0ZXh0Lmxlbmd0aCgpKTsKICAgICBhdXRvIGhhc0tlcm5pbmdPckxpZ2F0dXJlcyA9IGZv
bnRDYXNjYWRlLmVuYWJsZUtlcm5pbmcoKSB8fCBmb250Q2FzY2FkZS5yZXF1aXJlc1NoYXBpbmco
KTsKLSAgICBhdXRvIG1lYXN1cmVXaXRoRW5kU3BhY2UgPSBoYXNLZXJuaW5nT3JMaWdhdHVyZXMg
JiYgdG8gPCB0ZXh0Lmxlbmd0aCgpICYmIHRleHRbdG9dID09ICcgJzsKLSAgICBpZiAobWVhc3Vy
ZVdpdGhFbmRTcGFjZSkKKyAgICAvLyBUaGUgIm5vbi13aGl0ZXNwYWNlIiArICJ3aGl0ZXNwYWNl
IiBwYXR0ZXJuIGlzIHZlcnkgY29tbW9uIGZvciBpbmxpbmUgY29udGVudCBhbmQgc2luY2UgbW9z
dCBvZiB0aGUgIm5vbi13aGl0ZXNwYWNlIiBydW5zIGVuZCB1cCB3aXRoCisgICAgLy8gdGhlaXIg
IndoaXRlc3BhY2UiIHBhaXIgb24gdGhlIGxpbmUgKG5vdGFibGUgZXhjZXB0aW9uIGlzIHdoZW4g
dHJhaWxpbmcgd2hpdGVzcGFjZSBpcyB0cmltbWVkKS4KKyAgICAvLyBJbmNsdWRpbmcgdGhlIHRy
YWlsaW5nIHdoaXRlc3BhY2UgaGVyZSBlbmFibGVzIHVzIHRvIGN1dCB0aGUgbnVtYmVyIG9mIHRl
eHQgbWVhc3VyZXMgd2hlbiBwbGFjaW5nIGNvbnRlbnQgb24gdGhlIGxpbmUuCisgICAgYXV0byBl
eHRlbmRlZE1lYXN1cmluZyA9IHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXph
dGlvbiA9PSBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246OlllcyAm
JiBoYXNLZXJuaW5nT3JMaWdhdHVyZXMgJiYgdG8gPCB0ZXh0Lmxlbmd0aCgpICYmIHRleHRbdG9d
ID09IHNwYWNlOworICAgIGlmIChleHRlbmRlZE1lYXN1cmluZykKICAgICAgICAgKyt0bzsKICAg
ICBmbG9hdCB3aWR0aCA9IDA7CiAgICAgaWYgKGlubGluZVRleHRCb3guY2FuVXNlU2ltcGxpZmll
ZENvbnRlbnRNZWFzdXJpbmcoKSkKQEAgLTc5LDEyICs4MiwyMSBAQCBJbmxpbmVMYXlvdXRVbml0
IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBjb25z
dCBGb250QwogICAgICAgICB3aWR0aCA9IGZvbnRDYXNjYWRlLndpZHRoKHJ1bik7CiAgICAgfQog
Ci0gICAgaWYgKG1lYXN1cmVXaXRoRW5kU3BhY2UpCisgICAgaWYgKGV4dGVuZGVkTWVhc3VyaW5n
KQogICAgICAgICB3aWR0aCAtPSAoZm9udENhc2NhZGUuc3BhY2VXaWR0aCgpICsgZm9udENhc2Nh
ZGUud29yZFNwYWNpbmcoKSk7CiAKICAgICByZXR1cm4gc3RkOjppc25hbih3aWR0aCkgPyAwLjBm
IDogc3RkOjppc2luZih3aWR0aCkgPyBtYXhJbmxpbmVMYXlvdXRVbml0KCkgOiB3aWR0aDsKIH0K
IAorSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6dHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoY29u
c3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRD
YXNjYWRlLCBzaXplX3Qgc3RhcnRQb3NpdGlvbiwgc2l6ZV90IGVuZFBvc2l0aW9uKQoreworICAg
IGF1dG8gdGV4dCA9IGlubGluZVRleHRCb3guY29udGVudCgpOworICAgIEFTU0VSVChlbmRQb3Np
dGlvbiA+IHN0YXJ0UG9zaXRpb24gKyAxKTsKKyAgICBBU1NFUlQodGV4dFtlbmRQb3NpdGlvbiAt
IDFdID09IHNwYWNlKTsKKyAgICByZXR1cm4gd2lkdGgoaW5saW5lVGV4dEJveCwgZm9udENhc2Nh
ZGUsIHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uLCB7IH0sIFRleHRVdGlsOjpVc2VUcmFpbGlu
Z1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246OlllcykgLSAKKyAgICAgICAgd2lkdGgo
aW5saW5lVGV4dEJveCwgZm9udENhc2NhZGUsIHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uIC0g
MSwgeyB9LCBUZXh0VXRpbDo6VXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0
aW9uOjpObyk7Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0SXRlcmF0b3I+CiBzdGF0aWMg
dm9pZCBmYWxsYmFja0ZvbnRzRm9yUnVuV2l0aEl0ZXJhdG9yKEhhc2hTZXQ8Y29uc3QgRm9udCo+
JiBmYWxsYmFja0ZvbnRzLCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIGNvbnN0IFRl
eHRSdW4mIHJ1biwgVGV4dEl0ZXJhdG9yJiB0ZXh0SXRlcmF0b3IpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRV
dGlsLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90
ZXh0L1RleHRVdGlsLmgKaW5kZXggOTZjNzcwOTVkNzY5ZGQwMzgzOWFiMzJhMjI1Mzk0ZmY0YWQx
OWZmMC4uNGJiMDgwOTliNDY2MjY0MWMwYjZmMTM5NTUyYWIyYThkMGNhZmY4OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9U
ZXh0VXRpbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL3RleHQvVGV4dFV0aWwuaApAQCAtNDYsNyArNDYsMTEgQEAgY2xhc3MgVGV4dFV0aWwg
ewogcHVibGljOgogICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGlu
ZVRleHRJdGVtJiwgY29uc3QgRm9udENhc2NhZGUmLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRM
b2dpY2FsTGVmdCk7CiAgICAgc3RhdGljIElubGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5s
aW5lVGV4dEl0ZW0mLCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVk
IHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCk7Ci0gICAgc3RhdGljIElu
bGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYsIGNvbnN0IEZvbnRDYXNj
YWRlJiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVu
dExvZ2ljYWxMZWZ0KTsKKworICAgIGVudW0gY2xhc3MgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVh
c3VyaW5nT3B0aW1pemF0aW9uIDogdWludDhfdCB7IFllcywgTm8gfTsKKyAgICBzdGF0aWMgSW5s
aW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiwgY29uc3QgRm9udENhc2Nh
ZGUmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50
TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiA9
IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzKTsKKworICAg
IHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKGNvbnN0IElu
bGluZVRleHRCb3gmLCBjb25zdCBGb250Q2FzY2FkZSYsIHNpemVfdCBzdGFydFBvc2l0aW9uLCBz
aXplX3QgZW5kUG9zaXRpb24pOwogCiAgICAgdXNpbmcgRmFsbGJhY2tGb250TGlzdCA9IEhhc2hT
ZXQ8Y29uc3QgRm9udCo+OwogICAgIHN0YXRpYyBGYWxsYmFja0ZvbnRMaXN0IGZhbGxiYWNrRm9u
dHNGb3JSdW4oY29uc3QgTGluZTo6UnVuJiwgY29uc3QgUmVuZGVyU3R5bGUmKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>