<?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>228727</bug_id>
          
          <creation_ts>2021-08-02 20:59:33 -0700</creation_ts>
          <short_desc>[LFC][IFC] Add support for justified non-breaking space</short_desc>
          <delta_ts>2021-08-20 14:24:53 -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>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>1781533</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-08-02 20:59:33 -0700</bug_when>
    <thetext>we currently bail out when we see a non-breaking space when the content is text-align: justify</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781534</commentid>
    <comment_count>1</comment_count>
      <attachid>434817</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-08-02 21:06:14 -0700</bug_when>
    <thetext>Created attachment 434817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781715</commentid>
    <comment_count>2</comment_count>
      <attachid>434858</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-08-03 13:00:41 -0700</bug_when>
    <thetext>Created attachment 434858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783101</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-09 21:00:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/81726342&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785824</commentid>
    <comment_count>4</comment_count>
      <attachid>435986</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-08-20 08:09:51 -0700</bug_when>
    <thetext>Created attachment 435986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785840</commentid>
    <comment_count>5</comment_count>
      <attachid>435990</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-08-20 08:29:27 -0700</bug_when>
    <thetext>Created attachment 435990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785984</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-20 14:24:51 -0700</bug_when>
    <thetext>Committed r281337 (240754@main): &lt;https://commits.webkit.org/240754@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 435990.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434817</attachid>
            <date>2021-08-02 21:06:14 -0700</date>
            <delta_ts>2021-08-03 13:00:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228727-20210802210613.patch</filename>
            <type>text/plain</type>
            <size>18356</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDlhNWZlMGY4MGE4MmYw
MzE1NTQzNTMyNTJkY2M0NmVjNmJjNTMxNy4uZjMxOGRlYmRlM2IxZmNjNGI1Nzk5YWJjNjc3YTFh
YjNhNTc0ZjM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA4LTAyICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEFkZCBzdXBw
b3J0IGZvciBqdXN0aWZpZWQgbm9uLWJyZWFraW5nIHNwYWNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg3MjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMZXQncyB1c2UgRm9udENhc2NhZGU6OmV4cGFu
c2lvbk9wcG9ydHVuaXR5Q291bnQgdG8gZmlndXJlIG91dCB0aGUgbnVtYmVyIG9mIGV4cGFuc2lv
biBjb3VudHMgaW4gYSBydW4uCisgICAgICAgIEl0IGhlbHBzIHdpdGggZmluZGluZyBub24tYnJl
YWthYmxlIHNwYWNlIGluIGFuIG90aGVyd2lzZSBub24td2hpdGVzcGFjZSBjb250ZW50IChmb28m
bmJzcDtiYXIgd2hlcmUgdGhlIGNvbnRldCBmb3JtcyBvbmUgcnVuIGJ1dCB0aGUgYmVjYXVzZQor
ICAgICAgICBvZiB0aGUgbm9uLWJyZWFrYWJsZSBfc3BhY2VfIGluIHRoZSBtaWRkbGUsIGl0IGFs
c28gcHJvZHVjZXMgYW4gZXhwYW5zaW9uIG9wcG9ydHVuaXR5KS4KKyAgICAgICAgVGhpcyBwYXRj
aCBtb3ZlcyBhbGwgdGhlIGV4cGFuc2lvbiBoYW5kbGluZyBvdmVyIHRvIExpbmU6OmFwcGx5UnVu
RXhwYW5zaW9uIGFzIHdlIGFueXdheSBuZWVkIHRvIHdhbGsgdGhlIGNvbnRlbnQgdG8gZmluZCBz
dWNoIHNwYWNlcyAoaS5lLiBub3Qgd29ydGggdHJ5aW5nIHRvIHByZS1jb21wdXRlIHRoZW0pLgor
CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGx5UnVuRXhwYW5zaW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpSdW4pOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmV4cGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmU6OlJ1bjo6dmlzdWFsbHlDb2xsYXBzZVRyYWlsaW5nV2hpdGVzcGFjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6c2V0RXhwYW5zaW9uQmVoYXZpb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmV4cGFuc2lvbkJl
aGF2aW9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6
UnVuOjpzZXRIb3Jpem9udGFsRXhwYW5zaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmg6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmU6OlJ1bjo6ZXhwYW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6TGluZTo6UnVuOjpzZXRFeHBhbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpMaW5lOjpSdW46Omhhc0V4cGFuc2lvbk9wcG9ydHVuaXR5IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpleHBhbnNpb25PcHBvcnR1bml0
eUNvdW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRl
Z3JhdGlvbjo6Y2FuVXNlRm9yQ2hhcmFjdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpjYW5Vc2VGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVn
cmF0aW9uOjpjYW5Vc2VGb3JGb250QW5kVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJ
bnRlZ3JhdGlvbjo6Y2FuVXNlRm9yU3R5bGUpOgorCiAyMDIxLTA3LTI4ICBGcsOpZMOpcmljIFdh
bmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIENyYXNoIGluIEFwcGx5U3R5bGVDb21t
YW5kOjphcHBseVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUu
Y3BwCmluZGV4IGViYzEzNzY3MzM5YWEwYmJiNTA4MzRhN2Y3ODYwNzAxNGU4MTY3MDguLmYyMThi
NWU1NjRhMTNmNmZlODRiMWJiOTAyNGE4YTk5MmM1ZmJkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmUuY3BwCkBAIC03MywzNiArNzMsNTkgQEAgdm9pZCBMaW5lOjphcHBseVJ1bkV4cGFuc2lv
bihJbmxpbmVMYXlvdXRVbml0IGV4dHJhSG9yaXpvbnRhbFNwYWNlKQogICAgIC8vIHRoZSBsYXN0
IGxpbmUgYmVmb3JlIGEgZm9yY2VkIGJyZWFrIG9yIHRoZSBlbmQgb2YgdGhlIGJsb2NrIGlzIHN0
YXJ0LWFsaWduZWQuCiAgICAgaWYgKG1fcnVucy5pc0VtcHR5KCkgfHwgbV9ydW5zLmxhc3QoKS5p
c0xpbmVCcmVhaygpKQogICAgICAgICByZXR1cm47CisgICAgLy8gQW55dGhpbmcgdG8gZGlzdHJp
YnV0ZT8KKyAgICBpZiAoIWV4dHJhSG9yaXpvbnRhbFNwYWNlKQorICAgICAgICByZXR1cm47CiAK
LSAgICBhdXRvIGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQgPSAwOwotICAgIFJ1biogbGFzdFJ1
bldpdGhDb250ZW50ID0gbnVsbHB0cjsKICAgICAvLyBDb2xsZWN0IGFuZCBkaXN0cmlidXRlIHRo
ZSBleHBhbnNpb24gb3Bwb3J0dW5pdGllcy4KLSAgICBmb3IgKGF1dG8mIHJ1biA6IG1fcnVucykg
ewotICAgICAgICBleHBhbnNpb25PcHBvcnR1bml0eUNvdW50ICs9IHJ1bi5leHBhbnNpb25PcHBv
cnR1bml0eUNvdW50KCk7CisgICAgc2l6ZV90IGxpbmVFeHBhbnNpb25PcHBvcnR1bml0aWVzID0g
MDsKKyAgICBWZWN0b3I8c2l6ZV90PiBydW5zRXhwYW5zaW9uT3Bwb3J0dW5pdGllcyhtX3J1bnMu
c2l6ZSgpKTsKKyAgICBWZWN0b3I8RXhwYW5zaW9uQmVoYXZpb3I+IHJ1bnNFeHBhbnNpb25CZWhh
dmlvcnMobV9ydW5zLnNpemUoKSk7CisgICAgYXV0byBsYXN0UnVuSW5kZXhXaXRoQ29udGVudCA9
IHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiB7IH07CisKKyAgICAvLyBMaW5lIHN0YXJ0IGJlaGF2ZXMg
YXMgaWYgd2UgaGFkIGFuIGV4cGFuc2lvbiBoZXJlIChpLmUuIGZpc3QgcnVucyBzaG91bGQgbm90
IHN0YXJ0IHdpdGggYWxsb3dpbmcgbGVmdCBleHBhbnNpb24pLgorICAgIGF1dG8gcnVuSXNBZnRl
ckV4cGFuc2lvbiA9IHRydWU7CisgICAgZm9yIChzaXplX3QgcnVuSW5kZXggPSAwOyBydW5JbmRl
eCA8IG1fcnVucy5zaXplKCk7ICsrcnVuSW5kZXgpIHsKKyAgICAgICAgYXV0byYgcnVuID0gbV9y
dW5zW3J1bkluZGV4XTsKKyAgICAgICAgYXV0byYgc3R5bGUgPSBydW4uc3R5bGUoKTsKKyAgICAg
ICAgaW50IGV4cGFuc2lvbkJlaGF2aW9yID0gRGVmYXVsdEV4cGFuc2lvbjsKKyAgICAgICAgc2l6
ZV90IGV4cGFuc2lvbk9wcG9ydHVuaXRpZXNJblJ1biA9IDA7CisKKyAgICAgICAgaWYgKHJ1bi5p
c1RleHQoKSAmJiAhVGV4dFV0aWw6OnNob3VsZFByZXNlcnZlU3BhY2VzQW5kVGFicyhydW4ubGF5
b3V0Qm94KCkpKSB7CisgICAgICAgICAgICBpZiAoc3R5bGUudGV4dENvbWJpbmUoKSA9PSBUZXh0
Q29tYmluZTo6SG9yaXpvbnRhbCkKKyAgICAgICAgICAgICAgICBleHBhbnNpb25CZWhhdmlvciA9
IEZvcmJpZExlZnRFeHBhbnNpb24gfCBGb3JiaWRSaWdodEV4cGFuc2lvbjsKKyAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgIGV4cGFuc2lvbkJlaGF2aW9yID0gKHJ1bklzQWZ0ZXJF
eHBhbnNpb24gPyBGb3JiaWRMZWZ0RXhwYW5zaW9uIDogQWxsb3dMZWZ0RXhwYW5zaW9uKSB8IEFs
bG93UmlnaHRFeHBhbnNpb247CisgICAgICAgICAgICAgICAgc3RkOjp0aWUoZXhwYW5zaW9uT3Bw
b3J0dW5pdGllc0luUnVuLCBydW5Jc0FmdGVyRXhwYW5zaW9uKSA9IEZvbnRDYXNjYWRlOjpleHBh
bnNpb25PcHBvcnR1bml0eUNvdW50KFN0cmluZ1ZpZXcocnVuLnRleHRDb250ZW50KCktPmNvbnRl
bnQoKSkuc3Vic3RyaW5nKHJ1bi50ZXh0Q29udGVudCgpLT5zdGFydCgpLCBydW4udGV4dENvbnRl
bnQoKS0+bGVuZ3RoKCkpLCBydW4uc3R5bGUoKS5kaXJlY3Rpb24oKSwgZXhwYW5zaW9uQmVoYXZp
b3IpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHJ1bi5pc0JveCgpKQorICAg
ICAgICAgICAgcnVuSXNBZnRlckV4cGFuc2lvbiA9IGZhbHNlOworCisgICAgICAgIHJ1bnNFeHBh
bnNpb25CZWhhdmlvcnNbcnVuSW5kZXhdID0gZXhwYW5zaW9uQmVoYXZpb3I7CisgICAgICAgIHJ1
bnNFeHBhbnNpb25PcHBvcnR1bml0aWVzW3J1bkluZGV4XSA9IGV4cGFuc2lvbk9wcG9ydHVuaXRp
ZXNJblJ1bjsKKyAgICAgICAgbGluZUV4cGFuc2lvbk9wcG9ydHVuaXRpZXMgKz0gZXhwYW5zaW9u
T3Bwb3J0dW5pdGllc0luUnVuOworCiAgICAgICAgIGlmIChydW4uaXNUZXh0KCkgfHwgcnVuLmlz
Qm94KCkpCi0gICAgICAgICAgICBsYXN0UnVuV2l0aENvbnRlbnQgPSAmcnVuOworICAgICAgICAg
ICAgbGFzdFJ1bkluZGV4V2l0aENvbnRlbnQgPSBydW5JbmRleDsKICAgICB9CiAgICAgLy8gTmVl
ZCB0byBmaXggdXAgdGhlIGxhc3QgcnVuJ3MgdHJhaWxpbmcgZXhwYW5zaW9uLgotICAgIGlmIChs
YXN0UnVuV2l0aENvbnRlbnQgJiYgbGFzdFJ1bldpdGhDb250ZW50LT5oYXNFeHBhbnNpb25PcHBv
cnR1bml0eSgpKSB7CisgICAgaWYgKGxhc3RSdW5JbmRleFdpdGhDb250ZW50ICYmIHJ1bnNFeHBh
bnNpb25PcHBvcnR1bml0aWVzWypsYXN0UnVuSW5kZXhXaXRoQ29udGVudF0pIHsKICAgICAgICAg
Ly8gVHVybiBvZmYgdGhlIHRyYWlsaW5nIGJpdHMgZmlyc3QgYW5kIGFkZCB0aGUgZm9yYmlkIHRy
YWlsaW5nIGV4cGFuc2lvbi4KLSAgICAgICAgYXV0byBsZWFkaW5nRXhwYW5zaW9uID0gbGFzdFJ1
bldpdGhDb250ZW50LT5leHBhbnNpb25CZWhhdmlvcigpICYgTGVmdEV4cGFuc2lvbk1hc2s7Ci0g
ICAgICAgIGxhc3RSdW5XaXRoQ29udGVudC0+c2V0RXhwYW5zaW9uQmVoYXZpb3IobGVhZGluZ0V4
cGFuc2lvbiB8IEZvcmJpZFJpZ2h0RXhwYW5zaW9uKTsKKyAgICAgICAgYXV0byBsZWFkaW5nRXhw
YW5zaW9uID0gcnVuc0V4cGFuc2lvbkJlaGF2aW9yc1sqbGFzdFJ1bkluZGV4V2l0aENvbnRlbnRd
ICYgTGVmdEV4cGFuc2lvbk1hc2s7CisgICAgICAgIHJ1bnNFeHBhbnNpb25CZWhhdmlvcnNbKmxh
c3RSdW5JbmRleFdpdGhDb250ZW50XSA9IGxlYWRpbmdFeHBhbnNpb24gfCBGb3JiaWRSaWdodEV4
cGFuc2lvbjsKICAgICB9CiAgICAgLy8gQW55dGhpbmcgdG8gZGlzdHJpYnV0ZT8KLSAgICBpZiAo
IWV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQgfHwgIWV4dHJhSG9yaXpvbnRhbFNwYWNlKQorICAg
IGlmICghbGluZUV4cGFuc2lvbk9wcG9ydHVuaXRpZXMpCiAgICAgICAgIHJldHVybjsKICAgICAv
LyBEaXN0cmlidXRlIHRoZSBleHRyYSBzcGFjZS4KLSAgICBhdXRvIGV4cGFuc2lvblRvRGlzdHJp
YnV0ZSA9IGV4dHJhSG9yaXpvbnRhbFNwYWNlIC8gZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudDsK
KyAgICBhdXRvIGV4cGFuc2lvblRvRGlzdHJpYnV0ZSA9IGV4dHJhSG9yaXpvbnRhbFNwYWNlIC8g
bGluZUV4cGFuc2lvbk9wcG9ydHVuaXRpZXM7CiAgICAgYXV0byBhY2N1bXVsYXRlZEV4cGFuc2lv
biA9IElubGluZUxheW91dFVuaXQgeyB9OwotICAgIGZvciAoYXV0byYgcnVuIDogbV9ydW5zKSB7
CisgICAgZm9yIChzaXplX3QgcnVuSW5kZXggPSAwOyBydW5JbmRleCA8IG1fcnVucy5zaXplKCk7
ICsrcnVuSW5kZXgpIHsKKyAgICAgICAgYXV0byYgcnVuID0gbV9ydW5zW3J1bkluZGV4XTsKICAg
ICAgICAgLy8gRXhwYW5kIGFuZCBtb3ZlIHJ1bnMgYnkgdGhlIGFjY3VtdWxhdGVkIGV4cGFuc2lv
bi4KICAgICAgICAgcnVuLm1vdmVIb3Jpem9udGFsbHkoYWNjdW11bGF0ZWRFeHBhbnNpb24pOwot
ICAgICAgICBpZiAoIXJ1bi5oYXNFeHBhbnNpb25PcHBvcnR1bml0eSgpKQotICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgIEFTU0VSVChydW4uZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCgp
KTsKLSAgICAgICAgYXV0byBjb21wdXRlZEV4cGFuc2lvbiA9IGV4cGFuc2lvblRvRGlzdHJpYnV0
ZSAqIHJ1bi5leHBhbnNpb25PcHBvcnR1bml0eUNvdW50KCk7Ci0gICAgICAgIC8vIEZJWE1FOiBD
aGVjayB3aHkgd2UgbmVlZCB0byBzZXQgYm90aC4KLSAgICAgICAgcnVuLnNldEhvcml6b250YWxF
eHBhbnNpb24oY29tcHV0ZWRFeHBhbnNpb24pOworICAgICAgICBhdXRvIGNvbXB1dGVkRXhwYW5z
aW9uID0gZXhwYW5zaW9uVG9EaXN0cmlidXRlICogcnVuc0V4cGFuc2lvbk9wcG9ydHVuaXRpZXNb
cnVuSW5kZXhdOworICAgICAgICBydW4uc2V0RXhwYW5zaW9uKHsgcnVuc0V4cGFuc2lvbkJlaGF2
aW9yc1tydW5JbmRleF0sIGNvbXB1dGVkRXhwYW5zaW9uIH0pOwogICAgICAgICBydW4uc2hyaW5r
SG9yaXpvbnRhbGx5KC1jb21wdXRlZEV4cGFuc2lvbik7CiAgICAgICAgIGFjY3VtdWxhdGVkRXhw
YW5zaW9uICs9IGNvbXB1dGVkRXhwYW5zaW9uOwogICAgIH0KQEAgLTQzNiwyMCArNDU5LDE0IEBA
IExpbmU6OlJ1bjo6UnVuKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgSW5s
aW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmCiAgICAgLCBtX2xheW91dEJveCgmaW5saW5lVGV4dEl0
ZW0ubGF5b3V0Qm94KCkpCiAgICAgLCBtX2xvZ2ljYWxMZWZ0KGxvZ2ljYWxMZWZ0KQogICAgICwg
bV9sb2dpY2FsV2lkdGgobG9naWNhbFdpZHRoKQotICAgICwgbV93aGl0ZXNwYWNlSXNFeHBhbnNp
b25PcHBvcnR1bml0eSghVGV4dFV0aWw6OnNob3VsZFByZXNlcnZlU3BhY2VzQW5kVGFicyhpbmxp
bmVUZXh0SXRlbS5sYXlvdXRCb3goKSkpCiAgICAgLCBtX3RyYWlsaW5nV2hpdGVzcGFjZVR5cGUo
dHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShpbmxpbmVUZXh0SXRlbSkpCisgICAgLCBtX3RyYWlsaW5n
V2hpdGVzcGFjZVdpZHRoKG1fdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZSAhPSBUcmFpbGluZ1doaXRl
c3BhY2U6Ok5vbmUgPyBsb2dpY2FsV2lkdGggOiBJbmxpbmVMYXlvdXRVbml0IHsgfSkKICAgICAs
IG1fdGV4dENvbnRlbnQoeyBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBtX3RyYWlsaW5nV2hpdGVz
cGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpDb2xsYXBzZWQgPyAxIDogaW5saW5lVGV4
dEl0ZW0ubGVuZ3RoKCksIGlubGluZVRleHRJdGVtLmlubGluZVRleHRCb3goKS5jb250ZW50KCkg
fSkKIHsKLSAgICBpZiAobV90cmFpbGluZ1doaXRlc3BhY2VUeXBlICE9IFRyYWlsaW5nV2hpdGVz
cGFjZTo6Tm9uZSkgewotICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZVdpZHRoID0gbG9naWNh
bFdpZHRoOwotICAgICAgICBpZiAobV93aGl0ZXNwYWNlSXNFeHBhbnNpb25PcHBvcnR1bml0eSkK
LSAgICAgICAgICAgIG1fZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCA9IDE7Ci0gICAgfQogfQog
CiB2b2lkIExpbmU6OlJ1bjo6ZXhwYW5kKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0
SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCiB7Ci0gICAgLy8gRklYTUU6IFRo
aXMgaXMgYSB2ZXJ5IHNpbXBsZSBleHBhbnNpb24gbWVyZ2UuIFdlIHNob3VsZCBldmVudHVhbGx5
IHN3aXRjaCBvdmVyIHRvIEZvbnRDYXNjYWRlOjpleHBhbnNpb25PcHBvcnR1bml0eUNvdW50Lgog
ICAgIEFTU0VSVCghaGFzQ29sbGFwc2VkVHJhaWxpbmdXaGl0ZXNwYWNlKCkpOwogICAgIEFTU0VS
VChpc1RleHQoKSAmJiBpbmxpbmVUZXh0SXRlbS5pc1RleHQoKSk7CiAgICAgQVNTRVJUKG1fbGF5
b3V0Qm94ID09ICZpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSk7CkBAIC00NTksMTQgKzQ3Niwx
MCBAQCB2b2lkIExpbmU6OlJ1bjo6ZXhwYW5kKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVU
ZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsbwogCiAgICAgaWYgKG1fdHJhaWxpbmdXaGl0ZXNw
YWNlVHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6Ok5vbmUpIHsKICAgICAgICAgbV90cmFpbGlu
Z1doaXRlc3BhY2VXaWR0aCA9IHsgfTsKLSAgICAgICAgc2V0RXhwYW5zaW9uQmVoYXZpb3IoQWxs
b3dMZWZ0RXhwYW5zaW9uIHwgQWxsb3dSaWdodEV4cGFuc2lvbik7CiAgICAgICAgIG1fdGV4dENv
bnRlbnQtPmV4cGFuZChpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgbV90cmFpbGluZ1doaXRlc3BhY2VXaWR0aCArPSBsb2dpY2FsV2lkdGg7Ci0g
ICAgaWYgKG1fd2hpdGVzcGFjZUlzRXhwYW5zaW9uT3Bwb3J0dW5pdHkpCi0gICAgICAgICsrbV9l
eHBhbnNpb25PcHBvcnR1bml0eUNvdW50OwotICAgIHNldEV4cGFuc2lvbkJlaGF2aW9yKERlZmF1
bHRFeHBhbnNpb24pOwogICAgIG1fdGV4dENvbnRlbnQtPmV4cGFuZChtX3RyYWlsaW5nV2hpdGVz
cGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpDb2xsYXBzZWQgPyAxIDogaW5saW5lVGV4
dEl0ZW0ubGVuZ3RoKCkpOwogfQogCkBAIC01MDksMzUgKzUyMiwxMCBAQCBJbmxpbmVMYXlvdXRV
bml0IExpbmU6OlJ1bjo6dmlzdWFsbHlDb2xsYXBzZVRyYWlsaW5nV2hpdGVzcGFjZShJbmxpbmVM
YXlvdXRVbml0CiAgICAgaWYgKCFtX3RyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKSB7CiAgICAgICAg
IC8vIFdlIHRyaW1tZWQgdGhlIHRyYWlsaW5nIHdoaXRlc3BhY2UgY29tcGxldGVseS4KICAgICAg
ICAgbV90cmFpbGluZ1doaXRlc3BhY2VUeXBlID0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpOb25lOwot
Ci0gICAgICAgIGlmIChtX3doaXRlc3BhY2VJc0V4cGFuc2lvbk9wcG9ydHVuaXR5KSB7Ci0gICAg
ICAgICAgICBBU1NFUlQobV9leHBhbnNpb25PcHBvcnR1bml0eUNvdW50KTsKLSAgICAgICAgICAg
IG1fZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudC0tOwotICAgICAgICB9Ci0gICAgICAgIHNldEV4
cGFuc2lvbkJlaGF2aW9yKEFsbG93TGVmdEV4cGFuc2lvbiB8IEFsbG93UmlnaHRFeHBhbnNpb24p
OwogICAgIH0KICAgICByZXR1cm4gdHJpbW1lZFdpZHRoOwogfQogCi12b2lkIExpbmU6OlJ1bjo6
c2V0RXhwYW5zaW9uQmVoYXZpb3IoRXhwYW5zaW9uQmVoYXZpb3IgZXhwYW5zaW9uQmVoYXZpb3Ip
Ci17Ci0gICAgQVNTRVJUKGlzVGV4dCgpKTsKLSAgICBtX2V4cGFuc2lvbi5iZWhhdmlvciA9IGV4
cGFuc2lvbkJlaGF2aW9yOwotfQotCi1FeHBhbnNpb25CZWhhdmlvciBMaW5lOjpSdW46OmV4cGFu
c2lvbkJlaGF2aW9yKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoaXNUZXh0KCkpOwotICAgIHJldHVy
biBtX2V4cGFuc2lvbi5iZWhhdmlvcjsKLX0KLQotdm9pZCBMaW5lOjpSdW46OnNldEhvcml6b250
YWxFeHBhbnNpb24oSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsRXhwYW5zaW9uKQotewotICAgIEFT
U0VSVChpc1RleHQoKSk7Ci0gICAgQVNTRVJUKGhhc0V4cGFuc2lvbk9wcG9ydHVuaXR5KCkpOwot
ICAgIG1fZXhwYW5zaW9uLmhvcml6b250YWxFeHBhbnNpb24gPSBsb2dpY2FsRXhwYW5zaW9uOwot
fQotCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAppbmRleCA1MGZlYjBjZmQ2Yzc5OGM2
YjUzZWQ4MzFhYjM1YzU0MWQyZjIyM2IxLi5jNWNiYWJmMTY5YjFlNGI3YjMzNDJjYTQwNjkwNjY2
NDk1YWI4YjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCkBAIC03OCw5ICs3OCw2IEBAIHB1
YmxpYzoKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJl
dHVybiBsb2dpY2FsTGVmdCgpICsgbG9naWNhbFdpZHRoKCk7IH0KIAogICAgICAgICBjb25zdCBM
aW5lUnVuOjpFeHBhbnNpb24mIGV4cGFuc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZXhwYW5zaW9u
OyB9Ci0gICAgICAgIGJvb2wgaGFzRXhwYW5zaW9uT3Bwb3J0dW5pdHkoKSBjb25zdCB7IHJldHVy
biBtX2V4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQ7IH0KLSAgICAgICAgRXhwYW5zaW9uQmVoYXZp
b3IgZXhwYW5zaW9uQmVoYXZpb3IoKSBjb25zdDsKLSAgICAgICAgdW5zaWduZWQgZXhwYW5zaW9u
T3Bwb3J0dW5pdHlDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZXhwYW5zaW9uT3Bwb3J0dW5pdHlD
b3VudDsgfQogCiAgICAgICAgIGJvb2wgaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkgY29uc3QgeyBy
ZXR1cm4gbV90cmFpbGluZ1doaXRlc3BhY2VUeXBlICE9IFRyYWlsaW5nV2hpdGVzcGFjZTo6Tm9u
ZTsgfQogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKCkg
Y29uc3QgeyByZXR1cm4gbV90cmFpbGluZ1doaXRlc3BhY2VXaWR0aDsgfQpAQCAtOTUsOCArOTIs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgZXhwYW5kKGNvbnN0IElubGluZVRleHRJdGVtJiwg
SW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpOwogICAgICAgICB2b2lkIG1vdmVIb3Jpem9u
dGFsbHkoSW5saW5lTGF5b3V0VW5pdCBvZmZzZXQpIHsgbV9sb2dpY2FsTGVmdCArPSBvZmZzZXQ7
IH0KICAgICAgICAgdm9pZCBzaHJpbmtIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCB3aWR0
aCkgeyBtX2xvZ2ljYWxXaWR0aCAtPSB3aWR0aDsgfQotICAgICAgICB2b2lkIHNldEV4cGFuc2lv
bkJlaGF2aW9yKEV4cGFuc2lvbkJlaGF2aW9yKTsKLSAgICAgICAgdm9pZCBzZXRIb3Jpem9udGFs
RXhwYW5zaW9uKElubGluZUxheW91dFVuaXQgbG9naWNhbEV4cGFuc2lvbik7CisgICAgICAgIHZv
aWQgc2V0RXhwYW5zaW9uKExpbmVSdW46OkV4cGFuc2lvbiBleHBhbnNpb24pIHsgbV9leHBhbnNp
b24gPSBleHBhbnNpb247IH0KICAgICAgICAgdm9pZCBzZXROZWVkc0h5cGhlbihJbmxpbmVMYXlv
dXRVbml0IGh5cGhlbkxvZ2ljYWxXaWR0aCk7CiAKICAgICAgICAgZW51bSBjbGFzcyBUcmFpbGlu
Z1doaXRlc3BhY2UgewpAQCAtMTE5LDEyICsxMTUsMTAgQEAgcHVibGljOgogICAgICAgICBjb25z
dCBCb3gqIG1fbGF5b3V0Qm94IHsgbnVsbHB0ciB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0
IG1fbG9naWNhbExlZnQgeyAwIH07CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV9sb2dpY2Fs
V2lkdGggeyAwIH07Ci0gICAgICAgIGJvb2wgbV93aGl0ZXNwYWNlSXNFeHBhbnNpb25PcHBvcnR1
bml0eSB7IGZhbHNlIH07CiAgICAgICAgIFRyYWlsaW5nV2hpdGVzcGFjZSBtX3RyYWlsaW5nV2hp
dGVzcGFjZVR5cGUgeyBUcmFpbGluZ1doaXRlc3BhY2U6Ok5vbmUgfTsKICAgICAgICAgSW5saW5l
TGF5b3V0VW5pdCBtX3RyYWlsaW5nV2hpdGVzcGFjZVdpZHRoIHsgMCB9OwogICAgICAgICBzdGQ6
Om9wdGlvbmFsPExpbmVSdW46OlRleHQ+IG1fdGV4dENvbnRlbnQ7CiAgICAgICAgIExpbmVSdW46
OkV4cGFuc2lvbiBtX2V4cGFuc2lvbjsKLSAgICAgICAgdW5zaWduZWQgbV9leHBhbnNpb25PcHBv
cnR1bml0eUNvdW50IHsgMCB9OwogICAgIH07CiAgICAgdXNpbmcgUnVuTGlzdCA9IFZlY3RvcjxS
dW4sIDEwPjsKICAgICBjb25zdCBSdW5MaXN0JiBydW5zKCkgY29uc3QgeyByZXR1cm4gbV9ydW5z
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAKaW5kZXggNDAwNzFmMWE3MWZhNGU3MjM3
YzU2MjY1ZTZiZmZkYzY5MzliYjc5Mi4uNGJkMjFkZjBkNDcxNWNjYjVjNDI5YmJmNGEwMGJjMTBh
ZTFiN2FiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcApAQCAtNDI3LDIxICs0Mjcs
MTEgQEAgc3RhdGljIHZvaWQgcHJpbnRNb2Rlcm5MaW5lTGF5b3V0Q292ZXJhZ2Uodm9pZCkKIH0K
ICNlbmRpZgogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gT3B0aW9uU2V0PEF2
b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yQ2hhcmFjdGVyKENoYXJhY3RlclR5cGUsIGJvb2wgdGV4
dElzSnVzdGlmaWVkLCBJbmNsdWRlUmVhc29ucyk7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFj
dGVyVHlwZT4gT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yQ2hhcmFjdGVyKENo
YXJhY3RlclR5cGUsIEluY2x1ZGVSZWFzb25zKTsKIAotdGVtcGxhdGU8PiBPcHRpb25TZXQ8QXZv
aWRhbmNlUmVhc29uPiBjYW5Vc2VGb3JDaGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyLCBib29sIHRl
eHRJc0p1c3RpZmllZCwgSW5jbHVkZVJlYXNvbnMgaW5jbHVkZVJlYXNvbnMpCit0ZW1wbGF0ZTw+
IE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVzZUZvckNoYXJhY3RlcihVQ2hhciBjaGFy
YWN0ZXIsIEluY2x1ZGVSZWFzb25zIGluY2x1ZGVSZWFzb25zKQogewogICAgIE9wdGlvblNldDxB
dm9pZGFuY2VSZWFzb24+IHJlYXNvbnM7Ci0gICAgaWYgKHRleHRJc0p1c3RpZmllZCkgewotICAg
ICAgICBpZiAoY2hhcmFjdGVyID09IG5vQnJlYWtTcGFjZSkKLSAgICAgICAgICAgIFNFVF9SRUFT
T05fQU5EX1JFVFVSTl9JRl9ORUVERUQoRmxvd0hhc0p1c3RpZmllZE5vbkJyZWFraW5nU3BhY2Us
IHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKLSAgICAgICAgLy8gSW5jbHVkZSBjaGFyYWN0ZXJz
IHVwIHRvIExhdGluIEV4dGVuZGVkLUIgYW5kIHNvbWUgcHVuY3R1YXRpb24gcmFuZ2Ugd2hlbiB0
ZXh0IGlzIGp1c3RpZmllZC4KLSAgICAgICAgYm9vbCBpc0xhdGluSW5jbHVkaW5nRXh0ZW5kZWRC
ID0gY2hhcmFjdGVyIDw9IDB4MDFGRjsKLSAgICAgICAgYm9vbCBpc1B1bmN0dWF0aW9uUmFuZ2Ug
PSBjaGFyYWN0ZXIgPj0gMHgyMDEwICYmIGNoYXJhY3RlciA8PSAweDIwMjc7Ci0gICAgICAgIGlm
ICghKGlzTGF0aW5JbmNsdWRpbmdFeHRlbmRlZEIgfHwgaXNQdW5jdHVhdGlvblJhbmdlKSkKLSAg
ICAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQoRmxvd0hhc0p1c3RpZmll
ZE5vbkxhdGluVGV4dCwgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwotICAgIH0KLQogICAgIGlm
IChVMTZfSVNfU1VSUk9HQVRFKGNoYXJhY3RlcikpCiAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JF
VFVSTl9JRl9ORUVERUQoRmxvd1RleHRIYXNTdXJyb2dhdGVQYWlyLCByZWFzb25zLCBpbmNsdWRl
UmVhc29ucyk7CiAKQEAgLTQ1NSwxNiArNDQ1LDEzIEBAIHRlbXBsYXRlPD4gT3B0aW9uU2V0PEF2
b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yQ2hhcmFjdGVyKFVDaGFyIGNoYXJhY3RlciwgYm9vbCB0
CiAgICAgcmV0dXJuIHJlYXNvbnM7CiB9CiAKLXRlbXBsYXRlPD4gT3B0aW9uU2V0PEF2b2lkYW5j
ZVJlYXNvbj4gY2FuVXNlRm9yQ2hhcmFjdGVyKExDaGFyIGNoYXJhY3RlciwgYm9vbCB0ZXh0SXNK
dXN0aWZpZWQsIEluY2x1ZGVSZWFzb25zKQordGVtcGxhdGU8PiBPcHRpb25TZXQ8QXZvaWRhbmNl
UmVhc29uPiBjYW5Vc2VGb3JDaGFyYWN0ZXIoTENoYXIsIEluY2x1ZGVSZWFzb25zKQogewotICAg
IGlmICh0ZXh0SXNKdXN0aWZpZWQgJiYgY2hhcmFjdGVyID09IG5vQnJlYWtTcGFjZSkKLSAgICAg
ICAgcmV0dXJuIHsgQXZvaWRhbmNlUmVhc29uOjpGbG93SGFzSnVzdGlmaWVkTm9uQnJlYWtpbmdT
cGFjZSB9OwogICAgIHJldHVybiB7IH07CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0
ZXJUeXBlPgotc3RhdGljIE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVzZUZvclRleHQo
Y29uc3QgQ2hhcmFjdGVyVHlwZSogdGV4dCwgdW5zaWduZWQgbGVuZ3RoLCBjb25zdCBGb250Q2Fz
Y2FkZSYgZm9udENhc2NhZGUsIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGxpbmVIZWlnaHRDb25zdHJh
aW50LAotICAgIGJvb2wgdGV4dElzSnVzdGlmaWVkLCBJbmNsdWRlUmVhc29ucyBpbmNsdWRlUmVh
c29ucykKK3N0YXRpYyBPcHRpb25TZXQ8QXZvaWRhbmNlUmVhc29uPiBjYW5Vc2VGb3JUZXh0KGNv
bnN0IENoYXJhY3RlclR5cGUqIHRleHQsIHVuc2lnbmVkIGxlbmd0aCwgY29uc3QgRm9udENhc2Nh
ZGUmIGZvbnRDYXNjYWRlLCBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBsaW5lSGVpZ2h0Q29uc3RyYWlu
dCwgSW5jbHVkZVJlYXNvbnMgaW5jbHVkZVJlYXNvbnMpCiB7CiAgICAgT3B0aW9uU2V0PEF2b2lk
YW5jZVJlYXNvbj4gcmVhc29uczsKICAgICBhdXRvJiBwcmltYXJ5Rm9udCA9IGZvbnRDYXNjYWRl
LnByaW1hcnlGb250KCk7CkBAIC00NzksNyArNDY2LDcgQEAgc3RhdGljIE9wdGlvblNldDxBdm9p
ZGFuY2VSZWFzb24+IGNhblVzZUZvclRleHQoY29uc3QgQ2hhcmFjdGVyVHlwZSogdGV4dCwgdW5z
aWcKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAg
ICBhdXRvIGNoYXJhY3RlciA9IHRleHRbaV07Ci0gICAgICAgIGF1dG8gY2hhcmFjdGVyUmVhc29u
cyA9IGNhblVzZUZvckNoYXJhY3RlcihjaGFyYWN0ZXIsIHRleHRJc0p1c3RpZmllZCwgaW5jbHVk
ZVJlYXNvbnMpOworICAgICAgICBhdXRvIGNoYXJhY3RlclJlYXNvbnMgPSBjYW5Vc2VGb3JDaGFy
YWN0ZXIoY2hhcmFjdGVyLCBpbmNsdWRlUmVhc29ucyk7CiAgICAgICAgIGlmIChjaGFyYWN0ZXJS
ZWFzb25zKQogICAgICAgICAgICAgQUREX1JFQVNPTlNfQU5EX1JFVFVSTl9JRl9ORUVERUQoY2hh
cmFjdGVyUmVhc29ucywgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwogCkBAIC00OTYsMTEgKzQ4
MywxMSBAQCBzdGF0aWMgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yVGV4dChj
b25zdCBDaGFyYWN0ZXJUeXBlKiB0ZXh0LCB1bnNpZwogICAgIHJldHVybiByZWFzb25zOwogfQog
Ci1zdGF0aWMgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yVGV4dChTdHJpbmdW
aWV3IHRleHQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgc3RkOjpvcHRpb25hbDxm
bG9hdD4gbGluZUhlaWdodENvbnN0cmFpbnQsIGJvb2wgdGV4dElzSnVzdGlmaWVkLCBJbmNsdWRl
UmVhc29ucyBpbmNsdWRlUmVhc29ucykKK3N0YXRpYyBPcHRpb25TZXQ8QXZvaWRhbmNlUmVhc29u
PiBjYW5Vc2VGb3JUZXh0KFN0cmluZ1ZpZXcgdGV4dCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRD
YXNjYWRlLCBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBsaW5lSGVpZ2h0Q29uc3RyYWludCwgSW5jbHVk
ZVJlYXNvbnMgaW5jbHVkZVJlYXNvbnMpCiB7CiAgICAgaWYgKHRleHQuaXM4Qml0KCkpCi0gICAg
ICAgIHJldHVybiBjYW5Vc2VGb3JUZXh0KHRleHQuY2hhcmFjdGVyczgoKSwgdGV4dC5sZW5ndGgo
KSwgZm9udENhc2NhZGUsIGxpbmVIZWlnaHRDb25zdHJhaW50LCB0ZXh0SXNKdXN0aWZpZWQsIGlu
Y2x1ZGVSZWFzb25zKTsKLSAgICByZXR1cm4gY2FuVXNlRm9yVGV4dCh0ZXh0LmNoYXJhY3RlcnMx
NigpLCB0ZXh0Lmxlbmd0aCgpLCBmb250Q2FzY2FkZSwgbGluZUhlaWdodENvbnN0cmFpbnQsIHRl
eHRJc0p1c3RpZmllZCwgaW5jbHVkZVJlYXNvbnMpOworICAgICAgICByZXR1cm4gY2FuVXNlRm9y
VGV4dCh0ZXh0LmNoYXJhY3RlcnM4KCksIHRleHQubGVuZ3RoKCksIGZvbnRDYXNjYWRlLCBsaW5l
SGVpZ2h0Q29uc3RyYWludCwgaW5jbHVkZVJlYXNvbnMpOworICAgIHJldHVybiBjYW5Vc2VGb3JU
ZXh0KHRleHQuY2hhcmFjdGVyczE2KCksIHRleHQubGVuZ3RoKCksIGZvbnRDYXNjYWRlLCBsaW5l
SGVpZ2h0Q29uc3RyYWludCwgaW5jbHVkZVJlYXNvbnMpOwogfQogCiBzdGF0aWMgT3B0aW9uU2V0
PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yRm9udEFuZFRleHQoY29uc3QgUmVuZGVyQm94TW9k
ZWxPYmplY3QmIGNvbnRhaW5lciwgSW5jbHVkZVJlYXNvbnMgaW5jbHVkZVJlYXNvbnMpCkBAIC01
MTQsNyArNTAxLDYgQEAgc3RhdGljIE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVzZUZv
ckZvbnRBbmRUZXh0KGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWMKICAgICBzdGQ6Om9wdGlvbmFs
PGZsb2F0PiBsaW5lSGVpZ2h0Q29uc3RyYWludDsKICAgICBpZiAoc3R5bGUubGluZUJveENvbnRh
aW4oKS5jb250YWlucyhMaW5lQm94Q29udGFpbjo6R2x5cGhzKSkKICAgICAgICAgbGluZUhlaWdo
dENvbnN0cmFpbnQgPSBjb250YWluZXIubGluZUhlaWdodChmYWxzZSwgSG9yaXpvbnRhbExpbmUs
IFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykudG9GbG9hdCgpOwotICAgIGJvb2wgZmxvd0lz
SnVzdGlmaWVkID0gc3R5bGUudGV4dEFsaWduKCkgPT0gVGV4dEFsaWduTW9kZTo6SnVzdGlmeTsK
ICAgICBmb3IgKGNvbnN0IGF1dG8mIHRleHRSZW5kZXJlciA6IGNoaWxkcmVuT2ZUeXBlPFJlbmRl
clRleHQ+KGNvbnRhaW5lcikpIHsKICAgICAgICAgLy8gRklYTUU6IERvIG5vdCByZXR1cm4gdW50
aWwgYWZ0ZXIgY2hlY2tpbmcgYWxsIGNoaWxkcmVuLgogICAgICAgICBpZiAodGV4dFJlbmRlcmVy
LmlzQ29tYmluZVRleHQoKSkKQEAgLTUzNyw3ICs1MjMsNyBAQCBzdGF0aWMgT3B0aW9uU2V0PEF2
b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yRm9udEFuZFRleHQoY29uc3QgUmVuZGVyQm94TW9kZWxP
YmplYwogICAgICAgICAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQoRmxv
d0hhc0NvbXBsZXhGb250Q29kZVBhdGgsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKICAgICAg
ICAgfQogCi0gICAgICAgIGF1dG8gdGV4dFJlYXNvbnMgPSBjYW5Vc2VGb3JUZXh0KHRleHRSZW5k
ZXJlci5zdHJpbmdWaWV3KCksIGZvbnRDYXNjYWRlLCBsaW5lSGVpZ2h0Q29uc3RyYWludCwgZmxv
d0lzSnVzdGlmaWVkLCBpbmNsdWRlUmVhc29ucyk7CisgICAgICAgIGF1dG8gdGV4dFJlYXNvbnMg
PSBjYW5Vc2VGb3JUZXh0KHRleHRSZW5kZXJlci5zdHJpbmdWaWV3KCksIGZvbnRDYXNjYWRlLCBs
aW5lSGVpZ2h0Q29uc3RyYWludCwgaW5jbHVkZVJlYXNvbnMpOwogICAgICAgICBpZiAodGV4dFJl
YXNvbnMpCiAgICAgICAgICAgICBBRERfUkVBU09OU19BTkRfUkVUVVJOX0lGX05FRURFRCh0ZXh0
UmVhc29ucywgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwogICAgIH0KQEAgLTU5MSw3ICs1Nzcs
NyBAQCBzdGF0aWMgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yU3R5bGUoY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbmNsdQogICAgIGlmIChzdHlsZS50ZXh0U2VjdXJpdHko
KSAhPSBUZXh0U2VjdXJpdHk6Ok5vbmUpCiAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9J
Rl9ORUVERUQoRmxvd0hhc1RleHRTZWN1cml0eSwgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwog
ICAgIGlmIChzdHlsZS5oeXBoZW5zKCkgPT0gSHlwaGVuczo6QXV0bykgewotICAgICAgICBhdXRv
IHRleHRSZWFzb25zID0gY2FuVXNlRm9yVGV4dChzdHlsZS5oeXBoZW5TdHJpbmcoKSwgc3R5bGUu
Zm9udENhc2NhZGUoKSwgc3RkOjpudWxsb3B0LCBmYWxzZSwgaW5jbHVkZVJlYXNvbnMpOworICAg
ICAgICBhdXRvIHRleHRSZWFzb25zID0gY2FuVXNlRm9yVGV4dChzdHlsZS5oeXBoZW5TdHJpbmco
KSwgc3R5bGUuZm9udENhc2NhZGUoKSwgc3RkOjpudWxsb3B0LCBpbmNsdWRlUmVhc29ucyk7CiAg
ICAgICAgIGlmICh0ZXh0UmVhc29ucykKICAgICAgICAgICAgIEFERF9SRUFTT05TX0FORF9SRVRV
Uk5fSUZfTkVFREVEKHRleHRSZWFzb25zLCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7CiAgICAg
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434858</attachid>
            <date>2021-08-03 13:00:41 -0700</date>
            <delta_ts>2021-08-20 08:09:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228727-20210803130041.patch</filename>
            <type>text/plain</type>
            <size>19677</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTRlZDE4MmU2NzNkZjk1
