<?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>182538</bug_id>
          
          <creation_ts>2018-02-06 10:12:31 -0800</creation_ts>
          <short_desc>[Payment Request] show() should take an optional PaymentDetailsUpdate promise</short_desc>
          <delta_ts>2018-02-06 14:51:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>182399</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1396822</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-02-06 10:12:31 -0800</bug_when>
    <thetext>[Payment Request] show() should take an optional PaymentDetailsUpdate promise</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396826</commentid>
    <comment_count>1</comment_count>
      <attachid>333189</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-02-06 10:26:07 -0800</bug_when>
    <thetext>Created attachment 333189
Patch

This depends on bug #182399 and won&apos;t build before that lands</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396928</commentid>
    <comment_count>2</comment_count>
      <attachid>333212</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-02-06 13:48:19 -0800</bug_when>
    <thetext>Created attachment 333212
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396957</commentid>
    <comment_count>3</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-02-06 14:50:25 -0800</bug_when>
    <thetext>Committed r228195: &lt;https://trac.webkit.org/r228195&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396958</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-06 14:51:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/37289872&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333189</attachid>
            <date>2018-02-06 10:26:07 -0800</date>
            <delta_ts>2018-02-06 13:48:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182538-20180206102606.patch</filename>
            <type>text/plain</type>
            <size>25974</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3ODUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRjOTY4OGE0OWVmNDg4
