<?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>164409</bug_id>
          
          <creation_ts>2016-11-04 01:27:52 -0700</creation_ts>
          <short_desc>[WebRTC] Introduce asynchronous backend for other RTCPeerConnection API</short_desc>
          <delta_ts>2016-11-09 10:31:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>adam.bergkvist</cc>
    
    <cc>alex</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>pnormand</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1248081</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-11-04 01:27:52 -0700</bug_when>
    <thetext>Following on bug 164365, the same principle should be applied to other promise-based APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248082</commentid>
    <comment_count>1</comment_count>
      <attachid>293874</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-11-04 01:46:43 -0700</bug_when>
    <thetext>Created attachment 293874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249324</commentid>
    <comment_count>2</comment_count>
      <attachid>293874</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-09 10:31:13 -0800</bug_when>
    <thetext>Comment on attachment 293874
Patch

Clearing flags on attachment: 293874

Committed r208445: &lt;http://trac.webkit.org/changeset/208445&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249325</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-09 10:31:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293874</attachid>
            <date>2016-11-04 01:46:43 -0700</date>
            <delta_ts>2016-11-09 10:31:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164409-20161104094240.patch</filename>
            <type>text/plain</type>
            <size>39893</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4MzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQyYTQxNDlhN2E2NzBk