ODhlOWQ1N2U2ZjlkYWZkMmM1ZGFhYzhmNS4uYTcxZjQzN2YzZThmNWExZjNlMmRkZmYwMzNhYTJj
Yjg4ZmM5NmVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA4LTAzICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEFkZCBzdXBw
b3J0IGZvciBqdXN0aWZpZWQgbm9uLWJyZWFraW5nIHNwYWNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg3MjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBMZXQncyB1c2UgRm9udENhc2NhZGU6OmV4cGFu
c2lvbk9wcG9ydHVuaXR5Q291bnQgdG8gZmlndXJlIG91dCB0aGUgbnVtYmVyIG9mIGV4cGFuc2lv
biBjb3VudHMgaW4gYSBydW4uCisgICAgICAgIEl0IGhlbHBzIHdpdGggZmluZGluZyBub24tYnJl
YWthYmxlIHNwYWNlIGluIGFuIG90aGVyd2lzZSBub24td2hpdGVzcGFjZSBjb250ZW50IChmb28m
bmJzcDtiYXIgd2hlcmUgdGhlIGNvbnRldCBmb3JtcyBvbmUgcnVuIGJ1dCB0aGUgYmVjYXVzZQor
ICAgICAgICBvZiB0aGUgbm9uLWJyZWFrYWJsZSBfc3BhY2VfIGluIHRoZSBtaWRkbGUsIGl0IGFs
c28gcHJvZHVjZXMgYW4gZXhwYW5zaW9uIG9wcG9ydHVuaXR5KS4KKyAgICAgICAgVGhpcyBwYXRj
aCBtb3ZlcyBhbGwgdGhlIGV4cGFuc2lvbiBoYW5kbGluZyBvdmVyIHRvIExpbmU6OmFwcGx5UnVu
RXhwYW5zaW9uIGFzIHdlIGFueXdheSBuZWVkIHRvIHdhbGsgdGhlIGNvbnRlbnQgdG8gZmluZCBz
dWNoIHNwYWNlcyAoaS5lLiBub3Qgd29ydGggdHJ5aW5nIHRvIHByZS1jb21wdXRlIHRoZW0pLgor
CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGx5UnVuRXhwYW5zaW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpSdW4pOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmV4cGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmU6OlJ1bjo6dmlzdWFsbHlDb2xsYXBzZVRyYWlsaW5nV2hpdGVzcGFjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6c2V0RXhwYW5zaW9uQmVoYXZpb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmV4cGFuc2lvbkJl
aGF2aW9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6
UnVuOjpzZXRIb3Jpem9udGFsRXhwYW5zaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmg6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmU6OlJ1bjo6ZXhwYW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6TGluZTo6UnVuOjpzZXRFeHBhbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpMaW5lOjpSdW46Omhhc0V4cGFuc2lvbk9wcG9ydHVuaXR5IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpleHBhbnNpb25PcHBvcnR1bml0
eUNvdW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRl
Z3JhdGlvbjo6Y2FuVXNlRm9yQ2hhcmFjdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpjYW5Vc2VGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVn
cmF0aW9uOjpjYW5Vc2VGb3JGb250QW5kVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJ
bnRlZ3JhdGlvbjo6Y2FuVXNlRm9yU3R5bGUpOgorCiAyMDIxLTA4LTAyICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gUmVtb3ZlIHN1cHBvcnQgZm9y
IEFWQXNzZXRJbWFnZUdlbmVyYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcAppbmRleCBl
YmMxMzc2NzMzOWFhMGJiYjUwODM0YTdmNzg2MDcwMTRlODE2NzA4Li4wNjkyZGQzNmRjYTAzN2Yz
MzQ1YmVmY2JhM2UxNzBjNDFmNGUwYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcApA
QCAtNzMsMzYgKzczLDY2IEBAIHZvaWQgTGluZTo6YXBwbHlSdW5FeHBhbnNpb24oSW5saW5lTGF5
b3V0VW5pdCBleHRyYUhvcml6b250YWxTcGFjZSkKICAgICAvLyB0aGUgbGFzdCBsaW5lIGJlZm9y
ZSBhIGZvcmNlZCBicmVhayBvciB0aGUgZW5kIG9mIHRoZSBibG9jayBpcyBzdGFydC1hbGlnbmVk
LgogICAgIGlmIChtX3J1bnMuaXNFbXB0eSgpIHx8IG1fcnVucy5sYXN0KCkuaXNMaW5lQnJlYWso
KSkKICAgICAgICAgcmV0dXJuOworICAgIC8vIEFueXRoaW5nIHRvIGRpc3RyaWJ1dGU/CisgICAg
aWYgKCFleHRyYUhvcml6b250YWxTcGFjZSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBl
eHBhbnNpb25PcHBvcnR1bml0eUNvdW50ID0gMDsKLSAgICBSdW4qIGxhc3RSdW5XaXRoQ29udGVu
dCA9IG51bGxwdHI7CiAgICAgLy8gQ29sbGVjdCBhbmQgZGlzdHJpYnV0ZSB0aGUgZXhwYW5zaW9u
IG9wcG9ydHVuaXRpZXMuCi0gICAgZm9yIChhdXRvJiBydW4gOiBtX3J1bnMpIHsKLSAgICAgICAg
ZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCArPSBydW4uZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3Vu
dCgpOworICAgIHNpemVfdCBsaW5lRXhwYW5zaW9uT3Bwb3J0dW5pdGllcyA9IDA7CisgICAgVmVj
dG9yPHNpemVfdD4gcnVuc0V4cGFuc2lvbk9wcG9ydHVuaXRpZXMobV9ydW5zLnNpemUoKSk7Cisg
ICAgVmVjdG9yPEV4cGFuc2lvbkJlaGF2aW9yPiBydW5zRXhwYW5zaW9uQmVoYXZpb3JzKG1fcnVu
cy5zaXplKCkpOworICAgIGF1dG8gbGFzdFJ1bkluZGV4V2l0aENvbnRlbnQgPSBzdGQ6Om9wdGlv
bmFsPHNpemVfdD4geyB9OworCisgICAgLy8gTGluZSBzdGFydCBiZWhhdmVzIGFzIGlmIHdlIGhh
ZCBhbiBleHBhbnNpb24gaGVyZSAoaS5lLiBmaXN0IHJ1bnMgc2hvdWxkIG5vdCBzdGFydCB3aXRo
IGFsbG93aW5nIGxlZnQgZXhwYW5zaW9uKS4KKyAgICBhdXRvIHJ1bklzQWZ0ZXJFeHBhbnNpb24g
PSB0cnVlOworICAgIGZvciAoc2l6ZV90IHJ1bkluZGV4ID0gMDsgcnVuSW5kZXggPCBtX3J1bnMu
c2l6ZSgpOyArK3J1bkluZGV4KSB7CisgICAgICAgIGF1dG8mIHJ1biA9IG1fcnVuc1tydW5JbmRl
eF07CisgICAgICAgIGF1dG8mIHN0eWxlID0gcnVuLnN0eWxlKCk7CisgICAgICAgIGludCBleHBh
bnNpb25CZWhhdmlvciA9IERlZmF1bHRFeHBhbnNpb247CisgICAgICAgIHNpemVfdCBleHBhbnNp
b25PcHBvcnR1bml0aWVzSW5SdW4gPSAwOworCisgICAgICAgIGlmIChydW4uaXNUZXh0KCkgJiYg
IVRleHRVdGlsOjpzaG91bGRQcmVzZXJ2ZVNwYWNlc0FuZFRhYnMocnVuLmxheW91dEJveCgpKSkg
eworICAgICAgICAgICAgaWYgKHN0eWxlLnRleHRDb21iaW5lKCkgPT0gVGV4dENvbWJpbmU6Okhv
cml6b250YWwpCisgICAgICAgICAgICAgICAgZXhwYW5zaW9uQmVoYXZpb3IgPSBGb3JiaWRMZWZ0
RXhwYW5zaW9uIHwgRm9yYmlkUmlnaHRFeHBhbnNpb247CisgICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgICAgICBleHBhbnNpb25CZWhhdmlvciA9IChydW5Jc0FmdGVyRXhwYW5zaW9uID8g
Rm9yYmlkTGVmdEV4cGFuc2lvbiA6IEFsbG93TGVmdEV4cGFuc2lvbikgfCBBbGxvd1JpZ2h0RXhw
YW5zaW9uOworICAgICAgICAgICAgICAgIHN0ZDo6dGllKGV4cGFuc2lvbk9wcG9ydHVuaXRpZXNJ
blJ1biwgcnVuSXNBZnRlckV4cGFuc2lvbikgPSBGb250Q2FzY2FkZTo6ZXhwYW5zaW9uT3Bwb3J0
dW5pdHlDb3VudChTdHJpbmdWaWV3KHJ1bi50ZXh0Q29udGVudCgpLT5jb250ZW50KCkpLnN1YnN0
cmluZyhydW4udGV4dENvbnRlbnQoKS0+c3RhcnQoKSwgcnVuLnRleHRDb250ZW50KCktPmxlbmd0
aCgpKSwgcnVuLnN0eWxlKCkuZGlyZWN0aW9uKCksIGV4cGFuc2lvbkJlaGF2aW9yKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChydW4uaXNCb3goKSkKKyAgICAgICAgICAgIHJ1
bklzQWZ0ZXJFeHBhbnNpb24gPSBmYWxzZTsKKworICAgICAgICBydW5zRXhwYW5zaW9uQmVoYXZp
b3JzW3J1bkluZGV4XSA9IGV4cGFuc2lvbkJlaGF2aW9yOworICAgICAgICBydW5zRXhwYW5zaW9u
T3Bwb3J0dW5pdGllc1tydW5JbmRleF0gPSBleHBhbnNpb25PcHBvcnR1bml0aWVzSW5SdW47Cisg
ICAgICAgIGxpbmVFeHBhbnNpb25PcHBvcnR1bml0aWVzICs9IGV4cGFuc2lvbk9wcG9ydHVuaXRp
ZXNJblJ1bjsKKwogICAgICAgICBpZiAocnVuLmlzVGV4dCgpIHx8IHJ1bi5pc0JveCgpKQotICAg
ICAgICAgICAgbGFzdFJ1bldpdGhDb250ZW50ID0gJnJ1bjsKKyAgICAgICAgICAgIGxhc3RSdW5J
bmRleFdpdGhDb250ZW50ID0gcnVuSW5kZXg7CiAgICAgfQogICAgIC8vIE5lZWQgdG8gZml4IHVw
IHRoZSBsYXN0IHJ1bidzIHRyYWlsaW5nIGV4cGFuc2lvbi4KLSAgICBpZiAobGFzdFJ1bldpdGhD
b250ZW50ICYmIGxhc3RSdW5XaXRoQ29udGVudC0+aGFzRXhwYW5zaW9uT3Bwb3J0dW5pdHkoKSkg
eworICAgIGlmIChsYXN0UnVuSW5kZXhXaXRoQ29udGVudCAmJiBydW5zRXhwYW5zaW9uT3Bwb3J0
dW5pdGllc1sqbGFzdFJ1bkluZGV4V2l0aENvbnRlbnRdKSB7CiAgICAgICAgIC8vIFR1cm4gb2Zm
IHRoZSB0cmFpbGluZyBiaXRzIGZpcnN0IGFuZCBhZGQgdGhlIGZvcmJpZCB0cmFpbGluZyBleHBh
bnNpb24uCi0gICAgICAgIGF1dG8gbGVhZGluZ0V4cGFuc2lvbiA9IGxhc3RSdW5XaXRoQ29udGVu
dC0+ZXhwYW5zaW9uQmVoYXZpb3IoKSAmIExlZnRFeHBhbnNpb25NYXNrOwotICAgICAgICBsYXN0
UnVuV2l0aENvbnRlbnQtPnNldEV4cGFuc2lvbkJlaGF2aW9yKGxlYWRpbmdFeHBhbnNpb24gfCBG
b3JiaWRSaWdodEV4cGFuc2lvbik7CisgICAgICAgIGF1dG8gbGVhZGluZ0V4cGFuc2lvbiA9IHJ1
bnNFeHBhbnNpb25CZWhhdmlvcnNbKmxhc3RSdW5JbmRleFdpdGhDb250ZW50XSAmIExlZnRFeHBh
bnNpb25NYXNrOworICAgICAgICBydW5zRXhwYW5zaW9uQmVoYXZpb3JzWypsYXN0UnVuSW5kZXhX
aXRoQ29udGVudF0gPSBsZWFkaW5nRXhwYW5zaW9uIHwgRm9yYmlkUmlnaHRFeHBhbnNpb247Cisg
ICAgICAgIGlmIChydW5Jc0FmdGVyRXhwYW5zaW9uKSB7CisgICAgICAgICAgICAvLyBXaGVuIHRo
ZSBsYXN0IHJ1biBoYXMgYW4gYWZ0ZXIgZXhwYW5zaW9uIChlLmcuIENKSyBpZGVvZ3JhcGgpIHdl
IG5lZWQgdG8gcmVtb3ZlIHRoaXMgdHJhaWxpbmcgZXhwYW5zaW9uIG9wcG9ydHVuaXR5LgorICAg
ICAgICAgICAgLy8gTm90ZSB0aGF0IHRoaXMgaXMgbm90IGFib3V0IHRyYWlsaW5nIGNvbGxhcHNp
YmxlIHdoaXRlc3BhY2UgYXMgYXQgdGhpcyBwb2ludCB3ZSB0cmltbWVkIHRoZW0gYWxsLgorICAg
ICAgICAgICAgQVNTRVJUKGxpbmVFeHBhbnNpb25PcHBvcnR1bml0aWVzICYmIHJ1bnNFeHBhbnNp
b25PcHBvcnR1bml0aWVzWypsYXN0UnVuSW5kZXhXaXRoQ29udGVudF0pOworICAgICAgICAgICAg
LS1saW5lRXhwYW5zaW9uT3Bwb3J0dW5pdGllczsKKyAgICAgICAgICAgIC0tcnVuc0V4cGFuc2lv
bk9wcG9ydHVuaXRpZXNbKmxhc3RSdW5JbmRleFdpdGhDb250ZW50XTsKKyAgICAgICAgfQogICAg
IH0KICAgICAvLyBBbnl0aGluZyB0byBkaXN0cmlidXRlPwotICAgIGlmICghZXhwYW5zaW9uT3Bw
b3J0dW5pdHlDb3VudCB8fCAhZXh0cmFIb3Jpem9udGFsU3BhY2UpCisgICAgaWYgKCFsaW5lRXhw
YW5zaW9uT3Bwb3J0dW5pdGllcykKICAgICAgICAgcmV0dXJuOwogICAgIC8vIERpc3RyaWJ1dGUg
dGhlIGV4dHJhIHNwYWNlLgotICAgIGF1dG8gZXhwYW5zaW9uVG9EaXN0cmlidXRlID0gZXh0cmFI
b3Jpem9udGFsU3BhY2UgLyBleHBhbnNpb25PcHBvcnR1bml0eUNvdW50OworICAgIGF1dG8gZXhw
YW5zaW9uVG9EaXN0cmlidXRlID0gZXh0cmFIb3Jpem9udGFsU3BhY2UgLyBsaW5lRXhwYW5zaW9u
T3Bwb3J0dW5pdGllczsKICAgICBhdXRvIGFjY3VtdWxhdGVkRXhwYW5zaW9uID0gSW5saW5lTGF5
b3V0VW5pdCB7IH07Ci0gICAgZm9yIChhdXRvJiBydW4gOiBtX3J1bnMpIHsKKyAgICBmb3IgKHNp
emVfdCBydW5JbmRleCA9IDA7IHJ1bkluZGV4IDwgbV9ydW5zLnNpemUoKTsgKytydW5JbmRleCkg
eworICAgICAgICBhdXRvJiBydW4gPSBtX3J1bnNbcnVuSW5kZXhdOwogICAgICAgICAvLyBFeHBh
bmQgYW5kIG1vdmUgcnVucyBieSB0aGUgYWNjdW11bGF0ZWQgZXhwYW5zaW9uLgogICAgICAgICBy
dW4ubW92ZUhvcml6b250YWxseShhY2N1bXVsYXRlZEV4cGFuc2lvbik7Ci0gICAgICAgIGlmICgh
cnVuLmhhc0V4cGFuc2lvbk9wcG9ydHVuaXR5KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgQVNTRVJUKHJ1bi5leHBhbnNpb25PcHBvcnR1bml0eUNvdW50KCkpOwotICAgICAgICBh
dXRvIGNvbXB1dGVkRXhwYW5zaW9uID0gZXhwYW5zaW9uVG9EaXN0cmlidXRlICogcnVuLmV4cGFu
c2lvbk9wcG9ydHVuaXR5Q291bnQoKTsKLSAgICAgICAgLy8gRklYTUU6IENoZWNrIHdoeSB3ZSBu
ZWVkIHRvIHNldCBib3RoLgotICAgICAgICBydW4uc2V0SG9yaXpvbnRhbEV4cGFuc2lvbihjb21w
dXRlZEV4cGFuc2lvbik7CisgICAgICAgIGF1dG8gY29tcHV0ZWRFeHBhbnNpb24gPSBleHBhbnNp
b25Ub0Rpc3RyaWJ1dGUgKiBydW5zRXhwYW5zaW9uT3Bwb3J0dW5pdGllc1tydW5JbmRleF07Cisg
ICAgICAgIHJ1bi5zZXRFeHBhbnNpb24oeyBydW5zRXhwYW5zaW9uQmVoYXZpb3JzW3J1bkluZGV4
XSwgY29tcHV0ZWRFeHBhbnNpb24gfSk7CiAgICAgICAgIHJ1bi5zaHJpbmtIb3Jpem9udGFsbHko
LWNvbXB1dGVkRXhwYW5zaW9uKTsKICAgICAgICAgYWNjdW11bGF0ZWRFeHBhbnNpb24gKz0gY29t
cHV0ZWRFeHBhbnNpb247CiAgICAgfQpAQCAtNDM2LDIwICs0NjYsMTQgQEAgTGluZTo6UnVuOjpS
dW4oY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBJbmxpbmVMYXlvdXRVbml0
IGxvZ2ljYWxMZWYKICAgICAsIG1fbGF5b3V0Qm94KCZpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3go
KSkKICAgICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCiAgICAgLCBtX2xvZ2ljYWxXaWR0
aChsb2dpY2FsV2lkdGgpCi0gICAgLCBtX3doaXRlc3BhY2VJc0V4cGFuc2lvbk9wcG9ydHVuaXR5
KCFUZXh0VXRpbDo6c2hvdWxkUHJlc2VydmVTcGFjZXNBbmRUYWJzKGlubGluZVRleHRJdGVtLmxh
eW91dEJveCgpKSkKICAgICAsIG1fdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZSh0cmFpbGluZ1doaXRl
c3BhY2VUeXBlKGlubGluZVRleHRJdGVtKSkKKyAgICAsIG1fdHJhaWxpbmdXaGl0ZXNwYWNlV2lk
dGgobV90cmFpbGluZ1doaXRlc3BhY2VUeXBlICE9IFRyYWlsaW5nV2hpdGVzcGFjZTo6Tm9uZSA/
IGxvZ2ljYWxXaWR0aCA6IElubGluZUxheW91dFVuaXQgeyB9KQogICAgICwgbV90ZXh0Q29udGVu
dCh7IGlubGluZVRleHRJdGVtLnN0YXJ0KCksIG1fdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZSA9PSBU
cmFpbGluZ1doaXRlc3BhY2U6OkNvbGxhcHNlZCA/IDEgOiBpbmxpbmVUZXh0SXRlbS5sZW5ndGgo
KSwgaW5saW5lVGV4dEl0ZW0uaW5saW5lVGV4dEJveCgpLmNvbnRlbnQoKSB9KQogewotICAgIGlm
IChtX3RyYWlsaW5nV2hpdGVzcGFjZVR5cGUgIT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpOb25lKSB7
Ci0gICAgICAgIG1fdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGggPSBsb2dpY2FsV2lkdGg7Ci0gICAg
ICAgIGlmIChtX3doaXRlc3BhY2VJc0V4cGFuc2lvbk9wcG9ydHVuaXR5KQotICAgICAgICAgICAg
bV9leHBhbnNpb25PcHBvcnR1bml0eUNvdW50ID0gMTsKLSAgICB9CiB9CiAKIHZvaWQgTGluZTo6
UnVuOjpleHBhbmQoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBJbmxpbmVM
YXlvdXRVbml0IGxvZ2ljYWxXaWR0aCkKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBpcyBhIHZlcnkg
c2ltcGxlIGV4cGFuc2lvbiBtZXJnZS4gV2Ugc2hvdWxkIGV2ZW50dWFsbHkgc3dpdGNoIG92ZXIg
dG8gRm9udENhc2NhZGU6OmV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQuCiAgICAgQVNTRVJUKCFo
YXNDb2xsYXBzZWRUcmFpbGluZ1doaXRlc3BhY2UoKSk7CiAgICAgQVNTRVJUKGlzVGV4dCgpICYm
IGlubGluZVRleHRJdGVtLmlzVGV4dCgpKTsKICAgICBBU1NFUlQobV9sYXlvdXRCb3ggPT0gJmlu
bGluZVRleHRJdGVtLmxheW91dEJveCgpKTsKQEAgLTQ1OSwxNCArNDgzLDEwIEBAIHZvaWQgTGlu
ZTo6UnVuOjpleHBhbmQoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBJbmxp
bmVMYXlvdXRVbml0IGxvCiAKICAgICBpZiAobV90cmFpbGluZ1doaXRlc3BhY2VUeXBlID09IFRy
YWlsaW5nV2hpdGVzcGFjZTo6Tm9uZSkgewogICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZVdp
ZHRoID0geyB9OwotICAgICAgICBzZXRFeHBhbnNpb25CZWhhdmlvcihBbGxvd0xlZnRFeHBhbnNp
b24gfCBBbGxvd1JpZ2h0RXhwYW5zaW9uKTsKICAgICAgICAgbV90ZXh0Q29udGVudC0+ZXhwYW5k
KGlubGluZVRleHRJdGVtLmxlbmd0aCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBt
X3RyYWlsaW5nV2hpdGVzcGFjZVdpZHRoICs9IGxvZ2ljYWxXaWR0aDsKLSAgICBpZiAobV93aGl0
ZXNwYWNlSXNFeHBhbnNpb25PcHBvcnR1bml0eSkKLSAgICAgICAgKyttX2V4cGFuc2lvbk9wcG9y
dHVuaXR5Q291bnQ7Ci0gICAgc2V0RXhwYW5zaW9uQmVoYXZpb3IoRGVmYXVsdEV4cGFuc2lvbik7
CiAgICAgbV90ZXh0Q29udGVudC0+ZXhwYW5kKG1fdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZSA9PSBU
cmFpbGluZ1doaXRlc3BhY2U6OkNvbGxhcHNlZCA/IDEgOiBpbmxpbmVUZXh0SXRlbS5sZW5ndGgo
KSk7CiB9CiAKQEAgLTUwOSwzNSArNTI5LDEwIEBAIElubGluZUxheW91dFVuaXQgTGluZTo6UnVu
Ojp2aXN1YWxseUNvbGxhcHNlVHJhaWxpbmdXaGl0ZXNwYWNlKElubGluZUxheW91dFVuaXQKICAg
ICBpZiAoIW1fdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgpIHsKICAgICAgICAgLy8gV2UgdHJpbW1l
ZCB0aGUgdHJhaWxpbmcgd2hpdGVzcGFjZSBjb21wbGV0ZWx5LgogICAgICAgICBtX3RyYWlsaW5n
V2hpdGVzcGFjZVR5cGUgPSBUcmFpbGluZ1doaXRlc3BhY2U6Ok5vbmU7Ci0KLSAgICAgICAgaWYg
KG1fd2hpdGVzcGFjZUlzRXhwYW5zaW9uT3Bwb3J0dW5pdHkpIHsKLSAgICAgICAgICAgIEFTU0VS
VChtX2V4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQpOwotICAgICAgICAgICAgbV9leHBhbnNpb25P
cHBvcnR1bml0eUNvdW50LS07Ci0gICAgICAgIH0KLSAgICAgICAgc2V0RXhwYW5zaW9uQmVoYXZp
b3IoQWxsb3dMZWZ0RXhwYW5zaW9uIHwgQWxsb3dSaWdodEV4cGFuc2lvbik7CiAgICAgfQogICAg
IHJldHVybiB0cmltbWVkV2lkdGg7CiB9CiAKLXZvaWQgTGluZTo6UnVuOjpzZXRFeHBhbnNpb25C
ZWhhdmlvcihFeHBhbnNpb25CZWhhdmlvciBleHBhbnNpb25CZWhhdmlvcikKLXsKLSAgICBBU1NF
UlQoaXNUZXh0KCkpOwotICAgIG1fZXhwYW5zaW9uLmJlaGF2aW9yID0gZXhwYW5zaW9uQmVoYXZp
b3I7Ci19Ci0KLUV4cGFuc2lvbkJlaGF2aW9yIExpbmU6OlJ1bjo6ZXhwYW5zaW9uQmVoYXZpb3Io
KSBjb25zdAotewotICAgIEFTU0VSVChpc1RleHQoKSk7Ci0gICAgcmV0dXJuIG1fZXhwYW5zaW9u
LmJlaGF2aW9yOwotfQotCi12b2lkIExpbmU6OlJ1bjo6c2V0SG9yaXpvbnRhbEV4cGFuc2lvbihJ
bmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxFeHBhbnNpb24pCi17Ci0gICAgQVNTRVJUKGlzVGV4dCgp
KTsKLSAgICBBU1NFUlQoaGFzRXhwYW5zaW9uT3Bwb3J0dW5pdHkoKSk7Ci0gICAgbV9leHBhbnNp
b24uaG9yaXpvbnRhbEV4cGFuc2lvbiA9IGxvZ2ljYWxFeHBhbnNpb247Ci19Ci0KIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lTGluZS5oCmluZGV4IDUwZmViMGNmZDZjNzk4YzZiNTNlZDgzMWFiMzVj
NTQxZDJmMjIzYjEuLmM1Y2JhYmYxNjliMWU0YjdiMzM0MmNhNDA2OTA2NjY0OTVhYjhiM2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9JbmxpbmVMaW5lLmgKQEAgLTc4LDkgKzc4LDYgQEAgcHVibGljOgogICAgICAg
ICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0dXJuIGxvZ2ljYWxM
ZWZ0KCkgKyBsb2dpY2FsV2lkdGgoKTsgfQogCiAgICAgICAgIGNvbnN0IExpbmVSdW46OkV4cGFu
c2lvbiYgZXhwYW5zaW9uKCkgY29uc3QgeyByZXR1cm4gbV9leHBhbnNpb247IH0KLSAgICAgICAg
Ym9vbCBoYXNFeHBhbnNpb25PcHBvcnR1bml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fZXhwYW5zaW9u
T3Bwb3J0dW5pdHlDb3VudDsgfQotICAgICAgICBFeHBhbnNpb25CZWhhdmlvciBleHBhbnNpb25C
ZWhhdmlvcigpIGNvbnN0OwotICAgICAgICB1bnNpZ25lZCBleHBhbnNpb25PcHBvcnR1bml0eUNv
dW50KCkgY29uc3QgeyByZXR1cm4gbV9leHBhbnNpb25PcHBvcnR1bml0eUNvdW50OyB9CiAKICAg
ICAgICAgYm9vbCBoYXNUcmFpbGluZ1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVybiBtX3RyYWls
aW5nV2hpdGVzcGFjZVR5cGUgIT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpOb25lOyB9CiAgICAgICAg
IElubGluZUxheW91dFVuaXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoKSBjb25zdCB7IHJldHVy
biBtX3RyYWlsaW5nV2hpdGVzcGFjZVdpZHRoOyB9CkBAIC05NSw4ICs5Miw3IEBAIHB1YmxpYzoK
ICAgICAgICAgdm9pZCBleHBhbmQoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBJbmxpbmVMYXlvdXRV
bml0IGxvZ2ljYWxXaWR0aCk7CiAgICAgICAgIHZvaWQgbW92ZUhvcml6b250YWxseShJbmxpbmVM
YXlvdXRVbml0IG9mZnNldCkgeyBtX2xvZ2ljYWxMZWZ0ICs9IG9mZnNldDsgfQogICAgICAgICB2
b2lkIHNocmlua0hvcml6b250YWxseShJbmxpbmVMYXlvdXRVbml0IHdpZHRoKSB7IG1fbG9naWNh
bFdpZHRoIC09IHdpZHRoOyB9Ci0gICAgICAgIHZvaWQgc2V0RXhwYW5zaW9uQmVoYXZpb3IoRXhw
YW5zaW9uQmVoYXZpb3IpOwotICAgICAgICB2b2lkIHNldEhvcml6b250YWxFeHBhbnNpb24oSW5s
aW5lTGF5b3V0VW5pdCBsb2dpY2FsRXhwYW5zaW9uKTsKKyAgICAgICAgdm9pZCBzZXRFeHBhbnNp
b24oTGluZVJ1bjo6RXhwYW5zaW9uIGV4cGFuc2lvbikgeyBtX2V4cGFuc2lvbiA9IGV4cGFuc2lv
bjsgfQogICAgICAgICB2b2lkIHNldE5lZWRzSHlwaGVuKElubGluZUxheW91dFVuaXQgaHlwaGVu
TG9naWNhbFdpZHRoKTsKIAogICAgICAgICBlbnVtIGNsYXNzIFRyYWlsaW5nV2hpdGVzcGFjZSB7
CkBAIC0xMTksMTIgKzExNSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IEJveCogbV9sYXlv
dXRCb3ggeyBudWxscHRyIH07CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV9sb2dpY2FsTGVm
dCB7IDAgfTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX2xvZ2ljYWxXaWR0aCB7IDAgfTsK
LSAgICAgICAgYm9vbCBtX3doaXRlc3BhY2VJc0V4cGFuc2lvbk9wcG9ydHVuaXR5IHsgZmFsc2Ug
fTsKICAgICAgICAgVHJhaWxpbmdXaGl0ZXNwYWNlIG1fdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZSB7
IFRyYWlsaW5nV2hpdGVzcGFjZTo6Tm9uZSB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1f
dHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGggeyAwIH07CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8TGlu
ZVJ1bjo6VGV4dD4gbV90ZXh0Q29udGVudDsKICAgICAgICAgTGluZVJ1bjo6RXhwYW5zaW9uIG1f
ZXhwYW5zaW9uOwotICAgICAgICB1bnNpZ25lZCBtX2V4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQg
eyAwIH07CiAgICAgfTsKICAgICB1c2luZyBSdW5MaXN0ID0gVmVjdG9yPFJ1biwgMTA+OwogICAg
IGNvbnN0IFJ1bkxpc3QmIHJ1bnMoKSBjb25zdCB7IHJldHVybiBtX3J1bnM7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNv
dmVyYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkNvdmVyYWdlLmNwcAppbmRleCAyZGZiYTc5Njk1MjQ3ZmJjMjJlYWUyMWM1MWIxZTUw
NmY0NTdhNzg1Li4zM2YwZWE5NTE5YmIxMmQ1YjZlYzkwMWM2YTc3MTVkMjM5YjgzZjkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRp
b25Db3ZlcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwCkBAIC00MjcsMjEgKzQyNywxMSBAQCBzdGF0aWMg
dm9pZCBwcmludE1vZGVybkxpbmVMYXlvdXRDb3ZlcmFnZSh2b2lkKQogfQogI2VuZGlmCiAKLXRl
bXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBPcHRpb25TZXQ8QXZvaWRhbmNlUmVhc29u
PiBjYW5Vc2VGb3JDaGFyYWN0ZXIoQ2hhcmFjdGVyVHlwZSwgYm9vbCB0ZXh0SXNKdXN0aWZpZWQs
IEluY2x1ZGVSZWFzb25zKTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBPcHRp
b25TZXQ8QXZvaWRhbmNlUmVhc29uPiBjYW5Vc2VGb3JDaGFyYWN0ZXIoQ2hhcmFjdGVyVHlwZSwg
SW5jbHVkZVJlYXNvbnMpOwogCi10ZW1wbGF0ZTw+IE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+
IGNhblVzZUZvckNoYXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIsIGJvb2wgdGV4dElzSnVzdGlmaWVk
LCBJbmNsdWRlUmVhc29ucyBpbmNsdWRlUmVhc29ucykKK3RlbXBsYXRlPD4gT3B0aW9uU2V0PEF2
b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yQ2hhcmFjdGVyKFVDaGFyIGNoYXJhY3RlciwgSW5jbHVk
ZVJlYXNvbnMgaW5jbHVkZVJlYXNvbnMpCiB7CiAgICAgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNv
bj4gcmVhc29uczsKLSAgICBpZiAodGV4dElzSnVzdGlmaWVkKSB7Ci0gICAgICAgIGlmIChjaGFy
YWN0ZXIgPT0gbm9CcmVha1NwYWNlKQotICAgICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJO
X0lGX05FRURFRChGbG93SGFzSnVzdGlmaWVkTm9uQnJlYWtpbmdTcGFjZSwgcmVhc29ucywgaW5j
bHVkZVJlYXNvbnMpOwotICAgICAgICAvLyBJbmNsdWRlIGNoYXJhY3RlcnMgdXAgdG8gTGF0aW4g
RXh0ZW5kZWQtQiBhbmQgc29tZSBwdW5jdHVhdGlvbiByYW5nZSB3aGVuIHRleHQgaXMganVzdGlm
aWVkLgotICAgICAgICBib29sIGlzTGF0aW5JbmNsdWRpbmdFeHRlbmRlZEIgPSBjaGFyYWN0ZXIg
PD0gMHgwMUZGOwotICAgICAgICBib29sIGlzUHVuY3R1YXRpb25SYW5nZSA9IGNoYXJhY3RlciA+
PSAweDIwMTAgJiYgY2hhcmFjdGVyIDw9IDB4MjAyNzsKLSAgICAgICAgaWYgKCEoaXNMYXRpbklu
Y2x1ZGluZ0V4dGVuZGVkQiB8fCBpc1B1bmN0dWF0aW9uUmFuZ2UpKQotICAgICAgICAgICAgU0VU
X1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChGbG93SGFzSnVzdGlmaWVkTm9uTGF0aW5UZXh0
LCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7Ci0gICAgfQotCiAgICAgaWYgKFUxNl9JU19TVVJS
T0dBVEUoY2hhcmFjdGVyKSkKICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURF
RChGbG93VGV4dEhhc1N1cnJvZ2F0ZVBhaXIsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKIApA
QCAtNDU1LDE2ICs0NDUsMTMgQEAgdGVtcGxhdGU8PiBPcHRpb25TZXQ8QXZvaWRhbmNlUmVhc29u
PiBjYW5Vc2VGb3JDaGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyLCBib29sIHQKICAgICByZXR1cm4g
cmVhc29uczsKIH0KIAotdGVtcGxhdGU8PiBPcHRpb25TZXQ8QXZvaWRhbmNlUmVhc29uPiBjYW5V
c2VGb3JDaGFyYWN0ZXIoTENoYXIgY2hhcmFjdGVyLCBib29sIHRleHRJc0p1c3RpZmllZCwgSW5j
bHVkZVJlYXNvbnMpCit0ZW1wbGF0ZTw+IE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVz
ZUZvckNoYXJhY3RlcihMQ2hhciwgSW5jbHVkZVJlYXNvbnMpCiB7Ci0gICAgaWYgKHRleHRJc0p1
c3RpZmllZCAmJiBjaGFyYWN0ZXIgPT0gbm9CcmVha1NwYWNlKQotICAgICAgICByZXR1cm4geyBB
dm9pZGFuY2VSZWFzb246OkZsb3dIYXNKdXN0aWZpZWROb25CcmVha2luZ1NwYWNlIH07CiAgICAg
cmV0dXJuIHsgfTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+Ci1zdGF0
aWMgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yVGV4dChjb25zdCBDaGFyYWN0
ZXJUeXBlKiB0ZXh0LCB1bnNpZ25lZCBsZW5ndGgsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2Fz
Y2FkZSwgc3RkOjpvcHRpb25hbDxmbG9hdD4gbGluZUhlaWdodENvbnN0cmFpbnQsCi0gICAgYm9v
bCB0ZXh0SXNKdXN0aWZpZWQsIEluY2x1ZGVSZWFzb25zIGluY2x1ZGVSZWFzb25zKQorc3RhdGlj
IE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVzZUZvclRleHQoY29uc3QgQ2hhcmFjdGVy
VHlwZSogdGV4dCwgdW5zaWduZWQgbGVuZ3RoLCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2Nh
ZGUsIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGxpbmVIZWlnaHRDb25zdHJhaW50LCBJbmNsdWRlUmVh
c29ucyBpbmNsdWRlUmVhc29ucykKIHsKICAgICBPcHRpb25TZXQ8QXZvaWRhbmNlUmVhc29uPiBy
ZWFzb25zOwogICAgIGF1dG8mIHByaW1hcnlGb250ID0gZm9udENhc2NhZGUucHJpbWFyeUZvbnQo
KTsKQEAgLTQ3OSw3ICs0NjYsNyBAQCBzdGF0aWMgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4g
Y2FuVXNlRm9yVGV4dChjb25zdCBDaGFyYWN0ZXJUeXBlKiB0ZXh0LCB1bnNpZwogCiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CiAgICAgICAgIGF1dG8gY2hhcmFj
dGVyID0gdGV4dFtpXTsKLSAgICAgICAgYXV0byBjaGFyYWN0ZXJSZWFzb25zID0gY2FuVXNlRm9y
Q2hhcmFjdGVyKGNoYXJhY3RlciwgdGV4dElzSnVzdGlmaWVkLCBpbmNsdWRlUmVhc29ucyk7Cisg
ICAgICAgIGF1dG8gY2hhcmFjdGVyUmVhc29ucyA9IGNhblVzZUZvckNoYXJhY3RlcihjaGFyYWN0
ZXIsIGluY2x1ZGVSZWFzb25zKTsKICAgICAgICAgaWYgKGNoYXJhY3RlclJlYXNvbnMpCiAgICAg
ICAgICAgICBBRERfUkVBU09OU19BTkRfUkVUVVJOX0lGX05FRURFRChjaGFyYWN0ZXJSZWFzb25z
LCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7CiAKQEAgLTQ5NiwxMSArNDgzLDExIEBAIHN0YXRp
YyBPcHRpb25TZXQ8QXZvaWRhbmNlUmVhc29uPiBjYW5Vc2VGb3JUZXh0KGNvbnN0IENoYXJhY3Rl
clR5cGUqIHRleHQsIHVuc2lnCiAgICAgcmV0dXJuIHJlYXNvbnM7CiB9CiAKLXN0YXRpYyBPcHRp
b25TZXQ8QXZvaWRhbmNlUmVhc29uPiBjYW5Vc2VGb3JUZXh0KFN0cmluZ1ZpZXcgdGV4dCwgY29u
c3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBsaW5lSGVp
Z2h0Q29uc3RyYWludCwgYm9vbCB0ZXh0SXNKdXN0aWZpZWQsIEluY2x1ZGVSZWFzb25zIGluY2x1
ZGVSZWFzb25zKQorc3RhdGljIE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVzZUZvclRl
eHQoU3RyaW5nVmlldyB0ZXh0LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHN0ZDo6
b3B0aW9uYWw8ZmxvYXQ+IGxpbmVIZWlnaHRDb25zdHJhaW50LCBJbmNsdWRlUmVhc29ucyBpbmNs
dWRlUmVhc29ucykKIHsKICAgICBpZiAodGV4dC5pczhCaXQoKSkKLSAgICAgICAgcmV0dXJuIGNh
blVzZUZvclRleHQodGV4dC5jaGFyYWN0ZXJzOCgpLCB0ZXh0Lmxlbmd0aCgpLCBmb250Q2FzY2Fk
ZSwgbGluZUhlaWdodENvbnN0cmFpbnQsIHRleHRJc0p1c3RpZmllZCwgaW5jbHVkZVJlYXNvbnMp
OwotICAgIHJldHVybiBjYW5Vc2VGb3JUZXh0KHRleHQuY2hhcmFjdGVyczE2KCksIHRleHQubGVu
Z3RoKCksIGZvbnRDYXNjYWRlLCBsaW5lSGVpZ2h0Q29uc3RyYWludCwgdGV4dElzSnVzdGlmaWVk
LCBpbmNsdWRlUmVhc29ucyk7CisgICAgICAgIHJldHVybiBjYW5Vc2VGb3JUZXh0KHRleHQuY2hh
cmFjdGVyczgoKSwgdGV4dC5sZW5ndGgoKSwgZm9udENhc2NhZGUsIGxpbmVIZWlnaHRDb25zdHJh
aW50LCBpbmNsdWRlUmVhc29ucyk7CisgICAgcmV0dXJuIGNhblVzZUZvclRleHQodGV4dC5jaGFy
YWN0ZXJzMTYoKSwgdGV4dC5sZW5ndGgoKSwgZm9udENhc2NhZGUsIGxpbmVIZWlnaHRDb25zdHJh
aW50LCBpbmNsdWRlUmVhc29ucyk7CiB9CiAKIHN0YXRpYyBPcHRpb25TZXQ8QXZvaWRhbmNlUmVh
c29uPiBjYW5Vc2VGb3JGb250QW5kVGV4dChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYgY29u
dGFpbmVyLCBJbmNsdWRlUmVhc29ucyBpbmNsdWRlUmVhc29ucykKQEAgLTUxNCw3ICs1MDEsNiBA
QCBzdGF0aWMgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yRm9udEFuZFRleHQo
Y29uc3QgUmVuZGVyQm94TW9kZWxPYmplYwogICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGxpbmVI
ZWlnaHRDb25zdHJhaW50OwogICAgIGlmIChzdHlsZS5saW5lQm94Q29udGFpbigpLmNvbnRhaW5z
KExpbmVCb3hDb250YWluOjpHbHlwaHMpKQogICAgICAgICBsaW5lSGVpZ2h0Q29uc3RyYWludCA9
IGNvbnRhaW5lci5saW5lSGVpZ2h0KGZhbHNlLCBIb3Jpem9udGFsTGluZSwgUG9zaXRpb25PZklu
dGVyaW9yTGluZUJveGVzKS50b0Zsb2F0KCk7Ci0gICAgYm9vbCBmbG93SXNKdXN0aWZpZWQgPSBz
dHlsZS50ZXh0QWxpZ24oKSA9PSBUZXh0QWxpZ25Nb2RlOjpKdXN0aWZ5OwogICAgIGZvciAoY29u
c3QgYXV0byYgdGV4dFJlbmRlcmVyIDogY2hpbGRyZW5PZlR5cGU8UmVuZGVyVGV4dD4oY29udGFp
bmVyKSkgewogICAgICAgICAvLyBGSVhNRTogRG8gbm90IHJldHVybiB1bnRpbCBhZnRlciBjaGVj
a2luZyBhbGwgY2hpbGRyZW4uCiAgICAgICAgIGlmICh0ZXh0UmVuZGVyZXIuaXNDb21iaW5lVGV4
dCgpKQpAQCAtNTM3LDcgKzUyMyw3IEBAIHN0YXRpYyBPcHRpb25TZXQ8QXZvaWRhbmNlUmVhc29u
PiBjYW5Vc2VGb3JGb250QW5kVGV4dChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjCiAgICAgICAg
ICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChGbG93SGFzQ29tcGxleEZv
bnRDb2RlUGF0aCwgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwogICAgICAgICB9CiAKLSAgICAg
ICAgYXV0byB0ZXh0UmVhc29ucyA9IGNhblVzZUZvclRleHQodGV4dFJlbmRlcmVyLnN0cmluZ1Zp
ZXcoKSwgZm9udENhc2NhZGUsIGxpbmVIZWlnaHRDb25zdHJhaW50LCBmbG93SXNKdXN0aWZpZWQs
IGluY2x1ZGVSZWFzb25zKTsKKyAgICAgICAgYXV0byB0ZXh0UmVhc29ucyA9IGNhblVzZUZvclRl
eHQodGV4dFJlbmRlcmVyLnN0cmluZ1ZpZXcoKSwgZm9udENhc2NhZGUsIGxpbmVIZWlnaHRDb25z
dHJhaW50LCBpbmNsdWRlUmVhc29ucyk7CiAgICAgICAgIGlmICh0ZXh0UmVhc29ucykKICAgICAg
ICAgICAgIEFERF9SRUFTT05TX0FORF9SRVRVUk5fSUZfTkVFREVEKHRleHRSZWFzb25zLCByZWFz
b25zLCBpbmNsdWRlUmVhc29ucyk7CiAgICAgfQpAQCAtNTkxLDcgKzU3Nyw3IEBAIHN0YXRpYyBP
cHRpb25TZXQ8QXZvaWRhbmNlUmVhc29uPiBjYW5Vc2VGb3JTdHlsZShjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUsIEluY2x1CiAgICAgaWYgKHN0eWxlLnRleHRTZWN1cml0eSgpICE9IFRleHRTZWN1
cml0eTo6Tm9uZSkKICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChGbG93
SGFzVGV4dFNlY3VyaXR5LCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7CiAgICAgaWYgKHN0eWxl
Lmh5cGhlbnMoKSA9PSBIeXBoZW5zOjpBdXRvKSB7Ci0gICAgICAgIGF1dG8gdGV4dFJlYXNvbnMg
PSBjYW5Vc2VGb3JUZXh0KHN0eWxlLmh5cGhlblN0cmluZygpLCBzdHlsZS5mb250Q2FzY2FkZSgp
LCBzdGQ6Om51bGxvcHQsIGZhbHNlLCBpbmNsdWRlUmVhc29ucyk7CisgICAgICAgIGF1dG8gdGV4
dFJlYXNvbnMgPSBjYW5Vc2VGb3JUZXh0KHN0eWxlLmh5cGhlblN0cmluZygpLCBzdHlsZS5mb250
Q2FzY2FkZSgpLCBzdGQ6Om51bGxvcHQsIGluY2x1ZGVSZWFzb25zKTsKICAgICAgICAgaWYgKHRl
eHRSZWFzb25zKQogICAgICAgICAgICAgQUREX1JFQVNPTlNfQU5EX1JFVFVSTl9JRl9ORUVERUQo
dGV4dFJlYXNvbnMsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKICAgICB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2p1c3RpZnktbmJzcC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2p1c3RpZnktbmJzcC1l
eHBlY3RlZC50eHQKaW5kZXggZjYxMmM5ZTkzNzViYzAzNWNlNDM3M2QwY2RlZmMwZDg4Zjg4ZDA0
Yy4uM2VlMWIwOGQ5MjgzYjliZDg2MDM2MzUyNWUyMzE2MWM3ZmM1MjEwZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9qdXN0aWZ5LW5ic3AtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvanVzdGlmeS1uYnNw
LWV4cGVjdGVkLnR4dApAQCAtMTAsNyArMTAsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzNjAsMTUpIHNpemUgNjUweDc1CiAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDM2MCwxNSkgd2lkdGggMjkzOiAiZSBmIGcgaCIKICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMyw2NSkgd2lkdGggMjc1OiAieHh4eHh4eHh4eHgiCi0gICAgICAg
IFJlbmRlckJSIHtCUn0gYXQgKDI3OCw1Mykgc2l6ZSAweDI1CisgICAgICAgIFJlbmRlckJSIHtC
Un0gYXQgKDI3OCw2NSkgc2l6ZSAweDI1CiAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQg
KDAsMCkgc2l6ZSAzNTh4MjUKICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDMsMTE1
KSBzaXplIDM1OHgyNQogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDMsMTE1KSB3aWR0aCAzNTg6
ICJhIGIgYyBkICIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435986</attachid>
            <date>2021-08-20 08:09:51 -0700</date>
            <delta_ts>2021-08-20 08:29:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228727-20210820080950.patch</filename>
            <type>text/plain</type>
            <size>20453</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTBmODNhNzgyOTZhODFi
YTQyMDllY2E4NjljODlkY2JkZTM2ZDk0MC4uYzE0ODM2MmVmMGMxZmJmMGEyYzVkMjZjZDMyNmVh
NWI2ODE5ZWYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA4LTIwICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEFkZCBzdXBw
b3J0IGZvciBqdXN0aWZpZWQgbm9uLWJyZWFraW5nIHNwYWNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg3MjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBMZXQncyB1c2UgRm9udENhc2NhZGU6OmV4cGFu
c2lvbk9wcG9ydHVuaXR5Q291bnQgdG8gZmlndXJlIG91dCB0aGUgbnVtYmVyIG9mIGV4cGFuc2lv
biBjb3VudHMgaW4gYSBydW4uCisgICAgICAgIEl0IGhlbHBzIHdpdGggZmluZGluZyBub24tYnJl
YWthYmxlIHNwYWNlIGluIGFuIG90aGVyd2lzZSBub24td2hpdGVzcGFjZSBjb250ZW50IChmb28m
bmJzcDtiYXIgd2hlcmUgdGhlIGNvbnRldCBmb3JtcyBvbmUgcnVuIGJ1dCB0aGUgYmVjYXVzZQor
ICAgICAgICBvZiB0aGUgbm9uLWJyZWFrYWJsZSBfc3BhY2VfIGluIHRoZSBtaWRkbGUsIGl0IGFs
c28gcHJvZHVjZXMgYW4gZXhwYW5zaW9uIG9wcG9ydHVuaXR5KS4KKyAgICAgICAgVGhpcyBwYXRj
aCBtb3ZlcyBhbGwgdGhlIGV4cGFuc2lvbiBoYW5kbGluZyBvdmVyIHRvIExpbmU6OmFwcGx5UnVu
RXhwYW5zaW9uIGFzIHdlIGFueXdheSBuZWVkIHRvIHdhbGsgdGhlIGNvbnRlbnQgdG8gZmluZCBz
dWNoIHNwYWNlcyAoaS5lLiBub3Qgd29ydGggdHJ5aW5nIHRvIHByZS1jb21wdXRlIHRoZW0pLgor
CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGx5UnVuRXhwYW5zaW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpSdW4pOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmV4cGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmU6OlJ1bjo6dmlzdWFsbHlDb2xsYXBzZVRyYWlsaW5nV2hpdGVzcGFjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6c2V0RXhwYW5zaW9uQmVoYXZpb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmV4cGFuc2lvbkJl
aGF2aW9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6
UnVuOjpzZXRIb3Jpem9udGFsRXhwYW5zaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmg6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmU6OlJ1bjo6ZXhwYW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6TGluZTo6UnVuOjpzZXRFeHBhbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpMaW5lOjpSdW46Omhhc0V4cGFuc2lvbk9wcG9ydHVuaXR5IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpleHBhbnNpb25PcHBvcnR1bml0
eUNvdW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRl
Z3JhdGlvbjo6Y2FuVXNlRm9yQ2hhcmFjdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpjYW5Vc2VGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVn
cmF0aW9uOjpjYW5Vc2VGb3JGb250QW5kVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJ
bnRlZ3JhdGlvbjo6Y2FuVXNlRm9yU3R5bGUpOgorCiAyMDIxLTA4LTIwICBBbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbSUZDXSBVbmRvIGluY29ycmVjdCBJbmxpbmVU
ZXh0Qm94IC0+IExlZ2FjeUlubGluZVRleHRCb3ggcmVuYW1pbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
TGluZS5jcHAKaW5kZXggZjBiZjMxZDA5N2MzM2RlNzY5MjQ0MWRmZmQ0OTZjYmNlZmUzZjYxYS4u
ZWYxZjRmMDRhM2EzZTNiODM5ODZmNDdlNDhiNDZmZDhlMDZiOTgxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZS5jcHAKQEAgLTczLDM2ICs3Myw2NiBAQCB2b2lkIExpbmU6OmFwcGx5UnVuRXhw
YW5zaW9uKElubGluZUxheW91dFVuaXQgZXh0cmFIb3Jpem9udGFsU3BhY2UpCiAgICAgLy8gdGhl
IGxhc3QgbGluZSBiZWZvcmUgYSBmb3JjZWQgYnJlYWsgb3IgdGhlIGVuZCBvZiB0aGUgYmxvY2sg
aXMgc3RhcnQtYWxpZ25lZC4KICAgICBpZiAobV9ydW5zLmlzRW1wdHkoKSB8fCBtX3J1bnMubGFz
dCgpLmlzTGluZUJyZWFrKCkpCiAgICAgICAgIHJldHVybjsKKyAgICAvLyBBbnl0aGluZyB0byBk
aXN0cmlidXRlPworICAgIGlmICghZXh0cmFIb3Jpem9udGFsU3BhY2UpCisgICAgICAgIHJldHVy
bjsKIAotICAgIGF1dG8gZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCA9IDA7Ci0gICAgUnVuKiBs
YXN0UnVuV2l0aENvbnRlbnQgPSBudWxscHRyOwogICAgIC8vIENvbGxlY3QgYW5kIGRpc3RyaWJ1
dGUgdGhlIGV4cGFuc2lvbiBvcHBvcnR1bml0aWVzLgotICAgIGZvciAoYXV0byYgcnVuIDogbV9y
dW5zKSB7Ci0gICAgICAgIGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQgKz0gcnVuLmV4cGFuc2lv
bk9wcG9ydHVuaXR5Q291bnQoKTsKKyAgICBzaXplX3QgbGluZUV4cGFuc2lvbk9wcG9ydHVuaXRp
ZXMgPSAwOworICAgIFZlY3RvcjxzaXplX3Q+IHJ1bnNFeHBhbnNpb25PcHBvcnR1bml0aWVzKG1f
cnVucy5zaXplKCkpOworICAgIFZlY3RvcjxFeHBhbnNpb25CZWhhdmlvcj4gcnVuc0V4cGFuc2lv
bkJlaGF2aW9ycyhtX3J1bnMuc2l6ZSgpKTsKKyAgICBhdXRvIGxhc3RSdW5JbmRleFdpdGhDb250
ZW50ID0gc3RkOjpvcHRpb25hbDxzaXplX3Q+IHsgfTsKKworICAgIC8vIExpbmUgc3RhcnQgYmVo
YXZlcyBhcyBpZiB3ZSBoYWQgYW4gZXhwYW5zaW9uIGhlcmUgKGkuZS4gZmlzdCBydW5zIHNob3Vs
ZCBub3Qgc3RhcnQgd2l0aCBhbGxvd2luZyBsZWZ0IGV4cGFuc2lvbikuCisgICAgYXV0byBydW5J
c0FmdGVyRXhwYW5zaW9uID0gdHJ1ZTsKKyAgICBmb3IgKHNpemVfdCBydW5JbmRleCA9IDA7IHJ1
bkluZGV4IDwgbV9ydW5zLnNpemUoKTsgKytydW5JbmRleCkgeworICAgICAgICBhdXRvJiBydW4g
PSBtX3J1bnNbcnVuSW5kZXhdOworICAgICAgICBhdXRvJiBzdHlsZSA9IHJ1bi5zdHlsZSgpOwor
ICAgICAgICBpbnQgZXhwYW5zaW9uQmVoYXZpb3IgPSBEZWZhdWx0RXhwYW5zaW9uOworICAgICAg
ICBzaXplX3QgZXhwYW5zaW9uT3Bwb3J0dW5pdGllc0luUnVuID0gMDsKKworICAgICAgICBpZiAo
cnVuLmlzVGV4dCgpICYmICFUZXh0VXRpbDo6c2hvdWxkUHJlc2VydmVTcGFjZXNBbmRUYWJzKHJ1
bi5sYXlvdXRCb3goKSkpIHsKKyAgICAgICAgICAgIGlmIChzdHlsZS50ZXh0Q29tYmluZSgpID09
IFRleHRDb21iaW5lOjpIb3Jpem9udGFsKQorICAgICAgICAgICAgICAgIGV4cGFuc2lvbkJlaGF2
aW9yID0gRm9yYmlkTGVmdEV4cGFuc2lvbiB8IEZvcmJpZFJpZ2h0RXhwYW5zaW9uOworICAgICAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZXhwYW5zaW9uQmVoYXZpb3IgPSAocnVuSXNB
ZnRlckV4cGFuc2lvbiA/IEZvcmJpZExlZnRFeHBhbnNpb24gOiBBbGxvd0xlZnRFeHBhbnNpb24p
IHwgQWxsb3dSaWdodEV4cGFuc2lvbjsKKyAgICAgICAgICAgICAgICBzdGQ6OnRpZShleHBhbnNp
b25PcHBvcnR1bml0aWVzSW5SdW4sIHJ1bklzQWZ0ZXJFeHBhbnNpb24pID0gRm9udENhc2NhZGU6
OmV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQoU3RyaW5nVmlldyhydW4udGV4dENvbnRlbnQoKS0+
Y29udGVudCgpKS5zdWJzdHJpbmcocnVuLnRleHRDb250ZW50KCktPnN0YXJ0KCksIHJ1bi50ZXh0
Q29udGVudCgpLT5sZW5ndGgoKSksIHJ1bi5zdHlsZSgpLmRpcmVjdGlvbigpLCBleHBhbnNpb25C
ZWhhdmlvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAocnVuLmlzQm94KCkp
CisgICAgICAgICAgICBydW5Jc0FmdGVyRXhwYW5zaW9uID0gZmFsc2U7CisKKyAgICAgICAgcnVu
c0V4cGFuc2lvbkJlaGF2aW9yc1tydW5JbmRleF0gPSBleHBhbnNpb25CZWhhdmlvcjsKKyAgICAg
ICAgcnVuc0V4cGFuc2lvbk9wcG9ydHVuaXRpZXNbcnVuSW5kZXhdID0gZXhwYW5zaW9uT3Bwb3J0
dW5pdGllc0luUnVuOworICAgICAgICBsaW5lRXhwYW5zaW9uT3Bwb3J0dW5pdGllcyArPSBleHBh
bnNpb25PcHBvcnR1bml0aWVzSW5SdW47CisKICAgICAgICAgaWYgKHJ1bi5pc1RleHQoKSB8fCBy
dW4uaXNCb3goKSkKLSAgICAgICAgICAgIGxhc3RSdW5XaXRoQ29udGVudCA9ICZydW47CisgICAg
ICAgICAgICBsYXN0UnVuSW5kZXhXaXRoQ29udGVudCA9IHJ1bkluZGV4OwogICAgIH0KICAgICAv
LyBOZWVkIHRvIGZpeCB1cCB0aGUgbGFzdCBydW4ncyB0cmFpbGluZyBleHBhbnNpb24uCi0gICAg
aWYgKGxhc3RSdW5XaXRoQ29udGVudCAmJiBsYXN0UnVuV2l0aENvbnRlbnQtPmhhc0V4cGFuc2lv
bk9wcG9ydHVuaXR5KCkpIHsKKyAgICBpZiAobGFzdFJ1bkluZGV4V2l0aENvbnRlbnQgJiYgcnVu
c0V4cGFuc2lvbk9wcG9ydHVuaXRpZXNbKmxhc3RSdW5JbmRleFdpdGhDb250ZW50XSkgewogICAg
ICAgICAvLyBUdXJuIG9mZiB0aGUgdHJhaWxpbmcgYml0cyBmaXJzdCBhbmQgYWRkIHRoZSBmb3Ji
aWQgdHJhaWxpbmcgZXhwYW5zaW9uLgotICAgICAgICBhdXRvIGxlYWRpbmdFeHBhbnNpb24gPSBs
YXN0UnVuV2l0aENvbnRlbnQtPmV4cGFuc2lvbkJlaGF2aW9yKCkgJiBMZWZ0RXhwYW5zaW9uTWFz
azsKLSAgICAgICAgbGFzdFJ1bldpdGhDb250ZW50LT5zZXRFeHBhbnNpb25CZWhhdmlvcihsZWFk
aW5nRXhwYW5zaW9uIHwgRm9yYmlkUmlnaHRFeHBhbnNpb24pOworICAgICAgICBhdXRvIGxlYWRp
bmdFeHBhbnNpb24gPSBydW5zRXhwYW5zaW9uQmVoYXZpb3JzWypsYXN0UnVuSW5kZXhXaXRoQ29u
dGVudF0gJiBMZWZ0RXhwYW5zaW9uTWFzazsKKyAgICAgICAgcnVuc0V4cGFuc2lvbkJlaGF2aW9y
c1sqbGFzdFJ1bkluZGV4V2l0aENvbnRlbnRdID0gbGVhZGluZ0V4cGFuc2lvbiB8IEZvcmJpZFJp
Z2h0RXhwYW5zaW9uOworICAgICAgICBpZiAocnVuSXNBZnRlckV4cGFuc2lvbikgeworICAgICAg
ICAgICAgLy8gV2hlbiB0aGUgbGFzdCBydW4gaGFzIGFuIGFmdGVyIGV4cGFuc2lvbiAoZS5nLiBD
SksgaWRlb2dyYXBoKSB3ZSBuZWVkIHRvIHJlbW92ZSB0aGlzIHRyYWlsaW5nIGV4cGFuc2lvbiBv
cHBvcnR1bml0eS4KKyAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCBhYm91dCB0
cmFpbGluZyBjb2xsYXBzaWJsZSB3aGl0ZXNwYWNlIGFzIGF0IHRoaXMgcG9pbnQgd2UgdHJpbW1l
ZCB0aGVtIGFsbC4KKyAgICAgICAgICAgIEFTU0VSVChsaW5lRXhwYW5zaW9uT3Bwb3J0dW5pdGll
cyAmJiBydW5zRXhwYW5zaW9uT3Bwb3J0dW5pdGllc1sqbGFzdFJ1bkluZGV4V2l0aENvbnRlbnRd
KTsKKyAgICAgICAgICAgIC0tbGluZUV4cGFuc2lvbk9wcG9ydHVuaXRpZXM7CisgICAgICAgICAg
ICAtLXJ1bnNFeHBhbnNpb25PcHBvcnR1bml0aWVzWypsYXN0UnVuSW5kZXhXaXRoQ29udGVudF07
CisgICAgICAgIH0KICAgICB9CiAgICAgLy8gQW55dGhpbmcgdG8gZGlzdHJpYnV0ZT8KLSAgICBp
ZiAoIWV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQgfHwgIWV4dHJhSG9yaXpvbnRhbFNwYWNlKQor
ICAgIGlmICghbGluZUV4cGFuc2lvbk9wcG9ydHVuaXRpZXMpCiAgICAgICAgIHJldHVybjsKICAg
ICAvLyBEaXN0cmlidXRlIHRoZSBleHRyYSBzcGFjZS4KLSAgICBhdXRvIGV4cGFuc2lvblRvRGlz
dHJpYnV0ZSA9IGV4dHJhSG9yaXpvbnRhbFNwYWNlIC8gZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3Vu
dDsKKyAgICBhdXRvIGV4cGFuc2lvblRvRGlzdHJpYnV0ZSA9IGV4dHJhSG9yaXpvbnRhbFNwYWNl
IC8gbGluZUV4cGFuc2lvbk9wcG9ydHVuaXRpZXM7CiAgICAgYXV0byBhY2N1bXVsYXRlZEV4cGFu
c2lvbiA9IElubGluZUxheW91dFVuaXQgeyB9OwotICAgIGZvciAoYXV0byYgcnVuIDogbV9ydW5z
KSB7CisgICAgZm9yIChzaXplX3QgcnVuSW5kZXggPSAwOyBydW5JbmRleCA8IG1fcnVucy5zaXpl
KCk7ICsrcnVuSW5kZXgpIHsKKyAgICAgICAgYXV0byYgcnVuID0gbV9ydW5zW3J1bkluZGV4XTsK
ICAgICAgICAgLy8gRXhwYW5kIGFuZCBtb3ZlIHJ1bnMgYnkgdGhlIGFjY3VtdWxhdGVkIGV4cGFu
c2lvbi4KICAgICAgICAgcnVuLm1vdmVIb3Jpem9udGFsbHkoYWNjdW11bGF0ZWRFeHBhbnNpb24p
OwotICAgICAgICBpZiAoIXJ1bi5oYXNFeHBhbnNpb25PcHBvcnR1bml0eSgpKQotICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgIEFTU0VSVChydW4uZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3Vu
dCgpKTsKLSAgICAgICAgYXV0byBjb21wdXRlZEV4cGFuc2lvbiA9IGV4cGFuc2lvblRvRGlzdHJp
YnV0ZSAqIHJ1bi5leHBhbnNpb25PcHBvcnR1bml0eUNvdW50KCk7Ci0gICAgICAgIC8vIEZJWE1F
OiBDaGVjayB3aHkgd2UgbmVlZCB0byBzZXQgYm90aC4KLSAgICAgICAgcnVuLnNldEhvcml6b250
YWxFeHBhbnNpb24oY29tcHV0ZWRFeHBhbnNpb24pOworICAgICAgICBhdXRvIGNvbXB1dGVkRXhw
YW5zaW9uID0gZXhwYW5zaW9uVG9EaXN0cmlidXRlICogcnVuc0V4cGFuc2lvbk9wcG9ydHVuaXRp
ZXNbcnVuSW5kZXhdOworICAgICAgICBydW4uc2V0RXhwYW5zaW9uKHsgcnVuc0V4cGFuc2lvbkJl
aGF2aW9yc1tydW5JbmRleF0sIGNvbXB1dGVkRXhwYW5zaW9uIH0pOwogICAgICAgICBydW4uc2hy
aW5rSG9yaXpvbnRhbGx5KC1jb21wdXRlZEV4cGFuc2lvbik7CiAgICAgICAgIGFjY3VtdWxhdGVk
RXhwYW5zaW9uICs9IGNvbXB1dGVkRXhwYW5zaW9uOwogICAgIH0KQEAgLTQzNiwyMCArNDY2LDE0
IEBAIExpbmU6OlJ1bjo6UnVuKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwg
SW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmCiAgICAgLCBtX2xheW91dEJveCgmaW5saW5lVGV4
dEl0ZW0ubGF5b3V0Qm94KCkpCiAgICAgLCBtX2xvZ2ljYWxMZWZ0KGxvZ2ljYWxMZWZ0KQogICAg
ICwgbV9sb2dpY2FsV2lkdGgobG9naWNhbFdpZHRoKQotICAgICwgbV93aGl0ZXNwYWNlSXNFeHBh
bnNpb25PcHBvcnR1bml0eSghVGV4dFV0aWw6OnNob3VsZFByZXNlcnZlU3BhY2VzQW5kVGFicyhp
bmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSkpCiAgICAgLCBtX3RyYWlsaW5nV2hpdGVzcGFjZVR5
cGUodHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShpbmxpbmVUZXh0SXRlbSkpCisgICAgLCBtX3RyYWls
aW5nV2hpdGVzcGFjZVdpZHRoKG1fdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZSAhPSBUcmFpbGluZ1do
aXRlc3BhY2U6Ok5vbmUgPyBsb2dpY2FsV2lkdGggOiBJbmxpbmVMYXlvdXRVbml0IHsgfSkKICAg
ICAsIG1fdGV4dENvbnRlbnQoeyBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBtX3RyYWlsaW5nV2hp
dGVzcGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpDb2xsYXBzZWQgPyAxIDogaW5saW5l
VGV4dEl0ZW0ubGVuZ3RoKCksIGlubGluZVRleHRJdGVtLmlubGluZVRleHRCb3goKS5jb250ZW50
KCkgfSkKIHsKLSAgICBpZiAobV90cmFpbGluZ1doaXRlc3BhY2VUeXBlICE9IFRyYWlsaW5nV2hp
dGVzcGFjZTo6Tm9uZSkgewotICAgICAgICBtX3RyYWlsaW5nV2hpdGVzcGFjZVdpZHRoID0gbG9n
aWNhbFdpZHRoOwotICAgICAgICBpZiAobV93aGl0ZXNwYWNlSXNFeHBhbnNpb25PcHBvcnR1bml0
eSkKLSAgICAgICAgICAgIG1fZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCA9IDE7Ci0gICAgfQog
fQogCiB2b2lkIExpbmU6OlJ1bjo6ZXhwYW5kKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVU
ZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCiB7Ci0gICAgLy8gRklYTUU6
IFRoaXMgaXMgYSB2ZXJ5IHNpbXBsZSBleHBhbnNpb24gbWVyZ2UuIFdlIHNob3VsZCBldmVudHVh
bGx5IHN3aXRjaCBvdmVyIHRvIEZvbnRDYXNjYWRlOjpleHBhbnNpb25PcHBvcnR1bml0eUNvdW50
LgogICAgIEFTU0VSVCghaGFzQ29sbGFwc2VkVHJhaWxpbmdXaGl0ZXNwYWNlKCkpOwogICAgIEFT
U0VSVChpc1RleHQoKSAmJiBpbmxpbmVUZXh0SXRlbS5pc1RleHQoKSk7CiAgICAgQVNTRVJUKG1f
bGF5b3V0Qm94ID09ICZpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSk7CkBAIC00NTksMTQgKzQ4
MywxMCBAQCB2b2lkIExpbmU6OlJ1bjo6ZXhwYW5kKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxp
bmVUZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsbwogCiAgICAgaWYgKG1fdHJhaWxpbmdXaGl0
ZXNwYWNlVHlwZSA9PSBUcmFpbGluZ1doaXRlc3BhY2U6Ok5vbmUpIHsKICAgICAgICAgbV90cmFp
bGluZ1doaXRlc3BhY2VXaWR0aCA9IHsgfTsKLSAgICAgICAgc2V0RXhwYW5zaW9uQmVoYXZpb3Io
QWxsb3dMZWZ0RXhwYW5zaW9uIHwgQWxsb3dSaWdodEV4cGFuc2lvbik7CiAgICAgICAgIG1fdGV4
dENvbnRlbnQtPmV4cGFuZChpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgbV90cmFpbGluZ1doaXRlc3BhY2VXaWR0aCArPSBsb2dpY2FsV2lkdGg7
Ci0gICAgaWYgKG1fd2hpdGVzcGFjZUlzRXhwYW5zaW9uT3Bwb3J0dW5pdHkpCi0gICAgICAgICsr
bV9leHBhbnNpb25PcHBvcnR1bml0eUNvdW50OwotICAgIHNldEV4cGFuc2lvbkJlaGF2aW9yKERl
ZmF1bHRFeHBhbnNpb24pOwogICAgIG1fdGV4dENvbnRlbnQtPmV4cGFuZChtX3RyYWlsaW5nV2hp
dGVzcGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpDb2xsYXBzZWQgPyAxIDogaW5saW5l
VGV4dEl0ZW0ubGVuZ3RoKCkpOwogfQogCkBAIC01MDksMzUgKzUyOSwxMCBAQCBJbmxpbmVMYXlv
dXRVbml0IExpbmU6OlJ1bjo6dmlzdWFsbHlDb2xsYXBzZVRyYWlsaW5nV2hpdGVzcGFjZShJbmxp
bmVMYXlvdXRVbml0CiAgICAgaWYgKCFtX3RyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKSB7CiAgICAg
ICAgIC8vIFdlIHRyaW1tZWQgdGhlIHRyYWlsaW5nIHdoaXRlc3BhY2UgY29tcGxldGVseS4KICAg
ICAgICAgbV90cmFpbGluZ1doaXRlc3BhY2VUeXBlID0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpOb25l
OwotCi0gICAgICAgIGlmIChtX3doaXRlc3BhY2VJc0V4cGFuc2lvbk9wcG9ydHVuaXR5KSB7Ci0g
ICAgICAgICAgICBBU1NFUlQobV9leHBhbnNpb25PcHBvcnR1bml0eUNvdW50KTsKLSAgICAgICAg
ICAgIG1fZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudC0tOwotICAgICAgICB9Ci0gICAgICAgIHNl
dEV4cGFuc2lvbkJlaGF2aW9yKEFsbG93TGVmdEV4cGFuc2lvbiB8IEFsbG93UmlnaHRFeHBhbnNp
b24pOwogICAgIH0KICAgICByZXR1cm4gdHJpbW1lZFdpZHRoOwogfQogCi12b2lkIExpbmU6OlJ1
bjo6c2V0RXhwYW5zaW9uQmVoYXZpb3IoRXhwYW5zaW9uQmVoYXZpb3IgZXhwYW5zaW9uQmVoYXZp
b3IpCi17Ci0gICAgQVNTRVJUKGlzVGV4dCgpKTsKLSAgICBtX2V4cGFuc2lvbi5iZWhhdmlvciA9
IGV4cGFuc2lvbkJlaGF2aW9yOwotfQotCi1FeHBhbnNpb25CZWhhdmlvciBMaW5lOjpSdW46OmV4
cGFuc2lvbkJlaGF2aW9yKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoaXNUZXh0KCkpOwotICAgIHJl
dHVybiBtX2V4cGFuc2lvbi5iZWhhdmlvcjsKLX0KLQotdm9pZCBMaW5lOjpSdW46OnNldEhvcml6
b250YWxFeHBhbnNpb24oSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsRXhwYW5zaW9uKQotewotICAg
IEFTU0VSVChpc1RleHQoKSk7Ci0gICAgQVNTRVJUKGhhc0V4cGFuc2lvbk9wcG9ydHVuaXR5KCkp
OwotICAgIG1fZXhwYW5zaW9uLmhvcml6b250YWxFeHBhbnNpb24gPSBsb2dpY2FsRXhwYW5zaW9u
OwotfQotCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAppbmRleCA1MGZlYjBjZmQ2Yzc5
OGM2YjUzZWQ4MzFhYjM1YzU0MWQyZjIyM2IxLi5jNWNiYWJmMTY5YjFlNGI3YjMzNDJjYTQwNjkw
NjY2NDk1YWI4YjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCkBAIC03OCw5ICs3OCw2IEBA
IHB1YmxpYzoKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsUmlnaHQoKSBjb25zdCB7
IHJldHVybiBsb2dpY2FsTGVmdCgpICsgbG9naWNhbFdpZHRoKCk7IH0KIAogICAgICAgICBjb25z
dCBMaW5lUnVuOjpFeHBhbnNpb24mIGV4cGFuc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZXhwYW5z
aW9uOyB9Ci0gICAgICAgIGJvb2wgaGFzRXhwYW5zaW9uT3Bwb3J0dW5pdHkoKSBjb25zdCB7IHJl
dHVybiBtX2V4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQ7IH0KLSAgICAgICAgRXhwYW5zaW9uQmVo
YXZpb3IgZXhwYW5zaW9uQmVoYXZpb3IoKSBjb25zdDsKLSAgICAgICAgdW5zaWduZWQgZXhwYW5z
aW9uT3Bwb3J0dW5pdHlDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZXhwYW5zaW9uT3Bwb3J0dW5p
dHlDb3VudDsgfQogCiAgICAgICAgIGJvb2wgaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkgY29uc3Qg
eyByZXR1cm4gbV90cmFpbGluZ1doaXRlc3BhY2VUeXBlICE9IFRyYWlsaW5nV2hpdGVzcGFjZTo6
Tm9uZTsgfQogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRo
KCkgY29uc3QgeyByZXR1cm4gbV90cmFpbGluZ1doaXRlc3BhY2VXaWR0aDsgfQpAQCAtOTUsOCAr
OTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgZXhwYW5kKGNvbnN0IElubGluZVRleHRJdGVt
JiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpOwogICAgICAgICB2b2lkIG1vdmVIb3Jp
em9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCBvZmZzZXQpIHsgbV9sb2dpY2FsTGVmdCArPSBvZmZz
ZXQ7IH0KICAgICAgICAgdm9pZCBzaHJpbmtIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCB3
aWR0aCkgeyBtX2xvZ2ljYWxXaWR0aCAtPSB3aWR0aDsgfQotICAgICAgICB2b2lkIHNldEV4cGFu
c2lvbkJlaGF2aW9yKEV4cGFuc2lvbkJlaGF2aW9yKTsKLSAgICAgICAgdm9pZCBzZXRIb3Jpem9u
dGFsRXhwYW5zaW9uKElubGluZUxheW91dFVuaXQgbG9naWNhbEV4cGFuc2lvbik7CisgICAgICAg
IHZvaWQgc2V0RXhwYW5zaW9uKExpbmVSdW46OkV4cGFuc2lvbiBleHBhbnNpb24pIHsgbV9leHBh
bnNpb24gPSBleHBhbnNpb247IH0KICAgICAgICAgdm9pZCBzZXROZWVkc0h5cGhlbihJbmxpbmVM
YXlvdXRVbml0IGh5cGhlbkxvZ2ljYWxXaWR0aCk7CiAKICAgICAgICAgZW51bSBjbGFzcyBUcmFp
bGluZ1doaXRlc3BhY2UgewpAQCAtMTE5LDEyICsxMTUsMTAgQEAgcHVibGljOgogICAgICAgICBj
b25zdCBCb3gqIG1fbGF5b3V0Qm94IHsgbnVsbHB0ciB9OwogICAgICAgICBJbmxpbmVMYXlvdXRV
bml0IG1fbG9naWNhbExlZnQgeyAwIH07CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV9sb2dp
Y2FsV2lkdGggeyAwIH07Ci0gICAgICAgIGJvb2wgbV93aGl0ZXNwYWNlSXNFeHBhbnNpb25PcHBv
cnR1bml0eSB7IGZhbHNlIH07CiAgICAgICAgIFRyYWlsaW5nV2hpdGVzcGFjZSBtX3RyYWlsaW5n
V2hpdGVzcGFjZVR5cGUgeyBUcmFpbGluZ1doaXRlc3BhY2U6Ok5vbmUgfTsKICAgICAgICAgSW5s
aW5lTGF5b3V0VW5pdCBtX3RyYWlsaW5nV2hpdGVzcGFjZVdpZHRoIHsgMCB9OwogICAgICAgICBz
dGQ6Om9wdGlvbmFsPExpbmVSdW46OlRleHQ+IG1fdGV4dENvbnRlbnQ7CiAgICAgICAgIExpbmVS
dW46OkV4cGFuc2lvbiBtX2V4cGFuc2lvbjsKLSAgICAgICAgdW5zaWduZWQgbV9leHBhbnNpb25P
cHBvcnR1bml0eUNvdW50IHsgMCB9OwogICAgIH07CiAgICAgdXNpbmcgUnVuTGlzdCA9IFZlY3Rv
cjxSdW4sIDEwPjsKICAgICBjb25zdCBSdW5MaXN0JiBydW5zKCkgY29uc3QgeyByZXR1cm4gbV9y
dW5zOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAKaW5kZXggYmUzZGFhN2Q4OGI2OTgz
ZWQyZDVhNmNiZmYwYzc1NDcwNGZkNGZmNy4uMjZjNTEwZTYwZWY5N2ZmODg3YmY3ZDlhM2EzMmY2
OGY4M2QyMTljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcApAQCAtMTIzLDkgKzEy
Myw2IEBAIHN0YXRpYyB2b2lkIHByaW50UmVhc29uKEF2b2lkYW5jZVJlYXNvbiByZWFzb24sIFRl
eHRTdHJlYW0mIHN0cmVhbSkKICAgICBjYXNlIEF2b2lkYW5jZVJlYXNvbjo6Rmxvd0hhc1Vuc3Vw
cG9ydGVkRmxvYXQ6CiAgICAgICAgIHN0cmVhbSA8PCAiY29tcGxpY2F0ZWQgZmxvYXQiOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEF2b2lkYW5jZVJlYXNvbjo6Rmxvd0hhc0p1c3RpZmllZE5v
bkxhdGluVGV4dDoKLSAgICAgICAgc3RyZWFtIDw8ICJ0ZXh0LWFsaWduOiBqdXN0aWZ5IHdpdGgg
bm9uLWxhdGluIHRleHQiOwotICAgICAgICBicmVhazsKICAgICBjYXNlIEF2b2lkYW5jZVJlYXNv
bjo6Rmxvd0hhc092ZXJmbG93Tm90VmlzaWJsZToKICAgICAgICAgc3RyZWFtIDw8ICJvdmVyZmxv
dzogaGlkZGVuIHwgc2Nyb2xsIHwgYXV0byI7CiAgICAgICAgIGJyZWFrOwpAQCAtNDE1LDIxICs0
MTIsMTEgQEAgc3RhdGljIHZvaWQgcHJpbnRNb2Rlcm5MaW5lTGF5b3V0Q292ZXJhZ2Uodm9pZCkK
IH0KICNlbmRpZgogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gT3B0aW9uU2V0
PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yQ2hhcmFjdGVyKENoYXJhY3RlclR5cGUsIGJvb2wg
dGV4dElzSnVzdGlmaWVkLCBJbmNsdWRlUmVhc29ucyk7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hh
cmFjdGVyVHlwZT4gT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yQ2hhcmFjdGVy
KENoYXJhY3RlclR5cGUsIEluY2x1ZGVSZWFzb25zKTsKIAotdGVtcGxhdGU8PiBPcHRpb25TZXQ8
QXZvaWRhbmNlUmVhc29uPiBjYW5Vc2VGb3JDaGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyLCBib29s
IHRleHRJc0p1c3RpZmllZCwgSW5jbHVkZVJlYXNvbnMgaW5jbHVkZVJlYXNvbnMpCit0ZW1wbGF0
ZTw+IE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVzZUZvckNoYXJhY3RlcihVQ2hhciBj
aGFyYWN0ZXIsIEluY2x1ZGVSZWFzb25zIGluY2x1ZGVSZWFzb25zKQogewogICAgIE9wdGlvblNl
dDxBdm9pZGFuY2VSZWFzb24+IHJlYXNvbnM7Ci0gICAgaWYgKHRleHRJc0p1c3RpZmllZCkgewot
ICAgICAgICBpZiAoY2hhcmFjdGVyID09IG5vQnJlYWtTcGFjZSkKLSAgICAgICAgICAgIFNFVF9S
RUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQoRmxvd0hhc0p1c3RpZmllZE5vbkJyZWFraW5nU3Bh
Y2UsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKLSAgICAgICAgLy8gSW5jbHVkZSBjaGFyYWN0
ZXJzIHVwIHRvIExhdGluIEV4dGVuZGVkLUIgYW5kIHNvbWUgcHVuY3R1YXRpb24gcmFuZ2Ugd2hl
biB0ZXh0IGlzIGp1c3RpZmllZC4KLSAgICAgICAgYm9vbCBpc0xhdGluSW5jbHVkaW5nRXh0ZW5k
ZWRCID0gY2hhcmFjdGVyIDw9IDB4MDFGRjsKLSAgICAgICAgYm9vbCBpc1B1bmN0dWF0aW9uUmFu
Z2UgPSBjaGFyYWN0ZXIgPj0gMHgyMDEwICYmIGNoYXJhY3RlciA8PSAweDIwMjc7Ci0gICAgICAg
IGlmICghKGlzTGF0aW5JbmNsdWRpbmdFeHRlbmRlZEIgfHwgaXNQdW5jdHVhdGlvblJhbmdlKSkK
LSAgICAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQoRmxvd0hhc0p1c3Rp
ZmllZE5vbkxhdGluVGV4dCwgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwotICAgIH0KLQogICAg
IGlmIChVMTZfSVNfU1VSUk9HQVRFKGNoYXJhY3RlcikpCiAgICAgICAgIFNFVF9SRUFTT05fQU5E
X1JFVFVSTl9JRl9ORUVERUQoRmxvd1RleHRIYXNTdXJyb2dhdGVQYWlyLCByZWFzb25zLCBpbmNs
dWRlUmVhc29ucyk7CiAKQEAgLTQ0MywxNiArNDMwLDEzIEBAIHRlbXBsYXRlPD4gT3B0aW9uU2V0
PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yQ2hhcmFjdGVyKFVDaGFyIGNoYXJhY3RlciwgYm9v
bCB0CiAgICAgcmV0dXJuIHJlYXNvbnM7CiB9CiAKLXRlbXBsYXRlPD4gT3B0aW9uU2V0PEF2b2lk
YW5jZVJlYXNvbj4gY2FuVXNlRm9yQ2hhcmFjdGVyKExDaGFyIGNoYXJhY3RlciwgYm9vbCB0ZXh0
SXNKdXN0aWZpZWQsIEluY2x1ZGVSZWFzb25zKQordGVtcGxhdGU8PiBPcHRpb25TZXQ8QXZvaWRh
bmNlUmVhc29uPiBjYW5Vc2VGb3JDaGFyYWN0ZXIoTENoYXIsIEluY2x1ZGVSZWFzb25zKQogewot
ICAgIGlmICh0ZXh0SXNKdXN0aWZpZWQgJiYgY2hhcmFjdGVyID09IG5vQnJlYWtTcGFjZSkKLSAg
ICAgICAgcmV0dXJuIHsgQXZvaWRhbmNlUmVhc29uOjpGbG93SGFzSnVzdGlmaWVkTm9uQnJlYWtp
bmdTcGFjZSB9OwogICAgIHJldHVybiB7IH07CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFy
YWN0ZXJUeXBlPgotc3RhdGljIE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVzZUZvclRl
eHQoY29uc3QgQ2hhcmFjdGVyVHlwZSogdGV4dCwgdW5zaWduZWQgbGVuZ3RoLCBjb25zdCBGb250
Q2FzY2FkZSYgZm9udENhc2NhZGUsIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGxpbmVIZWlnaHRDb25z
dHJhaW50LAotICAgIGJvb2wgdGV4dElzSnVzdGlmaWVkLCBJbmNsdWRlUmVhc29ucyBpbmNsdWRl
UmVhc29ucykKK3N0YXRpYyBPcHRpb25TZXQ8QXZvaWRhbmNlUmVhc29uPiBjYW5Vc2VGb3JUZXh0
KGNvbnN0IENoYXJhY3RlclR5cGUqIHRleHQsIHVuc2lnbmVkIGxlbmd0aCwgY29uc3QgRm9udENh
c2NhZGUmIGZvbnRDYXNjYWRlLCBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBsaW5lSGVpZ2h0Q29uc3Ry
YWludCwgSW5jbHVkZVJlYXNvbnMgaW5jbHVkZVJlYXNvbnMpCiB7CiAgICAgT3B0aW9uU2V0PEF2
b2lkYW5jZVJlYXNvbj4gcmVhc29uczsKICAgICBhdXRvJiBwcmltYXJ5Rm9udCA9IGZvbnRDYXNj
YWRlLnByaW1hcnlGb250KCk7CkBAIC00NjcsNyArNDUxLDcgQEAgc3RhdGljIE9wdGlvblNldDxB
dm9pZGFuY2VSZWFzb24+IGNhblVzZUZvclRleHQoY29uc3QgQ2hhcmFjdGVyVHlwZSogdGV4dCwg
dW5zaWcKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewogICAg
ICAgICBhdXRvIGNoYXJhY3RlciA9IHRleHRbaV07Ci0gICAgICAgIGF1dG8gY2hhcmFjdGVyUmVh
c29ucyA9IGNhblVzZUZvckNoYXJhY3RlcihjaGFyYWN0ZXIsIHRleHRJc0p1c3RpZmllZCwgaW5j
bHVkZVJlYXNvbnMpOworICAgICAgICBhdXRvIGNoYXJhY3RlclJlYXNvbnMgPSBjYW5Vc2VGb3JD
aGFyYWN0ZXIoY2hhcmFjdGVyLCBpbmNsdWRlUmVhc29ucyk7CiAgICAgICAgIGlmIChjaGFyYWN0
ZXJSZWFzb25zKQogICAgICAgICAgICAgQUREX1JFQVNPTlNfQU5EX1JFVFVSTl9JRl9ORUVERUQo
Y2hhcmFjdGVyUmVhc29ucywgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwogCkBAIC00ODQsMTEg
KzQ2OCwxMSBAQCBzdGF0aWMgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yVGV4
dChjb25zdCBDaGFyYWN0ZXJUeXBlKiB0ZXh0LCB1bnNpZwogICAgIHJldHVybiByZWFzb25zOwog
fQogCi1zdGF0aWMgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yVGV4dChTdHJp
bmdWaWV3IHRleHQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgc3RkOjpvcHRpb25h
bDxmbG9hdD4gbGluZUhlaWdodENvbnN0cmFpbnQsIGJvb2wgdGV4dElzSnVzdGlmaWVkLCBJbmNs
dWRlUmVhc29ucyBpbmNsdWRlUmVhc29ucykKK3N0YXRpYyBPcHRpb25TZXQ8QXZvaWRhbmNlUmVh
c29uPiBjYW5Vc2VGb3JUZXh0KFN0cmluZ1ZpZXcgdGV4dCwgY29uc3QgRm9udENhc2NhZGUmIGZv
bnRDYXNjYWRlLCBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBsaW5lSGVpZ2h0Q29uc3RyYWludCwgSW5j
bHVkZVJlYXNvbnMgaW5jbHVkZVJlYXNvbnMpCiB7CiAgICAgaWYgKHRleHQuaXM4Qml0KCkpCi0g
ICAgICAgIHJldHVybiBjYW5Vc2VGb3JUZXh0KHRleHQuY2hhcmFjdGVyczgoKSwgdGV4dC5sZW5n
dGgoKSwgZm9udENhc2NhZGUsIGxpbmVIZWlnaHRDb25zdHJhaW50LCB0ZXh0SXNKdXN0aWZpZWQs
IGluY2x1ZGVSZWFzb25zKTsKLSAgICByZXR1cm4gY2FuVXNlRm9yVGV4dCh0ZXh0LmNoYXJhY3Rl
cnMxNigpLCB0ZXh0Lmxlbmd0aCgpLCBmb250Q2FzY2FkZSwgbGluZUhlaWdodENvbnN0cmFpbnQs
IHRleHRJc0p1c3RpZmllZCwgaW5jbHVkZVJlYXNvbnMpOworICAgICAgICByZXR1cm4gY2FuVXNl
Rm9yVGV4dCh0ZXh0LmNoYXJhY3RlcnM4KCksIHRleHQubGVuZ3RoKCksIGZvbnRDYXNjYWRlLCBs
aW5lSGVpZ2h0Q29uc3RyYWludCwgaW5jbHVkZVJlYXNvbnMpOworICAgIHJldHVybiBjYW5Vc2VG
b3JUZXh0KHRleHQuY2hhcmFjdGVyczE2KCksIHRleHQubGVuZ3RoKCksIGZvbnRDYXNjYWRlLCBs
aW5lSGVpZ2h0Q29uc3RyYWludCwgaW5jbHVkZVJlYXNvbnMpOwogfQogCiBzdGF0aWMgT3B0aW9u
U2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yRm9udEFuZFRleHQoY29uc3QgUmVuZGVyQm94
TW9kZWxPYmplY3QmIGNvbnRhaW5lciwgSW5jbHVkZVJlYXNvbnMgaW5jbHVkZVJlYXNvbnMpCkBA
IC01MDIsNyArNDg2LDYgQEAgc3RhdGljIE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVz
ZUZvckZvbnRBbmRUZXh0KGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWMKICAgICBzdGQ6Om9wdGlv
bmFsPGZsb2F0PiBsaW5lSGVpZ2h0Q29uc3RyYWludDsKICAgICBpZiAoc3R5bGUubGluZUJveENv
bnRhaW4oKS5jb250YWlucyhMaW5lQm94Q29udGFpbjo6R2x5cGhzKSkKICAgICAgICAgbGluZUhl
aWdodENvbnN0cmFpbnQgPSBjb250YWluZXIubGluZUhlaWdodChmYWxzZSwgSG9yaXpvbnRhbExp
bmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcykudG9GbG9hdCgpOwotICAgIGJvb2wgZmxv
d0lzSnVzdGlmaWVkID0gc3R5bGUudGV4dEFsaWduKCkgPT0gVGV4dEFsaWduTW9kZTo6SnVzdGlm
eTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIHRleHRSZW5kZXJlciA6IGNoaWxkcmVuT2ZUeXBlPFJl
bmRlclRleHQ+KGNvbnRhaW5lcikpIHsKICAgICAgICAgLy8gRklYTUU6IERvIG5vdCByZXR1cm4g
dW50aWwgYWZ0ZXIgY2hlY2tpbmcgYWxsIGNoaWxkcmVuLgogICAgICAgICBpZiAodGV4dFJlbmRl
cmVyLmlzQ29tYmluZVRleHQoKSkKQEAgLTUyNSw3ICs1MDgsNyBAQCBzdGF0aWMgT3B0aW9uU2V0
PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yRm9udEFuZFRleHQoY29uc3QgUmVuZGVyQm94TW9k
ZWxPYmplYwogICAgICAgICAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQo
Rmxvd0hhc0NvbXBsZXhGb250Q29kZVBhdGgsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKICAg
ICAgICAgfQogCi0gICAgICAgIGF1dG8gdGV4dFJlYXNvbnMgPSBjYW5Vc2VGb3JUZXh0KHRleHRS
ZW5kZXJlci5zdHJpbmdWaWV3KCksIGZvbnRDYXNjYWRlLCBsaW5lSGVpZ2h0Q29uc3RyYWludCwg
Zmxvd0lzSnVzdGlmaWVkLCBpbmNsdWRlUmVhc29ucyk7CisgICAgICAgIGF1dG8gdGV4dFJlYXNv
bnMgPSBjYW5Vc2VGb3JUZXh0KHRleHRSZW5kZXJlci5zdHJpbmdWaWV3KCksIGZvbnRDYXNjYWRl
LCBsaW5lSGVpZ2h0Q29uc3RyYWludCwgaW5jbHVkZVJlYXNvbnMpOwogICAgICAgICBpZiAodGV4
dFJlYXNvbnMpCiAgICAgICAgICAgICBBRERfUkVBU09OU19BTkRfUkVUVVJOX0lGX05FRURFRCh0
ZXh0UmVhc29ucywgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVy
YWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRp
b25Db3ZlcmFnZS5oCmluZGV4IGM5Nzg4ZDllY2ZiNGI0OTczMzM4NDRhOWRlZWVkMjlmYjIwZTE1
NDIuLmVmNjNlZGNlNjkwZjNjNzJmY2QyNzg0NWQ2YjAxZDA1NDJlYmYwYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVy
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uQ292ZXJhZ2UuaApAQCAtNDksNyArNDksNyBAQCBlbnVtIGNsYXNzIEF2b2lkYW5jZVJl
YXNvbiA6IHVpbnQ2NF90IHsKICAgICBGbG93SGFzTm9uU3VwcG9ydGVkQ2hpbGQgICAgICAgICAg
ICAgICAgICAgICA9IDFMTFUgIDw8IDksCiAgICAgRmxvd0hhc1Vuc3VwcG9ydGVkRmxvYXQgICAg
ICAgICAgICAgICAgICAgICAgPSAxTExVICA8PCAxMCwKICAgICAvLyBVbnVzZWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDFMTFUgIDw8IDExLAotICAgIEZsb3dIYXNKdXN0
aWZpZWROb25MYXRpblRleHQgICAgICAgICAgICAgICAgID0gMUxMVSAgPDwgMTIsCisgICAgLy8g
VW51c2VkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxTExVICA8PCAxMiwK
ICAgICBGbG93SGFzT3ZlcmZsb3dOb3RWaXNpYmxlICAgICAgICAgICAgICAgICAgICA9IDFMTFUg
IDw8IDEzLAogICAgIC8vIFVudXNlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMUxMVSAgPDwgMTQsCiAgICAgRmxvd0lzTm90TFRSICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxTExVICA8PCAxNSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L3RleHQvanVzdGlmeS1uYnNwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L3RleHQvanVzdGlmeS1uYnNwLWV4cGVjdGVkLnR4dAppbmRleCBmNjEy
YzllOTM3NWJjMDM1Y2U0MzczZDBjZGVmYzBkODhmODhkMDRjLi4zZWUxYjA4ZDkyODNiOWJkODYw
MzYzNTI1ZTIzMTYxYzdmYzUyMTBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC90ZXh0L2p1c3RpZnktbmJzcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9qdXN0aWZ5LW5ic3AtZXhwZWN0ZWQudHh0CkBAIC0xMCw3
ICsxMCw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDM2MCwxNSkgc2l6ZSA2NTB4NzUKICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MzYwLDE1KSB3aWR0aCAyOTM6ICJlIGYgZyBoIgogICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDY1
KSB3aWR0aCAyNzU6ICJ4eHh4eHh4eHh4eCIKLSAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjc4
LDUzKSBzaXplIDB4MjUKKyAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjc4LDY1KSBzaXplIDB4
MjUKICAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDM1OHgyNQogICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMywxMTUpIHNpemUgMzU4eDI1CiAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMywxMTUpIHdpZHRoIDM1ODogImEgYiBjIGQgIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435990</attachid>
            <date>2021-08-20 08:29:27 -0700</date>
            <delta_ts>2021-08-20 14:24:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228727-20210820082926.patch</filename>
            <type>text/plain</type>
            <size>20426</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU3ODFkYjdmYTlmNTM4