MTRlMjY3MzNiMDg2ZGQyOWQxODRjZmM2NC4uMGI4NzYwN2UwOGZhOGNkMjEwMzdkNDg5NGNkNDAw
NmI0N2RmMDc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDE4LTAyLTA2ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBz
aG93KCkgc2hvdWxkIHRha2UgYW4gb3B0aW9uYWwgUGF5bWVudERldGFpbHNVcGRhdGUgcHJvbWlz
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNTM4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjc1NDU1Mj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUYXVnaHQgc2hvdygpIHRvIHRha2UgYW4gb3B0
aW9uYWwgcHJvbWlzZSBmb3IgYSBQYXltZW50RGV0YWlsc1VwZGF0ZS4KKworICAgICAgICBBZGRl
ZCB0ZXN0IGNhc2VzIHRvIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0
LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwuCisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L3Bh
eW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGV0YWlsc1VwZGF0ZWQpOgorCisgICAgICAgIENo
YW5nZWQgdG8gdGFrZSBhIFBheW1lbnRSZXF1ZXN0OjpVcGRhdGVSZWFzb24gaW5zdGVhZCBvZiBh
IGV2ZW50VHlwZSBzdHJpbmcuCisKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhh
bmRsZXI6OnNoaXBwaW5nQWRkcmVzc1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQ
YXlQYXltZW50SGFuZGxlcjo6c2hpcHBpbmdPcHRpb25VcGRhdGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnBheW1lbnRNZXRob2RVcGRhdGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmRpZEF1dGhvcml6ZVBheW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGlkU2VsZWN0U2hp
cHBpbmdNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6
ZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5
bWVudEhhbmRsZXI6OmRpZFNlbGVjdFBheW1lbnRNZXRob2QpOgorCisgICAgICAgIEFzc2VydGVk
IHRoYXQgb25seSBvbmUgb2YgdGhlIFBheW1lbnRTZXNzaW9uIGRlbGVnYXRlcyBpcyBleGVjdXRp
bmcgYXQgYSB0aW1lLgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVz
dC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmg6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50SGFuZGxlci5oOgorCisgICAgICAgIENoYW5nZWQgZGV0YWlsc1VwZGF0ZWQg
dG8gdGFrZSBhIFBheW1lbnRSZXF1ZXN0OjpVcGRhdGVSZWFzb24gaW5zdGVhZCBvZiBhIGV2ZW50
VHlwZSBzdHJpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRS
ZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpzaG93KToKKwor
ICAgICAgICBJZiB0aGVyZSBpcyBhIGRldGFpbHMgcHJvbWlzZSwgY2FsbCB1cGRhdGVXaXRoKCkg
d2l0aCBVcGRhdGVSZWFzb246OlNob3dEZXRhaWxzUmVzb2x2ZWQuCisKKyAgICAgICAgKFdlYkNv
cmU6OlBheW1lbnRSZXF1ZXN0OjpzaGlwcGluZ0FkZHJlc3NDaGFuZ2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpzaGlwcGluZ09wdGlvbkNoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnBheW1lbnRNZXRob2RDaGFuZ2VkKToKKworICAgICAg
ICBVc2VkIHdoZW5EZXRhaWxzU2V0dGxlZCgpIHRvIGVuc3VyZSB0aGF0IHVwZGF0ZSBldmVudHMg
ZG8gbm90IHN0YXJ0IGJlZm9yZSB0aGUgc2hvdygpCisgICAgICAgIGRldGFpbHMgcHJvbWlzZSBz
ZXR0bGVzLgorCisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6dXBkYXRlV2l0aCk6
CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6c2V0dGxlRGV0YWlsc1Byb21pc2Up
OgorCisgICAgICAgIENoYW5nZWQgdG8gdXNlIGEgUGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNv
biBpbnN0ZWFkIG9mIGEgZXZlbnRUeXBlIHN0cmluZy4KKworICAgICAgICAoV2ViQ29yZTo6UGF5
bWVudFJlcXVlc3Q6OndoZW5EZXRhaWxzU2V0dGxlZCk6CisKKyAgICAgICAgSWYgdGhlcmUgaXMg
YSBkZXRhaWxzIHByb21pc2UsIHdhaXQgZm9yIGl0IHRvIHNldHRsZSBiZWZvcmUgZXhlY3V0aW5n
IHRoZSBjYWxsYmFjay4KKworICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVu
dFJlcXVlc3QuaDoKKworICAgICAgICBEZWZpbmVkIGVudW0gY2xhc3MgVXBkYXRlUmVhc29uLgor
CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5pZGw6CisK
KyAgICAgICAgVXBkYXRlZCBzaG93KCkgdG8gdGFrZSBhbiBvcHRpb25hbCBQcm9taXNlPFBheW1l
bnREZXRhaWxzVXBkYXRlPi4KKworICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5
bWVudFJlcXVlc3RVcGRhdGVFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVx
dWVzdFVwZGF0ZUV2ZW50Ojp1cGRhdGVXaXRoKToKKworICAgICAgICBNYXAgdGhlIGV2ZW50IHR5
cGUgdG8gYSBQYXltZW50UmVxdWVzdDo6VXBkYXRlUmVhc29uLgorCiAyMDE4LTAxLTMwICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFVuaWZpZWQg
c291cmNlcyBmb3IgRkVNb3JwaG9sb2d5LmNwcCBzZWVtcyB0byBicmVhayB0aGUgd2luZG93cyBi
dWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVu
dHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCmlu
ZGV4IDA0MTRlNDQxZTc4OTBmOGY1OWUwNWRjZTdiNjRjMmYzYjA0ODk3ZWUuLmMxM2IxZTA0ZDk1
NzIxY2Y3ZTE3OThkYzU1ODVkYmY3MWFjODJhOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9B
cHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMDcsMTMgKzMwNywxOSBAQCBFeGNlcHRpb25PcjxB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+IEFwcGxlUGF5
UGF5bWVudEhhbgogICAgIHJldHVybiBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90
YWxBbmRMaW5lSXRlbXMgeyBXVEZNb3ZlKHRvdGFsKSwgV1RGTW92ZShsaW5lSXRlbXMpIH07CiB9
CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmRldGFpbHNVcGRh
dGVkKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGVycm9yKQor
RXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGV0YWlsc1VwZGF0ZWQo
UGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiByZWFzb24sIGNvbnN0IFN0cmluZyYgZXJyb3Ip
CiB7Ci0gICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc2hpcHBpbmdhZGRyZXNzY2hh
bmdlRXZlbnQpCisgICAgdXNpbmcgUmVhc29uID0gUGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNv
bjsKKyAgICBzd2l0Y2ggKHJlYXNvbikgeworICAgIGNhc2UgUmVhc29uOjpTaG93RGV0YWlsc1Jl
c29sdmVkOgorICAgICAgICByZXR1cm4geyB9OworICAgIGNhc2UgUmVhc29uOjpTaGlwcGluZ0Fk
ZHJlc3NDaGFuZ2VkOgogICAgICAgICByZXR1cm4gc2hpcHBpbmdBZGRyZXNzVXBkYXRlZChlcnJv
cik7Ci0KLSAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5zaGlwcGluZ29wdGlvbmNo
YW5nZUV2ZW50KQorICAgIGNhc2UgUmVhc29uOjpTaGlwcGluZ09wdGlvbkNoYW5nZWQ6CiAgICAg
ICAgIHJldHVybiBzaGlwcGluZ09wdGlvblVwZGF0ZWQoKTsKKyAgICBjYXNlIFJlYXNvbjo6UGF5
bWVudE1ldGhvZENoYW5nZWQ6CisgICAgICAgIHJldHVybiBwYXltZW50TWV0aG9kVXBkYXRlZCgp
OworICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiB7IH07CkBA
IC0zMzgsNiArMzQ0LDkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxl
cjo6bWVyY2hhbnRWYWxpZGF0aW9uQ29tcGxldGVkKEpTQzo6SlNWYWwKIAogRXhjZXB0aW9uT3I8
dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hpcHBpbmdBZGRyZXNzVXBkYXRlZChjb25z
dCBTdHJpbmcmIGVycm9yKQogeworICAgIEFTU0VSVChtX2lzVXBkYXRpbmcpOworICAgIG1faXNV
cGRhdGluZyA9IGZhbHNlOworCiAgICAgU2hpcHBpbmdDb250YWN0VXBkYXRlIHVwZGF0ZTsKIAog
ICAgIGlmIChtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50T3B0aW9ucygpLnJlcXVlc3RTaGlwcGlu
ZyAmJiBtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50RGV0YWlscygpLnNoaXBwaW5nT3B0aW9ucy5p
c0VtcHR5KCkpIHsKQEAgLTM1OCw2ICszNjcsOSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBh
eVBheW1lbnRIYW5kbGVyOjpzaGlwcGluZ0FkZHJlc3NVcGRhdGVkKGNvbnN0IFN0cmluZyYgZQog
CiBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpzaGlwcGluZ09wdGlv
blVwZGF0ZWQoKQogeworICAgIEFTU0VSVChtX2lzVXBkYXRpbmcpOworICAgIG1faXNVcGRhdGlu
ZyA9IGZhbHNlOworCiAgICAgU2hpcHBpbmdNZXRob2RVcGRhdGUgdXBkYXRlOwogCiAgICAgYXV0
byBuZXdUb3RhbEFuZExpbmVJdGVtcyA9IGNvbXB1dGVUb3RhbEFuZExpbmVJdGVtcygpOwpAQCAt
MzcxLDYgKzM4Myw5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6
OnNoaXBwaW5nT3B0aW9uVXBkYXRlZCgpCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5
bWVudEhhbmRsZXI6OnBheW1lbnRNZXRob2RVcGRhdGVkKCkKIHsKKyAgICBBU1NFUlQobV9pc1Vw
ZGF0aW5nKTsKKyAgICBtX2lzVXBkYXRpbmcgPSBmYWxzZTsKKwogICAgIFBheW1lbnRNZXRob2RV
cGRhdGUgdXBkYXRlOwogCiAgICAgYXV0byBuZXdUb3RhbEFuZExpbmVJdGVtcyA9IGNvbXB1dGVU
b3RhbEFuZExpbmVJdGVtcygpOwpAQCAtNDI3LDYgKzQ0Miw4IEBAIHN0YXRpYyBSZWY8UGF5bWVu
dEFkZHJlc3M+IGNvbnZlcnQoY29uc3QgQXBwbGVQYXlQYXltZW50Q29udGFjdCYgY29udGFjdCkK
IAogdm9pZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpkaWRBdXRob3JpemVQYXltZW50KGNvbnN0
IFBheW1lbnQmIHBheW1lbnQpCiB7CisgICAgQVNTRVJUKCFtX2lzVXBkYXRpbmcpOworCiAgICAg
YXV0byBhcHBsZVBheVBheW1lbnQgPSBwYXltZW50LnRvQXBwbGVQYXlQYXltZW50KHZlcnNpb24o
KSk7CiAgICAgYXV0byYgZXhlY1N0YXRlID0gKmRvY3VtZW50KCkuZXhlY1N0YXRlKCk7CiAgICAg
YXV0byBsb2NrID0gSlNDOjpKU0xvY2tIb2xkZXIgeyAmZXhlY1N0YXRlIH07CkBAIC00MzcsMTgg
KzQ1NCwyNyBAQCB2b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmRpZEF1dGhvcml6ZVBheW1l
bnQoY29uc3QgUGF5bWVudCYgcGF5bWVudCkKIAogdm9pZCBBcHBsZVBheVBheW1lbnRIYW5kbGVy
OjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQogeworICAgIEFTU0VSVCghbV9p
c1VwZGF0aW5nKTsKKyAgICBtX2lzVXBkYXRpbmcgPSB0cnVlOworCiAgICAgbV9wYXltZW50UmVx
dWVzdC0+c2hpcHBpbmdPcHRpb25DaGFuZ2VkKHNoaXBwaW5nTWV0aG9kLmlkZW50aWZpZXIpOwog
fQogCiB2b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmRpZFNlbGVjdFNoaXBwaW5nQ29udGFj
dChjb25zdCBQYXltZW50Q29udGFjdCYgc2hpcHBpbmdDb250YWN0KQogeworICAgIEFTU0VSVCgh
bV9pc1VwZGF0aW5nKTsKKyAgICBtX2lzVXBkYXRpbmcgPSB0cnVlOworCiAgICAgbV9wYXltZW50
UmVxdWVzdC0+c2hpcHBpbmdBZGRyZXNzQ2hhbmdlZChjb252ZXJ0KHNoaXBwaW5nQ29udGFjdC50
b0FwcGxlUGF5UGF5bWVudENvbnRhY3QodmVyc2lvbigpKSkpOwogfQogCiB2b2lkIEFwcGxlUGF5
UGF5bWVudEhhbmRsZXI6OmRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3QgUGF5bWVudE1ldGhv
ZCYgcGF5bWVudE1ldGhvZCkKIHsKKyAgICBBU1NFUlQoIW1faXNVcGRhdGluZyk7CisgICAgbV9p
c1VwZGF0aW5nID0gdHJ1ZTsKKwogICAgIG1fc2VsZWN0ZWRQYXltZW50TWV0aG9kVHlwZSA9IHBh
eW1lbnRNZXRob2QudG9BcHBsZVBheVBheW1lbnRNZXRob2QoKS50eXBlOwotICAgIHBheW1lbnRN
ZXRob2RVcGRhdGVkKCk7CisgICAgbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudE1ldGhvZENoYW5n
ZWQoKTsKIH0KIAogdm9pZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpkaWRDYW5jZWxQYXltZW50
U2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3Bh
eW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCmlu
ZGV4IGZkNmY4ZDA3NmE2MDczMDAyY2MyM2NlNTRjNDcwZDczZjFiNzdkNzEuLmUwMDY0ZDM1N2Jm
ZDU4ZjI5Nzk1NTJlYjRkZTgxYTZkZTRhMTViNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBw
bGVQYXlQYXltZW50SGFuZGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTctMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTYzLDcgKzYzLDcgQEAgcHJpdmF0ZToKICAgICBFeGNlcHRp
b25Pcjx2b2lkPiBzaG93KCkgZmluYWw7CiAgICAgdm9pZCBoaWRlKCkgZmluYWw7CiAgICAgdm9p
ZCBjYW5NYWtlUGF5bWVudChXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpIGZpbmFsOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRldGFpbHNVcGRhdGVkKGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGVycm9yKSBmaW5hbDsKKyAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBkZXRhaWxzVXBkYXRlZChQYXltZW50UmVxdWVzdDo6VXBkYXRl
UmVhc29uLCBjb25zdCBTdHJpbmcmIGVycm9yKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lk
PiBtZXJjaGFudFZhbGlkYXRpb25Db21wbGV0ZWQoSlNDOjpKU1ZhbHVlJiYpIGZpbmFsOwogICAg
IHZvaWQgY29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYpIGZpbmFsOwog
CkBAIC04MCw2ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgUmVmPFBheW1lbnRSZXF1ZXN0PiBtX3Bh
eW1lbnRSZXF1ZXN0OwogICAgIHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlSZXF1ZXN0PiBtX2FwcGxl
UGF5UmVxdWVzdDsKICAgICBzdGQ6Om9wdGlvbmFsPEFwcGxlUGF5UGF5bWVudE1ldGhvZFR5cGU+
IG1fc2VsZWN0ZWRQYXltZW50TWV0aG9kVHlwZTsKKyAgICBib29sIG1faXNVcGRhdGluZyB7IGZh
bHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmgKaW5kZXggMmNl
ZTA3ZDQ5Njc0NTE5NjQ3YmJiNTk4ODZkNTFhYzYwZDg4NDlmNS4uNDI5NzNmOWUxNmZkNDg3Yzcx
YzMwZDc5ODA4NzA2MDI0OTI4MjkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OSw3ICs0OSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNob3coKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGhpZGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbk1ha2VQYXltZW50KFdURjo6
RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgPSAwOwotICAgIHZpcnR1
YWwgRXhjZXB0aW9uT3I8dm9pZD4gZGV0YWlsc1VwZGF0ZWQoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIGNvbnN0IFN0cmluZyYgZXJyb3IpID0gMDsKKyAgICB2aXJ0dWFsIEV4Y2VwdGlv
bk9yPHZvaWQ+IGRldGFpbHNVcGRhdGVkKFBheW1lbnRSZXF1ZXN0OjpVcGRhdGVSZWFzb24sIGNv
bnN0IFN0cmluZyYgZXJyb3IpID0gMDsKICAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IG1l
cmNoYW50VmFsaWRhdGlvbkNvbXBsZXRlZChKU0M6OkpTVmFsdWUmJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBjb21wbGV0ZShzdGQ6Om9wdGlvbmFsPFBheW1lbnRDb21wbGV0ZT4mJikgPSAwOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5
bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVxdWVzdC5jcHAKaW5kZXggYjdjOTQwMzBkNzBmYmJlYmJkOTNjODI2ZmEwZWViMDk1
Y2U1MTZhZi4uYTA2MTc2ZDQ1MzE0ZTUwZWNkOWM3MWE2YWUzYzU0YzVlZDgyY2E3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50
UmVxdWVzdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzgwLDcgKzM4MCw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxKU0M6OkpTVmFs
dWU+IHBhcnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0CiB9CiAK
IC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9wYXltZW50LXJlcXVlc3QvI3Nob3coKS1tZXRob2QK
LXZvaWQgUGF5bWVudFJlcXVlc3Q6OnNob3coRG9jdW1lbnQmIGRvY3VtZW50LCBTaG93UHJvbWlz
ZSYmIHByb21pc2UpCit2b2lkIFBheW1lbnRSZXF1ZXN0OjpzaG93KERvY3VtZW50JiBkb2N1bWVu
dCwgUmVmUHRyPERPTVByb21pc2U+JiYgZGV0YWlsc1Byb21pc2UsIFNob3dQcm9taXNlJiYgcHJv
bWlzZSkKIHsKICAgICBpZiAoIWRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciB9KTsKQEAgLTQ0Miw2ICs0NDIsMTIgQEAgdm9p
ZCBQYXltZW50UmVxdWVzdDo6c2hvdyhEb2N1bWVudCYgZG9jdW1lbnQsIFNob3dQcm9taXNlJiYg
cHJvbWlzZSkKICAgICBBU1NFUlQoIW1fYWN0aXZlUGF5bWVudEhhbmRsZXIpOwogICAgIG1fYWN0
aXZlUGF5bWVudEhhbmRsZXIgPSBXVEZNb3ZlKHNlbGVjdGVkUGF5bWVudEhhbmRsZXIpOwogICAg
IHNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsgLy8gdW5zZXRQZW5kaW5nQWN0aXZpdHkoKSBpcyBj
YWxsZWQgYmVsb3cgaW4gc3RvcCgpCisKKyAgICBpZiAoIWRldGFpbHNQcm9taXNlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBleGNlcHRpb24gPSB1cGRhdGVXaXRoKFVwZGF0ZVJlYXNvbjo6U2hv
d0RldGFpbHNSZXNvbHZlZCwgZGV0YWlsc1Byb21pc2UucmVsZWFzZU5vbk51bGwoKSk7CisgICAg
QVNTRVJUKCFleGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpOwogfQogCiB2b2lkIFBheW1lbnRSZXF1
ZXN0OjphYm9ydFdpdGhFeGNlcHRpb24oRXhjZXB0aW9uJiYgZXhjZXB0aW9uKQpAQCAtNTMxLDIz
ICs1MzcsMjggQEAgYm9vbCBQYXltZW50UmVxdWVzdDo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3Vz
cGVuc2lvbigpIGNvbnN0CiAKIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nQWRkcmVzc0No
YW5nZWQoUmVmPFBheW1lbnRBZGRyZXNzPiYmIHNoaXBwaW5nQWRkcmVzcykKIHsKLSAgICBBU1NF
UlQobV9zdGF0ZSA9PSBTdGF0ZTo6SW50ZXJhY3RpdmUpOwotICAgIG1fc2hpcHBpbmdBZGRyZXNz
ID0gV1RGTW92ZShzaGlwcGluZ0FkZHJlc3MpOwotICAgIGlmIChtX2lzVXBkYXRpbmcpCi0gICAg
ICAgIHJldHVybjsKLSAgICBkaXNwYXRjaEV2ZW50KFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuc2hpcHBpbmdhZGRyZXNzY2hhbmdlRXZlbnQsICp0aGlzKSk7
CisgICAgd2hlbkRldGFpbHNTZXR0bGVkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0
cih0aGlzKSwgc2hpcHBpbmdBZGRyZXNzID0gbWFrZVJlZlB0cihzaGlwcGluZ0FkZHJlc3MuZ2V0
KCkpXSgpIG11dGFibGUgeworICAgICAgICBtX3NoaXBwaW5nQWRkcmVzcyA9IFdURk1vdmUoc2hp
cHBpbmdBZGRyZXNzKTsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChQYXltZW50UmVxdWVzdFVwZGF0
ZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNoaXBwaW5nYWRkcmVzc2NoYW5nZUV2ZW50LCAq
dGhpcykpOworICAgIH0pOwogfQogCiB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzaGlwcGluZ09wdGlv
bkNoYW5nZWQoY29uc3QgU3RyaW5nJiBzaGlwcGluZ09wdGlvbikKIHsKLSAgICBBU1NFUlQobV9z
dGF0ZSA9PSBTdGF0ZTo6SW50ZXJhY3RpdmUpOwotICAgIG1fc2hpcHBpbmdPcHRpb24gPSBzaGlw
cGluZ09wdGlvbjsKLSAgICBpZiAobV9pc1VwZGF0aW5nKQotICAgICAgICByZXR1cm47Ci0gICAg
ZGlzcGF0Y2hFdmVudChQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnNoaXBwaW5nb3B0aW9uY2hhbmdlRXZlbnQsICp0aGlzKSk7CisgICAgd2hlbkRldGFpbHNT
ZXR0bGVkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgc2hpcHBpbmdP
cHRpb25dKCkgbXV0YWJsZSB7CisgICAgICAgIG1fc2hpcHBpbmdPcHRpb24gPSBzaGlwcGluZ09w
dGlvbjsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnNoaXBwaW5nb3B0aW9uY2hhbmdlRXZlbnQsICp0aGlzKSk7Cisg
ICAgfSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1ZXN0Ojp1cGRhdGVXaXRo
KEV2ZW50JiBldmVudCwgUmVmPERPTVByb21pc2U+JiYgcHJvbWlzZSkKK3ZvaWQgUGF5bWVudFJl
cXVlc3Q6OnBheW1lbnRNZXRob2RDaGFuZ2VkKCkKK3sKKyAgICB3aGVuRGV0YWlsc1NldHRsZWQo
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpXSB7CisgICAgICAgIG1fYWN0
aXZlUGF5bWVudEhhbmRsZXItPmRldGFpbHNVcGRhdGVkKFVwZGF0ZVJlYXNvbjo6UGF5bWVudE1l
dGhvZENoYW5nZWQsIHsgfSk7CisgICAgfSk7Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBheW1l
bnRSZXF1ZXN0Ojp1cGRhdGVXaXRoKFVwZGF0ZVJlYXNvbiByZWFzb24sIFJlZjxET01Qcm9taXNl
PiYmIHByb21pc2UpCiB7CiAgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OkludGVyYWN0aXZlKQog
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKQEAgLTU1NSwx
MyArNTY2LDEyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1ZXN0Ojp1cGRhdGVXaXRo
KEV2ZW50JiBldmVudCwgUmVmPERPTVByb21pc2U+JiYgcHJvCiAgICAgaWYgKG1faXNVcGRhdGlu
ZykKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKLSAg
ICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFn
YXRpb24oKTsKICAgICBtX2lzVXBkYXRpbmcgPSB0cnVlOwogCisgICAgQVNTRVJUKCFtX2RldGFp
bHNQcm9taXNlKTsKICAgICBtX2RldGFpbHNQcm9taXNlID0gV1RGTW92ZShwcm9taXNlKTsKLSAg
ICBtX2RldGFpbHNQcm9taXNlLT53aGVuU2V0dGxlZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWZQdHIodGhpcyksIHR5cGUgPSBldmVudC50eXBlKCldKCkgewotICAgICAgICBzZXR0bGVE
ZXRhaWxzUHJvbWlzZSh0eXBlKTsKKyAgICBtX2RldGFpbHNQcm9taXNlLT53aGVuU2V0dGxlZChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHJlYXNvbl0oKSB7CisgICAg
ICAgIHNldHRsZURldGFpbHNQcm9taXNlKHJlYXNvbik7CiAgICAgfSk7CiAKICAgICByZXR1cm4g
eyB9OwpAQCAtNTk1LDEwICs2MDUsMTEgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVl
c3Q6OmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKEV2ZW50JiBldmVudCwgUmVmPEQKICAgICBy
ZXR1cm4geyB9OwogfQogCi12b2lkIFBheW1lbnRSZXF1ZXN0OjpzZXR0bGVEZXRhaWxzUHJvbWlz
ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUpCit2b2lkIFBheW1lbnRSZXF1ZXN0OjpzZXR0bGVE
ZXRhaWxzUHJvbWlzZShVcGRhdGVSZWFzb24gcmVhc29uKQogewogICAgIGF1dG8gc2NvcGVFeGl0
ID0gbWFrZVNjb3BlRXhpdChbJl0gewogICAgICAgICBtX2lzVXBkYXRpbmcgPSBmYWxzZTsKKyAg
ICAgICAgbV9kZXRhaWxzUHJvbWlzZSA9IG51bGxwdHI7CiAgICAgfSk7CiAKICAgICBpZiAobV9z
dGF0ZSAhPSBTdGF0ZTo6SW50ZXJhY3RpdmUpCkBAIC02NDEsMTMgKzY1MiwzMSBAQCB2b2lkIFBh
eW1lbnRSZXF1ZXN0OjpzZXR0bGVEZXRhaWxzUHJvbWlzZShjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUpCiAgICAgbV9kZXRhaWxzLm1vZGlmaWVycyA9IFdURk1vdmUocGF5bWVudERldGFpbHNVcGRh
dGUubW9kaWZpZXJzKTsKICAgICBtX3NlcmlhbGl6ZWRNb2RpZmllckRhdGEgPSBXVEZNb3ZlKHN0
ZDo6Z2V0PDE+KHNoaXBwaW5nT3B0aW9uQW5kTW9kaWZpZXJEYXRhKSk7CiAKLSAgICBhdXRvIHJl
c3VsdCA9IG1fYWN0aXZlUGF5bWVudEhhbmRsZXItPmRldGFpbHNVcGRhdGVkKHR5cGUsIHBheW1l
bnREZXRhaWxzVXBkYXRlLmVycm9yKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fYWN0aXZlUGF5bWVu
dEhhbmRsZXItPmRldGFpbHNVcGRhdGVkKHJlYXNvbiwgcGF5bWVudERldGFpbHNVcGRhdGUuZXJy
b3IpOwogICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgYWJvcnRXaXRo
RXhjZXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogfQogCit2b2lkIFBheW1lbnRSZXF1ZXN0Ojp3aGVuRGV0YWlsc1NldHRsZWQoc3RkOjpm
dW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKCFtX2RldGFpbHNQcm9taXNl
KSB7CisgICAgICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpJbnRlcmFjdGl2ZSk7CisgICAg
ICAgIEFTU0VSVCghbV9pc1VwZGF0aW5nKTsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIG1fZGV0YWlsc1Byb21pc2UtPndoZW5TZXR0bGVkKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKV0geworICAgICAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6SW50ZXJhY3RpdmUpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgQVNTRVJUKCFtX2lzVXBkYXRpbmcpOworICAg
ICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCiB2b2lkIFBheW1lbnRSZXF1ZXN0OjphY2Nl
cHQoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lLCBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiYm
IGRldGFpbHMsIFJlZjxQYXltZW50QWRkcmVzcz4mJiBzaGlwcGluZ0FkZHJlc3MsIGNvbnN0IFN0
cmluZyYgcGF5ZXJOYW1lLCBjb25zdCBTdHJpbmcmIHBheWVyRW1haWwsIGNvbnN0IFN0cmluZyYg
cGF5ZXJQaG9uZSkKIHsKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6SW50ZXJhY3RpdmUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXlt
ZW50UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXlt
ZW50UmVxdWVzdC5oCmluZGV4IGZhOWZkZjRiYmE2MzM5MjE1OWY1NDg1MzI3MzY0M2YzNjdkOTU3
ZDEuLjc0NTdhZDczODJkYWM4ZWZlMDVmYTcyNTFhNzdlNGMxZDBiNDJmYTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNDUsMTggKzQ1LDE5IEBAIGNsYXNzIFBheW1lbnRIYW5kbGVyOwogY2xhc3MgUGF5bWVudFJl
c3BvbnNlOwogZW51bSBjbGFzcyBQYXltZW50Q29tcGxldGU7CiBlbnVtIGNsYXNzIFBheW1lbnRT
aGlwcGluZ1R5cGU7CitzdHJ1Y3QgUGF5bWVudERldGFpbHNVcGRhdGU7CiBzdHJ1Y3QgUGF5bWVu
dE1ldGhvZERhdGE7CiAKIGNsYXNzIFBheW1lbnRSZXF1ZXN0IGZpbmFsIDogcHVibGljIFJlZkNv
dW50ZWQ8UGF5bWVudFJlcXVlc3Q+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZl
bnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CiBwdWJsaWM6Ci0gICAgdXNpbmcgU2hvd1Byb21pc2Ug
PSBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFBheW1lbnRSZXNwb25zZT4+OwogICAg
IHVzaW5nIEFib3J0UHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPjsKICAgICB1c2lu
ZyBDYW5NYWtlUGF5bWVudFByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj47
CisgICAgdXNpbmcgU2hvd1Byb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PFBheW1lbnRSZXNwb25zZT4+OwogCiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxQYXltZW50
UmVxdWVzdD4+IGNyZWF0ZShEb2N1bWVudCYsIFZlY3RvcjxQYXltZW50TWV0aG9kRGF0YT4mJiwg
UGF5bWVudERldGFpbHNJbml0JiYsIFBheW1lbnRPcHRpb25zJiYpOwogICAgIH5QYXltZW50UmVx
dWVzdCgpOwogCi0gICAgdm9pZCBzaG93KERvY3VtZW50JiwgU2hvd1Byb21pc2UmJik7CisgICAg
dm9pZCBzaG93KERvY3VtZW50JiwgUmVmUHRyPERPTVByb21pc2U+JiYgZGV0YWlsc1Byb21pc2Us
IFNob3dQcm9taXNlJiYpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGFib3J0KEFib3J0UHJvbWlz
ZSYmKTsKICAgICB2b2lkIGNhbk1ha2VQYXltZW50KERvY3VtZW50JiwgQ2FuTWFrZVBheW1lbnRQ
cm9taXNlJiYpOwogCkBAIC03MSw2ICs3MiwxMyBAQCBwdWJsaWM6CiAgICAgICAgIENsb3NlZCwK
ICAgICB9OwogCisgICAgZW51bSBjbGFzcyBVcGRhdGVSZWFzb24geworICAgICAgICBTaG93RGV0
YWlsc1Jlc29sdmVkLAorICAgICAgICBTaGlwcGluZ0FkZHJlc3NDaGFuZ2VkLAorICAgICAgICBT
aGlwcGluZ09wdGlvbkNoYW5nZWQsCisgICAgICAgIFBheW1lbnRNZXRob2RDaGFuZ2VkLAorICAg
IH07CisKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KIAogICAg
IGNvbnN0IFBheW1lbnRPcHRpb25zJiBwYXltZW50T3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1f
b3B0aW9uczsgfQpAQCAtNzksNyArODcsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNoaXBwaW5n
QWRkcmVzc0NoYW5nZWQoUmVmPFBheW1lbnRBZGRyZXNzPiYmKTsKICAgICB2b2lkIHNoaXBwaW5n
T3B0aW9uQ2hhbmdlZChjb25zdCBTdHJpbmcmIHNoaXBwaW5nT3B0aW9uKTsKLSAgICBFeGNlcHRp
b25Pcjx2b2lkPiB1cGRhdGVXaXRoKEV2ZW50JiwgUmVmPERPTVByb21pc2U+JiYpOworICAgIHZv
aWQgcGF5bWVudE1ldGhvZENoYW5nZWQoKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiB1cGRhdGVX
aXRoKFVwZGF0ZVJlYXNvbiwgUmVmPERPTVByb21pc2U+JiYpOwogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKEV2ZW50JiwgUmVmPERPTVByb21pc2U+JiYp
OwogICAgIHZvaWQgYWNjZXB0KGNvbnN0IFN0cmluZyYgbWV0aG9kTmFtZSwgSlNDOjpTdHJvbmc8
SlNDOjpKU09iamVjdD4mJiBkZXRhaWxzLCBSZWY8UGF5bWVudEFkZHJlc3M+JiYgc2hpcHBpbmdB
ZGRyZXNzLCBjb25zdCBTdHJpbmcmIHBheWVyTmFtZSwgY29uc3QgU3RyaW5nJiBwYXllckVtYWls
LCBjb25zdCBTdHJpbmcmIHBheWVyUGhvbmUpOwogICAgIHZvaWQgY29tcGxldGUoc3RkOjpvcHRp
b25hbDxQYXltZW50Q29tcGxldGU+JiYpOwpAQCAtOTcsNyArMTA2LDggQEAgcHJpdmF0ZToKIAog
ICAgIFBheW1lbnRSZXF1ZXN0KERvY3VtZW50JiwgUGF5bWVudE9wdGlvbnMmJiwgUGF5bWVudERl
dGFpbHNJbml0JiYsIFZlY3RvcjxTdHJpbmc+JiYgc2VyaWFsaXplZE1vZGlmaWVyRGF0YSwgVmVj
dG9yPE1ldGhvZD4mJiBzZXJpYWxpemVkTWV0aG9kRGF0YSwgU3RyaW5nJiYgc2VsZWN0ZWRTaGlw
cGluZ09wdGlvbik7CiAKLSAgICB2b2lkIHNldHRsZURldGFpbHNQcm9taXNlKGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSk7CisgICAgdm9pZCBzZXR0bGVEZXRhaWxzUHJvbWlzZShVcGRhdGVSZWFz
b24pOworICAgIHZvaWQgd2hlbkRldGFpbHNTZXR0bGVkKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYm
KTsKICAgICB2b2lkIGFib3J0V2l0aEV4Y2VwdGlvbihFeGNlcHRpb24mJik7CiAKICAgICAvLyBB
Y3RpdmVET01PYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5pZGwKaW5kZXggYzBlYTUwY2U5OThlZGZhYmZlNjI1
YmViYzBkZjc2MzJiYTI1Y2M4ZS4uYjhiMzE4NGQ2NzZlMWYxNjE0NGE4NzQyOThlZjEzOGZhNTJh
MTQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVxdWVzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50UmVxdWVzdC5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsOSArMzAsOSBAQAogICAgIENvbnN0cnVjdG9yQ2Fs
bFdpdGg9RG9jdW1lbnQsCiAgICAgQ29uc3RydWN0b3JNYXlUaHJvd0V4Y2VwdGlvbiwKICAgICBF
bmFibGVkQnlTZXR0aW5nPVBheW1lbnRSZXF1ZXN0LAotICAgIFNlY3VyZUNvbnRleHQKKyAgICBT
ZWN1cmVDb250ZXh0LAogXSBpbnRlcmZhY2UgUGF5bWVudFJlcXVlc3QgOiBFdmVudFRhcmdldCB7
Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBQcm9taXNlPFBheW1lbnRSZXNwb25zZT4gc2hvdygp
OworICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gUHJvbWlzZTxQYXltZW50UmVzcG9uc2U+IHNob3co
b3B0aW9uYWwgUHJvbWlzZTxQYXltZW50RGV0YWlsc1VwZGF0ZT4gZGV0YWlsc1Byb21pc2UpOwog
ICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gUHJvbWlzZTx2b2lkPiBhYm9ydCgpOwogICAgIFtDYWxs
V2l0aD1Eb2N1bWVudF0gUHJvbWlzZTxib29sZWFuPiBjYW5NYWtlUGF5bWVudCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1
ZXN0VXBkYXRlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVz
dC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50LmNwcAppbmRleCA0NzQ0ZmU5OTVhZDZiZTU4YWUz
MjViNGE2MWZkNmNmNWZkOGYyYmQ0Li5mZTI3NTU4ZTRiYjU3MzEyYWUzN2ZmZGUyOGE1ZDU0ODZm
ZDI3N2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0
L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTMsNyArNTMs
MjAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudDo6dXBkYXRl
V2l0aChSZWY8RE9NUHJvbWlzZT4mJiBkZXRhaWwKICAgICBpZiAobV93YWl0Rm9yVXBkYXRlKQog
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAotICAgIGF1
dG8gZXhjZXB0aW9uID0gbV9wYXltZW50UmVxdWVzdC0+dXBkYXRlV2l0aCgqdGhpcywgV1RGTW92
ZShkZXRhaWxzUHJvbWlzZSkpOworICAgIHN0b3BQcm9wYWdhdGlvbigpOworICAgIHN0b3BJbW1l
ZGlhdGVQcm9wYWdhdGlvbigpOworCisgICAgUGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiBy
ZWFzb247CisgICAgaWYgKHR5cGUoKSA9PSBldmVudE5hbWVzKCkuc2hpcHBpbmdhZGRyZXNzY2hh
bmdlRXZlbnQpCisgICAgICAgIHJlYXNvbiA9IFBheW1lbnRSZXF1ZXN0OjpVcGRhdGVSZWFzb246
OlNoaXBwaW5nQWRkcmVzc0NoYW5nZWQ7CisgICAgZWxzZSBpZiAodHlwZSgpID09IGV2ZW50TmFt
ZXMoKS5zaGlwcGluZ29wdGlvbmNoYW5nZUV2ZW50KQorICAgICAgICByZWFzb24gPSBQYXltZW50
UmVxdWVzdDo6VXBkYXRlUmVhc29uOjpTaGlwcGluZ09wdGlvbkNoYW5nZWQ7CisgICAgZWxzZSB7
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZUVycm9yIH07CisgICAgfQorCisgICAgYXV0byBleGNlcHRpb24gPSBtX3BheW1lbnRS
ZXF1ZXN0LT51cGRhdGVXaXRoKHJlYXNvbiwgV1RGTW92ZShkZXRhaWxzUHJvbWlzZSkpOwogICAg
IGlmIChleGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBleGNlcHRpb24u
cmVsZWFzZUV4Y2VwdGlvbigpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTlmNzMwYjQ0M2UwZTI3ZDg5YjQyNTMyMzdj
MTYxMTlhNDNlNDQzMy4uYmE5YzU3MTZjNDk0YzY4YjAyOGRlNzVlZjJiYjQ2ZjBiNDIwYzRjZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTAyLTA2ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFw
cGxlLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBzaG93KCkgc2hvdWxkIHRha2Ug
YW4gb3B0aW9uYWwgUGF5bWVudERldGFpbHNVcGRhdGUgcHJvbWlzZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNTM4CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8zNjc1NDU1Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNo
b3ctbWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3BheW1l
bnRyZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sOgorCiAyMDE4
LTAxLTMwICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaFRy
YWNlcjogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50IGF0IFdlYkNvcmU6IFdlYkNvcmU6OkRv
Y3VtZW50Ojp1cGRhdGVTdHlsZUlmTmVlZGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1l
bnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggOGM5OTFjNmQ0
ZjdhNmI3NGUzNjQ2ZDA0NmFlMTVhODk0YTA3NTQwNy4uYjVmZmFjMDFkZTc5YTE4ZTY2NmEwZTNl
N2Q0ZjRkNjUwODg2OTZhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXlt
ZW50cmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXF1
ZXN0LXNob3ctbWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNCw0ICs0LDYgQEAgUEFTUyBU
aHJvd3MgaWYgdGhlIHByb21pc2UgW1tzdGF0ZV1dIGlzIG5vdCAiY3JlYXRlZCIKIFBBU1MgSWYg
dGhlIHVzZXIgYWdlbnQncyAicGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmciIGJvb2xlYW4gaXMg
dHJ1ZSwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkFib3J0RXJyb3Ii
IERPTUV4Y2VwdGlvbi4gCiBQQVNTIElmIHBheW1lbnQgbWV0aG9kIGNvbnN1bHRhdGlvbiBwcm9k
dWNlcyBubyBzdXBwb3J0ZWQgbWV0aG9kIG9mIHBheW1lbnQsIHRoZW4gcmV0dXJuIGEgcHJvbWlz
ZSByZWplY3RlZCB3aXRoIGEgIk5vdFN1cHBvcnRlZEVycm9yIiBET01FeGNlcHRpb24uIAogUEFT
UyBJZiB0aGUgdXNlciBhYm9ydHMgdGhlIHBheW1lbnQgcmVxdWVzdCBhbGdvcml0aG0sIHRoZW4g
cmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuICJBYm9ydEVycm9yIiBET01FeGNlcHRp
b24uIAorUEFTUyBBIHJlcXVlc3QgaXMgdXBkYXRlZCB3aGVuIHNob3coKSdzIGRldGFpbCBwcm9t
aXNlIHJlc29sdmVzLiAKK1BBU1MgQ2hhbmdlIGV2ZW50cyBkbyBub3Qgb2NjdXIgdW50aWwgc2hv
dygpJ3MgZGV0YWlsIHByb21pc2UgcmVzb2x2ZXMuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50
LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbAppbmRleCBiYmFjOTE5N2MwM2Y1OWE0MTRm
YmQ4YmMxMjJkNGYxYTJlM2FiZjE5Li5hODE0MDQxZDdiNTZkOTlhMzZlMmJlZGYyYmE1MzhlYzU0
YWM3YmVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0
L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0
dHBzLmh0bWwKQEAgLTc1LDQgKzc1LDY0IEBAIHVzZXJfYWN0aXZhdGlvbl90ZXN0KGFzeW5jIHQg
PT4gewogICBpbnRlcm5hbHMubW9ja1BheW1lbnRDb29yZGluYXRvci5jYW5jZWxQYXltZW50KCk7
CiAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIGFjY2VwdFByb21pc2Up
OwogfSwgYElmIHRoZSB1c2VyIGFib3J0cyB0aGUgcGF5bWVudCByZXF1ZXN0IGFsZ29yaXRobSwg
dGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkFib3J0RXJyb3IiIERPTUV4
Y2VwdGlvbi5gKTsKKwordXNlcl9hY3RpdmF0aW9uX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRh
aWxzKTsKKyAgY29uc3QgZXhwZWN0ZWRMYWJlbCA9ICJVcGRhdGVkIFRvdGFsIjsKKyAgY29uc3Qg
ZXhwZWN0ZWRBbW91bnQgPSAiMi4wMCI7CisgIGNvbnN0IGRldGFpbHMgPSB7CisgICAgICB0b3Rh
bDogeworICAgICAgICAgIGxhYmVsOiBleHBlY3RlZExhYmVsLAorICAgICAgICAgIGFtb3VudDog
eworICAgICAgICAgICAgICBjdXJyZW5jeTogIlVTRCIsCisgICAgICAgICAgICAgIHZhbHVlOiBl
eHBlY3RlZEFtb3VudCwKKyAgICAgICAgICB9LAorICAgICAgfSwKKyAgfTsKKyAgY29uc3QgYWNj
ZXB0UHJvbWlzZSA9IHJlcXVlc3Quc2hvdyhkZXRhaWxzKTsKKyAgaW50ZXJuYWxzLm1vY2tQYXlt
ZW50Q29vcmRpbmF0b3IuY2hhbmdlUGF5bWVudE1ldGhvZCh7IHR5cGU6ICdjcmVkaXQnIH0pOwor
ICBpbnRlcm5hbHMubW9ja1BheW1lbnRDb29yZGluYXRvci5hY2NlcHRQYXltZW50KCk7CisgIGNv
bnN0IHJlc3VsdCA9IGF3YWl0IGFjY2VwdFByb21pc2U7CisgIGFzc2VydF9lcXVhbHMoaW50ZXJu
YWxzLm1vY2tQYXltZW50Q29vcmRpbmF0b3IudG90YWwubGFiZWwsIGV4cGVjdGVkTGFiZWwpOwor
ICBhc3NlcnRfZXF1YWxzKGludGVybmFscy5tb2NrUGF5bWVudENvb3JkaW5hdG9yLnRvdGFsLmFt
b3VudCwgZXhwZWN0ZWRBbW91bnQpOworICByZXN1bHQuY29tcGxldGUoInN1Y2Nlc3MiKTsKK30s
IGBBIHJlcXVlc3QgaXMgdXBkYXRlZCB3aGVuIHNob3coKSdzIGRldGFpbCBwcm9taXNlIHJlc29s
dmVzLmApOworCit1c2VyX2FjdGl2YXRpb25fdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcmVx
dWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMp
OworICBjb25zdCBleHBlY3RlZExhYmVsID0gIlVwZGF0ZWQgVG90YWwiOworICBjb25zdCBleHBl
Y3RlZEFtb3VudCA9ICIyLjAwIjsKKworICB2YXIgc2hpcHBpbmdBZGRyZXNzQ2hhbmdlZCA9IGZh
bHNlOworICBjb25zdCBzaGlwcGluZ0FkZHJlc3NDaGFuZ2VkUHJvbWlzZSA9IG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7CisgICAgcmVxdWVzdC5vbnNoaXBwaW5nYWRkcmVzc2NoYW5nZSA9ICgp
ID0+IHsKKyAgICAgIHNoaXBwaW5nQWRkcmVzc0NoYW5nZWQgPSB0cnVlOworICAgICAgcmVzb2x2
ZSgpOworICAgIH07CisgIH0pOworCisgIGNvbnN0IGRldGFpbHNQcm9taXNlID0gbmV3IFByb21p
c2UoKHJlc29sdmUpID0+IHsKKyAgICBjb25zdCBkZXRhaWxzID0geworICAgICAgdG90YWw6IHsK
KyAgICAgICAgbGFiZWw6IGV4cGVjdGVkTGFiZWwsCisgICAgICAgIGFtb3VudDogeworICAgICAg
ICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgICAgICB2YWx1ZTogZXhwZWN0ZWRBbW91bnQsCisg
ICAgICAgIH0sCisgICAgICB9LAorICAgIH07CisKKyAgICByZXF1ZXN0Lm9ubWVyY2hhbnR2YWxp
ZGF0aW9uID0gKGV2ZW50KSA9PiB7CisgICAgICBjb25zdCBzZXNzaW9uUHJvbWlzZSA9IG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiByZXNvbHZlKHsgfSkpOworICAgICAgZXZlbnQuY29tcGxldGUo
c2Vzc2lvblByb21pc2UpOworICAgICAgc2Vzc2lvblByb21pc2UudGhlbigoKSA9PiB3aW5kb3cu
c2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2hpcHBpbmdBZGRyZXNz
Q2hhbmdlZCwgZmFsc2UsICJzaGlwcGluZ2FkZHJlc3NjaGFuZ2UgZG9lcyBub3QgZmlyZSBiZWZv
cmUgdGhlIGRldGFpbHMgcHJvbWlzZSByZXNvbHZlcy4iKTsKKyAgICAgICAgcmVzb2x2ZShkZXRh
aWxzKTsKKyAgICAgIH0pKTsKKyAgICB9OworICB9KTsKKworICByZXF1ZXN0LnNob3coZGV0YWls
c1Byb21pc2UpLmNhdGNoKCgpID0+IHt9KTsKKyAgYXdhaXQgc2hpcHBpbmdBZGRyZXNzQ2hhbmdl
ZFByb21pc2U7Cit9LCBgQ2hhbmdlIGV2ZW50cyBkbyBub3Qgb2NjdXIgdW50aWwgc2hvdygpJ3Mg
ZGV0YWlsIHByb21pc2UgcmVzb2x2ZXMuYCk7CiA8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333212</attachid>
            <date>2018-02-06 13:48:19 -0800</date>
            <delta_ts>2018-02-06 14:47:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182538-20180206134818.patch</filename>
            <type>text/plain</type>
            <size>25887</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q2ZjBjYWJjMDAwZTZl