MWE0MDY1NzI5OTExNDE0MjY3ZGY4MjRhNS4uYmU1N2U4M2M4MmE3YjM2ZDRkOWRhZmY1NWQ5ZWQ1
MjBhYWMwNmU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE2LTExLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBJbnRyb2R1
Y2UgYXN5bmNocm9ub3VzIGJhY2tlbmQgZm9yIG90aGVyIFJUQ1BlZXJDb25uZWN0aW9uIEFQSQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NDA5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBi
eSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICBGb2xsb3dpbmcgb24gY3JlYXRlT2ZmZXIgY2hh
bmdlcywgYXBwbHlpbmcgdGhlIHNhbWUgY2hhbmdlcyB0byBjcmVhdGVBbnN3ZXIsIHNldExvY2Fs
RGVzY3JpcHRpb24sIHNldFJlbW90ZURlc2NyaXB0aW9uIGFuZCBhZGRJY2VDYW5kaWRhdGUuCisg
ICAgICAgIEFsc28gcmVmYWN0b3JlZCBJQ0UgY2FuZGlkYXRlIGV2ZW50IGdlbmVyYXRpb24gKGRv
bmUgYXQgUGVlckNvbm5lY3Rpb25CYWNrZW5kKS4KKyAgICAgICAgVXBkYXRlZCBzdG9wIGltcGxl
bWVudGF0aW9uIHRvIGNsZWFuIGFueSBwcm9taXNlIHRoYXQgbWF5IGJlIHN0b3JlZCBpbiBQZWVy
Q29ubmVjdGlvbkJhY2tlbmQuCisKKyAgICAgICAgVGhlIGdvYWwgb2YgdGhpcyBpcyB0byBiZSBt
b3JlIGFsaWduZWQgd2l0aCBodHRwczovL3d3dy53My5vcmcvVFIvd2VicnRjLy4KKyAgICAgICAg
SW1wbGVtZW50YXRpb24gb2YgdGhlIHZhcmlvdXMgZnVuY3Rpb25zIHN1Y2ggYXMgLy93d3cudzMu
b3JnL1RSL3dlYnJ0Yy8jc2V0LWRlc2NyaXB0aW9uIHdvdWxkIGJlIGRvbmUgaW4gUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLgorICAgICAgICBUaGlzIHdpbGwgcmVxdWlyZSBhZGRpdGlvbmFsIGNvZGUg
bW92ZWQgZnJvbSBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24gdXAgdG8gUGVlckNvbm5lY3Rp
b25CYWNrZW5kLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJD
b25uZWN0aW9uOjpjcmVhdGVPZmZlclRhc2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRw
b2ludFBlZXJDb25uZWN0aW9uOjpkb0NyZWF0ZUFuc3dlcik6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNyZWF0ZUFuc3dlclRhc2spOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpkb1NldExvY2FsRGVzY3JpcHRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpzZXRM
b2NhbERlc2NyaXB0aW9uVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVl
ckNvbm5lY3Rpb246OmRvU2V0UmVtb3RlRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpzZXRSZW1vdGVEZXNjcmlwdGlvblRhc2spOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpkb0FkZEljZUNh
bmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246
OmFkZEljZUNhbmRpZGF0ZVRhc2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBl
ZXJDb25uZWN0aW9uOjpkb1N0b3ApOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBl
ZXJDb25uZWN0aW9uOjpnb3RJY2VDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFF
bmRwb2ludFBlZXJDb25uZWN0aW9uOjpkb25lR2F0aGVyaW5nQ2FuZGlkYXRlcyk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNyZWF0ZUFuc3dlcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnNl
dExvY2FsRGVzY3JpcHRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRw
b2ludFBlZXJDb25uZWN0aW9uOjpzZXRSZW1vdGVEZXNjcmlwdGlvbik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmFkZEljZUNhbmRpZGF0
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rp
b246OnN0b3ApOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJD
b25uZWN0aW9uOjpsb2NhbERlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpyZW1vdGVEZXNj
cmlwdGlvblR5cGVWYWxpZEZvclN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlT2ZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVPZmZlckZhaWxlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmNyZWF0ZUFuc3dlcik6CisgICAgICAgIChX
ZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmNyZWF0ZUFuc3dlclN1Y2NlZWRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmNyZWF0ZUFuc3dlckZhaWxl
ZCk6CisgICAgICAgIChXZWJDb3JlOjppc0xvY2FsRGVzY3JpcHRpb25UeXBlVmFsaWRGb3JTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnNldExvY2FsRGVz
Y3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRM
b2NhbERlc2NyaXB0aW9uU3VjY2VlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0
aW9uQmFja2VuZDo6c2V0TG9jYWxEZXNjcmlwdGlvbkZhaWxlZCk6CisgICAgICAgIChXZWJDb3Jl
Ojppc1JlbW90ZURlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRSZW1vdGVEZXNjcmlwdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnNldFJlbW90ZURlc2NyaXB0aW9uU3Vj
Y2VlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0UmVt
b3RlRGVzY3JpcHRpb25GYWlsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25C
YWNrZW5kOjphZGRJY2VDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rp
b25CYWNrZW5kOjphZGRJY2VDYW5kaWRhdGVTdWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UGVlckNvbm5lY3Rpb25CYWNrZW5kOjphZGRJY2VDYW5kaWRhdGVGYWlsZWQpOgorICAgICAgICAo
V2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpmaXJlSUNFQ2FuZGlkYXRlRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb25lR2F0aGVyaW5nQ2Fu
ZGlkYXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnN0b3Ap
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmg6
CisKIDIwMTYtMTEtMDMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAg
ICAgIEluZGV4ZWREQiAyLjA6IEhhbmRsZSBJREJJbmRleCByZW5hbWUgYmVoYXZpb3IgcHJvcGVy
bHkgd2hlbiB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiBhYm9ydHMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9p
bnRQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggMmNiOGMzMzJiZTc2OWZkMjJlZTUzMzk4YzA4NWQ0
ZDY4MzUxMWU3NS4uOTcyNDRjZjdjOWQyMjZiOTQ4ZDUxYWUwNThmYmRkYjkyZmJkYmU4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcApAQCAtMjA0LDI4ICsyMDQsMjUgQEAg
dm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNyZWF0ZU9mZmVyVGFzayhjb25zdCBS
VENPZmZlck9wdGlvbnMmKQogICAgIFN0cmluZyBzZHA7CiAgICAgU0RQUHJvY2Vzc29yOjpSZXN1
bHQgcmVzdWx0ID0gbV9zZHBQcm9jZXNzb3ItPmdlbmVyYXRlKCpjb25maWd1cmF0aW9uU25hcHNo
b3QsIHNkcCk7CiAgICAgaWYgKHJlc3VsdCAhPSBTRFBQcm9jZXNzb3I6OlJlc3VsdDo6U3VjY2Vz
cykgewotICAgICAgICBjcmVhdGVPZmZlckZhaWxlZChPcGVyYXRpb25FcnJvciwgIlNEUFByb2Nl
c3NvciBpbnRlcm5hbCBlcnJvciIpOworICAgICAgICBjcmVhdGVPZmZlckZhaWxlZChFeGNlcHRp
b24geyBPcGVyYXRpb25FcnJvciwgIlNEUFByb2Nlc3NvciBpbnRlcm5hbCBlcnJvciIgfSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY3JlYXRlT2ZmZXJTdWNjZWVkZWQoV1RGTW92ZShz
ZHApKTsKIH0KIAotdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNyZWF0ZUFuc3dl
cihSVENBbnN3ZXJPcHRpb25zJiYgb3B0aW9ucywgU2Vzc2lvbkRlc2NyaXB0aW9uUHJvbWlzZSYm
IHByb21pc2UpCit2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6ZG9DcmVhdGVBbnN3
ZXIoUlRDQW5zd2VyT3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgcnVuVGFzayhbdGhpcywgcHJv
dGVjdGVkT3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyksIHByb3RlY3RlZFByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXSgpIG11dGFibGUgewotICAgICAgICBjcmVhdGVBbnN3ZXJUYXNrKHByb3Rl
Y3RlZE9wdGlvbnMsIHByb3RlY3RlZFByb21pc2UpOworICAgIHJ1blRhc2soW3RoaXMsIHByb3Rl
Y3RlZE9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpXSgpIG11dGFibGUgeworICAgICAgICBjcmVh
dGVBbnN3ZXJUYXNrKHByb3RlY3RlZE9wdGlvbnMpOwogICAgIH0pOwogfQogCi12b2lkIE1lZGlh
RW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlQW5zd2VyVGFzayhjb25zdCBSVENBbnN3ZXJP
cHRpb25zJiwgU2Vzc2lvbkRlc2NyaXB0aW9uUHJvbWlzZSYgcHJvbWlzZSkKK3ZvaWQgTWVkaWFF
bmRwb2ludFBlZXJDb25uZWN0aW9uOjpjcmVhdGVBbnN3ZXJUYXNrKGNvbnN0IFJUQ0Fuc3dlck9w
dGlvbnMmKQogewogICAgIEFTU0VSVCghbV9kdGxzRmluZ2VycHJpbnQuaXNFbXB0eSgpKTsKIAot
ICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBTaWdu
YWxpbmdTdGF0ZTo6Q2xvc2VkKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAoIWludGVybmFs
UmVtb3RlRGVzY3JpcHRpb24oKSkgewotICAgICAgICBwcm9taXNlLnJlamVjdChJTlZBTElEX1NU
QVRFX0VSUiwgIk5vIHJlbW90ZSBkZXNjcmlwdGlvbiBzZXQiKTsKKyAgICAgICAgY3JlYXRlQW5z
d2VyRmFpbGVkKEV4Y2VwdGlvbiB7IElOVkFMSURfU1RBVEVfRVJSLCAiTm8gcmVtb3RlIGRlc2Ny
aXB0aW9uIHNldCIgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI4OSw4ICsyODYs
MTMgQEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNyZWF0ZUFuc3dlclRhc2so
Y29uc3QgUlRDQW5zd2VyT3B0aW9ucyYsIFNlc3MKICAgICBpZiAoaGFzVW5hc3NvY2lhdGVkVHJh
bnNjZWl2ZXJzKHRyYW5zY2VpdmVycykpCiAgICAgICAgIG1hcmtBc05lZWRpbmdOZWdvdGlhdGlv
bigpOwogCi0gICAgYXV0byBkZXNjcmlwdGlvbiA9IE1lZGlhRW5kcG9pbnRTZXNzaW9uRGVzY3Jp
cHRpb246OmNyZWF0ZShSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6OkFuc3dlciwgV1RG
TW92ZShjb25maWd1cmF0aW9uU25hcHNob3QpKTsKLSAgICBwcm9taXNlLnJlc29sdmUoKmRlc2Ny
aXB0aW9uLT50b1JUQ1Nlc3Npb25EZXNjcmlwdGlvbigqbV9zZHBQcm9jZXNzb3IpKTsKKyAgICBT
dHJpbmcgc2RwOworICAgIFNEUFByb2Nlc3Nvcjo6UmVzdWx0IHJlc3VsdCA9IG1fc2RwUHJvY2Vz
c29yLT5nZW5lcmF0ZSgqY29uZmlndXJhdGlvblNuYXBzaG90LCBzZHApOworICAgIGlmIChyZXN1
bHQgIT0gU0RQUHJvY2Vzc29yOjpSZXN1bHQ6OlN1Y2Nlc3MpIHsKKyAgICAgICAgY3JlYXRlQW5z
d2VyRmFpbGVkKEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiU0RQUHJvY2Vzc29yIGludGVy
bmFsIGVycm9yIiB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjcmVhdGVBbnN3ZXJT
dWNjZWVkZWQoV1RGTW92ZShzZHApKTsKIH0KIAogc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VN
YXAgY3JlYXRlU291cmNlTWFwKGNvbnN0IE1lZGlhRGVzY3JpcHRpb25WZWN0b3ImIHJlbW90ZU1l
ZGlhRGVzY3JpcHRpb25zLCB1bnNpZ25lZCBsb2NhbE1lZGlhRGVzY3JpcHRpb25Db3VudCwgY29u
c3QgUnRwVHJhbnNjZWl2ZXJWZWN0b3ImIHRyYW5zY2VpdmVycykKQEAgLTMxMiwzMCArMzE0LDI1
IEBAIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlTWFwIGNyZWF0ZVNvdXJjZU1hcChjb25zdCBN
ZWRpYURlc2NyaXB0aW9uVmVjdG9yJiByZW1vCiAgICAgcmV0dXJuIHNvdXJjZU1hcDsKIH0KIAot
dm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnNldExvY2FsRGVzY3JpcHRpb24oUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgVm9pZFByb21pc2UmJiBwcm9taXNlKQor
dm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmRvU2V0TG9jYWxEZXNjcmlwdGlvbihS
VENTZXNzaW9uRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQogewotICAgIHJ1blRhc2soW3RoaXMs
IHByb3RlY3RlZERlc2NyaXB0aW9uID0gUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4oJmRl
c2NyaXB0aW9uKSwgcHJvdGVjdGVkUHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJs
ZSB7Ci0gICAgICAgIHNldExvY2FsRGVzY3JpcHRpb25UYXNrKFdURk1vdmUocHJvdGVjdGVkRGVz
Y3JpcHRpb24pLCBwcm90ZWN0ZWRQcm9taXNlKTsKKyAgICBydW5UYXNrKFt0aGlzLCBwcm90ZWN0
ZWREZXNjcmlwdGlvbiA9IFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+KCZkZXNjcmlwdGlv
bildKCkgbXV0YWJsZSB7CisgICAgICAgIHNldExvY2FsRGVzY3JpcHRpb25UYXNrKFdURk1vdmUo
cHJvdGVjdGVkRGVzY3JpcHRpb24pKTsKICAgICB9KTsKIH0KIAotdm9pZCBNZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb246OnNldExvY2FsRGVzY3JpcHRpb25UYXNrKFJlZlB0cjxSVENTZXNzaW9u
RGVzY3JpcHRpb24+JiYgZGVzY3JpcHRpb24sIFZvaWRQcm9taXNlJiBwcm9taXNlKQordm9pZCBN
ZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnNldExvY2FsRGVzY3JpcHRpb25UYXNrKFJlZlB0
cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+JiYgZGVzY3JpcHRpb24pCiB7CiAgICAgaWYgKG1fcGVl
ckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFNpZ25hbGluZ1N0YXRlOjpD
bG9zZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gcmVzdWx0ID0gTWVkaWFFbmRwb2lu
dFNlc3Npb25EZXNjcmlwdGlvbjo6Y3JlYXRlKFdURk1vdmUoZGVzY3JpcHRpb24pLCAqbV9zZHBQ
cm9jZXNzb3IpOwogICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgcHJv
bWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgIHNldExvY2Fs
RGVzY3JpcHRpb25GYWlsZWQocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgYXV0byBuZXdEZXNjcmlwdGlvbiA9IHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKTsKIAotICAgIGlmICghbG9jYWxEZXNjcmlwdGlvblR5cGVWYWxpZEZvclN0YXRl
KG5ld0Rlc2NyaXB0aW9uLT50eXBlKCkpKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KElOVkFM
SURfU1RBVEVfRVJSLCAiRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50
IHNpZ25hbGluZyBzdGF0ZSIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgY29uc3Qg
UnRwVHJhbnNjZWl2ZXJWZWN0b3ImIHRyYW5zY2VpdmVycyA9IG1fcGVlckNvbm5lY3Rpb24uZ2V0
VHJhbnNjZWl2ZXJzKCk7CiAgICAgY29uc3QgTWVkaWFEZXNjcmlwdGlvblZlY3RvciYgbWVkaWFE
ZXNjcmlwdGlvbnMgPSBuZXdEZXNjcmlwdGlvbi0+Y29uZmlndXJhdGlvbigpLT5tZWRpYURlc2Ny
aXB0aW9ucygpOwogICAgIE1lZGlhRW5kcG9pbnRTZXNzaW9uRGVzY3JpcHRpb24qIGxvY2FsRGVz
Y3JpcHRpb24gPSBpbnRlcm5hbExvY2FsRGVzY3JpcHRpb24oKTsKQEAgLTM1Nyw3ICszNTQsNyBA
QCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6c2V0TG9jYWxEZXNjcmlwdGlvblRh
c2soUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcgogICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IAogICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSBNZWRpYUVuZHBvaW50OjpVcGRhdGVSZXN1
bHQ6OkZhaWxlZCkgewotICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoT3BlcmF0aW9uRXJyb3Is
ICJVbmFibGUgdG8gYXBwbHkgc2Vzc2lvbiBkZXNjcmlwdGlvbiIpOworICAgICAgICAgICAgc2V0
TG9jYWxEZXNjcmlwdGlvbkZhaWxlZChFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIlVuYWJs
ZSB0byBhcHBseSBzZXNzaW9uIGRlc2NyaXB0aW9uIiB9KTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCkBAIC0zNzYsNyArMzczLDcgQEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNv
bm5lY3Rpb246OnNldExvY2FsRGVzY3JpcHRpb25UYXNrKFJlZlB0cjxSVENTZXNzaW9uRGVzY3IK
ICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZU1hcCBzZW5kU291cmNlTWFwID0gY3JlYXRlU291
cmNlTWFwKHJlbW90ZUNvbmZpZ3VyYXRpb24tPm1lZGlhRGVzY3JpcHRpb25zKCksIG1lZGlhRGVz
Y3JpcHRpb25zLnNpemUoKSwgdHJhbnNjZWl2ZXJzKTsKIAogICAgICAgICBpZiAobV9tZWRpYUVu
ZHBvaW50LT51cGRhdGVTZW5kQ29uZmlndXJhdGlvbihyZW1vdGVDb25maWd1cmF0aW9uLCBzZW5k
U291cmNlTWFwLCBpc0luaXRpYXRvcikgPT0gTWVkaWFFbmRwb2ludDo6VXBkYXRlUmVzdWx0OjpG
YWlsZWQpIHsKLSAgICAgICAgICAgIHByb21pc2UucmVqZWN0KE9wZXJhdGlvbkVycm9yLCAiVW5h
YmxlIHRvIGFwcGx5IHNlc3Npb24gZGVzY3JpcHRpb24iKTsKKyAgICAgICAgICAgIHNldExvY2Fs
RGVzY3JpcHRpb25GYWlsZWQoRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJVbmFibGUgdG8g
YXBwbHkgc2Vzc2lvbiBkZXNjcmlwdGlvbiIgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICB9CkBAIC00MjMsNyArNDIwLDcgQEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNv
bm5lY3Rpb246OnNldExvY2FsRGVzY3JpcHRpb25UYXNrKFJlZlB0cjxSVENTZXNzaW9uRGVzY3IK
ICAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gU2ln
bmFsaW5nU3RhdGU6OlN0YWJsZSAmJiBtX25lZ290aWF0aW9uTmVlZGVkKQogICAgICAgICBtX3Bl
ZXJDb25uZWN0aW9uLnNjaGVkdWxlTmVnb3RpYXRpb25OZWVkZWRFdmVudCgpOwogCi0gICAgcHJv
bWlzZS5yZXNvbHZlKG51bGxwdHIpOworICAgIHNldExvY2FsRGVzY3JpcHRpb25TdWNjZWVkZWQo
KTsKIH0KIAogUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gTWVkaWFFbmRwb2ludFBlZXJD
b25uZWN0aW9uOjpsb2NhbERlc2NyaXB0aW9uKCkgY29uc3QKQEAgLTQ0MSwzMCArNDM4LDIyIEBA
IFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlv
bjo6cGVuZGluZ0xvY2FsRGVzY3JpcHRpCiAgICAgcmV0dXJuIGNyZWF0ZVJUQ1Nlc3Npb25EZXNj
cmlwdGlvbihtX3BlbmRpbmdMb2NhbERlc2NyaXB0aW9uLmdldCgpKTsKIH0KIAotdm9pZCBNZWRp
YUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnNldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIFZvaWRQcm9taXNlJiYgcHJvbWlzZSkKK3ZvaWQgTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpkb1NldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCiB7Ci0gICAgcnVuVGFzayhbdGhpcywgcHJvdGVj
dGVkRGVzY3JpcHRpb24gPSBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPigmZGVzY3JpcHRp
b24pLCBwcm90ZWN0ZWRQcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKLSAg
ICAgICAgc2V0UmVtb3RlRGVzY3JpcHRpb25UYXNrKFdURk1vdmUocHJvdGVjdGVkRGVzY3JpcHRp
b24pLCBwcm90ZWN0ZWRQcm9taXNlKTsKKyAgICBydW5UYXNrKFt0aGlzLCBwcm90ZWN0ZWREZXNj
cmlwdGlvbiA9IFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+KCZkZXNjcmlwdGlvbildKCkg
bXV0YWJsZSB7CisgICAgICAgIHNldFJlbW90ZURlc2NyaXB0aW9uVGFzayhXVEZNb3ZlKHByb3Rl
Y3RlZERlc2NyaXB0aW9uKSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgTWVkaWFFbmRwb2ludFBlZXJD
b25uZWN0aW9uOjpzZXRSZW1vdGVEZXNjcmlwdGlvblRhc2soUmVmUHRyPFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbj4mJiBkZXNjcmlwdGlvbiwgVm9pZFByb21pc2UmIHByb21pc2UpCit2b2lkIE1lZGlh
RW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6c2V0UmVtb3RlRGVzY3JpcHRpb25UYXNrKFJlZlB0cjxS
VENTZXNzaW9uRGVzY3JpcHRpb24+JiYgZGVzY3JpcHRpb24pCiB7Ci0gICAgaWYgKG1fcGVlckNv
bm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFNpZ25hbGluZ1N0YXRlOjpDbG9z
ZWQpCi0gICAgICAgIHJldHVybjsKLQogICAgIGF1dG8gcmVzdWx0ID0gTWVkaWFFbmRwb2ludFNl
c3Npb25EZXNjcmlwdGlvbjo6Y3JlYXRlKFdURk1vdmUoZGVzY3JpcHRpb24pLCAqbV9zZHBQcm9j
ZXNzb3IpOwogICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgcHJvbWlz
ZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgIHNldFJlbW90ZURl
c2NyaXB0aW9uRmFpbGVkKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIGF1dG8gbmV3RGVzY3JpcHRpb24gPSByZXN1bHQucmVsZWFzZVJldHVy
blZhbHVlKCk7CiAKLSAgICBpZiAoIXJlbW90ZURlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUo
bmV3RGVzY3JpcHRpb24tPnR5cGUoKSkpIHsKLSAgICAgICAgcHJvbWlzZS5yZWplY3QoSU5WQUxJ
RF9TVEFURV9FUlIsICJEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQg
c2lnbmFsaW5nIHN0YXRlIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBhdXRvJiBt
ZWRpYURlc2NyaXB0aW9ucyA9IG5ld0Rlc2NyaXB0aW9uLT5jb25maWd1cmF0aW9uKCktPm1lZGlh
RGVzY3JpcHRpb25zKCk7CiAgICAgZm9yIChhdXRvJiBtZWRpYURlc2NyaXB0aW9uIDogbWVkaWFE
ZXNjcmlwdGlvbnMpIHsKICAgICAgICAgaWYgKG1lZGlhRGVzY3JpcHRpb24udHlwZSAhPSAiYXVk
aW8iICYmIG1lZGlhRGVzY3JpcHRpb24udHlwZSAhPSAidmlkZW8iKQpAQCAtNDgxLDcgKzQ3MCw3
IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpzZXRSZW1vdGVEZXNjcmlwdGlv
blRhc2soUmVmUHRyPFJUQ1Nlc3Npb25EZXNjCiAgICAgICAgIHNlbmRTb3VyY2VNYXAgPSBjcmVh
dGVTb3VyY2VNYXAobWVkaWFEZXNjcmlwdGlvbnMsIGludGVybmFsTG9jYWxEZXNjcmlwdGlvbigp
LT5jb25maWd1cmF0aW9uKCktPm1lZGlhRGVzY3JpcHRpb25zKCkuc2l6ZSgpLCB0cmFuc2NlaXZl
cnMpOwogCiAgICAgaWYgKG1fbWVkaWFFbmRwb2ludC0+dXBkYXRlU2VuZENvbmZpZ3VyYXRpb24o
bmV3RGVzY3JpcHRpb24tPmNvbmZpZ3VyYXRpb24oKSwgc2VuZFNvdXJjZU1hcCwgaXNJbml0aWF0
b3IpID09IE1lZGlhRW5kcG9pbnQ6OlVwZGF0ZVJlc3VsdDo6RmFpbGVkKSB7Ci0gICAgICAgIHBy
b21pc2UucmVqZWN0KE9wZXJhdGlvbkVycm9yLCAiVW5hYmxlIHRvIGFwcGx5IHNlc3Npb24gZGVz
Y3JpcHRpb24iKTsKKyAgICAgICAgc2V0UmVtb3RlRGVzY3JpcHRpb25GYWlsZWQoRXhjZXB0aW9u
IHsgT3BlcmF0aW9uRXJyb3IsICJVbmFibGUgdG8gYXBwbHkgc2Vzc2lvbiBkZXNjcmlwdGlvbiIg
fSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTU5NCw3ICs1ODMsNyBAQCB2b2lkIE1l
ZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6c2V0UmVtb3RlRGVzY3JpcHRpb25UYXNrKFJlZlB0
cjxSVENTZXNzaW9uRGVzYwogICAgICAgICBtX3BlZXJDb25uZWN0aW9uLmZpcmVFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zaWduYWxpbmdzdGF0ZWNoYW5nZUV2ZW50LCBmYWxzZSwg
ZmFsc2UpKTsKICAgICB9CiAKLSAgICBwcm9taXNlLnJlc29sdmUobnVsbHB0cik7CisgICAgc2V0
UmVtb3RlRGVzY3JpcHRpb25TdWNjZWVkZWQoKTsKIH0KIAogUmVmUHRyPFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbj4gTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpyZW1vdGVEZXNjcmlwdGlvbigp
IGNvbnN0CkBAIC02MjksMjAgKzYxOCwxNyBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVj
dGlvbjo6c2V0Q29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aQogICAg
IG1fbWVkaWFFbmRwb2ludC0+c2V0Q29uZmlndXJhdGlvbih7IFdURk1vdmUoaWNlU2VydmVycyks
IGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9saWN5KCksIGNvbmZpZ3VyYXRpb24uYnVuZGxl
UG9saWN5KCkgfSk7CiB9CiAKLXZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjphZGRJ
Y2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlJiBydGNDYW5kaWRhdGUsIFBlZXJDb25uZWN0aW9u
OjpWb2lkUHJvbWlzZSYmIHByb21pc2UpCit2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlv
bjo6ZG9BZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlJiBydGNDYW5kaWRhdGUpCiB7Ci0g
ICAgcnVuVGFzayhbdGhpcywgcHJvdGVjdGVkQ2FuZGlkYXRlID0gUmVmUHRyPFJUQ0ljZUNhbmRp
ZGF0ZT4oJnJ0Y0NhbmRpZGF0ZSksIHByb3RlY3RlZFByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XSgpIG11dGFibGUgewotICAgICAgICBhZGRJY2VDYW5kaWRhdGVUYXNrKCpwcm90ZWN0ZWRDYW5k
aWRhdGUsIHByb3RlY3RlZFByb21pc2UpOworICAgIHJ1blRhc2soW3RoaXMsIHByb3RlY3RlZENh
bmRpZGF0ZSA9IFJlZlB0cjxSVENJY2VDYW5kaWRhdGU+KCZydGNDYW5kaWRhdGUpXSgpIG11dGFi
bGUgeworICAgICAgICBhZGRJY2VDYW5kaWRhdGVUYXNrKCpwcm90ZWN0ZWRDYW5kaWRhdGUpOwog
ICAgIH0pOwogfQogCi12b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6YWRkSWNlQ2Fu
ZGlkYXRlVGFzayhSVENJY2VDYW5kaWRhdGUmIHJ0Y0NhbmRpZGF0ZSwgUGVlckNvbm5lY3Rpb246
OlZvaWRQcm9taXNlJiBwcm9taXNlKQordm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246
OmFkZEljZUNhbmRpZGF0ZVRhc2soUlRDSWNlQ2FuZGlkYXRlJiBydGNDYW5kaWRhdGUpCiB7Ci0g
ICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFNpZ25h
bGluZ1N0YXRlOjpDbG9zZWQpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmICghaW50ZXJuYWxS
ZW1vdGVEZXNjcmlwdGlvbigpKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KElOVkFMSURfU1RB
VEVfRVJSLCAiTm8gcmVtb3RlIGRlc2NyaXB0aW9uIHNldCIpOworICAgICAgICBhZGRJY2VDYW5k
aWRhdGVGYWlsZWQoRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIsICJObyByZW1vdGUgZGVz
Y3JpcHRpb24gc2V0IiB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNjYxLDEzICs2
NDcsMTMgQEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmFkZEljZUNhbmRpZGF0
ZVRhc2soUlRDSWNlQ2FuZGlkYXRlJiBydGNDYW5kaWQKICAgICAgICAgfQogCiAgICAgICAgIGlm
ICghdGFyZ2V0TWVkaWFEZXNjcmlwdGlvbikgewotICAgICAgICAgICAgcHJvbWlzZS5yZWplY3Qo
T3BlcmF0aW9uRXJyb3IsICJzZHBNaWQgZGlkIG5vdCBtYXRjaCBhbnkgbWVkaWEgZGVzY3JpcHRp
b24iKTsKKyAgICAgICAgICAgIGFkZEljZUNhbmRpZGF0ZUZhaWxlZChFeGNlcHRpb24geyBPcGVy
YXRpb25FcnJvciwgInNkcE1pZCBkaWQgbm90IG1hdGNoIGFueSBtZWRpYSBkZXNjcmlwdGlvbiIg
fSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKHJ0Y0Nh
bmRpZGF0ZS5zZHBNTGluZUluZGV4KCkpIHsKICAgICAgICAgdW5zaWduZWQgc2hvcnQgc2RwTUxp
bmVJbmRleCA9IHJ0Y0NhbmRpZGF0ZS5zZHBNTGluZUluZGV4KCkudmFsdWUoKTsKICAgICAgICAg
aWYgKHNkcE1MaW5lSW5kZXggPj0gcmVtb3RlTWVkaWFEZXNjcmlwdGlvbnMuc2l6ZSgpKSB7Ci0g
ICAgICAgICAgICBwcm9taXNlLnJlamVjdChPcGVyYXRpb25FcnJvciwgInNkcE1MaW5lSW5kZXgg
aXMgb3V0IG9mIHJhbmdlIik7CisgICAgICAgICAgICBhZGRJY2VDYW5kaWRhdGVGYWlsZWQoRXhj
ZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJzZHBNTGluZUluZGV4IGlzIG91dCBvZiByYW5nZSIg
fSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgdGFyZ2V0TWVkaWFE
ZXNjcmlwdGlvbiA9ICZyZW1vdGVNZWRpYURlc2NyaXB0aW9uc1tzZHBNTGluZUluZGV4XTsKQEAg
LTY3OSw3ICs2NjUsNyBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6YWRkSWNl
Q2FuZGlkYXRlVGFzayhSVENJY2VDYW5kaWRhdGUmIHJ0Y0NhbmRpZAogICAgIGF1dG8gcmVzdWx0
ID0gbV9zZHBQcm9jZXNzb3ItPnBhcnNlQ2FuZGlkYXRlTGluZShydGNDYW5kaWRhdGUuY2FuZGlk
YXRlKCkpOwogICAgIGlmIChyZXN1bHQucGFyc2luZ1N0YXR1cygpICE9IFNEUFByb2Nlc3Nvcjo6
UmVzdWx0OjpTdWNjZXNzKSB7CiAgICAgICAgIGlmIChyZXN1bHQucGFyc2luZ1N0YXR1cygpID09
IFNEUFByb2Nlc3Nvcjo6UmVzdWx0OjpQYXJzZUVycm9yKQotICAgICAgICAgICAgcHJvbWlzZS5y
ZWplY3QoT3BlcmF0aW9uRXJyb3IsICJJbnZhbGlkIGNhbmRpZGF0ZSBjb250ZW50Iik7CisgICAg
ICAgICAgICBhZGRJY2VDYW5kaWRhdGVGYWlsZWQoRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3Is
ICJJbnZhbGlkIGNhbmRpZGF0ZSBjb250ZW50IiB9KTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgTE9HX0VSUk9SKCJTRFBQcm9jZXNzb3IgaW50ZXJuYWwgZXJyb3IiKTsKICAgICAgICAgcmV0
dXJuOwpAQCAtNjkwLDcgKzY3Niw3IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9u
OjphZGRJY2VDYW5kaWRhdGVUYXNrKFJUQ0ljZUNhbmRpZGF0ZSYgcnRjQ2FuZGlkCiAKICAgICB0
YXJnZXRNZWRpYURlc2NyaXB0aW9uLT5hZGRJY2VDYW5kaWRhdGUoV1RGTW92ZShyZXN1bHQuY2Fu
ZGlkYXRlKCkpKTsKIAotICAgIHByb21pc2UucmVzb2x2ZShudWxscHRyKTsKKyAgICBhZGRJY2VD
YW5kaWRhdGVTdWNjZWVkZWQoKTsKIH0KIAogdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rp
b246OmdldFN0YXRzKE1lZGlhU3RyZWFtVHJhY2sqLCBQZWVyQ29ubmVjdGlvbjo6U3RhdHNQcm9t
aXNlJiYgcHJvbWlzZSkKQEAgLTc1MCw3ICs3MzYsNyBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVy
Q29ubmVjdGlvbjo6cmVwbGFjZVRyYWNrVGFzayhSVENSdHBTZW5kZXImIHNlbmRlciwgY29uc3Qg
UwogICAgIHByb21pc2UucmVzb2x2ZShudWxscHRyKTsKIH0KIAotdm9pZCBNZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb246OnN0b3AoKQordm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246
OmRvU3RvcCgpCiB7CiAgICAgbV9tZWRpYUVuZHBvaW50LT5zdG9wKCk7CiB9CkBAIC03NzEsNDQg
Kzc1Nyw2IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjplbXVsYXRlUGxhdGZv
cm1FdmVudChjb25zdCBTdHJpbmcmIGFjdGlvbikKICAgICBtX21lZGlhRW5kcG9pbnQtPmVtdWxh
dGVQbGF0Zm9ybUV2ZW50KGFjdGlvbik7CiB9CiAKLWJvb2wgTWVkaWFFbmRwb2ludFBlZXJDb25u
ZWN0aW9uOjpsb2NhbERlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUoUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uOjpTZHBUeXBlIHR5cGUpIGNvbnN0Ci17Ci0gICAgc3dpdGNoIChtX3BlZXJDb25uZWN0
aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSkgewotICAgIGNhc2UgU2lnbmFsaW5nU3RhdGU6
OlN0YWJsZToKLSAgICAgICAgcmV0dXJuIHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpT
ZHBUeXBlOjpPZmZlcjsKLSAgICBjYXNlIFNpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxPZmZlcjoK
LSAgICAgICAgcmV0dXJuIHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpP
ZmZlcjsKLSAgICBjYXNlIFNpZ25hbGluZ1N0YXRlOjpIYXZlUmVtb3RlT2ZmZXI6Ci0gICAgICAg
IHJldHVybiB0eXBlID09IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZTo6QW5zd2VyIHx8
IHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpQcmFuc3dlcjsKLSAgICBj
YXNlIFNpZ25hbGluZ1N0YXRlOjpIYXZlTG9jYWxQckFuc3dlcjoKLSAgICAgICAgcmV0dXJuIHR5
cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpBbnN3ZXIgfHwgdHlwZSA9PSBS
VENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6OlByYW5zd2VyOwotICAgIGRlZmF1bHQ6Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9OwotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlv
bjo6cmVtb3RlRGVzY3JpcHRpb25UeXBlVmFsaWRGb3JTdGF0ZShSVENTZXNzaW9uRGVzY3JpcHRp
b246OlNkcFR5cGUgdHlwZSkgY29uc3QKLXsKLSAgICBzd2l0Y2ggKG1fcGVlckNvbm5lY3Rpb24u
aW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpKSB7Ci0gICAgY2FzZSBTaWduYWxpbmdTdGF0ZTo6U3Rh
YmxlOgotICAgICAgICByZXR1cm4gdHlwZSA9PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5
cGU6Ok9mZmVyOwotICAgIGNhc2UgU2lnbmFsaW5nU3RhdGU6OkhhdmVMb2NhbE9mZmVyOgotICAg
ICAgICByZXR1cm4gdHlwZSA9PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6OkFuc3dl
ciB8fCB0eXBlID09IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZTo6UHJhbnN3ZXI7Ci0g
ICAgY2FzZSBTaWduYWxpbmdTdGF0ZTo6SGF2ZVJlbW90ZU9mZmVyOgotICAgICAgICByZXR1cm4g
dHlwZSA9PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6Ok9mZmVyOwotICAgIGNhc2Ug
U2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVQckFuc3dlcjoKLSAgICAgICAgcmV0dXJuIHR5cGUg
PT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpBbnN3ZXIgfHwgdHlwZSA9PSBSVENT
ZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6OlByYW5zd2VyOwotICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9OwotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCiBNZWRpYUVuZHBvaW50U2Vzc2lvbkRlc2NyaXB0aW9uKiBN
ZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmludGVybmFsTG9jYWxEZXNjcmlwdGlvbigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24gPyBtX3BlbmRpbmdM
b2NhbERlc2NyaXB0aW9uLmdldCgpIDogbV9jdXJyZW50TG9jYWxEZXNjcmlwdGlvbi5nZXQoKTsK
QEAgLTg1OCw3ICs4MDYsNyBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Z290
SWNlQ2FuZGlkYXRlKGNvbnN0IFN0cmluZyYgbWlkLCBJY2VDYW5kaWRhdAogCiAgICAgbWVkaWFE
ZXNjcmlwdGlvbnNbbWVkaWFEZXNjcmlwdGlvbkluZGV4XS5hZGRJY2VDYW5kaWRhdGUoV1RGTW92
ZShjYW5kaWRhdGUpKTsKIAotICAgIG1fcGVlckNvbm5lY3Rpb24uZmlyZUV2ZW50KFJUQ0ljZUNh
bmRpZGF0ZUV2ZW50OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBSVENJY2VDYW5kaWRhdGU6OmNyZWF0
ZShjYW5kaWRhdGVMaW5lLCBtaWQsIG1lZGlhRGVzY3JpcHRpb25JbmRleCkpKTsKKyAgICBmaXJl
SUNFQ2FuZGlkYXRlRXZlbnQoUlRDSWNlQ2FuZGlkYXRlOjpjcmVhdGUoY2FuZGlkYXRlTGluZSwg
bWlkLCBtZWRpYURlc2NyaXB0aW9uSW5kZXgpKTsKIH0KIAogdm9pZCBNZWRpYUVuZHBvaW50UGVl
ckNvbm5lY3Rpb246OmRvbmVHYXRoZXJpbmdDYW5kaWRhdGVzKGNvbnN0IFN0cmluZyYgbWlkKQpA
QCAtODc2LDEwICs4MjQsOCBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6ZG9u
ZUdhdGhlcmluZ0NhbmRpZGF0ZXMoY29uc3QgU3RyaW5nJiBtaWQpCiAgICAgICAgIHJldHVybiAh
Y3VycmVudC5zdG9wcGVkKCkgJiYgIWN1cnJlbnQubWlkKCkuaXNOdWxsKCkKICAgICAgICAgICAg
ICYmIGN1cnJlbnQuaWNlVHJhbnNwb3J0KCkuZ2F0aGVyaW5nU3RhdGUoKSAhPSBSVENJY2VUcmFu
c3BvcnQ6OkdhdGhlcmluZ1N0YXRlOjpDb21wbGV0ZTsKICAgICB9KTsKLSAgICBpZiAoIXN0aWxs
R2F0aGVyaW5nVHJhbnNjZWl2ZXIpIHsKLSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbi5maXJlRXZl
bnQoUlRDSWNlQ2FuZGlkYXRlRXZlbnQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIG51bGxwdHIpKTsK
LSAgICAgICAgbV9wZWVyQ29ubmVjdGlvbi51cGRhdGVJY2VHYXRoZXJpbmdTdGF0ZShJY2VHYXRo
ZXJpbmdTdGF0ZTo6Q29tcGxldGUpOwotICAgIH0KKyAgICBpZiAoIXN0aWxsR2F0aGVyaW5nVHJh
bnNjZWl2ZXIpCisgICAgICAgIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9uZUdhdGhlcmluZ0Nh
bmRpZGF0ZXMoKTsKIH0KIAogc3RhdGljIFJUQ0ljZVRyYW5zcG9ydDo6VHJhbnNwb3J0U3RhdGUg
ZGVyaXZlQWdncmVnYXRlZEljZUNvbm5lY3Rpb25TdGF0ZShjb25zdCBWZWN0b3I8UlRDSWNlVHJh
bnNwb3J0OjpUcmFuc3BvcnRTdGF0ZT4mIHN0YXRlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVj
dGlvbi5oCmluZGV4IGNjZDI0MDkyZjBhNzI0Y2VlZWYwZjk0NWU0ZDhkYmU2YTM5YjQ3M2YuLjhl
ZmVhYzRlZDFiN2YzYTVlYjljZDRkZTQ0NTM0NjI5NmVkOTdjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb24uaApAQCAtNTQsMjEgKzU0LDE1IEBAIGNsYXNzIE1lZGlhRW5kcG9pbnRQ
ZWVyQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBQZWVyQ29ubmVjdGlvbkJhY2tlbmQsIHB1Ymxp
YyBNCiBwdWJsaWM6CiAgICAgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uKFJUQ1BlZXJDb25u
ZWN0aW9uJik7CiAKLSAgICB2b2lkIGRvQ3JlYXRlT2ZmZXIoUlRDT2ZmZXJPcHRpb25zJiYpIGZp
bmFsOwotICAgIHZvaWQgY3JlYXRlQW5zd2VyKFJUQ0Fuc3dlck9wdGlvbnMmJiwgUGVlckNvbm5l
Y3Rpb246OlNlc3Npb25EZXNjcmlwdGlvblByb21pc2UmJikgb3ZlcnJpZGU7Ci0KLSAgICB2b2lk
IHNldExvY2FsRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiwgUGVlckNvbm5lY3Rp
b246OlZvaWRQcm9taXNlJiYpIG92ZXJyaWRlOwogICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3Jp
cHRpb24+IGxvY2FsRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICBSZWZQdHI8UlRD
U2Vzc2lvbkRlc2NyaXB0aW9uPiBjdXJyZW50TG9jYWxEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJy
aWRlOwogICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IHBlbmRpbmdMb2NhbERlc2Ny
aXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9u
KFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYsIFBlZXJDb25uZWN0aW9uOjpWb2lkUHJvbWlzZSYmKSBv
dmVycmlkZTsKICAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiByZW1vdGVEZXNjcmlw
dGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+
IGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIFJlZlB0cjxS
VENTZXNzaW9uRGVzY3JpcHRpb24+IHBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbigpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRDb25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24mKSBv
dmVycmlkZTsKLSAgICB2b2lkIGFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUmLCBQZWVy
Q29ubmVjdGlvbjo6Vm9pZFByb21pc2UmJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGdldFN0YXRz
KE1lZGlhU3RyZWFtVHJhY2sqLCBQZWVyQ29ubmVjdGlvbjo6U3RhdHNQcm9taXNlJiYpIG92ZXJy
aWRlOwogCkBAIC03Nyw4ICs3MSw2IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8UlRDUnRwUmVjZWl2
ZXI+IGNyZWF0ZVJlY2VpdmVyKGNvbnN0IFN0cmluZyYgdHJhbnNjZWl2ZXJNaWQsIGNvbnN0IFN0
cmluZyYgdHJhY2tLaW5kLCBjb25zdCBTdHJpbmcmIHRyYWNrSWQpIG92ZXJyaWRlOwogICAgIHZv
aWQgcmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYm
LCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21pc2UmJikgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHN0
b3AoKSBvdmVycmlkZTsKLQogICAgIGJvb2wgaXNOZWdvdGlhdGlvbk5lZWRlZCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fbmVnb3RpYXRpb25OZWVkZWQ7IH07CiAgICAgdm9pZCBtYXJrQXNO
ZWVkaW5nTmVnb3RpYXRpb24oKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyTmVnb3RpYXRpb25O
ZWVkZWRTdGF0ZSgpIG92ZXJyaWRlIHsgbV9uZWdvdGlhdGlvbk5lZWRlZCA9IGZhbHNlOyB9OwpA
QCAtODksMTMgKzgxLDIwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5UYXNrKEZ1bmN0aW9uPHZv
aWQgKCk+JiYpOwogICAgIHZvaWQgc3RhcnRSdW5uaW5nVGFza3MoKTsKIAorICAgIHZvaWQgZG9D
cmVhdGVPZmZlcihSVENPZmZlck9wdGlvbnMmJikgZmluYWw7CisgICAgdm9pZCBkb0NyZWF0ZUFu
c3dlcihSVENBbnN3ZXJPcHRpb25zJiYpIGZpbmFsOworICAgIHZvaWQgZG9TZXRMb2NhbERlc2Ny
aXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYpIGZpbmFsOworICAgIHZvaWQgZG9TZXRSZW1v
dGVEZXNjcmlwdGlvbihSVENTZXNzaW9uRGVzY3JpcHRpb24mKSBmaW5hbDsKKyAgICB2b2lkIGRv
QWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSYpIGZpbmFsOworICAgIHZvaWQgZG9TdG9w
KCkgZmluYWw7CisKICAgICB2b2lkIGNyZWF0ZU9mZmVyVGFzayhjb25zdCBSVENPZmZlck9wdGlv
bnMmKTsKLSAgICB2b2lkIGNyZWF0ZUFuc3dlclRhc2soY29uc3QgUlRDQW5zd2VyT3B0aW9ucyYs
IFBlZXJDb25uZWN0aW9uOjpTZXNzaW9uRGVzY3JpcHRpb25Qcm9taXNlJik7CisgICAgdm9pZCBj
cmVhdGVBbnN3ZXJUYXNrKGNvbnN0IFJUQ0Fuc3dlck9wdGlvbnMmKTsKIAotICAgIHZvaWQgc2V0
TG9jYWxEZXNjcmlwdGlvblRhc2soUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4mJiwgUGVl
ckNvbm5lY3Rpb246OlZvaWRQcm9taXNlJik7Ci0gICAgdm9pZCBzZXRSZW1vdGVEZXNjcmlwdGlv
blRhc2soUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4mJiwgUGVlckNvbm5lY3Rpb246OlZv
aWRQcm9taXNlJik7CisgICAgdm9pZCBzZXRMb2NhbERlc2NyaXB0aW9uVGFzayhSZWZQdHI8UlRD
U2Vzc2lvbkRlc2NyaXB0aW9uPiYmKTsKKyAgICB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9uVGFz
ayhSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiYmKTsKIAotICAgIHZvaWQgYWRkSWNlQ2Fu
ZGlkYXRlVGFzayhSVENJY2VDYW5kaWRhdGUmLCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21pc2Um
KTsKKyAgICB2b2lkIGFkZEljZUNhbmRpZGF0ZVRhc2soUlRDSWNlQ2FuZGlkYXRlJik7CiAKICAg
ICB2b2lkIHJlcGxhY2VUcmFja1Rhc2soUlRDUnRwU2VuZGVyJiwgY29uc3QgU3RyaW5nJiBtaWQs
IFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21pc2Um
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVy
Q29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDlmMmVmNWU2NzQzZmQxZWM2ZmQ5YmQ3
MDg4M2E2ZTA1YTZmNDU3MzEuLmQ0YmIxNzQ1NWZkNzJkOGZmMDgyOTRjY2I4ZjZiOWU4OWY3Mjkw
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNv
bm5lY3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTM1LDYgKzM1LDggQEAKICNpZiBFTkFC
TEUoV0VCX1JUQykKIAogI2luY2x1ZGUgIkpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmgiCisjaW5j
bHVkZSAiUlRDSWNlQ2FuZGlkYXRlLmgiCisjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlRXZlbnQu
aCIKICNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC00Miw5ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgUGVlckNvbm5lY3Rp
b25CYWNrZW5kOjpjcmVhdGVPZmZlcihSVENPZmZlck9wdGlvbnMmJiBvcHRpb25zLCBQZWVyQ29u
bmVjdGlvbjo6U2Vzc2lvbkRlc2NyaXB0aW9uUHJvbWlzZSYmIHByb21pc2UpCiB7CiAgICAgQVNT
RVJUKCFtX29mZmVyQW5zd2VyUHJvbWlzZSk7Ci0KLSAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5p
bnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGlu
Z1N0YXRlOjpDbG9zZWQpCi0gICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQobV9wZWVyQ29ubmVj
dGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgIT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNp
Z25hbGluZ1N0YXRlOjpDbG9zZWQpOwogCiAgICAgbV9vZmZlckFuc3dlclByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpOwogICAgIGRvQ3JlYXRlT2ZmZXIoV1RGTW92ZShvcHRpb25zKSk7CkBAIC02
Miw3ICs2Miw3IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVPZmZlclN1Y2Nl
ZWRlZChTdHJpbmcmJiBzZHApCiAgICAgbV9vZmZlckFuc3dlclByb21pc2UgPSBOdWxsb3B0Owog
fQogCi12b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlT2ZmZXJGYWlsZWQoRXhjZXB0
aW9uQ29kZSBlYywgU3RyaW5nJiYgZXJyb3IpCit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6
Y3JlYXRlT2ZmZXJGYWlsZWQoRXhjZXB0aW9uJiYgZXhjZXB0aW9uKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAKQEAgLTcwLDggKzcwLDIxOSBAQCB2b2lkIFBlZXJDb25uZWN0aW9u
QmFja2VuZDo6Y3JlYXRlT2ZmZXJGYWlsZWQoRXhjZXB0aW9uQ29kZSBlYywgU3RyaW5nJiYgZXJy
b3IpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChtX29mZmVyQW5zd2VyUHJvbWlzZSk7
Ci0gICAgbV9vZmZlckFuc3dlclByb21pc2UtPnJlamVjdChlYywgV1RGTW92ZShlcnJvcikpOwor
ICAgIG1fb2ZmZXJBbnN3ZXJQcm9taXNlLT5yZWplY3QoV1RGTW92ZShleGNlcHRpb24pKTsKKyAg
ICBtX29mZmVyQW5zd2VyUHJvbWlzZSA9IE51bGxvcHQ7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rp
b25CYWNrZW5kOjpjcmVhdGVBbnN3ZXIoUlRDQW5zd2VyT3B0aW9ucyYmIG9wdGlvbnMsIFBlZXJD
b25uZWN0aW9uOjpTZXNzaW9uRGVzY3JpcHRpb25Qcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBB
U1NFUlQoIW1fb2ZmZXJBbnN3ZXJQcm9taXNlKTsKKyAgICBBU1NFUlQobV9wZWVyQ29ubmVjdGlv
bi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgIT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25h
bGluZ1N0YXRlOjpDbG9zZWQpOworCisgICAgbV9vZmZlckFuc3dlclByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpOworICAgIGRvQ3JlYXRlQW5zd2VyKFdURk1vdmUob3B0aW9ucykpOworfQorCit2
b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlQW5zd2VyU3VjY2VlZGVkKFN0cmluZyYm
IHNkcCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKG1fcGVlckNv
bm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFBlZXJDb25uZWN0aW9uU3RhdGVz
OjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQo
bV9vZmZlckFuc3dlclByb21pc2UpOworICAgIG1fb2ZmZXJBbnN3ZXJQcm9taXNlLT5yZXNvbHZl
KFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6Y3JlYXRlKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2Rw
VHlwZTo6QW5zd2VyLCBXVEZNb3ZlKHNkcCkpKTsKKyAgICBtX29mZmVyQW5zd2VyUHJvbWlzZSA9
IE51bGxvcHQ7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVBbnN3ZXJG
YWlsZWQoRXhjZXB0aW9uJiYgZXhjZXB0aW9uKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisKKyAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkg
PT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCisgICAgICAg
IHJldHVybjsKKworICAgIEFTU0VSVChtX29mZmVyQW5zd2VyUHJvbWlzZSk7CisgICAgbV9vZmZl
ckFuc3dlclByb21pc2UtPnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgIG1fb2ZmZXJB
bnN3ZXJQcm9taXNlID0gTnVsbG9wdDsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzTG9jYWxE
ZXNjcmlwdGlvblR5cGVWYWxpZEZvclN0YXRlKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlw
ZSB0eXBlLCBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGUgc3RhdGUpCit7Cisg
ICAgc3dpdGNoIChzdGF0ZSkgeworICAgIGNhc2UgUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25h
bGluZ1N0YXRlOjpTdGFibGU6CisgICAgICAgIHJldHVybiB0eXBlID09IFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbjo6U2RwVHlwZTo6T2ZmZXI7CisgICAgY2FzZSBQZWVyQ29ubmVjdGlvblN0YXRlczo6
U2lnbmFsaW5nU3RhdGU6OkhhdmVMb2NhbE9mZmVyOgorICAgICAgICByZXR1cm4gdHlwZSA9PSBS
VENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6Ok9mZmVyOworICAgIGNhc2UgUGVlckNvbm5l
Y3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpIYXZlUmVtb3RlT2ZmZXI6CisgICAgICAgIHJl
dHVybiB0eXBlID09IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZTo6QW5zd2VyIHx8IHR5
cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpQcmFuc3dlcjsKKyAgICBjYXNl
IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6SGF2ZUxvY2FsUHJBbnN3ZXI6
CisgICAgICAgIHJldHVybiB0eXBlID09IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZTo6
QW5zd2VyIHx8IHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBlOjpQcmFuc3dl
cjsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfTsKKworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ6OnNldExvY2FsRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
JiBzZXNzaW9uRGVzY3JpcHRpb24sIFBlZXJDb25uZWN0aW9uOjpWb2lkUHJvbWlzZSYmIHByb21p
c2UpCit7CisgICAgQVNTRVJUKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0
ZSgpICE9IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKTsKKwor
ICAgIGlmICghaXNMb2NhbERlc2NyaXB0aW9uVHlwZVZhbGlkRm9yU3RhdGUoc2Vzc2lvbkRlc2Ny
aXB0aW9uLnR5cGUoKSwgbV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkp
KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KElOVkFMSURfU1RBVEVfRVJSLCAiRGVzY3JpcHRp
b24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zZXREZXNjcmlwdGlvblByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpOworICAgIGRvU2V0TG9jYWxEZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRp
b24pOworfQorCit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0TG9jYWxEZXNjcmlwdGlv
blN1Y2NlZWRlZCgpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmICht
X3BlZXJDb25uZWN0aW9uLmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBQZWVyQ29ubmVjdGlv
blN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkNsb3NlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
QVNTRVJUKG1fc2V0RGVzY3JpcHRpb25Qcm9taXNlKTsKKworICAgIG1fc2V0RGVzY3JpcHRpb25Q
cm9taXNlLT5yZXNvbHZlKG51bGxwdHIpOworICAgIG1fc2V0RGVzY3JpcHRpb25Qcm9taXNlID0g
TnVsbG9wdDsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnNldExvY2FsRGVzY3Jp
cHRpb25GYWlsZWQoRXhjZXB0aW9uJiYgZXhjZXB0aW9uKQoreworICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisKKyAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0
YXRlKCkgPT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpDbG9zZWQpCisg
ICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChtX3NldERlc2NyaXB0aW9uUHJvbWlzZSk7CisK
KyAgICBtX3NldERlc2NyaXB0aW9uUHJvbWlzZS0+cmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uKSk7
CisgICAgbV9zZXREZXNjcmlwdGlvblByb21pc2UgPSBOdWxsb3B0OworfQorCitzdGF0aWMgaW5s
aW5lIGJvb2wgaXNSZW1vdGVEZXNjcmlwdGlvblR5cGVWYWxpZEZvclN0YXRlKFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbjo6U2RwVHlwZSB0eXBlLCBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5n
U3RhdGUgc3RhdGUpCit7CisgICAgc3dpdGNoIChzdGF0ZSkgeworICAgIGNhc2UgUGVlckNvbm5l
Y3Rpb25TdGF0ZXM6OlNpZ25hbGluZ1N0YXRlOjpTdGFibGU6CisgICAgICAgIHJldHVybiB0eXBl
ID09IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZTo6T2ZmZXI7CisgICAgY2FzZSBQZWVy
Q29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkhhdmVMb2NhbE9mZmVyOgorICAgICAg
ICByZXR1cm4gdHlwZSA9PSBSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGU6OkFuc3dlciB8
fCB0eXBlID09IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZTo6UHJhbnN3ZXI7CisgICAg
Y2FzZSBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkhhdmVSZW1vdGVPZmZl
cjoKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpTZHBUeXBl
OjpPZmZlcjsKKyAgICBjYXNlIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6
SGF2ZVJlbW90ZVByQW5zd2VyOgorICAgICAgICByZXR1cm4gdHlwZSA9PSBSVENTZXNzaW9uRGVz
Y3JpcHRpb246OlNkcFR5cGU6OkFuc3dlciB8fCB0eXBlID09IFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bjo6U2RwVHlwZTo6UHJhbnN3ZXI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH07CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRSZW1vdGVEZXNjcmlwdGlvbihS
VENTZXNzaW9uRGVzY3JpcHRpb24mIHNlc3Npb25EZXNjcmlwdGlvbiwgUGVlckNvbm5lY3Rpb246
OlZvaWRQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBBU1NFUlQobV9wZWVyQ29ubmVjdGlvbi5p
bnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgIT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNpZ25hbGlu
Z1N0YXRlOjpDbG9zZWQpOworCisgICAgaWYgKCFpc1JlbW90ZURlc2NyaXB0aW9uVHlwZVZhbGlk
Rm9yU3RhdGUoc2Vzc2lvbkRlc2NyaXB0aW9uLnR5cGUoKSwgbV9wZWVyQ29ubmVjdGlvbi5pbnRl
cm5hbFNpZ25hbGluZ1N0YXRlKCkpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KElOVkFMSURf
U1RBVEVfRVJSLCAiRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNp
Z25hbGluZyBzdGF0ZSIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zZXREZXNj
cmlwdGlvblByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpOworICAgIGRvU2V0UmVtb3RlRGVzY3Jp
cHRpb24oc2Vzc2lvbkRlc2NyaXB0aW9uKTsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tl
bmQ6OnNldFJlbW90ZURlc2NyaXB0aW9uU3VjY2VlZGVkKCkKK3sKKyAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworCisgICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdT
dGF0ZSgpID09IFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQor
ICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9zZXREZXNjcmlwdGlvblByb21pc2UpOwor
CisgICAgbV9zZXREZXNjcmlwdGlvblByb21pc2UtPnJlc29sdmUobnVsbHB0cik7CisgICAgbV9z
ZXREZXNjcmlwdGlvblByb21pc2UgPSBOdWxsb3B0OworfQorCit2b2lkIFBlZXJDb25uZWN0aW9u
QmFja2VuZDo6c2V0UmVtb3RlRGVzY3JpcHRpb25GYWlsZWQoRXhjZXB0aW9uJiYgZXhjZXB0aW9u
KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAobV9wZWVyQ29ubmVj
dGlvbi5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OlNp
Z25hbGluZ1N0YXRlOjpDbG9zZWQpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChtX3Nl
dERlc2NyaXB0aW9uUHJvbWlzZSk7CisKKyAgICBtX3NldERlc2NyaXB0aW9uUHJvbWlzZS0+cmVq
ZWN0KFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgbV9zZXREZXNjcmlwdGlvblByb21pc2UgPSBO
dWxsb3B0OworfQorCit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6YWRkSWNlQ2FuZGlkYXRl
KFJUQ0ljZUNhbmRpZGF0ZSYgaWNlQ2FuZGlkYXRlLCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21p
c2UmJiBwcm9taXNlKQoreworICAgIEFTU0VSVChtX3BlZXJDb25uZWN0aW9uLmludGVybmFsU2ln
bmFsaW5nU3RhdGUoKSAhPSBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFsaW5nU3RhdGU6OkNs
b3NlZCk7CisKKyAgICBpZiAoaWNlQ2FuZGlkYXRlLnNkcE1pZCgpLmlzTnVsbCgpICYmICFpY2VD
YW5kaWRhdGUuc2RwTUxpbmVJbmRleCgpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJUcnlpbmcgdG8gYWRkIGEgY2FuZGlkYXRl
IHRoYXQgaXMgbWlzc2luZyBib3RoIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCIpIH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIG1fYWRkSWNlQ2FuZGlkYXRlUHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSk7CisgICAgZG9BZGRJY2VDYW5kaWRhdGUoaWNlQ2FuZGlkYXRlKTsKK30KKwor
dm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmFkZEljZUNhbmRpZGF0ZVN1Y2NlZWRlZCgpCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChtX3BlZXJDb25uZWN0aW9u
LmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSA9PSBQZWVyQ29ubmVjdGlvblN0YXRlczo6U2lnbmFs
aW5nU3RhdGU6OkNsb3NlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFVwZGF0
ZSByZW1vdGUgZGVzY3JpcHRpb24gYW5kIHNldCBJQ0UgY29ubmVjdGlvbiBzdGF0ZSB0byBjaGVj
a2luZyBpZiBub3QgYWxyZWFkeSBkb25lIHNvLgorICAgIEFTU0VSVChtX2FkZEljZUNhbmRpZGF0
ZVByb21pc2UpOworCisgICAgbV9hZGRJY2VDYW5kaWRhdGVQcm9taXNlLT5yZXNvbHZlKG51bGxw
dHIpOworICAgIG1fYWRkSWNlQ2FuZGlkYXRlUHJvbWlzZSA9IE51bGxvcHQ7Cit9CisKK3ZvaWQg
UGVlckNvbm5lY3Rpb25CYWNrZW5kOjphZGRJY2VDYW5kaWRhdGVGYWlsZWQoRXhjZXB0aW9uJiYg
ZXhjZXB0aW9uKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgaWYgKG1fcGVl
ckNvbm5lY3Rpb24uaW50ZXJuYWxTaWduYWxpbmdTdGF0ZSgpID09IFBlZXJDb25uZWN0aW9uU3Rh
dGVzOjpTaWduYWxpbmdTdGF0ZTo6Q2xvc2VkKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NF
UlQobV9hZGRJY2VDYW5kaWRhdGVQcm9taXNlKTsKKworICAgIG1fYWRkSWNlQ2FuZGlkYXRlUHJv
bWlzZS0+cmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgbV9hZGRJY2VDYW5kaWRhdGVQ
cm9taXNlID0gTnVsbG9wdDsKK30KKwordm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmZpcmVJ
Q0VDYW5kaWRhdGVFdmVudChSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPiYmIGNhbmRpZGF0ZSkKK3sK
KyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgbV9wZWVyQ29ubmVjdGlvbi5maXJl
RXZlbnQoUlRDSWNlQ2FuZGlkYXRlRXZlbnQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIFdURk1vdmUo
Y2FuZGlkYXRlKSkpOworfQorCit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9uZUdhdGhl
cmluZ0NhbmRpZGF0ZXMoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBt
X3BlZXJDb25uZWN0aW9uLmZpcmVFdmVudChSVENJY2VDYW5kaWRhdGVFdmVudDo6Y3JlYXRlKGZh
bHNlLCBmYWxzZSwgbnVsbHB0cikpOworICAgIG1fcGVlckNvbm5lY3Rpb24udXBkYXRlSWNlR2F0
aGVyaW5nU3RhdGUoUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUdhdGhlcmluZ1N0YXRlOjpDb21w
bGV0ZSk7Cit9CisKK3ZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzdG9wKCkKK3sKICAgICBt
X29mZmVyQW5zd2VyUHJvbWlzZSA9IE51bGxvcHQ7CisgICAgbV9zZXREZXNjcmlwdGlvblByb21p
c2UgPSBOdWxsb3B0OworICAgIG1fYWRkSWNlQ2FuZGlkYXRlUHJvbWlzZSA9IE51bGxvcHQ7CisK
KyAgICBkb1N0b3AoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNr
ZW5kLmgKaW5kZXggMjZmMzY4OGFkZmJiNzMwNDhkOGVjNTZiZTUzN2IzNzA2NDViNDhiNC4uZjI2
OGFhNWQ1Y2NmZmE5ZDAxYjI5NmU3NWIyNWY0Y2E2ZmE0ZWU5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5oCkBAIC01Niw4ICs1Niw2IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBzdHJ1
Y3QgUlRDQW5zd2VyT3B0aW9uczsKIHN0cnVjdCBSVENPZmZlck9wdGlvbnM7CiAKLXVzaW5nIEV4
Y2VwdGlvbkNvZGUgPSBpbnQ7Ci0KIG5hbWVzcGFjZSBQZWVyQ29ubmVjdGlvbiB7CiB0eXBlZGVm
IERPTVByb21pc2U8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBTZXNzaW9uRGVzY3JpcHRpb25Qcm9t
aXNlOwogdHlwZWRlZiBET01Qcm9taXNlPHN0ZDo6bnVsbHB0cl90PiBWb2lkUHJvbWlzZTsKQEAg
LTc0LDI0ICs3MiwyMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UGVlckNvbm5lY3Rpb25CYWNr
ZW5kKCkgeyB9CiAKICAgICB2b2lkIGNyZWF0ZU9mZmVyKFJUQ09mZmVyT3B0aW9ucyYmLCBQZWVy
Q29ubmVjdGlvbjo6U2Vzc2lvbkRlc2NyaXB0aW9uUHJvbWlzZSYmKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZG9DcmVhdGVPZmZlcihSVENPZmZlck9wdGlvbnMmJikgPSAwOwotICAgIHZvaWQgY3JlYXRl
T2ZmZXJTdWNjZWVkZWQoU3RyaW5nJiYpOwotICAgIHZvaWQgY3JlYXRlT2ZmZXJGYWlsZWQoRXhj
ZXB0aW9uQ29kZSwgU3RyaW5nJiYpOworICAgIHZvaWQgY3JlYXRlQW5zd2VyKFJUQ0Fuc3dlck9w
dGlvbnMmJiwgUGVlckNvbm5lY3Rpb246OlNlc3Npb25EZXNjcmlwdGlvblByb21pc2UmJik7Cisg
ICAgdm9pZCBzZXRMb2NhbERlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYsIFBlZXJD
b25uZWN0aW9uOjpWb2lkUHJvbWlzZSYmKTsKKyAgICB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9u
KFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYsIFBlZXJDb25uZWN0aW9uOjpWb2lkUHJvbWlzZSYmKTsK
KyAgICB2b2lkIGFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUmLCBQZWVyQ29ubmVjdGlv
bjo6Vm9pZFByb21pc2UmJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQW5zd2VyKFJUQ0Fu
c3dlck9wdGlvbnMmJiwgUGVlckNvbm5lY3Rpb246OlNlc3Npb25EZXNjcmlwdGlvblByb21pc2Um
JikgPSAwOworICAgIHZvaWQgc3RvcCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldExvY2FsRGVz
Y3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiwgUGVlckNvbm5lY3Rpb246OlZvaWRQcm9t
aXNlJiYpID0gMDsKICAgICB2aXJ0dWFsIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IGxv
Y2FsRGVzY3JpcHRpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBSZWZQdHI8UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uPiBjdXJyZW50TG9jYWxEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IHBlbmRpbmdMb2NhbERlc2NyaXB0
aW9uKCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9u
KFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYsIFBlZXJDb25uZWN0aW9uOjpWb2lkUHJvbWlzZSYmKSA9
IDA7CiAgICAgdmlydHVhbCBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiByZW1vdGVEZXNj
cmlwdGlvbigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFJlZlB0cjxSVENTZXNzaW9uRGVzY3Jp
cHRpb24+IGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IHBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbigp
IGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDb25maWd1cmF0aW9uKFJUQ0NvbmZp
Z3VyYXRpb24mKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGFkZEljZUNhbmRpZGF0ZShSVENJY2VD
YW5kaWRhdGUmLCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21pc2UmJikgPSAwOwogCiAgICAgdmly
dHVhbCB2b2lkIGdldFN0YXRzKE1lZGlhU3RyZWFtVHJhY2sqLCBQZWVyQ29ubmVjdGlvbjo6U3Rh
dHNQcm9taXNlJiYpID0gMDsKIApAQCAtMTAwLDggKzk2LDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgUmVmUHRyPFJUQ1J0cFJlY2VpdmVyPiBjcmVhdGVSZWNlaXZlcihjb25zdCBTdHJpbmcmIHRy
YW5zY2VpdmVyTWlkLCBjb25zdCBTdHJpbmcmIHRyYWNrS2luZCwgY29uc3QgU3RyaW5nJiB0cmFj
a0lkKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlcGxhY2VUcmFjayhSVENSdHBTZW5kZXImLCBS
ZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4mJiwgUGVlckNvbm5lY3Rpb246OlZvaWRQcm9taXNlJiYp
ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOwotCiAgICAgdmlydHVhbCBib29s
IGlzTmVnb3RpYXRpb25OZWVkZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG1hcmtB
c05lZWRpbmdOZWdvdGlhdGlvbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJOZWdvdGlh
dGlvbk5lZWRlZFN0YXRlKCkgPSAwOwpAQCAtMTA5LDggKzEwMywzOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0IFN0cmluZyYgYWN0aW9uKSA9
IDA7CiAKIHByb3RlY3RlZDoKKyAgICB2b2lkIGZpcmVJQ0VDYW5kaWRhdGVFdmVudChSZWZQdHI8
UlRDSWNlQ2FuZGlkYXRlPiYmKTsKKyAgICB2b2lkIGRvbmVHYXRoZXJpbmdDYW5kaWRhdGVzKCk7
CisKKyAgICB2b2lkIGNyZWF0ZU9mZmVyU3VjY2VlZGVkKFN0cmluZyYmKTsKKyAgICB2b2lkIGNy
ZWF0ZU9mZmVyRmFpbGVkKEV4Y2VwdGlvbiYmKTsKKworICAgIHZvaWQgY3JlYXRlQW5zd2VyU3Vj
Y2VlZGVkKFN0cmluZyYmKTsKKyAgICB2b2lkIGNyZWF0ZUFuc3dlckZhaWxlZChFeGNlcHRpb24m
Jik7CisKKyAgICB2b2lkIHNldExvY2FsRGVzY3JpcHRpb25TdWNjZWVkZWQoKTsKKyAgICB2b2lk
IHNldExvY2FsRGVzY3JpcHRpb25GYWlsZWQoRXhjZXB0aW9uJiYpOworCisgICAgdm9pZCBzZXRS
ZW1vdGVEZXNjcmlwdGlvblN1Y2NlZWRlZCgpOworICAgIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRp
b25GYWlsZWQoRXhjZXB0aW9uJiYpOworCisgICAgdm9pZCBhZGRJY2VDYW5kaWRhdGVTdWNjZWVk
ZWQoKTsKKyAgICB2b2lkIGFkZEljZUNhbmRpZGF0ZUZhaWxlZChFeGNlcHRpb24mJik7CisKK3By
aXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGRvQ3JlYXRlT2ZmZXIoUlRDT2ZmZXJPcHRpb25zJiYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZG9DcmVhdGVBbnN3ZXIoUlRDQW5zd2VyT3B0aW9ucyYm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRvU2V0TG9jYWxEZXNjcmlwdGlvbihSVENTZXNzaW9u
RGVzY3JpcHRpb24mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRvU2V0UmVtb3RlRGVzY3JpcHRp
b24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkb0FkZElj
ZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRvU3Rv
cCgpID0gMDsKKworcHJvdGVjdGVkOgogICAgIFJUQ1BlZXJDb25uZWN0aW9uJiBtX3BlZXJDb25u
ZWN0aW9uOworCitwcml2YXRlOgogICAgIE9wdGlvbmFsPFBlZXJDb25uZWN0aW9uOjpTZXNzaW9u
RGVzY3JpcHRpb25Qcm9taXNlPiBtX29mZmVyQW5zd2VyUHJvbWlzZTsKKyAgICBPcHRpb25hbDxQ
ZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21pc2U+IG1fc2V0RGVzY3JpcHRpb25Qcm9taXNlOworICAg
IE9wdGlvbmFsPFBlZXJDb25uZWN0aW9uOjpWb2lkUHJvbWlzZT4gbV9hZGRJY2VDYW5kaWRhdGVQ
cm9taXNlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU1NWQwMDdmNTNm
YjA5YTJhYWMwZmNjMWUyMWI1MTFhMjk3OTBkMjMuLjgyMmZjOGExOTFlZTk5ZTJhZDFjZmIzNmI4
NDViMWQ0NTUzMDM5ZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNi0xMS0wNCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYlJUQ10gSW50cm9kdWNl
IGFzeW5jaHJvbm91cyBiYWNrZW5kIGZvciBvdGhlciBSVENQZWVyQ29ubmVjdGlvbiBBUEkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDQwOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzaW5nIHRl
c3QgYXMgcGF0Y2ggY2hhbmdlcyB0aGUgb3JkZXIgaW4gd2hpY2ggZXJyb3IgY2FzZXMgYXJlIGNo
ZWNrZWQgaW4gY2FzZSBvZiBzZXRSZW1vdGVEZXNjcmlwdGlvbi9zZXRMb2NhbERlc2NyaXB0aW9u
LgorICAgICAgICBOZXcgb3JkZXIgdHJpZXMgdG8gZm9sbG93IG1vcmUgY2xvc2VseSBodHRwczov
L3d3dy53My5vcmcvVFIvd2VicnRjLyNzZXQtZGVzY3JpcHRpb24uCisKKyAgICAgICAgKiBmYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YWJsZS1leHBlY3RlZC50eHQ6CisKIDIw
MTYtMTEtMDMgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT04gKHIyMDc2NjkpOiBDcmFzaCB1bmRlciBTVkdSZW5kZXJTdXBwb3J0Ojp1cGRhdGVN
YXNrZWRBbmNlc3RvclNob3VsZElzb2xhdGVCbGVuZGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGFibGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGFibGUt
ZXhwZWN0ZWQudHh0CmluZGV4IDdjMDE0MDM0ZDIwOWE1ZWM2OTNmNjVlNWYwYjdhMjYwNmQ4YjYy
ODAuLjQ1ZWRlYjJhYjBiOTI1NjQ2N2VhZDc1MjAzZTMxNjdlOTIxZWQxZTAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhYmxlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLXN0YWJsZS1leHBlY3RlZC50eHQKQEAgLTYsMjUgKzYsMjUgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUKIFBBU1MgcGMuc2lnbmFsaW5nU3RhdGUgaXMgInN0YWJsZSIKIFBBU1MgcGMu
c2V0TG9jYWxEZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRpb24sIGZpbmlzaElmU3VjY2VlZGVk
LCByZXF1ZXN0RmFpbGVkMSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBzZXRMb2Nh
bERlc2NyaXB0aW9uIGZhaWxlZC4KLUZBSUwgZXJyb3JSZWFzb24ubmFtZSBzaG91bGQgYmUgSW52
YWxpZFNlc3Npb25EZXNjcmlwdGlvbkVycm9yLiBXYXMgSW52YWxpZEFjY2Vzc0Vycm9yLgorRkFJ
TCBlcnJvclJlYXNvbi5uYW1lIHNob3VsZCBiZSBJbnZhbGlkU2Vzc2lvbkRlc2NyaXB0aW9uRXJy
b3IuIFdhcyBJbnZhbGlkU3RhdGVFcnJvci4KIEZBSUwgcGMubG9jYWxEZXNjcmlwdGlvbiBzaG91
bGQgdGhyb3cgYW4gZXhjZXB0aW9uLiBXYXMgbnVsbC4KIEZBSUwgcGMucmVtb3RlRGVzY3JpcHRp
b24gc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4gV2FzIG51bGwuCiBQQVNTIHBjLnNpZ25hbGlu
Z1N0YXRlIGlzICJzdGFibGUiCiBQQVNTIHBjLnNldExvY2FsRGVzY3JpcHRpb24oc2Vzc2lvbkRl
c2NyaXB0aW9uLCBmaW5pc2hJZlN1Y2NlZWRlZCwgcmVxdWVzdEZhaWxlZDIpOyBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbi4KIFBBU1Mgc2V0TG9jYWxEZXNjcmlwdGlvbiBmYWlsZWQuCi1GQUlMIGVy
cm9yUmVhc29uLm5hbWUgc2hvdWxkIGJlIEludmFsaWRTZXNzaW9uRGVzY3JpcHRpb25FcnJvci4g
V2FzIEludmFsaWRBY2Nlc3NFcnJvci4KK0ZBSUwgZXJyb3JSZWFzb24ubmFtZSBzaG91bGQgYmUg
SW52YWxpZFNlc3Npb25EZXNjcmlwdGlvbkVycm9yLiBXYXMgSW52YWxpZFN0YXRlRXJyb3IuCiBG
QUlMIHBjLmxvY2FsRGVzY3JpcHRpb24gc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4gV2FzIG51
bGwuCiBGQUlMIHBjLnJlbW90ZURlc2NyaXB0aW9uIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24u
IFdhcyBudWxsLgogUEFTUyBwYy5zaWduYWxpbmdTdGF0ZSBpcyAic3RhYmxlIgogUEFTUyBwYy5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRpb24sIGZpbmlzaElmU3VjY2VlZGVk
LCByZXF1ZXN0RmFpbGVkMyk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBzZXRSZW1v
dGVEZXNjcmlwdGlvbiBmYWlsZWQuCi1GQUlMIGVycm9yUmVhc29uLm5hbWUgc2hvdWxkIGJlIElu
dmFsaWRTZXNzaW9uRGVzY3JpcHRpb25FcnJvci4gV2FzIEludmFsaWRBY2Nlc3NFcnJvci4KK0ZB
SUwgZXJyb3JSZWFzb24ubmFtZSBzaG91bGQgYmUgSW52YWxpZFNlc3Npb25EZXNjcmlwdGlvbkVy
cm9yLiBXYXMgSW52YWxpZFN0YXRlRXJyb3IuCiBGQUlMIHBjLmxvY2FsRGVzY3JpcHRpb24gc2hv
dWxkIHRocm93IGFuIGV4Y2VwdGlvbi4gV2FzIG51bGwuCiBGQUlMIHBjLnJlbW90ZURlc2NyaXB0
aW9uIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uIFdhcyBudWxsLgogUEFTUyBwYy5zaWduYWxp
bmdTdGF0ZSBpcyAic3RhYmxlIgogUEFTUyBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9u
RGVzY3JpcHRpb24sIGZpbmlzaElmU3VjY2VlZGVkLCByZXF1ZXN0RmFpbGVkNCk7IGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgogUEFTUyBzZXRSZW1vdGVEZXNjcmlwdGlvbiBmYWlsZWQuCi1GQUlM
IGVycm9yUmVhc29uLm5hbWUgc2hvdWxkIGJlIEludmFsaWRTZXNzaW9uRGVzY3JpcHRpb25FcnJv
ci4gV2FzIEludmFsaWRBY2Nlc3NFcnJvci4KK0ZBSUwgZXJyb3JSZWFzb24ubmFtZSBzaG91bGQg
YmUgSW52YWxpZFNlc3Npb25EZXNjcmlwdGlvbkVycm9yLiBXYXMgSW52YWxpZFN0YXRlRXJyb3Iu
CiBGQUlMIHBjLmxvY2FsRGVzY3JpcHRpb24gc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4gV2Fz
IG51bGwuCiBGQUlMIHBjLnJlbW90ZURlc2NyaXB0aW9uIHNob3VsZCB0aHJvdyBhbiBleGNlcHRp
b24uIFdhcyBudWxsLgogUEFTUyBwYy5zaWduYWxpbmdTdGF0ZSBpcyAic3RhYmxlIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>