YjNlMmE0Yjg3ODRiNWJmMDFlOGI3N2E1OS4uODZmNTk3MmNhMmIzMTUyMWYzMmI5OGE1YTJkODRl
M2MzY2Q2Y2IyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA4LTIwICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEFkZCBzdXBw
b3J0IGZvciBqdXN0aWZpZWQgbm9uLWJyZWFraW5nIHNwYWNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjg3MjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBMZXQncyB1c2UgRm9udENhc2NhZGU6OmV4cGFu
c2lvbk9wcG9ydHVuaXR5Q291bnQgdG8gZmlndXJlIG91dCB0aGUgbnVtYmVyIG9mIGV4cGFuc2lv
biBjb3VudHMgaW4gYSBydW4uCisgICAgICAgIEl0IGhlbHBzIHdpdGggZmluZGluZyBub24tYnJl
YWthYmxlIHNwYWNlIGluIGFuIG90aGVyd2lzZSBub24td2hpdGVzcGFjZSBjb250ZW50IChmb28m
bmJzcDtiYXIgd2hlcmUgdGhlIGNvbnRldCBmb3JtcyBvbmUgcnVuIGJ1dCB0aGUgYmVjYXVzZQor
ICAgICAgICBvZiB0aGUgbm9uLWJyZWFrYWJsZSBfc3BhY2VfIGluIHRoZSBtaWRkbGUsIGl0IGFs
c28gcHJvZHVjZXMgYW4gZXhwYW5zaW9uIG9wcG9ydHVuaXR5KS4KKyAgICAgICAgVGhpcyBwYXRj
aCBtb3ZlcyBhbGwgdGhlIGV4cGFuc2lvbiBoYW5kbGluZyBvdmVyIHRvIExpbmU6OmFwcGx5UnVu
RXhwYW5zaW9uIGFzIHdlIGFueXdheSBuZWVkIHRvIHdhbGsgdGhlIGNvbnRlbnQgdG8gZmluZCBz
dWNoIHNwYWNlcyAoaS5lLiBub3Qgd29ydGggdHJ5aW5nIHRvIHByZS1jb21wdXRlIHRoZW0pLgor
CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGx5UnVuRXhwYW5zaW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpSdW4pOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmV4cGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmU6OlJ1bjo6dmlzdWFsbHlDb2xsYXBzZVRyYWlsaW5nV2hpdGVzcGFjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OlJ1bjo6c2V0RXhwYW5zaW9uQmVoYXZpb3IpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpSdW46OmV4cGFuc2lvbkJl
aGF2aW9yIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6
UnVuOjpzZXRIb3Jpem9udGFsRXhwYW5zaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmg6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmU6OlJ1bjo6ZXhwYW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6TGluZTo6UnVuOjpzZXRFeHBhbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpMaW5lOjpSdW46Omhhc0V4cGFuc2lvbk9wcG9ydHVuaXR5IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6UnVuOjpleHBhbnNpb25PcHBvcnR1bml0
eUNvdW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRl
Z3JhdGlvbjo6Y2FuVXNlRm9yQ2hhcmFjdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpjYW5Vc2VGb3JUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVn
cmF0aW9uOjpjYW5Vc2VGb3JGb250QW5kVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJ
bnRlZ3JhdGlvbjo6Y2FuVXNlRm9yU3R5bGUpOgorCiAyMDIxLTA4LTIwICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRp
bmcgcjI4MTMwNy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKaW5kZXggZjBiZjMxZDA5N2Mz
M2RlNzY5MjQ0MWRmZmQ0OTZjYmNlZmUzZjYxYS4uZWYxZjRmMDRhM2EzZTNiODM5ODZmNDdlNDhi
NDZmZDhlMDZiOTgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5jcHAKQEAgLTczLDM2ICs3
Myw2NiBAQCB2b2lkIExpbmU6OmFwcGx5UnVuRXhwYW5zaW9uKElubGluZUxheW91dFVuaXQgZXh0
cmFIb3Jpem9udGFsU3BhY2UpCiAgICAgLy8gdGhlIGxhc3QgbGluZSBiZWZvcmUgYSBmb3JjZWQg
YnJlYWsgb3IgdGhlIGVuZCBvZiB0aGUgYmxvY2sgaXMgc3RhcnQtYWxpZ25lZC4KICAgICBpZiAo
bV9ydW5zLmlzRW1wdHkoKSB8fCBtX3J1bnMubGFzdCgpLmlzTGluZUJyZWFrKCkpCiAgICAgICAg
IHJldHVybjsKKyAgICAvLyBBbnl0aGluZyB0byBkaXN0cmlidXRlPworICAgIGlmICghZXh0cmFI
b3Jpem9udGFsU3BhY2UpCisgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gZXhwYW5zaW9uT3Bw
b3J0dW5pdHlDb3VudCA9IDA7Ci0gICAgUnVuKiBsYXN0UnVuV2l0aENvbnRlbnQgPSBudWxscHRy
OwogICAgIC8vIENvbGxlY3QgYW5kIGRpc3RyaWJ1dGUgdGhlIGV4cGFuc2lvbiBvcHBvcnR1bml0
aWVzLgotICAgIGZvciAoYXV0byYgcnVuIDogbV9ydW5zKSB7Ci0gICAgICAgIGV4cGFuc2lvbk9w
cG9ydHVuaXR5Q291bnQgKz0gcnVuLmV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQoKTsKKyAgICBz
aXplX3QgbGluZUV4cGFuc2lvbk9wcG9ydHVuaXRpZXMgPSAwOworICAgIFZlY3RvcjxzaXplX3Q+
IHJ1bnNFeHBhbnNpb25PcHBvcnR1bml0aWVzKG1fcnVucy5zaXplKCkpOworICAgIFZlY3RvcjxF
eHBhbnNpb25CZWhhdmlvcj4gcnVuc0V4cGFuc2lvbkJlaGF2aW9ycyhtX3J1bnMuc2l6ZSgpKTsK
KyAgICBhdXRvIGxhc3RSdW5JbmRleFdpdGhDb250ZW50ID0gc3RkOjpvcHRpb25hbDxzaXplX3Q+
IHsgfTsKKworICAgIC8vIExpbmUgc3RhcnQgYmVoYXZlcyBhcyBpZiB3ZSBoYWQgYW4gZXhwYW5z
aW9uIGhlcmUgKGkuZS4gZmlzdCBydW5zIHNob3VsZCBub3Qgc3RhcnQgd2l0aCBhbGxvd2luZyBs
ZWZ0IGV4cGFuc2lvbikuCisgICAgYXV0byBydW5Jc0FmdGVyRXhwYW5zaW9uID0gdHJ1ZTsKKyAg
ICBmb3IgKHNpemVfdCBydW5JbmRleCA9IDA7IHJ1bkluZGV4IDwgbV9ydW5zLnNpemUoKTsgKyty
dW5JbmRleCkgeworICAgICAgICBhdXRvJiBydW4gPSBtX3J1bnNbcnVuSW5kZXhdOworICAgICAg
ICBhdXRvJiBzdHlsZSA9IHJ1bi5zdHlsZSgpOworICAgICAgICBpbnQgZXhwYW5zaW9uQmVoYXZp
b3IgPSBEZWZhdWx0RXhwYW5zaW9uOworICAgICAgICBzaXplX3QgZXhwYW5zaW9uT3Bwb3J0dW5p
dGllc0luUnVuID0gMDsKKworICAgICAgICBpZiAocnVuLmlzVGV4dCgpICYmICFUZXh0VXRpbDo6
c2hvdWxkUHJlc2VydmVTcGFjZXNBbmRUYWJzKHJ1bi5sYXlvdXRCb3goKSkpIHsKKyAgICAgICAg
ICAgIGlmIChzdHlsZS50ZXh0Q29tYmluZSgpID09IFRleHRDb21iaW5lOjpIb3Jpem9udGFsKQor
ICAgICAgICAgICAgICAgIGV4cGFuc2lvbkJlaGF2aW9yID0gRm9yYmlkTGVmdEV4cGFuc2lvbiB8
IEZvcmJpZFJpZ2h0RXhwYW5zaW9uOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAg
ICAgZXhwYW5zaW9uQmVoYXZpb3IgPSAocnVuSXNBZnRlckV4cGFuc2lvbiA/IEZvcmJpZExlZnRF
eHBhbnNpb24gOiBBbGxvd0xlZnRFeHBhbnNpb24pIHwgQWxsb3dSaWdodEV4cGFuc2lvbjsKKyAg
ICAgICAgICAgICAgICBzdGQ6OnRpZShleHBhbnNpb25PcHBvcnR1bml0aWVzSW5SdW4sIHJ1bklz
QWZ0ZXJFeHBhbnNpb24pID0gRm9udENhc2NhZGU6OmV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQo
U3RyaW5nVmlldyhydW4udGV4dENvbnRlbnQoKS0+Y29udGVudCgpKS5zdWJzdHJpbmcocnVuLnRl
eHRDb250ZW50KCktPnN0YXJ0KCksIHJ1bi50ZXh0Q29udGVudCgpLT5sZW5ndGgoKSksIHJ1bi5z
dHlsZSgpLmRpcmVjdGlvbigpLCBleHBhbnNpb25CZWhhdmlvcik7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0gZWxzZSBpZiAocnVuLmlzQm94KCkpCisgICAgICAgICAgICBydW5Jc0FmdGVyRXhw
YW5zaW9uID0gZmFsc2U7CisKKyAgICAgICAgcnVuc0V4cGFuc2lvbkJlaGF2aW9yc1tydW5JbmRl
eF0gPSBleHBhbnNpb25CZWhhdmlvcjsKKyAgICAgICAgcnVuc0V4cGFuc2lvbk9wcG9ydHVuaXRp
ZXNbcnVuSW5kZXhdID0gZXhwYW5zaW9uT3Bwb3J0dW5pdGllc0luUnVuOworICAgICAgICBsaW5l
RXhwYW5zaW9uT3Bwb3J0dW5pdGllcyArPSBleHBhbnNpb25PcHBvcnR1bml0aWVzSW5SdW47CisK
ICAgICAgICAgaWYgKHJ1bi5pc1RleHQoKSB8fCBydW4uaXNCb3goKSkKLSAgICAgICAgICAgIGxh
c3RSdW5XaXRoQ29udGVudCA9ICZydW47CisgICAgICAgICAgICBsYXN0UnVuSW5kZXhXaXRoQ29u
dGVudCA9IHJ1bkluZGV4OwogICAgIH0KICAgICAvLyBOZWVkIHRvIGZpeCB1cCB0aGUgbGFzdCBy
dW4ncyB0cmFpbGluZyBleHBhbnNpb24uCi0gICAgaWYgKGxhc3RSdW5XaXRoQ29udGVudCAmJiBs
YXN0UnVuV2l0aENvbnRlbnQtPmhhc0V4cGFuc2lvbk9wcG9ydHVuaXR5KCkpIHsKKyAgICBpZiAo
bGFzdFJ1bkluZGV4V2l0aENvbnRlbnQgJiYgcnVuc0V4cGFuc2lvbk9wcG9ydHVuaXRpZXNbKmxh
c3RSdW5JbmRleFdpdGhDb250ZW50XSkgewogICAgICAgICAvLyBUdXJuIG9mZiB0aGUgdHJhaWxp
bmcgYml0cyBmaXJzdCBhbmQgYWRkIHRoZSBmb3JiaWQgdHJhaWxpbmcgZXhwYW5zaW9uLgotICAg
ICAgICBhdXRvIGxlYWRpbmdFeHBhbnNpb24gPSBsYXN0UnVuV2l0aENvbnRlbnQtPmV4cGFuc2lv
bkJlaGF2aW9yKCkgJiBMZWZ0RXhwYW5zaW9uTWFzazsKLSAgICAgICAgbGFzdFJ1bldpdGhDb250
ZW50LT5zZXRFeHBhbnNpb25CZWhhdmlvcihsZWFkaW5nRXhwYW5zaW9uIHwgRm9yYmlkUmlnaHRF
eHBhbnNpb24pOworICAgICAgICBhdXRvIGxlYWRpbmdFeHBhbnNpb24gPSBydW5zRXhwYW5zaW9u
QmVoYXZpb3JzWypsYXN0UnVuSW5kZXhXaXRoQ29udGVudF0gJiBMZWZ0RXhwYW5zaW9uTWFzazsK
KyAgICAgICAgcnVuc0V4cGFuc2lvbkJlaGF2aW9yc1sqbGFzdFJ1bkluZGV4V2l0aENvbnRlbnRd
ID0gbGVhZGluZ0V4cGFuc2lvbiB8IEZvcmJpZFJpZ2h0RXhwYW5zaW9uOworICAgICAgICBpZiAo
cnVuSXNBZnRlckV4cGFuc2lvbikgeworICAgICAgICAgICAgLy8gV2hlbiB0aGUgbGFzdCBydW4g
aGFzIGFuIGFmdGVyIGV4cGFuc2lvbiAoZS5nLiBDSksgaWRlb2dyYXBoKSB3ZSBuZWVkIHRvIHJl
bW92ZSB0aGlzIHRyYWlsaW5nIGV4cGFuc2lvbiBvcHBvcnR1bml0eS4KKyAgICAgICAgICAgIC8v
IE5vdGUgdGhhdCB0aGlzIGlzIG5vdCBhYm91dCB0cmFpbGluZyBjb2xsYXBzaWJsZSB3aGl0ZXNw
YWNlIGFzIGF0IHRoaXMgcG9pbnQgd2UgdHJpbW1lZCB0aGVtIGFsbC4KKyAgICAgICAgICAgIEFT
U0VSVChsaW5lRXhwYW5zaW9uT3Bwb3J0dW5pdGllcyAmJiBydW5zRXhwYW5zaW9uT3Bwb3J0dW5p
dGllc1sqbGFzdFJ1bkluZGV4V2l0aENvbnRlbnRdKTsKKyAgICAgICAgICAgIC0tbGluZUV4cGFu
c2lvbk9wcG9ydHVuaXRpZXM7CisgICAgICAgICAgICAtLXJ1bnNFeHBhbnNpb25PcHBvcnR1bml0
aWVzWypsYXN0UnVuSW5kZXhXaXRoQ29udGVudF07CisgICAgICAgIH0KICAgICB9CiAgICAgLy8g
QW55dGhpbmcgdG8gZGlzdHJpYnV0ZT8KLSAgICBpZiAoIWV4cGFuc2lvbk9wcG9ydHVuaXR5Q291
bnQgfHwgIWV4dHJhSG9yaXpvbnRhbFNwYWNlKQorICAgIGlmICghbGluZUV4cGFuc2lvbk9wcG9y
dHVuaXRpZXMpCiAgICAgICAgIHJldHVybjsKICAgICAvLyBEaXN0cmlidXRlIHRoZSBleHRyYSBz
cGFjZS4KLSAgICBhdXRvIGV4cGFuc2lvblRvRGlzdHJpYnV0ZSA9IGV4dHJhSG9yaXpvbnRhbFNw
YWNlIC8gZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudDsKKyAgICBhdXRvIGV4cGFuc2lvblRvRGlz
dHJpYnV0ZSA9IGV4dHJhSG9yaXpvbnRhbFNwYWNlIC8gbGluZUV4cGFuc2lvbk9wcG9ydHVuaXRp
ZXM7CiAgICAgYXV0byBhY2N1bXVsYXRlZEV4cGFuc2lvbiA9IElubGluZUxheW91dFVuaXQgeyB9
OwotICAgIGZvciAoYXV0byYgcnVuIDogbV9ydW5zKSB7CisgICAgZm9yIChzaXplX3QgcnVuSW5k
ZXggPSAwOyBydW5JbmRleCA8IG1fcnVucy5zaXplKCk7ICsrcnVuSW5kZXgpIHsKKyAgICAgICAg
YXV0byYgcnVuID0gbV9ydW5zW3J1bkluZGV4XTsKICAgICAgICAgLy8gRXhwYW5kIGFuZCBtb3Zl
IHJ1bnMgYnkgdGhlIGFjY3VtdWxhdGVkIGV4cGFuc2lvbi4KICAgICAgICAgcnVuLm1vdmVIb3Jp
em9udGFsbHkoYWNjdW11bGF0ZWRFeHBhbnNpb24pOwotICAgICAgICBpZiAoIXJ1bi5oYXNFeHBh
bnNpb25PcHBvcnR1bml0eSgpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIEFTU0VS
VChydW4uZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCgpKTsKLSAgICAgICAgYXV0byBjb21wdXRl
ZEV4cGFuc2lvbiA9IGV4cGFuc2lvblRvRGlzdHJpYnV0ZSAqIHJ1bi5leHBhbnNpb25PcHBvcnR1
bml0eUNvdW50KCk7Ci0gICAgICAgIC8vIEZJWE1FOiBDaGVjayB3aHkgd2UgbmVlZCB0byBzZXQg
Ym90aC4KLSAgICAgICAgcnVuLnNldEhvcml6b250YWxFeHBhbnNpb24oY29tcHV0ZWRFeHBhbnNp
b24pOworICAgICAgICBhdXRvIGNvbXB1dGVkRXhwYW5zaW9uID0gZXhwYW5zaW9uVG9EaXN0cmli
dXRlICogcnVuc0V4cGFuc2lvbk9wcG9ydHVuaXRpZXNbcnVuSW5kZXhdOworICAgICAgICBydW4u
c2V0RXhwYW5zaW9uKHsgcnVuc0V4cGFuc2lvbkJlaGF2aW9yc1tydW5JbmRleF0sIGNvbXB1dGVk
RXhwYW5zaW9uIH0pOwogICAgICAgICBydW4uc2hyaW5rSG9yaXpvbnRhbGx5KC1jb21wdXRlZEV4
cGFuc2lvbik7CiAgICAgICAgIGFjY3VtdWxhdGVkRXhwYW5zaW9uICs9IGNvbXB1dGVkRXhwYW5z
aW9uOwogICAgIH0KQEAgLTQzNiwyMCArNDY2LDE0IEBAIExpbmU6OlJ1bjo6UnVuKGNvbnN0IElu
bGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVm
CiAgICAgLCBtX2xheW91dEJveCgmaW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94KCkpCiAgICAgLCBt
X2xvZ2ljYWxMZWZ0KGxvZ2ljYWxMZWZ0KQogICAgICwgbV9sb2dpY2FsV2lkdGgobG9naWNhbFdp
ZHRoKQotICAgICwgbV93aGl0ZXNwYWNlSXNFeHBhbnNpb25PcHBvcnR1bml0eSghVGV4dFV0aWw6
OnNob3VsZFByZXNlcnZlU3BhY2VzQW5kVGFicyhpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSkp
CiAgICAgLCBtX3RyYWlsaW5nV2hpdGVzcGFjZVR5cGUodHJhaWxpbmdXaGl0ZXNwYWNlVHlwZShp
bmxpbmVUZXh0SXRlbSkpCisgICAgLCBtX3RyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKG1fdHJhaWxp
bmdXaGl0ZXNwYWNlVHlwZSAhPSBUcmFpbGluZ1doaXRlc3BhY2U6Ok5vbmUgPyBsb2dpY2FsV2lk
dGggOiBJbmxpbmVMYXlvdXRVbml0IHsgfSkKICAgICAsIG1fdGV4dENvbnRlbnQoeyBpbmxpbmVU
ZXh0SXRlbS5zdGFydCgpLCBtX3RyYWlsaW5nV2hpdGVzcGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0
ZXNwYWNlOjpDb2xsYXBzZWQgPyAxIDogaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCksIGlubGluZVRl
eHRJdGVtLmlubGluZVRleHRCb3goKS5jb250ZW50KCkgfSkKIHsKLSAgICBpZiAobV90cmFpbGlu
Z1doaXRlc3BhY2VUeXBlICE9IFRyYWlsaW5nV2hpdGVzcGFjZTo6Tm9uZSkgewotICAgICAgICBt
X3RyYWlsaW5nV2hpdGVzcGFjZVdpZHRoID0gbG9naWNhbFdpZHRoOwotICAgICAgICBpZiAobV93
aGl0ZXNwYWNlSXNFeHBhbnNpb25PcHBvcnR1bml0eSkKLSAgICAgICAgICAgIG1fZXhwYW5zaW9u
T3Bwb3J0dW5pdHlDb3VudCA9IDE7Ci0gICAgfQogfQogCiB2b2lkIExpbmU6OlJ1bjo6ZXhwYW5k
KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5pdCBs
b2dpY2FsV2lkdGgpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgYSB2ZXJ5IHNpbXBsZSBleHBh
bnNpb24gbWVyZ2UuIFdlIHNob3VsZCBldmVudHVhbGx5IHN3aXRjaCBvdmVyIHRvIEZvbnRDYXNj
YWRlOjpleHBhbnNpb25PcHBvcnR1bml0eUNvdW50LgogICAgIEFTU0VSVCghaGFzQ29sbGFwc2Vk
VHJhaWxpbmdXaGl0ZXNwYWNlKCkpOwogICAgIEFTU0VSVChpc1RleHQoKSAmJiBpbmxpbmVUZXh0
SXRlbS5pc1RleHQoKSk7CiAgICAgQVNTRVJUKG1fbGF5b3V0Qm94ID09ICZpbmxpbmVUZXh0SXRl
bS5sYXlvdXRCb3goKSk7CkBAIC00NTksMTQgKzQ4MywxMCBAQCB2b2lkIExpbmU6OlJ1bjo6ZXhw
YW5kKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgSW5saW5lTGF5b3V0VW5p
dCBsbwogCiAgICAgaWYgKG1fdHJhaWxpbmdXaGl0ZXNwYWNlVHlwZSA9PSBUcmFpbGluZ1doaXRl
c3BhY2U6Ok5vbmUpIHsKICAgICAgICAgbV90cmFpbGluZ1doaXRlc3BhY2VXaWR0aCA9IHsgfTsK
LSAgICAgICAgc2V0RXhwYW5zaW9uQmVoYXZpb3IoQWxsb3dMZWZ0RXhwYW5zaW9uIHwgQWxsb3dS
aWdodEV4cGFuc2lvbik7CiAgICAgICAgIG1fdGV4dENvbnRlbnQtPmV4cGFuZChpbmxpbmVUZXh0
SXRlbS5sZW5ndGgoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV90cmFpbGluZ1do
aXRlc3BhY2VXaWR0aCArPSBsb2dpY2FsV2lkdGg7Ci0gICAgaWYgKG1fd2hpdGVzcGFjZUlzRXhw
YW5zaW9uT3Bwb3J0dW5pdHkpCi0gICAgICAgICsrbV9leHBhbnNpb25PcHBvcnR1bml0eUNvdW50
OwotICAgIHNldEV4cGFuc2lvbkJlaGF2aW9yKERlZmF1bHRFeHBhbnNpb24pOwogICAgIG1fdGV4
dENvbnRlbnQtPmV4cGFuZChtX3RyYWlsaW5nV2hpdGVzcGFjZVR5cGUgPT0gVHJhaWxpbmdXaGl0
ZXNwYWNlOjpDb2xsYXBzZWQgPyAxIDogaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkpOwogfQogCkBA
IC01MDksMzUgKzUyOSwxMCBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmU6OlJ1bjo6dmlzdWFsbHlD
b2xsYXBzZVRyYWlsaW5nV2hpdGVzcGFjZShJbmxpbmVMYXlvdXRVbml0CiAgICAgaWYgKCFtX3Ry
YWlsaW5nV2hpdGVzcGFjZVdpZHRoKSB7CiAgICAgICAgIC8vIFdlIHRyaW1tZWQgdGhlIHRyYWls
aW5nIHdoaXRlc3BhY2UgY29tcGxldGVseS4KICAgICAgICAgbV90cmFpbGluZ1doaXRlc3BhY2VU
eXBlID0gVHJhaWxpbmdXaGl0ZXNwYWNlOjpOb25lOwotCi0gICAgICAgIGlmIChtX3doaXRlc3Bh
Y2VJc0V4cGFuc2lvbk9wcG9ydHVuaXR5KSB7Ci0gICAgICAgICAgICBBU1NFUlQobV9leHBhbnNp
b25PcHBvcnR1bml0eUNvdW50KTsKLSAgICAgICAgICAgIG1fZXhwYW5zaW9uT3Bwb3J0dW5pdHlD
b3VudC0tOwotICAgICAgICB9Ci0gICAgICAgIHNldEV4cGFuc2lvbkJlaGF2aW9yKEFsbG93TGVm
dEV4cGFuc2lvbiB8IEFsbG93UmlnaHRFeHBhbnNpb24pOwogICAgIH0KICAgICByZXR1cm4gdHJp
bW1lZFdpZHRoOwogfQogCi12b2lkIExpbmU6OlJ1bjo6c2V0RXhwYW5zaW9uQmVoYXZpb3IoRXhw
YW5zaW9uQmVoYXZpb3IgZXhwYW5zaW9uQmVoYXZpb3IpCi17Ci0gICAgQVNTRVJUKGlzVGV4dCgp
KTsKLSAgICBtX2V4cGFuc2lvbi5iZWhhdmlvciA9IGV4cGFuc2lvbkJlaGF2aW9yOwotfQotCi1F
eHBhbnNpb25CZWhhdmlvciBMaW5lOjpSdW46OmV4cGFuc2lvbkJlaGF2aW9yKCkgY29uc3QKLXsK
LSAgICBBU1NFUlQoaXNUZXh0KCkpOwotICAgIHJldHVybiBtX2V4cGFuc2lvbi5iZWhhdmlvcjsK
LX0KLQotdm9pZCBMaW5lOjpSdW46OnNldEhvcml6b250YWxFeHBhbnNpb24oSW5saW5lTGF5b3V0
VW5pdCBsb2dpY2FsRXhwYW5zaW9uKQotewotICAgIEFTU0VSVChpc1RleHQoKSk7Ci0gICAgQVNT
RVJUKGhhc0V4cGFuc2lvbk9wcG9ydHVuaXR5KCkpOwotICAgIG1fZXhwYW5zaW9uLmhvcml6b250
YWxFeHBhbnNpb24gPSBsb2dpY2FsRXhwYW5zaW9uOwotfQotCiB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUxpbmUuaAppbmRleCA1MGZlYjBjZmQ2Yzc5OGM2YjUzZWQ4MzFhYjM1YzU0MWQyZjIyM2Ix
Li5jNWNiYWJmMTY5YjFlNGI3YjMzNDJjYTQwNjkwNjY2NDk1YWI4YjNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZS5oCkBAIC03OCw5ICs3OCw2IEBAIHB1YmxpYzoKICAgICAgICAgSW5saW5lTGF5
b3V0VW5pdCBsb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBsb2dpY2FsTGVmdCgpICsgbG9n
aWNhbFdpZHRoKCk7IH0KIAogICAgICAgICBjb25zdCBMaW5lUnVuOjpFeHBhbnNpb24mIGV4cGFu
c2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZXhwYW5zaW9uOyB9Ci0gICAgICAgIGJvb2wgaGFzRXhw
YW5zaW9uT3Bwb3J0dW5pdHkoKSBjb25zdCB7IHJldHVybiBtX2V4cGFuc2lvbk9wcG9ydHVuaXR5
Q291bnQ7IH0KLSAgICAgICAgRXhwYW5zaW9uQmVoYXZpb3IgZXhwYW5zaW9uQmVoYXZpb3IoKSBj
b25zdDsKLSAgICAgICAgdW5zaWduZWQgZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudDsgfQogCiAgICAgICAgIGJvb2wg
aGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV90cmFpbGluZ1doaXRlc3Bh
Y2VUeXBlICE9IFRyYWlsaW5nV2hpdGVzcGFjZTo6Tm9uZTsgfQogICAgICAgICBJbmxpbmVMYXlv
dXRVbml0IHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV90cmFpbGlu
Z1doaXRlc3BhY2VXaWR0aDsgfQpAQCAtOTUsOCArOTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZv
aWQgZXhwYW5kKGNvbnN0IElubGluZVRleHRJdGVtJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
V2lkdGgpOwogICAgICAgICB2b2lkIG1vdmVIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCBv
ZmZzZXQpIHsgbV9sb2dpY2FsTGVmdCArPSBvZmZzZXQ7IH0KICAgICAgICAgdm9pZCBzaHJpbmtI
b3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCB3aWR0aCkgeyBtX2xvZ2ljYWxXaWR0aCAtPSB3
aWR0aDsgfQotICAgICAgICB2b2lkIHNldEV4cGFuc2lvbkJlaGF2aW9yKEV4cGFuc2lvbkJlaGF2
aW9yKTsKLSAgICAgICAgdm9pZCBzZXRIb3Jpem9udGFsRXhwYW5zaW9uKElubGluZUxheW91dFVu
aXQgbG9naWNhbEV4cGFuc2lvbik7CisgICAgICAgIHZvaWQgc2V0RXhwYW5zaW9uKExpbmVSdW46
OkV4cGFuc2lvbiBleHBhbnNpb24pIHsgbV9leHBhbnNpb24gPSBleHBhbnNpb247IH0KICAgICAg
ICAgdm9pZCBzZXROZWVkc0h5cGhlbihJbmxpbmVMYXlvdXRVbml0IGh5cGhlbkxvZ2ljYWxXaWR0
aCk7CiAKICAgICAgICAgZW51bSBjbGFzcyBUcmFpbGluZ1doaXRlc3BhY2UgewpAQCAtMTE5LDEy
ICsxMTUsMTAgQEAgcHVibGljOgogICAgICAgICBjb25zdCBCb3gqIG1fbGF5b3V0Qm94IHsgbnVs
bHB0ciB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1fbG9naWNhbExlZnQgeyAwIH07CiAg
ICAgICAgIElubGluZUxheW91dFVuaXQgbV9sb2dpY2FsV2lkdGggeyAwIH07Ci0gICAgICAgIGJv
b2wgbV93aGl0ZXNwYWNlSXNFeHBhbnNpb25PcHBvcnR1bml0eSB7IGZhbHNlIH07CiAgICAgICAg
IFRyYWlsaW5nV2hpdGVzcGFjZSBtX3RyYWlsaW5nV2hpdGVzcGFjZVR5cGUgeyBUcmFpbGluZ1do
aXRlc3BhY2U6Ok5vbmUgfTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX3RyYWlsaW5nV2hp
dGVzcGFjZVdpZHRoIHsgMCB9OwogICAgICAgICBzdGQ6Om9wdGlvbmFsPExpbmVSdW46OlRleHQ+
IG1fdGV4dENvbnRlbnQ7CiAgICAgICAgIExpbmVSdW46OkV4cGFuc2lvbiBtX2V4cGFuc2lvbjsK
LSAgICAgICAgdW5zaWduZWQgbV9leHBhbnNpb25PcHBvcnR1bml0eUNvdW50IHsgMCB9OwogICAg
IH07CiAgICAgdXNpbmcgUnVuTGlzdCA9IFZlY3RvcjxSdW4sIDEwPjsKICAgICBjb25zdCBSdW5M
aXN0JiBydW5zKCkgY29uc3QgeyByZXR1cm4gbV9ydW5zOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3Zl
cmFnZS5jcHAKaW5kZXggNDUxOGNiZjg4ODE2MTA4NGZiYjc0ZTVlZmYyMGZkZjU4NmQyNmY2NC4u
YWQzMWEzNTkwMGNhN2RlMmM3MjIxYThmZjQwMWQ5NzNkMjUzMTY4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkNvdmVyYWdlLmNwcApAQCAtMTIzLDkgKzEyMyw2IEBAIHN0YXRpYyB2b2lkIHByaW50UmVh
c29uKEF2b2lkYW5jZVJlYXNvbiByZWFzb24sIFRleHRTdHJlYW0mIHN0cmVhbSkKICAgICBjYXNl
IEF2b2lkYW5jZVJlYXNvbjo6Rmxvd0hhc1Vuc3VwcG9ydGVkRmxvYXQ6CiAgICAgICAgIHN0cmVh
bSA8PCAiY29tcGxpY2F0ZWQgZmxvYXQiOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEF2b2lk
YW5jZVJlYXNvbjo6Rmxvd0hhc0p1c3RpZmllZE5vbkxhdGluVGV4dDoKLSAgICAgICAgc3RyZWFt
IDw8ICJ0ZXh0LWFsaWduOiBqdXN0aWZ5IHdpdGggbm9uLWxhdGluIHRleHQiOwotICAgICAgICBi
cmVhazsKICAgICBjYXNlIEF2b2lkYW5jZVJlYXNvbjo6Rmxvd0hhc092ZXJmbG93Tm90VmlzaWJs
ZToKICAgICAgICAgc3RyZWFtIDw8ICJvdmVyZmxvdzogaGlkZGVuIHwgc2Nyb2xsIHwgYXV0byI7
CiAgICAgICAgIGJyZWFrOwpAQCAtNDE4LDIxICs0MTUsMTEgQEAgc3RhdGljIHZvaWQgcHJpbnRN
b2Rlcm5MaW5lTGF5b3V0Q292ZXJhZ2Uodm9pZCkKIH0KICNlbmRpZgogCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgQ2hhcmFjdGVyVHlwZT4gT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9y
Q2hhcmFjdGVyKENoYXJhY3RlclR5cGUsIGJvb2wgdGV4dElzSnVzdGlmaWVkLCBJbmNsdWRlUmVh
c29ucyk7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gT3B0aW9uU2V0PEF2b2lk
YW5jZVJlYXNvbj4gY2FuVXNlRm9yQ2hhcmFjdGVyKENoYXJhY3RlclR5cGUsIEluY2x1ZGVSZWFz
b25zKTsKIAotdGVtcGxhdGU8PiBPcHRpb25TZXQ8QXZvaWRhbmNlUmVhc29uPiBjYW5Vc2VGb3JD
aGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyLCBib29sIHRleHRJc0p1c3RpZmllZCwgSW5jbHVkZVJl
YXNvbnMgaW5jbHVkZVJlYXNvbnMpCit0ZW1wbGF0ZTw+IE9wdGlvblNldDxBdm9pZGFuY2VSZWFz
b24+IGNhblVzZUZvckNoYXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIsIEluY2x1ZGVSZWFzb25zIGlu
Y2x1ZGVSZWFzb25zKQogewogICAgIE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IHJlYXNvbnM7
Ci0gICAgaWYgKHRleHRJc0p1c3RpZmllZCkgewotICAgICAgICBpZiAoY2hhcmFjdGVyID09IG5v
QnJlYWtTcGFjZSkKLSAgICAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQo
Rmxvd0hhc0p1c3RpZmllZE5vbkJyZWFraW5nU3BhY2UsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25z
KTsKLSAgICAgICAgLy8gSW5jbHVkZSBjaGFyYWN0ZXJzIHVwIHRvIExhdGluIEV4dGVuZGVkLUIg
YW5kIHNvbWUgcHVuY3R1YXRpb24gcmFuZ2Ugd2hlbiB0ZXh0IGlzIGp1c3RpZmllZC4KLSAgICAg
ICAgYm9vbCBpc0xhdGluSW5jbHVkaW5nRXh0ZW5kZWRCID0gY2hhcmFjdGVyIDw9IDB4MDFGRjsK
LSAgICAgICAgYm9vbCBpc1B1bmN0dWF0aW9uUmFuZ2UgPSBjaGFyYWN0ZXIgPj0gMHgyMDEwICYm
IGNoYXJhY3RlciA8PSAweDIwMjc7Ci0gICAgICAgIGlmICghKGlzTGF0aW5JbmNsdWRpbmdFeHRl
bmRlZEIgfHwgaXNQdW5jdHVhdGlvblJhbmdlKSkKLSAgICAgICAgICAgIFNFVF9SRUFTT05fQU5E
X1JFVFVSTl9JRl9ORUVERUQoRmxvd0hhc0p1c3RpZmllZE5vbkxhdGluVGV4dCwgcmVhc29ucywg
aW5jbHVkZVJlYXNvbnMpOwotICAgIH0KLQogICAgIGlmIChVMTZfSVNfU1VSUk9HQVRFKGNoYXJh
Y3RlcikpCiAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQoRmxvd1RleHRI
YXNTdXJyb2dhdGVQYWlyLCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7CiAKQEAgLTQ0NiwxNiAr
NDMzLDEzIEBAIHRlbXBsYXRlPD4gT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9y
Q2hhcmFjdGVyKFVDaGFyIGNoYXJhY3RlciwgYm9vbCB0CiAgICAgcmV0dXJuIHJlYXNvbnM7CiB9
CiAKLXRlbXBsYXRlPD4gT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yQ2hhcmFj
dGVyKExDaGFyIGNoYXJhY3RlciwgYm9vbCB0ZXh0SXNKdXN0aWZpZWQsIEluY2x1ZGVSZWFzb25z
KQordGVtcGxhdGU8PiBPcHRpb25TZXQ8QXZvaWRhbmNlUmVhc29uPiBjYW5Vc2VGb3JDaGFyYWN0
ZXIoTENoYXIsIEluY2x1ZGVSZWFzb25zKQogewotICAgIGlmICh0ZXh0SXNKdXN0aWZpZWQgJiYg
Y2hhcmFjdGVyID09IG5vQnJlYWtTcGFjZSkKLSAgICAgICAgcmV0dXJuIHsgQXZvaWRhbmNlUmVh
c29uOjpGbG93SGFzSnVzdGlmaWVkTm9uQnJlYWtpbmdTcGFjZSB9OwogICAgIHJldHVybiB7IH07
CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgotc3RhdGljIE9wdGlvblNl
dDxBdm9pZGFuY2VSZWFzb24+IGNhblVzZUZvclRleHQoY29uc3QgQ2hhcmFjdGVyVHlwZSogdGV4
dCwgdW5zaWduZWQgbGVuZ3RoLCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHN0ZDo6
b3B0aW9uYWw8ZmxvYXQ+IGxpbmVIZWlnaHRDb25zdHJhaW50LAotICAgIGJvb2wgdGV4dElzSnVz
dGlmaWVkLCBJbmNsdWRlUmVhc29ucyBpbmNsdWRlUmVhc29ucykKK3N0YXRpYyBPcHRpb25TZXQ8
QXZvaWRhbmNlUmVhc29uPiBjYW5Vc2VGb3JUZXh0KGNvbnN0IENoYXJhY3RlclR5cGUqIHRleHQs
IHVuc2lnbmVkIGxlbmd0aCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCBzdGQ6Om9w
dGlvbmFsPGZsb2F0PiBsaW5lSGVpZ2h0Q29uc3RyYWludCwgSW5jbHVkZVJlYXNvbnMgaW5jbHVk
ZVJlYXNvbnMpCiB7CiAgICAgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gcmVhc29uczsKICAg
ICBhdXRvJiBwcmltYXJ5Rm9udCA9IGZvbnRDYXNjYWRlLnByaW1hcnlGb250KCk7CkBAIC00NzAs
NyArNDU0LDcgQEAgc3RhdGljIE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVzZUZvclRl
eHQoY29uc3QgQ2hhcmFjdGVyVHlwZSogdGV4dCwgdW5zaWcKIAogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICBhdXRvIGNoYXJhY3RlciA9IHRleHRb
aV07Ci0gICAgICAgIGF1dG8gY2hhcmFjdGVyUmVhc29ucyA9IGNhblVzZUZvckNoYXJhY3Rlcihj
aGFyYWN0ZXIsIHRleHRJc0p1c3RpZmllZCwgaW5jbHVkZVJlYXNvbnMpOworICAgICAgICBhdXRv
IGNoYXJhY3RlclJlYXNvbnMgPSBjYW5Vc2VGb3JDaGFyYWN0ZXIoY2hhcmFjdGVyLCBpbmNsdWRl
UmVhc29ucyk7CiAgICAgICAgIGlmIChjaGFyYWN0ZXJSZWFzb25zKQogICAgICAgICAgICAgQURE
X1JFQVNPTlNfQU5EX1JFVFVSTl9JRl9ORUVERUQoY2hhcmFjdGVyUmVhc29ucywgcmVhc29ucywg
aW5jbHVkZVJlYXNvbnMpOwogCkBAIC00ODcsMTEgKzQ3MSwxMSBAQCBzdGF0aWMgT3B0aW9uU2V0
PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yVGV4dChjb25zdCBDaGFyYWN0ZXJUeXBlKiB0ZXh0
LCB1bnNpZwogICAgIHJldHVybiByZWFzb25zOwogfQogCi1zdGF0aWMgT3B0aW9uU2V0PEF2b2lk
YW5jZVJlYXNvbj4gY2FuVXNlRm9yVGV4dChTdHJpbmdWaWV3IHRleHQsIGNvbnN0IEZvbnRDYXNj
YWRlJiBmb250Q2FzY2FkZSwgc3RkOjpvcHRpb25hbDxmbG9hdD4gbGluZUhlaWdodENvbnN0cmFp
bnQsIGJvb2wgdGV4dElzSnVzdGlmaWVkLCBJbmNsdWRlUmVhc29ucyBpbmNsdWRlUmVhc29ucykK
K3N0YXRpYyBPcHRpb25TZXQ8QXZvaWRhbmNlUmVhc29uPiBjYW5Vc2VGb3JUZXh0KFN0cmluZ1Zp
ZXcgdGV4dCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCBzdGQ6Om9wdGlvbmFsPGZs
b2F0PiBsaW5lSGVpZ2h0Q29uc3RyYWludCwgSW5jbHVkZVJlYXNvbnMgaW5jbHVkZVJlYXNvbnMp
CiB7CiAgICAgaWYgKHRleHQuaXM4Qml0KCkpCi0gICAgICAgIHJldHVybiBjYW5Vc2VGb3JUZXh0
KHRleHQuY2hhcmFjdGVyczgoKSwgdGV4dC5sZW5ndGgoKSwgZm9udENhc2NhZGUsIGxpbmVIZWln
aHRDb25zdHJhaW50LCB0ZXh0SXNKdXN0aWZpZWQsIGluY2x1ZGVSZWFzb25zKTsKLSAgICByZXR1
cm4gY2FuVXNlRm9yVGV4dCh0ZXh0LmNoYXJhY3RlcnMxNigpLCB0ZXh0Lmxlbmd0aCgpLCBmb250
Q2FzY2FkZSwgbGluZUhlaWdodENvbnN0cmFpbnQsIHRleHRJc0p1c3RpZmllZCwgaW5jbHVkZVJl
YXNvbnMpOworICAgICAgICByZXR1cm4gY2FuVXNlRm9yVGV4dCh0ZXh0LmNoYXJhY3RlcnM4KCks
IHRleHQubGVuZ3RoKCksIGZvbnRDYXNjYWRlLCBsaW5lSGVpZ2h0Q29uc3RyYWludCwgaW5jbHVk
ZVJlYXNvbnMpOworICAgIHJldHVybiBjYW5Vc2VGb3JUZXh0KHRleHQuY2hhcmFjdGVyczE2KCks
IHRleHQubGVuZ3RoKCksIGZvbnRDYXNjYWRlLCBsaW5lSGVpZ2h0Q29uc3RyYWludCwgaW5jbHVk
ZVJlYXNvbnMpOwogfQogCiBzdGF0aWMgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNl
Rm9yRm9udEFuZFRleHQoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIGNvbnRhaW5lciwgSW5j
bHVkZVJlYXNvbnMgaW5jbHVkZVJlYXNvbnMpCkBAIC01MDUsNyArNDg5LDYgQEAgc3RhdGljIE9w
dGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVzZUZvckZvbnRBbmRUZXh0KGNvbnN0IFJlbmRl
ckJveE1vZGVsT2JqZWMKICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBsaW5lSGVpZ2h0Q29uc3Ry
YWludDsKICAgICBpZiAoc3R5bGUubGluZUJveENvbnRhaW4oKS5jb250YWlucyhMaW5lQm94Q29u
dGFpbjo6R2x5cGhzKSkKICAgICAgICAgbGluZUhlaWdodENvbnN0cmFpbnQgPSBjb250YWluZXIu
bGluZUhlaWdodChmYWxzZSwgSG9yaXpvbnRhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVC
b3hlcykudG9GbG9hdCgpOwotICAgIGJvb2wgZmxvd0lzSnVzdGlmaWVkID0gc3R5bGUudGV4dEFs
aWduKCkgPT0gVGV4dEFsaWduTW9kZTo6SnVzdGlmeTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIHRl
eHRSZW5kZXJlciA6IGNoaWxkcmVuT2ZUeXBlPFJlbmRlclRleHQ+KGNvbnRhaW5lcikpIHsKICAg
ICAgICAgLy8gRklYTUU6IERvIG5vdCByZXR1cm4gdW50aWwgYWZ0ZXIgY2hlY2tpbmcgYWxsIGNo
aWxkcmVuLgogICAgICAgICBpZiAodGV4dFJlbmRlcmVyLmlzQ29tYmluZVRleHQoKSkKQEAgLTUy
OCw3ICs1MTEsNyBAQCBzdGF0aWMgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9y
Rm9udEFuZFRleHQoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplYwogICAgICAgICAgICAgICAgIFNF
VF9SRUFTT05fQU5EX1JFVFVSTl9JRl9ORUVERUQoRmxvd0hhc0NvbXBsZXhGb250Q29kZVBhdGgs
IHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gdGV4
dFJlYXNvbnMgPSBjYW5Vc2VGb3JUZXh0KHRleHRSZW5kZXJlci5zdHJpbmdWaWV3KCksIGZvbnRD
YXNjYWRlLCBsaW5lSGVpZ2h0Q29uc3RyYWludCwgZmxvd0lzSnVzdGlmaWVkLCBpbmNsdWRlUmVh
c29ucyk7CisgICAgICAgIGF1dG8gdGV4dFJlYXNvbnMgPSBjYW5Vc2VGb3JUZXh0KHRleHRSZW5k
ZXJlci5zdHJpbmdWaWV3KCksIGZvbnRDYXNjYWRlLCBsaW5lSGVpZ2h0Q29uc3RyYWludCwgaW5j
bHVkZVJlYXNvbnMpOwogICAgICAgICBpZiAodGV4dFJlYXNvbnMpCiAgICAgICAgICAgICBBRERf
UkVBU09OU19BTkRfUkVUVVJOX0lGX05FRURFRCh0ZXh0UmVhc29ucywgcmVhc29ucywgaW5jbHVk
ZVJlYXNvbnMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5oCmluZGV4IDAyODY1NjZi
OWNiZTM4YTM3ZTA4OGEwMDA3MzZiMWM2ZWEyY2MzZTkuLjRiZDgyMzY1Zjg1ODYxYjM4MTlmNDM2
OTVhNzA1NjRjZWI4YWZjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuaApAQCAtNDksNyAr
NDksNyBAQCBlbnVtIGNsYXNzIEF2b2lkYW5jZVJlYXNvbiA6IHVpbnQ2NF90IHsKICAgICBGbG93
SGFzTm9uU3VwcG9ydGVkQ2hpbGQgICAgICAgICAgICAgICAgICAgICA9IDFMTFUgIDw8IDksCiAg
ICAgRmxvd0hhc1Vuc3VwcG9ydGVkRmxvYXQgICAgICAgICAgICAgICAgICAgICAgPSAxTExVICA8
PCAxMCwKICAgICAvLyBVbnVzZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDFMTFUgIDw8IDExLAotICAgIEZsb3dIYXNKdXN0aWZpZWROb25MYXRpblRleHQgICAgICAgICAg
ICAgICAgID0gMUxMVSAgPDwgMTIsCisgICAgLy8gVW51c2VkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPSAxTExVICA8PCAxMiwKICAgICBGbG93SGFzT3ZlcmZsb3dOb3RWaXNp
YmxlICAgICAgICAgICAgICAgICAgICA9IDFMTFUgIDw8IDEzLAogICAgIC8vIFVudXNlZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMUxMVSAgPDwgMTQsCiAgICAgRmxvd0lz
Tm90TFRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxTExVICA8PCAxNSwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvanVzdGlmeS1uYnNw
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvanVzdGlm
eS1uYnNwLWV4cGVjdGVkLnR4dAppbmRleCBmNjEyYzllOTM3NWJjMDM1Y2U0MzczZDBjZGVmYzBk
ODhmODhkMDRjLi4zZWUxYjA4ZDkyODNiOWJkODYwMzYzNTI1ZTIzMTYxYzdmYzUyMTBlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2p1c3RpZnktbmJzcC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9qdXN0
aWZ5LW5ic3AtZXhwZWN0ZWQudHh0CkBAIC0xMCw3ICsxMCw3IEBAIGxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDM2MCwxNSkgc2l6ZSA2
NTB4NzUKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzYwLDE1KSB3aWR0aCAyOTM6ICJlIGYgZyBo
IgogICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDY1KSB3aWR0aCAyNzU6ICJ4eHh4eHh4eHh4eCIK
LSAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjc4LDUzKSBzaXplIDB4MjUKKyAgICAgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMjc4LDY1KSBzaXplIDB4MjUKICAgICAgICAgUmVuZGVySW5saW5lIHtT
UEFOfSBhdCAoMCwwKSBzaXplIDM1OHgyNQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMywxMTUpIHNpemUgMzU4eDI1CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMywxMTUpIHdp
ZHRoIDM1ODogImEgYiBjIGQgIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>