OTA3YTYzODExYmY0ZmUwZjU1NWY5NDQyNy4uNzA4M2ZlYmFiZGU5MWNjMGI2MDljODc2Y2NhNWIz
YTZmMjk0OWZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDE4LTAyLTA2ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBz
aG93KCkgc2hvdWxkIHRha2UgYW4gb3B0aW9uYWwgUGF5bWVudERldGFpbHNVcGRhdGUgcHJvbWlz
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNTM4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjc1NDU1Mj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBUaW0gSG9ydG9uLgorCisgICAgICAgIFRhdWdodCBzaG93KCkgdG8gdGFrZSBhbiBvcHRpb25h
bCBwcm9taXNlIGZvciBhIFBheW1lbnREZXRhaWxzVXBkYXRlLgorCisgICAgICAgIEFkZGVkIHRl
c3QgY2FzZXMgdG8gaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hv
dy1tZXRob2QuaHR0cHMuaHRtbC4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvcGF5bWVu
dHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
cHBsZVBheVBheW1lbnRIYW5kbGVyOjpkZXRhaWxzVXBkYXRlZCk6CisKKyAgICAgICAgQ2hhbmdl
ZCB0byB0YWtlIGEgUGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiBpbnN0ZWFkIG9mIGEgZXZl
bnRUeXBlIHN0cmluZy4KKworICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxl
cjo6c2hpcHBpbmdBZGRyZXNzVXBkYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBh
eW1lbnRIYW5kbGVyOjpzaGlwcGluZ09wdGlvblVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6cGF5bWVudE1ldGhvZFVwZGF0ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGlkQXV0aG9yaXplUGF5bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpkaWRTZWxlY3RTaGlwcGlu
Z01ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpkaWRT
ZWxlY3RTaGlwcGluZ0NvbnRhY3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50
SGFuZGxlcjo6ZGlkU2VsZWN0UGF5bWVudE1ldGhvZCk6CisKKyAgICAgICAgQXNzZXJ0ZWQgdGhh
dCBvbmx5IG9uZSBvZiB0aGUgUGF5bWVudFNlc3Npb24gZGVsZWdhdGVzIGlzIGV4ZWN1dGluZyBh
dCBhIHRpbWUuCisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0Fw
cGxlUGF5UGF5bWVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0
L1BheW1lbnRIYW5kbGVyLmg6CisKKyAgICAgICAgQ2hhbmdlZCBkZXRhaWxzVXBkYXRlZCB0byB0
YWtlIGEgUGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiBpbnN0ZWFkIG9mIGEgZXZlbnRUeXBl
IHN0cmluZy4KKworICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnNob3cpOgorCisgICAg
ICAgIElmIHRoZXJlIGlzIGEgZGV0YWlscyBwcm9taXNlLCBjYWxsIHVwZGF0ZVdpdGgoKSB3aXRo
IFVwZGF0ZVJlYXNvbjo6U2hvd0RldGFpbHNSZXNvbHZlZC4KKworICAgICAgICAoV2ViQ29yZTo6
UGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nQWRkcmVzc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nT3B0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpQYXltZW50UmVxdWVzdDo6cGF5bWVudE1ldGhvZENoYW5nZWQpOgorCisgICAgICAgIFVz
ZWQgd2hlbkRldGFpbHNTZXR0bGVkKCkgdG8gZW5zdXJlIHRoYXQgdXBkYXRlIGV2ZW50cyBkbyBu
b3Qgc3RhcnQgYmVmb3JlIHRoZSBzaG93KCkKKyAgICAgICAgZGV0YWlscyBwcm9taXNlIHNldHRs
ZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0Ojp1cGRhdGVXaXRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpzZXR0bGVEZXRhaWxzUHJvbWlzZSk6CisK
KyAgICAgICAgQ2hhbmdlZCB0byB1c2UgYSBQYXltZW50UmVxdWVzdDo6VXBkYXRlUmVhc29uIGlu
c3RlYWQgb2YgYSBldmVudFR5cGUgc3RyaW5nLgorCisgICAgICAgIChXZWJDb3JlOjpQYXltZW50
UmVxdWVzdDo6d2hlbkRldGFpbHNTZXR0bGVkKToKKworICAgICAgICBJZiB0aGVyZSBpcyBhIGRl
dGFpbHMgcHJvbWlzZSwgd2FpdCBmb3IgaXQgdG8gc2V0dGxlIGJlZm9yZSBleGVjdXRpbmcgdGhl
IGNhbGxiYWNrLgorCisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVx
dWVzdC5oOgorCisgICAgICAgIERlZmluZWQgZW51bSBjbGFzcyBVcGRhdGVSZWFzb24uCisKKyAg
ICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmlkbDoKKworICAg
ICAgICBVcGRhdGVkIHNob3coKSB0byB0YWtlIGFuIG9wdGlvbmFsIFByb21pc2U8UGF5bWVudERl
dGFpbHNVcGRhdGU+LgorCisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50
UmVxdWVzdFVwZGF0ZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0
VXBkYXRlRXZlbnQ6OnVwZGF0ZVdpdGgpOgorCisgICAgICAgIE1hcCB0aGUgZXZlbnQgdHlwZSB0
byBhIFBheW1lbnRSZXF1ZXN0OjpVcGRhdGVSZWFzb24uCisKIDIwMTgtMDItMDYgIEFuZHkgRXN0
ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJJRExdIFN1cHBvcnQgb3B0aW9u
YWwgUHJvbWlzZSBhcmd1bWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVu
dEhhbmRsZXIuY3BwCmluZGV4IDA0MTRlNDQxZTc4OTBmOGY1OWUwNWRjZTdiNjRjMmYzYjA0ODk3
ZWUuLmMxM2IxZTA0ZDk1NzIxY2Y3ZTE3OThkYzU1ODVkYmY3MWFjODJhOWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQ
YXltZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9w
YXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMDcsMTMgKzMwNywxOSBA
QCBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5l
SXRlbXM+IEFwcGxlUGF5UGF5bWVudEhhbgogICAgIHJldHVybiBBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMgeyBXVEZNb3ZlKHRvdGFsKSwgV1RGTW92ZShs
aW5lSXRlbXMpIH07CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRs
ZXI6OmRldGFpbHNVcGRhdGVkKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBT
dHJpbmcmIGVycm9yKQorRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6
ZGV0YWlsc1VwZGF0ZWQoUGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiByZWFzb24sIGNvbnN0
IFN0cmluZyYgZXJyb3IpCiB7Ci0gICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc2hp
cHBpbmdhZGRyZXNzY2hhbmdlRXZlbnQpCisgICAgdXNpbmcgUmVhc29uID0gUGF5bWVudFJlcXVl
c3Q6OlVwZGF0ZVJlYXNvbjsKKyAgICBzd2l0Y2ggKHJlYXNvbikgeworICAgIGNhc2UgUmVhc29u
OjpTaG93RGV0YWlsc1Jlc29sdmVkOgorICAgICAgICByZXR1cm4geyB9OworICAgIGNhc2UgUmVh
c29uOjpTaGlwcGluZ0FkZHJlc3NDaGFuZ2VkOgogICAgICAgICByZXR1cm4gc2hpcHBpbmdBZGRy
ZXNzVXBkYXRlZChlcnJvcik7Ci0KLSAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5z
aGlwcGluZ29wdGlvbmNoYW5nZUV2ZW50KQorICAgIGNhc2UgUmVhc29uOjpTaGlwcGluZ09wdGlv
bkNoYW5nZWQ6CiAgICAgICAgIHJldHVybiBzaGlwcGluZ09wdGlvblVwZGF0ZWQoKTsKKyAgICBj
YXNlIFJlYXNvbjo6UGF5bWVudE1ldGhvZENoYW5nZWQ6CisgICAgICAgIHJldHVybiBwYXltZW50
TWV0aG9kVXBkYXRlZCgpOworICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
IHJldHVybiB7IH07CkBAIC0zMzgsNiArMzQ0LDkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQ
YXlQYXltZW50SGFuZGxlcjo6bWVyY2hhbnRWYWxpZGF0aW9uQ29tcGxldGVkKEpTQzo6SlNWYWwK
IAogRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hpcHBpbmdBZGRy
ZXNzVXBkYXRlZChjb25zdCBTdHJpbmcmIGVycm9yKQogeworICAgIEFTU0VSVChtX2lzVXBkYXRp
bmcpOworICAgIG1faXNVcGRhdGluZyA9IGZhbHNlOworCiAgICAgU2hpcHBpbmdDb250YWN0VXBk
YXRlIHVwZGF0ZTsKIAogICAgIGlmIChtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50T3B0aW9ucygp
LnJlcXVlc3RTaGlwcGluZyAmJiBtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50RGV0YWlscygpLnNo
aXBwaW5nT3B0aW9ucy5pc0VtcHR5KCkpIHsKQEAgLTM1OCw2ICszNjcsOSBAQCBFeGNlcHRpb25P
cjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpzaGlwcGluZ0FkZHJlc3NVcGRhdGVkKGNv
bnN0IFN0cmluZyYgZQogCiBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVy
OjpzaGlwcGluZ09wdGlvblVwZGF0ZWQoKQogeworICAgIEFTU0VSVChtX2lzVXBkYXRpbmcpOwor
ICAgIG1faXNVcGRhdGluZyA9IGZhbHNlOworCiAgICAgU2hpcHBpbmdNZXRob2RVcGRhdGUgdXBk
YXRlOwogCiAgICAgYXV0byBuZXdUb3RhbEFuZExpbmVJdGVtcyA9IGNvbXB1dGVUb3RhbEFuZExp
bmVJdGVtcygpOwpAQCAtMzcxLDYgKzM4Myw5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5
UGF5bWVudEhhbmRsZXI6OnNoaXBwaW5nT3B0aW9uVXBkYXRlZCgpCiAKIEV4Y2VwdGlvbk9yPHZv
aWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnBheW1lbnRNZXRob2RVcGRhdGVkKCkKIHsKKyAg
ICBBU1NFUlQobV9pc1VwZGF0aW5nKTsKKyAgICBtX2lzVXBkYXRpbmcgPSBmYWxzZTsKKwogICAg
IFBheW1lbnRNZXRob2RVcGRhdGUgdXBkYXRlOwogCiAgICAgYXV0byBuZXdUb3RhbEFuZExpbmVJ
dGVtcyA9IGNvbXB1dGVUb3RhbEFuZExpbmVJdGVtcygpOwpAQCAtNDI3LDYgKzQ0Miw4IEBAIHN0
YXRpYyBSZWY8UGF5bWVudEFkZHJlc3M+IGNvbnZlcnQoY29uc3QgQXBwbGVQYXlQYXltZW50Q29u
dGFjdCYgY29udGFjdCkKIAogdm9pZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpkaWRBdXRob3Jp
emVQYXltZW50KGNvbnN0IFBheW1lbnQmIHBheW1lbnQpCiB7CisgICAgQVNTRVJUKCFtX2lzVXBk
YXRpbmcpOworCiAgICAgYXV0byBhcHBsZVBheVBheW1lbnQgPSBwYXltZW50LnRvQXBwbGVQYXlQ
YXltZW50KHZlcnNpb24oKSk7CiAgICAgYXV0byYgZXhlY1N0YXRlID0gKmRvY3VtZW50KCkuZXhl
Y1N0YXRlKCk7CiAgICAgYXV0byBsb2NrID0gSlNDOjpKU0xvY2tIb2xkZXIgeyAmZXhlY1N0YXRl
IH07CkBAIC00MzcsMTggKzQ1NCwyNyBAQCB2b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmRp
ZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgUGF5bWVudCYgcGF5bWVudCkKIAogdm9pZCBBcHBsZVBh
eVBheW1lbnRIYW5kbGVyOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQogewor
ICAgIEFTU0VSVCghbV9pc1VwZGF0aW5nKTsKKyAgICBtX2lzVXBkYXRpbmcgPSB0cnVlOworCiAg
ICAgbV9wYXltZW50UmVxdWVzdC0+c2hpcHBpbmdPcHRpb25DaGFuZ2VkKHNoaXBwaW5nTWV0aG9k
LmlkZW50aWZpZXIpOwogfQogCiB2b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmRpZFNlbGVj
dFNoaXBwaW5nQ29udGFjdChjb25zdCBQYXltZW50Q29udGFjdCYgc2hpcHBpbmdDb250YWN0KQog
eworICAgIEFTU0VSVCghbV9pc1VwZGF0aW5nKTsKKyAgICBtX2lzVXBkYXRpbmcgPSB0cnVlOwor
CiAgICAgbV9wYXltZW50UmVxdWVzdC0+c2hpcHBpbmdBZGRyZXNzQ2hhbmdlZChjb252ZXJ0KHNo
aXBwaW5nQ29udGFjdC50b0FwcGxlUGF5UGF5bWVudENvbnRhY3QodmVyc2lvbigpKSkpOwogfQog
CiB2b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29u
c3QgUGF5bWVudE1ldGhvZCYgcGF5bWVudE1ldGhvZCkKIHsKKyAgICBBU1NFUlQoIW1faXNVcGRh
dGluZyk7CisgICAgbV9pc1VwZGF0aW5nID0gdHJ1ZTsKKwogICAgIG1fc2VsZWN0ZWRQYXltZW50
TWV0aG9kVHlwZSA9IHBheW1lbnRNZXRob2QudG9BcHBsZVBheVBheW1lbnRNZXRob2QoKS50eXBl
OwotICAgIHBheW1lbnRNZXRob2RVcGRhdGVkKCk7CisgICAgbV9wYXltZW50UmVxdWVzdC0+cGF5
bWVudE1ldGhvZENoYW5nZWQoKTsKIH0KIAogdm9pZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpk
aWRDYW5jZWxQYXltZW50U2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXlt
ZW50SGFuZGxlci5oCmluZGV4IGZkNmY4ZDA3NmE2MDczMDAyY2MyM2NlNTRjNDcwZDczZjFiNzdk
NzEuLmUwMDY0ZDM1N2JmZDU4ZjI5Nzk1NTJlYjRkZTgxYTZkZTRhMTViNTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQ
YXltZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5
bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYzLDcgKzYzLDcgQEAgcHJpdmF0
ZToKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzaG93KCkgZmluYWw7CiAgICAgdm9pZCBoaWRlKCkg
ZmluYWw7CiAgICAgdm9pZCBjYW5NYWtlUGF5bWVudChXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRldGFp
bHNVcGRhdGVkKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGVy
cm9yKSBmaW5hbDsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBkZXRhaWxzVXBkYXRlZChQYXltZW50
UmVxdWVzdDo6VXBkYXRlUmVhc29uLCBjb25zdCBTdHJpbmcmIGVycm9yKSBmaW5hbDsKICAgICBF
eGNlcHRpb25Pcjx2b2lkPiBtZXJjaGFudFZhbGlkYXRpb25Db21wbGV0ZWQoSlNDOjpKU1ZhbHVl
JiYpIGZpbmFsOwogICAgIHZvaWQgY29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxl
dGU+JiYpIGZpbmFsOwogCkBAIC04MCw2ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgUmVmPFBheW1l
bnRSZXF1ZXN0PiBtX3BheW1lbnRSZXF1ZXN0OwogICAgIHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlS
ZXF1ZXN0PiBtX2FwcGxlUGF5UmVxdWVzdDsKICAgICBzdGQ6Om9wdGlvbmFsPEFwcGxlUGF5UGF5
bWVudE1ldGhvZFR5cGU+IG1fc2VsZWN0ZWRQYXltZW50TWV0aG9kVHlwZTsKKyAgICBib29sIG1f
aXNVcGRhdGluZyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5k
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5k
bGVyLmgKaW5kZXggMmNlZTA3ZDQ5Njc0NTE5NjQ3YmJiNTk4ODZkNTFhYzYwZDg4NDlmNS4uNDI5
NzNmOWUxNmZkNDg3YzcxYzMwZDc5ODA4NzA2MDI0OTI4MjkwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OSw3
ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNob3coKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGhpZGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbk1h
a2VQYXltZW50KFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikg
PSAwOwotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gZGV0YWlsc1VwZGF0ZWQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgZXJyb3IpID0gMDsKKyAgICB2
aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IGRldGFpbHNVcGRhdGVkKFBheW1lbnRSZXF1ZXN0OjpV
cGRhdGVSZWFzb24sIGNvbnN0IFN0cmluZyYgZXJyb3IpID0gMDsKICAgICB2aXJ0dWFsIEV4Y2Vw
dGlvbk9yPHZvaWQ+IG1lcmNoYW50VmFsaWRhdGlvbkNvbXBsZXRlZChKU0M6OkpTVmFsdWUmJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBjb21wbGV0ZShzdGQ6Om9wdGlvbmFsPFBheW1lbnRDb21w
bGV0ZT4mJikgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5
bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggYjdjOTQwMzBkNzBmYmJlYmJk
OTNjODI2ZmEwZWViMDk1Y2U1MTZhZi4uYTA2MTc2ZDQ1MzE0ZTUwZWNkOWM3MWE2YWUzYzU0YzVl
ZDgyY2E3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVz
dC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50
cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgwLDcgKzM4MCw3IEBAIHN0YXRpYyBFeGNlcHRp
b25PcjxKU0M6OkpTVmFsdWU+IHBhcnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IGNvbnN0IFN0CiB9CiAKIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9wYXltZW50LXJlcXVlc3Qv
I3Nob3coKS1tZXRob2QKLXZvaWQgUGF5bWVudFJlcXVlc3Q6OnNob3coRG9jdW1lbnQmIGRvY3Vt
ZW50LCBTaG93UHJvbWlzZSYmIHByb21pc2UpCit2b2lkIFBheW1lbnRSZXF1ZXN0OjpzaG93KERv
Y3VtZW50JiBkb2N1bWVudCwgUmVmUHRyPERPTVByb21pc2U+JiYgZGV0YWlsc1Byb21pc2UsIFNo
b3dQcm9taXNlJiYgcHJvbWlzZSkKIHsKICAgICBpZiAoIWRvY3VtZW50LmZyYW1lKCkpIHsKICAg
ICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciB9KTsKQEAgLTQ0Miw2
ICs0NDIsMTIgQEAgdm9pZCBQYXltZW50UmVxdWVzdDo6c2hvdyhEb2N1bWVudCYgZG9jdW1lbnQs
IFNob3dQcm9taXNlJiYgcHJvbWlzZSkKICAgICBBU1NFUlQoIW1fYWN0aXZlUGF5bWVudEhhbmRs
ZXIpOwogICAgIG1fYWN0aXZlUGF5bWVudEhhbmRsZXIgPSBXVEZNb3ZlKHNlbGVjdGVkUGF5bWVu
dEhhbmRsZXIpOwogICAgIHNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKTsgLy8gdW5zZXRQZW5kaW5n
QWN0aXZpdHkoKSBpcyBjYWxsZWQgYmVsb3cgaW4gc3RvcCgpCisKKyAgICBpZiAoIWRldGFpbHNQ
cm9taXNlKQorICAgICAgICByZXR1cm47CisKKyAgICBleGNlcHRpb24gPSB1cGRhdGVXaXRoKFVw
ZGF0ZVJlYXNvbjo6U2hvd0RldGFpbHNSZXNvbHZlZCwgZGV0YWlsc1Byb21pc2UucmVsZWFzZU5v
bk51bGwoKSk7CisgICAgQVNTRVJUKCFleGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpOwogfQogCiB2
b2lkIFBheW1lbnRSZXF1ZXN0OjphYm9ydFdpdGhFeGNlcHRpb24oRXhjZXB0aW9uJiYgZXhjZXB0
aW9uKQpAQCAtNTMxLDIzICs1MzcsMjggQEAgYm9vbCBQYXltZW50UmVxdWVzdDo6Y2FuU3VzcGVu
ZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiAKIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnNo
aXBwaW5nQWRkcmVzc0NoYW5nZWQoUmVmPFBheW1lbnRBZGRyZXNzPiYmIHNoaXBwaW5nQWRkcmVz
cykKIHsKLSAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6SW50ZXJhY3RpdmUpOwotICAgIG1f
c2hpcHBpbmdBZGRyZXNzID0gV1RGTW92ZShzaGlwcGluZ0FkZHJlc3MpOwotICAgIGlmIChtX2lz
VXBkYXRpbmcpCi0gICAgICAgIHJldHVybjsKLSAgICBkaXNwYXRjaEV2ZW50KFBheW1lbnRSZXF1
ZXN0VXBkYXRlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2hpcHBpbmdhZGRyZXNzY2hhbmdl
RXZlbnQsICp0aGlzKSk7CisgICAgd2hlbkRldGFpbHNTZXR0bGVkKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZlB0cih0aGlzKSwgc2hpcHBpbmdBZGRyZXNzID0gbWFrZVJlZlB0cihzaGlw
cGluZ0FkZHJlc3MuZ2V0KCkpXSgpIG11dGFibGUgeworICAgICAgICBtX3NoaXBwaW5nQWRkcmVz
cyA9IFdURk1vdmUoc2hpcHBpbmdBZGRyZXNzKTsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChQYXlt
ZW50UmVxdWVzdFVwZGF0ZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNoaXBwaW5nYWRkcmVz
c2NoYW5nZUV2ZW50LCAqdGhpcykpOworICAgIH0pOwogfQogCiB2b2lkIFBheW1lbnRSZXF1ZXN0
OjpzaGlwcGluZ09wdGlvbkNoYW5nZWQoY29uc3QgU3RyaW5nJiBzaGlwcGluZ09wdGlvbikKIHsK
LSAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6SW50ZXJhY3RpdmUpOwotICAgIG1fc2hpcHBp
bmdPcHRpb24gPSBzaGlwcGluZ09wdGlvbjsKLSAgICBpZiAobV9pc1VwZGF0aW5nKQotICAgICAg
ICByZXR1cm47Ci0gICAgZGlzcGF0Y2hFdmVudChQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnNoaXBwaW5nb3B0aW9uY2hhbmdlRXZlbnQsICp0aGlzKSk7Cisg
ICAgd2hlbkRldGFpbHNTZXR0bGVkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0
aGlzKSwgc2hpcHBpbmdPcHRpb25dKCkgbXV0YWJsZSB7CisgICAgICAgIG1fc2hpcHBpbmdPcHRp
b24gPSBzaGlwcGluZ09wdGlvbjsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChQYXltZW50UmVxdWVz
dFVwZGF0ZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNoaXBwaW5nb3B0aW9uY2hhbmdlRXZl
bnQsICp0aGlzKSk7CisgICAgfSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1
ZXN0Ojp1cGRhdGVXaXRoKEV2ZW50JiBldmVudCwgUmVmPERPTVByb21pc2U+JiYgcHJvbWlzZSkK
K3ZvaWQgUGF5bWVudFJlcXVlc3Q6OnBheW1lbnRNZXRob2RDaGFuZ2VkKCkKK3sKKyAgICB3aGVu
RGV0YWlsc1NldHRsZWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpXSB7
CisgICAgICAgIG1fYWN0aXZlUGF5bWVudEhhbmRsZXItPmRldGFpbHNVcGRhdGVkKFVwZGF0ZVJl
YXNvbjo6UGF5bWVudE1ldGhvZENoYW5nZWQsIHsgfSk7CisgICAgfSk7Cit9CisKK0V4Y2VwdGlv
bk9yPHZvaWQ+IFBheW1lbnRSZXF1ZXN0Ojp1cGRhdGVXaXRoKFVwZGF0ZVJlYXNvbiByZWFzb24s
IFJlZjxET01Qcm9taXNlPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6
OkludGVyYWN0aXZlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IgfTsKQEAgLTU1NSwxMyArNTY2LDEyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1
ZXN0Ojp1cGRhdGVXaXRoKEV2ZW50JiBldmVudCwgUmVmPERPTVByb21pc2U+JiYgcHJvCiAgICAg
aWYgKG1faXNVcGRhdGluZykKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yIH07CiAKLSAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICBldmVudC5zdG9w
SW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKICAgICBtX2lzVXBkYXRpbmcgPSB0cnVlOwogCisgICAg
QVNTRVJUKCFtX2RldGFpbHNQcm9taXNlKTsKICAgICBtX2RldGFpbHNQcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKTsKLSAgICBtX2RldGFpbHNQcm9taXNlLT53aGVuU2V0dGxlZChbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHR5cGUgPSBldmVudC50eXBlKCldKCkgewot
ICAgICAgICBzZXR0bGVEZXRhaWxzUHJvbWlzZSh0eXBlKTsKKyAgICBtX2RldGFpbHNQcm9taXNl
LT53aGVuU2V0dGxlZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHJl
YXNvbl0oKSB7CisgICAgICAgIHNldHRsZURldGFpbHNQcm9taXNlKHJlYXNvbik7CiAgICAgfSk7
CiAKICAgICByZXR1cm4geyB9OwpAQCAtNTk1LDEwICs2MDUsMTEgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gUGF5bWVudFJlcXVlc3Q6OmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKEV2ZW50JiBldmVu
dCwgUmVmPEQKICAgICByZXR1cm4geyB9OwogfQogCi12b2lkIFBheW1lbnRSZXF1ZXN0OjpzZXR0
bGVEZXRhaWxzUHJvbWlzZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUpCit2b2lkIFBheW1lbnRS
ZXF1ZXN0OjpzZXR0bGVEZXRhaWxzUHJvbWlzZShVcGRhdGVSZWFzb24gcmVhc29uKQogewogICAg
IGF1dG8gc2NvcGVFeGl0ID0gbWFrZVNjb3BlRXhpdChbJl0gewogICAgICAgICBtX2lzVXBkYXRp
bmcgPSBmYWxzZTsKKyAgICAgICAgbV9kZXRhaWxzUHJvbWlzZSA9IG51bGxwdHI7CiAgICAgfSk7
CiAKICAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6SW50ZXJhY3RpdmUpCkBAIC02NDEsMTMgKzY1
MiwzMSBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzZXR0bGVEZXRhaWxzUHJvbWlzZShjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUpCiAgICAgbV9kZXRhaWxzLm1vZGlmaWVycyA9IFdURk1vdmUocGF5
bWVudERldGFpbHNVcGRhdGUubW9kaWZpZXJzKTsKICAgICBtX3NlcmlhbGl6ZWRNb2RpZmllckRh
dGEgPSBXVEZNb3ZlKHN0ZDo6Z2V0PDE+KHNoaXBwaW5nT3B0aW9uQW5kTW9kaWZpZXJEYXRhKSk7
CiAKLSAgICBhdXRvIHJlc3VsdCA9IG1fYWN0aXZlUGF5bWVudEhhbmRsZXItPmRldGFpbHNVcGRh
dGVkKHR5cGUsIHBheW1lbnREZXRhaWxzVXBkYXRlLmVycm9yKTsKKyAgICBhdXRvIHJlc3VsdCA9
IG1fYWN0aXZlUGF5bWVudEhhbmRsZXItPmRldGFpbHNVcGRhdGVkKHJlYXNvbiwgcGF5bWVudERl
dGFpbHNVcGRhdGUuZXJyb3IpOwogICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAg
ICAgICAgYWJvcnRXaXRoRXhjZXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogfQogCit2b2lkIFBheW1lbnRSZXF1ZXN0Ojp3aGVuRGV0YWls
c1NldHRsZWQoc3RkOjpmdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKCFt
X2RldGFpbHNQcm9taXNlKSB7CisgICAgICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpJbnRl
cmFjdGl2ZSk7CisgICAgICAgIEFTU0VSVCghbV9pc1VwZGF0aW5nKTsKKyAgICAgICAgY2FsbGJh
Y2soKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZGV0YWlsc1Byb21pc2UtPndo
ZW5TZXR0bGVkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0geworICAgICAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6
SW50ZXJhY3RpdmUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgQVNTRVJUKCFtX2lz
VXBkYXRpbmcpOworICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCiB2b2lkIFBheW1l
bnRSZXF1ZXN0OjphY2NlcHQoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lLCBKU0M6OlN0cm9uZzxK
U0M6OkpTT2JqZWN0PiYmIGRldGFpbHMsIFJlZjxQYXltZW50QWRkcmVzcz4mJiBzaGlwcGluZ0Fk
ZHJlc3MsIGNvbnN0IFN0cmluZyYgcGF5ZXJOYW1lLCBjb25zdCBTdHJpbmcmIHBheWVyRW1haWws
IGNvbnN0IFN0cmluZyYgcGF5ZXJQaG9uZSkKIHsKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0
ZTo6SW50ZXJhY3RpdmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oCmluZGV4IGZhOWZkZjRiYmE2MzM5MjE1OWY1NDg1
MzI3MzY0M2YzNjdkOTU3ZDEuLjc0NTdhZDczODJkYWM4ZWZlMDVmYTcyNTFhNzdlNGMxZDBiNDJm
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5
bWVudFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0
L1BheW1lbnRSZXF1ZXN0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
Ny0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNDUsMTggKzQ1LDE5IEBAIGNsYXNzIFBheW1lbnRIYW5kbGVyOwog
Y2xhc3MgUGF5bWVudFJlc3BvbnNlOwogZW51bSBjbGFzcyBQYXltZW50Q29tcGxldGU7CiBlbnVt
IGNsYXNzIFBheW1lbnRTaGlwcGluZ1R5cGU7CitzdHJ1Y3QgUGF5bWVudERldGFpbHNVcGRhdGU7
CiBzdHJ1Y3QgUGF5bWVudE1ldGhvZERhdGE7CiAKIGNsYXNzIFBheW1lbnRSZXF1ZXN0IGZpbmFs
IDogcHVibGljIFJlZkNvdW50ZWQ8UGF5bWVudFJlcXVlc3Q+LCBwdWJsaWMgQWN0aXZlRE9NT2Jq
ZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CiBwdWJsaWM6Ci0gICAgdXNp
bmcgU2hvd1Byb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFBheW1lbnRS
ZXNwb25zZT4+OwogICAgIHVzaW5nIEFib3J0UHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPjsKICAgICB1c2luZyBDYW5NYWtlUGF5bWVudFByb21pc2UgPSBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMQm9vbGVhbj47CisgICAgdXNpbmcgU2hvd1Byb21pc2UgPSBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMSW50ZXJmYWNlPFBheW1lbnRSZXNwb25zZT4+OwogCiAgICAgc3RhdGljIEV4Y2VwdGlv
bk9yPFJlZjxQYXltZW50UmVxdWVzdD4+IGNyZWF0ZShEb2N1bWVudCYsIFZlY3RvcjxQYXltZW50
TWV0aG9kRGF0YT4mJiwgUGF5bWVudERldGFpbHNJbml0JiYsIFBheW1lbnRPcHRpb25zJiYpOwog
ICAgIH5QYXltZW50UmVxdWVzdCgpOwogCi0gICAgdm9pZCBzaG93KERvY3VtZW50JiwgU2hvd1By
b21pc2UmJik7CisgICAgdm9pZCBzaG93KERvY3VtZW50JiwgUmVmUHRyPERPTVByb21pc2U+JiYg
ZGV0YWlsc1Byb21pc2UsIFNob3dQcm9taXNlJiYpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGFi
b3J0KEFib3J0UHJvbWlzZSYmKTsKICAgICB2b2lkIGNhbk1ha2VQYXltZW50KERvY3VtZW50Jiwg
Q2FuTWFrZVBheW1lbnRQcm9taXNlJiYpOwogCkBAIC03MSw2ICs3MiwxMyBAQCBwdWJsaWM6CiAg
ICAgICAgIENsb3NlZCwKICAgICB9OwogCisgICAgZW51bSBjbGFzcyBVcGRhdGVSZWFzb24gewor
ICAgICAgICBTaG93RGV0YWlsc1Jlc29sdmVkLAorICAgICAgICBTaGlwcGluZ0FkZHJlc3NDaGFu
Z2VkLAorICAgICAgICBTaGlwcGluZ09wdGlvbkNoYW5nZWQsCisgICAgICAgIFBheW1lbnRNZXRo
b2RDaGFuZ2VkLAorICAgIH07CisKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhdGU7IH0KIAogICAgIGNvbnN0IFBheW1lbnRPcHRpb25zJiBwYXltZW50T3B0aW9ucygpIGNv
bnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQpAQCAtNzksNyArODcsOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNoaXBwaW5nQWRkcmVzc0NoYW5nZWQoUmVmPFBheW1lbnRBZGRyZXNzPiYmKTsKICAg
ICB2b2lkIHNoaXBwaW5nT3B0aW9uQ2hhbmdlZChjb25zdCBTdHJpbmcmIHNoaXBwaW5nT3B0aW9u
KTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiB1cGRhdGVXaXRoKEV2ZW50JiwgUmVmPERPTVByb21p
c2U+JiYpOworICAgIHZvaWQgcGF5bWVudE1ldGhvZENoYW5nZWQoKTsKKyAgICBFeGNlcHRpb25P
cjx2b2lkPiB1cGRhdGVXaXRoKFVwZGF0ZVJlYXNvbiwgUmVmPERPTVByb21pc2U+JiYpOwogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKEV2ZW50JiwgUmVm
PERPTVByb21pc2U+JiYpOwogICAgIHZvaWQgYWNjZXB0KGNvbnN0IFN0cmluZyYgbWV0aG9kTmFt
ZSwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mJiBkZXRhaWxzLCBSZWY8UGF5bWVudEFkZHJl
c3M+JiYgc2hpcHBpbmdBZGRyZXNzLCBjb25zdCBTdHJpbmcmIHBheWVyTmFtZSwgY29uc3QgU3Ry
aW5nJiBwYXllckVtYWlsLCBjb25zdCBTdHJpbmcmIHBheWVyUGhvbmUpOwogICAgIHZvaWQgY29t
cGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYpOwpAQCAtOTcsNyArMTA2LDgg
QEAgcHJpdmF0ZToKIAogICAgIFBheW1lbnRSZXF1ZXN0KERvY3VtZW50JiwgUGF5bWVudE9wdGlv
bnMmJiwgUGF5bWVudERldGFpbHNJbml0JiYsIFZlY3RvcjxTdHJpbmc+JiYgc2VyaWFsaXplZE1v
ZGlmaWVyRGF0YSwgVmVjdG9yPE1ldGhvZD4mJiBzZXJpYWxpemVkTWV0aG9kRGF0YSwgU3RyaW5n
JiYgc2VsZWN0ZWRTaGlwcGluZ09wdGlvbik7CiAKLSAgICB2b2lkIHNldHRsZURldGFpbHNQcm9t
aXNlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSk7CisgICAgdm9pZCBzZXR0bGVEZXRhaWxzUHJv
bWlzZShVcGRhdGVSZWFzb24pOworICAgIHZvaWQgd2hlbkRldGFpbHNTZXR0bGVkKHN0ZDo6ZnVu
Y3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lkIGFib3J0V2l0aEV4Y2VwdGlvbihFeGNlcHRpb24m
Jik7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5pZGwKaW5kZXggYzBlYTUw
Y2U5OThlZGZhYmZlNjI1YmViYzBkZjc2MzJiYTI1Y2M4ZS4uYjhiMzE4NGQ2NzZlMWYxNjE0NGE4
NzQyOThlZjEzOGZhNTJhMTQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5pZGwKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsOSArMzAsOSBAQAogICAg
IENvbnN0cnVjdG9yQ2FsbFdpdGg9RG9jdW1lbnQsCiAgICAgQ29uc3RydWN0b3JNYXlUaHJvd0V4
Y2VwdGlvbiwKICAgICBFbmFibGVkQnlTZXR0aW5nPVBheW1lbnRSZXF1ZXN0LAotICAgIFNlY3Vy
ZUNvbnRleHQKKyAgICBTZWN1cmVDb250ZXh0LAogXSBpbnRlcmZhY2UgUGF5bWVudFJlcXVlc3Qg
OiBFdmVudFRhcmdldCB7Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBQcm9taXNlPFBheW1lbnRS
ZXNwb25zZT4gc2hvdygpOworICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gUHJvbWlzZTxQYXltZW50
UmVzcG9uc2U+IHNob3cob3B0aW9uYWwgUHJvbWlzZTxQYXltZW50RGV0YWlsc1VwZGF0ZT4gZGV0
YWlsc1Byb21pc2UpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gUHJvbWlzZTx2b2lkPiBhYm9y
dCgpOwogICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gUHJvbWlzZTxib29sZWFuPiBjYW5NYWtlUGF5
bWVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1
ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50LmNwcAppbmRleCA0NzQ0
ZmU5OTVhZDZiZTU4YWUzMjViNGE2MWZkNmNmNWZkOGYyYmQ0Li5mZTI3NTU4ZTRiYjU3MzEyYWUz
N2ZmZGUyOGE1ZDU0ODZmZDI3N2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVu
dC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNTMsNyArNTMsMjAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVlc3RVcGRh
dGVFdmVudDo6dXBkYXRlV2l0aChSZWY8RE9NUHJvbWlzZT4mJiBkZXRhaWwKICAgICBpZiAobV93
YWl0Rm9yVXBkYXRlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IgfTsKIAotICAgIGF1dG8gZXhjZXB0aW9uID0gbV9wYXltZW50UmVxdWVzdC0+dXBkYXRlV2l0
aCgqdGhpcywgV1RGTW92ZShkZXRhaWxzUHJvbWlzZSkpOworICAgIHN0b3BQcm9wYWdhdGlvbigp
OworICAgIHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpOworCisgICAgUGF5bWVudFJlcXVlc3Q6
OlVwZGF0ZVJlYXNvbiByZWFzb247CisgICAgaWYgKHR5cGUoKSA9PSBldmVudE5hbWVzKCkuc2hp
cHBpbmdhZGRyZXNzY2hhbmdlRXZlbnQpCisgICAgICAgIHJlYXNvbiA9IFBheW1lbnRSZXF1ZXN0
OjpVcGRhdGVSZWFzb246OlNoaXBwaW5nQWRkcmVzc0NoYW5nZWQ7CisgICAgZWxzZSBpZiAodHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5zaGlwcGluZ29wdGlvbmNoYW5nZUV2ZW50KQorICAgICAgICBy
ZWFzb24gPSBQYXltZW50UmVxdWVzdDo6VXBkYXRlUmVhc29uOjpTaGlwcGluZ09wdGlvbkNoYW5n
ZWQ7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07CisgICAgfQorCisgICAgYXV0byBleGNlcHRp
b24gPSBtX3BheW1lbnRSZXF1ZXN0LT51cGRhdGVXaXRoKHJlYXNvbiwgV1RGTW92ZShkZXRhaWxz
UHJvbWlzZSkpOwogICAgIGlmIChleGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBleGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGQ3ZGQzYmE0MmU4
NDEzMTJlOTI2YmYzNzZiMDk1OGY5NDY5ZTdmZi4uZjdjNGVhMThiYzVjODAyZTFlNDg2ZWUyZDVi
NzI5Y2M5Y2E5ZmMyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTAyLTA2ICBBbmR5IEVz
dGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBzaG93
KCkgc2hvdWxkIHRha2UgYW4gb3B0aW9uYWwgUGF5bWVudERldGFpbHNVcGRhdGUgcHJvbWlzZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNTM4Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjc1NDU1Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBU
aW0gSG9ydG9uLgorCisgICAgICAgICogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50
LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAv
dGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0
bWw6CisKIDIwMTgtMDItMDYgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgbWl4ZWQgY29udGVudCBiYXNpYyBhdXRoIHRlc3RzIG1vcmUgcm9idXN0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQt
cmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy1l
eHBlY3RlZC50eHQKaW5kZXggOGM5OTFjNmQ0ZjdhNmI3NGUzNjQ2ZDA0NmFlMTVhODk0YTA3NTQw
Ny4uYjVmZmFjMDFkZTc5YTE4ZTY2NmEwZTNlN2Q0ZjRkNjUwODg2OTZhYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hv
dy1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtNCw0ICs0LDYgQEAgUEFTUyBUaHJvd3MgaWYgdGhlIHByb21pc2UgW1tzdGF0ZV1d
IGlzIG5vdCAiY3JlYXRlZCIKIFBBU1MgSWYgdGhlIHVzZXIgYWdlbnQncyAicGF5bWVudCByZXF1
ZXN0IGlzIHNob3dpbmciIGJvb2xlYW4gaXMgdHJ1ZSwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJl
amVjdGVkIHdpdGggYW4gIkFib3J0RXJyb3IiIERPTUV4Y2VwdGlvbi4gCiBQQVNTIElmIHBheW1l
bnQgbWV0aG9kIGNvbnN1bHRhdGlvbiBwcm9kdWNlcyBubyBzdXBwb3J0ZWQgbWV0aG9kIG9mIHBh
eW1lbnQsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgIk5vdFN1cHBvcnRl
ZEVycm9yIiBET01FeGNlcHRpb24uIAogUEFTUyBJZiB0aGUgdXNlciBhYm9ydHMgdGhlIHBheW1l
bnQgcmVxdWVzdCBhbGdvcml0aG0sIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRo
IGFuICJBYm9ydEVycm9yIiBET01FeGNlcHRpb24uIAorUEFTUyBBIHJlcXVlc3QgaXMgdXBkYXRl
ZCB3aGVuIHNob3coKSdzIGRldGFpbCBwcm9taXNlIHJlc29sdmVzLiAKK1BBU1MgQ2hhbmdlIGV2
ZW50cyBkbyBub3Qgb2NjdXIgdW50aWwgc2hvdygpJ3MgZGV0YWlsIHByb21pc2UgcmVzb2x2ZXMu
IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRt
bAppbmRleCBiYmFjOTE5N2MwM2Y1OWE0MTRmYmQ4YmMxMjJkNGYxYTJlM2FiZjE5Li5hODE0MDQx
ZDdiNTZkOTlhMzZlMmJlZGYyYmE1MzhlYzU0YWM3YmVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwKQEAgLTc1LDQgKzc1LDY0IEBAIHVz
ZXJfYWN0aXZhdGlvbl90ZXN0KGFzeW5jIHQgPT4gewogICBpbnRlcm5hbHMubW9ja1BheW1lbnRD
b29yZGluYXRvci5jYW5jZWxQYXltZW50KCk7CiAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAi
QWJvcnRFcnJvciIsIGFjY2VwdFByb21pc2UpOwogfSwgYElmIHRoZSB1c2VyIGFib3J0cyB0aGUg
cGF5bWVudCByZXF1ZXN0IGFsZ29yaXRobSwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVk
IHdpdGggYW4gIkFib3J0RXJyb3IiIERPTUV4Y2VwdGlvbi5gKTsKKwordXNlcl9hY3RpdmF0aW9u
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3Qo
ZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgY29uc3QgZXhwZWN0ZWRMYWJlbCA9
ICJVcGRhdGVkIFRvdGFsIjsKKyAgY29uc3QgZXhwZWN0ZWRBbW91bnQgPSAiMi4wMCI7CisgIGNv
bnN0IGRldGFpbHMgPSB7CisgICAgICB0b3RhbDogeworICAgICAgICAgIGxhYmVsOiBleHBlY3Rl
ZExhYmVsLAorICAgICAgICAgIGFtb3VudDogeworICAgICAgICAgICAgICBjdXJyZW5jeTogIlVT
RCIsCisgICAgICAgICAgICAgIHZhbHVlOiBleHBlY3RlZEFtb3VudCwKKyAgICAgICAgICB9LAor
ICAgICAgfSwKKyAgfTsKKyAgY29uc3QgYWNjZXB0UHJvbWlzZSA9IHJlcXVlc3Quc2hvdyhkZXRh
aWxzKTsKKyAgaW50ZXJuYWxzLm1vY2tQYXltZW50Q29vcmRpbmF0b3IuY2hhbmdlUGF5bWVudE1l
dGhvZCh7IHR5cGU6ICdjcmVkaXQnIH0pOworICBpbnRlcm5hbHMubW9ja1BheW1lbnRDb29yZGlu
YXRvci5hY2NlcHRQYXltZW50KCk7CisgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFjY2VwdFByb21p
c2U7CisgIGFzc2VydF9lcXVhbHMoaW50ZXJuYWxzLm1vY2tQYXltZW50Q29vcmRpbmF0b3IudG90
YWwubGFiZWwsIGV4cGVjdGVkTGFiZWwpOworICBhc3NlcnRfZXF1YWxzKGludGVybmFscy5tb2Nr
UGF5bWVudENvb3JkaW5hdG9yLnRvdGFsLmFtb3VudCwgZXhwZWN0ZWRBbW91bnQpOworICByZXN1
bHQuY29tcGxldGUoInN1Y2Nlc3MiKTsKK30sIGBBIHJlcXVlc3QgaXMgdXBkYXRlZCB3aGVuIHNo
b3coKSdzIGRldGFpbCBwcm9taXNlIHJlc29sdmVzLmApOworCit1c2VyX2FjdGl2YXRpb25fdGVz
dChhc3luYyB0ID0+IHsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZh
dWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBjb25zdCBleHBlY3RlZExhYmVsID0gIlVw
ZGF0ZWQgVG90YWwiOworICBjb25zdCBleHBlY3RlZEFtb3VudCA9ICIyLjAwIjsKKworICB2YXIg
c2hpcHBpbmdBZGRyZXNzQ2hhbmdlZCA9IGZhbHNlOworICBjb25zdCBzaGlwcGluZ0FkZHJlc3ND
aGFuZ2VkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgcmVxdWVzdC5v
bnNoaXBwaW5nYWRkcmVzc2NoYW5nZSA9ICgpID0+IHsKKyAgICAgIHNoaXBwaW5nQWRkcmVzc0No
YW5nZWQgPSB0cnVlOworICAgICAgcmVzb2x2ZSgpOworICAgIH07CisgIH0pOworCisgIGNvbnN0
IGRldGFpbHNQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICBjb25zdCBk
ZXRhaWxzID0geworICAgICAgdG90YWw6IHsKKyAgICAgICAgbGFiZWw6IGV4cGVjdGVkTGFiZWws
CisgICAgICAgIGFtb3VudDogeworICAgICAgICAgIGN1cnJlbmN5OiAiVVNEIiwKKyAgICAgICAg
ICB2YWx1ZTogZXhwZWN0ZWRBbW91bnQsCisgICAgICAgIH0sCisgICAgICB9LAorICAgIH07CisK
KyAgICByZXF1ZXN0Lm9ubWVyY2hhbnR2YWxpZGF0aW9uID0gKGV2ZW50KSA9PiB7CisgICAgICBj
b25zdCBzZXNzaW9uUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiByZXNvbHZlKHsg
fSkpOworICAgICAgZXZlbnQuY29tcGxldGUoc2Vzc2lvblByb21pc2UpOworICAgICAgc2Vzc2lv
blByb21pc2UudGhlbigoKSA9PiB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoc2hpcHBpbmdBZGRyZXNzQ2hhbmdlZCwgZmFsc2UsICJzaGlwcGluZ2FkZHJl
c3NjaGFuZ2UgZG9lcyBub3QgZmlyZSBiZWZvcmUgdGhlIGRldGFpbHMgcHJvbWlzZSByZXNvbHZl
cy4iKTsKKyAgICAgICAgcmVzb2x2ZShkZXRhaWxzKTsKKyAgICAgIH0pKTsKKyAgICB9OworICB9
KTsKKworICByZXF1ZXN0LnNob3coZGV0YWlsc1Byb21pc2UpLmNhdGNoKCgpID0+IHt9KTsKKyAg
YXdhaXQgc2hpcHBpbmdBZGRyZXNzQ2hhbmdlZFByb21pc2U7Cit9LCBgQ2hhbmdlIGV2ZW50cyBk
byBub3Qgb2NjdXIgdW50aWwgc2hvdygpJ3MgZGV0YWlsIHByb21pc2UgcmVzb2x2ZXMuYCk7CiA8
L3NjcmlwdD4K
</data>
<flag name="commit-queue"
          id="352133"
          type_id="3"
          status="-"
          setter="aestes"
    />
          </attachment>
      

    </bug>

</bugzilla>