<?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>202080</bug_id>
          
          <creation_ts>2019-09-21 14:29:13 -0700</creation_ts>
          <short_desc>Reduce use of SessionID::defaultSessionID() in WebKit</short_desc>
          <delta_ts>2019-09-21 23:05:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=202086</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1573092</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-21 14:29:13 -0700</bug_when>
    <thetext>Reduce use of SessionID::defaultSessionID() in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573093</commentid>
    <comment_count>1</comment_count>
      <attachid>379322</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-21 14:32:01 -0700</bug_when>
    <thetext>Created attachment 379322
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573138</commentid>
    <comment_count>2</comment_count>
      <attachid>379322</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-21 21:35:55 -0700</bug_when>
    <thetext>Comment on attachment 379322
Patch

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

&gt; Source/WebCore/Modules/websockets/WebSocketChannel.cpp:109
&gt; +    if (frame &amp;&amp; page) {

We should probably return ConnectStatus::KO if this is false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573139</commentid>
    <comment_count>3</comment_count>
      <attachid>379322</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-21 21:54:41 -0700</bug_when>
    <thetext>Comment on attachment 379322
Patch

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

&gt;&gt; Source/WebCore/Modules/websockets/WebSocketChannel.cpp:109
&gt;&gt; +    if (frame &amp;&amp; page) {
&gt; 
&gt; We should probably return ConnectStatus::KO if this is false.

I was worried about changing behavior in a refactoring patch but I can try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573140</commentid>
    <comment_count>4</comment_count>
      <attachid>379338</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-21 22:13:12 -0700</bug_when>
    <thetext>Created attachment 379338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573161</commentid>
    <comment_count>5</comment_count>
      <attachid>379338</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-21 23:04:52 -0700</bug_when>
    <thetext>Comment on attachment 379338
Patch

Clearing flags on attachment: 379338

Committed r250196: &lt;https://trac.webkit.org/changeset/250196&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573162</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-21 23:04:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573163</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-21 23:05:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/55597185&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379322</attachid>
            <date>2019-09-21 14:32:01 -0700</date>
            <delta_ts>2019-09-21 22:13:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202080-20190921143158.patch</filename>
            <type>text/plain</type>
            <size>37722</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmEyNTA0MjVhZmQ3ZWM2
N2I0N2E5NzEwMTE5ZjY0YjAzNzZkZjdkNS4uZDExY2VkMTM2N2U4ZGM4NjZkOTVkYmViZTc5MDkz
NTk3NWQ1ZWM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTA5LTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIHVzZSBvZiBTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjA4MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZHVjZSB1c2Ugb2YgU2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCkgaW4gV2ViS2l0LiBGYWxsaW5nIGJhY2sgdG8gdGhlIGRlZmF1bHQgc2Vz
c2lvbgorICAgICAgICB3aGVuIHlvdSBkb24ndCBrbm93IHdoaWNoIHNlc3Npb24gdG8gdXNlIGlz
IG5ldmVyIGEgZ29vZCBpZGVhIGFuZCBhIHBvdGVudGlhbCBwcml2YWN5IGlzc3VlLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdCk6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpsb2dnZXIpOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlQWRDbGlja0F0dHJpYnV0
aW9uIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KToK
KyAgICAgICAgKiBsb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjp1cGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50UmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXZhbGlkYXRlUmVzb3Vy
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmxvYWRSZXNvdXJj
ZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2xlYXJEb2N1bWVudExvYWRlcik6
CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgICogcGFnZS9GcmFtZS5oOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmlzQWx3YXlzT25Mb2dnaW5nQWxs
b3dlZCBjb25zdCk6CisKIDIwMTktMDktMjAgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbW92ZSBkZWFkIGNvZGUgZm9yIGEgc3BlY2lmaWMgbWFjT1MgYW5k
IGlPUyBTREsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggYjQ3MDkzZDFmMjBjNDQ3M2U1ODdkN2VlNjExOTA1ODY1NDk0
MmNlZi4uYzAxNmNhMGVmMDk5OWZkNGIzNzU1ZjQ1YTMzNzhlYjUzNDRlZTYxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxOS0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFJlZHVjZSB1c2Ugb2YgU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDIwODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNv
dXJjZUxvYWRUb0Rvd25sb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNvbnZlcnRNYWluUmVzb3Vy
Y2VMb2FkVG9Eb3dubG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1l
Lmg6CisKIDIwMTktMDktMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZWdyZXNzaW9uKGlPUyAxMykgd2ViIHZpZXdzIGRvIG5vdCBkZWFsIHByb3Blcmx5IHdp
dGggdGhlaXIgd2luZG93J3MgVUlTY2VuZSBjaGFuZ2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCmluZGV4IDliMWJiZTAzZjEzNDQzZjkwN2I2MTI3YTdjYTg4OTI3Njg5MGY3NDYuLjdlMzQ1
YTI2MjUxNDZlYzkyNTQ0YjUzODNlMTFhZGQyMmNmMDBkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlZHVjZSB1c2Ugb2YgU2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCkgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDIwODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAg
IChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2Fk
KToKKwogMjAxOS0wOS0yMCAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHNvbWUgc3VwcG9ydCBmb3IgPCBpT1MgMTMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZwppbmRleCAzZjc5ZThhMTY3OGU5NjJlM2QwNjdiYzNlMmRiYTc3ZDU2NTg1OWVjLi42
OTRiZDlkYjNlNDE5ZmVmZDNlMWVkMGRiZDIwNjE4ZmY0YzQ2OGI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDktMjEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZWR1Y2UgdXNlIG9mIFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxv
YWRUb0Rvd25sb2FkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oOgorCiAyMDE5LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgQmxvYlJlZ2lzdHJ5IG5vIGxvbmdlciBuZWVkcyBTZXNzaW9uSURzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5j
cHAKaW5kZXggZGJiMWI0NTQ5MGM2ZmY2NzNkZGVkZTZmYTdiZWI0ODU0NjdmYTQwMi4uNWQ1OWQ3
ZDViOWFlYTgzOTAwYjVkNzVkYjA0ZjliMTMzYjYxOTE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMTA0
LDEyICsxMDQsMTIgQEAgV2ViU29ja2V0Q2hhbm5lbDo6Q29ubmVjdFN0YXR1cyBXZWJTb2NrZXRD
aGFubmVsOjpjb25uZWN0KGNvbnN0IFVSTCYgcmVxdWVzdGVkVVIKICAgICBpZiAobV9pZGVudGlm
aWVyKQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYlNvY2tl
dChtX2RvY3VtZW50LmdldCgpLCBtX2lkZW50aWZpZXIsIHZhbGlkYXRlZFVSTC0+dXJsKTsKIAot
ICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50LT5mcmFtZSgpKSB7CisgICAgYXV0byog
ZnJhbWUgPSBtX2RvY3VtZW50LT5mcmFtZSgpOworICAgIGF1dG8qIHBhZ2UgPSBtX2RvY3VtZW50
LT5wYWdlKCk7CisgICAgaWYgKGZyYW1lICYmIHBhZ2UpIHsKICAgICAgICAgcmVmKCk7Ci0gICAg
ICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgICAgICBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQgPSBwYWdlID8gcGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpOwogICAgICAgICBTdHJpbmcgcGFydGl0aW9uID0gbV9kb2N1bWVudC0+
ZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24oKTsKLSAgICAgICAgbV9oYW5kbGUgPSBtX3NvY2tldFBy
b3ZpZGVyLT5jcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUobV9oYW5kc2hha2UtPnVybCgpLCAqdGhp
cywgc2Vzc2lvbklELCBwYXJ0aXRpb24sIGZyYW1lLT5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4
dCgpKTsKKyAgICAgICAgbV9oYW5kbGUgPSBtX3NvY2tldFByb3ZpZGVyLT5jcmVhdGVTb2NrZXRT
dHJlYW1IYW5kbGUobV9oYW5kc2hha2UtPnVybCgpLCAqdGhpcywgcGFnZS0+c2Vzc2lvbklEKCks
IHBhcnRpdGlvbiwgZnJhbWUtPmxvYWRlcigpLm5ldHdvcmtpbmdDb250ZXh0KCkpOwogICAgIH0K
ICAgICByZXR1cm4gQ29ubmVjdFN0YXR1czo6T0s7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApp
bmRleCA4ZWQyZjg4MThhNTdiZGQ5YzBjY2YyNmViYThmNzZjMmY2NzkwMDZkLi4yMzJhZmUzOTJi
OWFlMzUzM2QxYzhlODhjMjAxNTJlMDNlNmU2NjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
QEAgLTUwNjUsMTIgKzUwNjUsNiBAQCBVUkwgRG9jdW1lbnQ6OmNvbXBsZXRlVVJMKGNvbnN0IFN0
cmluZyYgdXJsKSBjb25zdAogICAgIHJldHVybiBjb21wbGV0ZVVSTCh1cmwsIG1fYmFzZVVSTCk7
CiB9CiAKLU9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPiBEb2N1bWVudDo6c2Vzc2lvbklEKCkgY29u
c3QKLXsKLSAgICBhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpOwotICAgIHJldHVybiBwYWdlID8g
bWFrZU9wdGlvbmFsKHBhZ2UtPnNlc3Npb25JRCgpKSA6IFdURjo6bnVsbG9wdDsKLX0KLQogdm9p
ZCBEb2N1bWVudDo6c2V0UGFnZUNhY2hlU3RhdGUoUGFnZUNhY2hlU3RhdGUgc3RhdGUpCiB7CiAg
ICAgaWYgKG1fcGFnZUNhY2hlU3RhdGUgPT0gc3RhdGUpCkBAIC01MjY2LDYgKzUyNjAsNyBAQCB2
b2lkIERvY3VtZW50OjpzdG9yYWdlQmxvY2tpbmdTdGF0ZURpZENoYW5nZSgpCiAgICAgc2VjdXJp
dHlPcmlnaW4oKS5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koc2V0dGluZ3MoKS5zdG9yYWdlQmxv
Y2tpbmdQb2xpY3koKSk7CiB9CiAKKy8vIFVzZWQgb25seSBieSBXZWJLaXRMZWdhY3kuCiB2b2lk
IERvY3VtZW50Ojpwcml2YXRlQnJvd3NpbmdTdGF0ZURpZENoYW5nZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCiB7CiAgICAgaWYgKG1fbG9nZ2VyKQpAQCAtNzc4OSw3ICs3Nzg0LDggQEAgTG9n
Z2VyJiBEb2N1bWVudDo6bG9nZ2VyKCkKIHsKICAgICBpZiAoIW1fbG9nZ2VyKSB7CiAgICAgICAg
IG1fbG9nZ2VyID0gTG9nZ2VyOjpjcmVhdGUodGhpcyk7Ci0gICAgICAgIG1fbG9nZ2VyLT5zZXRF
bmFibGVkKHRoaXMsIHNlc3Npb25JRCgpICYmIHNlc3Npb25JRCgpLT5pc0Fsd2F5c09uTG9nZ2lu
Z0FsbG93ZWQoKSk7CisgICAgICAgIGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CisgICAgICAg
IG1fbG9nZ2VyLT5zZXRFbmFibGVkKHRoaXMsIHBhZ2UgJiYgcGFnZS0+c2Vzc2lvbklEKCkuaXNB
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkpOwogICAgICAgICBtX2xvZ2dlci0+YWRkT2JzZXJ2ZXIo
KnRoaXMpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA4YzQ2ZDdlNzhhY2Q2YWNj
MWEwMDhkYTNjOThhNDFmNmM1NGE2YzMyLi43MDUzOGM1OWIzODhjZmJlOGY1NzI4NjA5NDA5NjI5
N2Q1NGRmMzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNjgzLDcgKzY4Myw2IEBAIHB1Ymxp
YzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFVSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBj
b25zdCBmaW5hbDsKICAgICBVUkwgY29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiwgY29uc3QgVVJM
JiBiYXNlVVJMT3ZlcnJpZGUpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFBB
TDo6U2Vzc2lvbklEPiBzZXNzaW9uSUQoKSBjb25zdDsKIAogICAgIFN0cmluZyB1c2VyQWdlbnQo
Y29uc3QgVVJMJikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAKaW5kZXggYTdhOTIyYTViZjI2MzlkNTY4NTA3ZTAzODcyMTAzODAwNDE0ZWEw
Yy4uNTk3YWNjYmRlMzcxNzI1ZTFlNzQ5MDZmMDA1MTRlZTAyN2M4OWUyMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTQwNyw3ICs0MDcsOCBAQCBPcHRp
b25hbDxBZENsaWNrQXR0cmlidXRpb24+IEhUTUxBbmNob3JFbGVtZW50OjpwYXJzZUFkQ2xpY2tB
dHRyaWJ1dGlvbigpIGNvbnN0CiAgICAgdXNpbmcgU291cmNlID0gQWRDbGlja0F0dHJpYnV0aW9u
OjpTb3VyY2U7CiAgICAgdXNpbmcgRGVzdGluYXRpb24gPSBBZENsaWNrQXR0cmlidXRpb246OkRl
c3RpbmF0aW9uOwogCi0gICAgaWYgKCFkb2N1bWVudCgpLnNlc3Npb25JRCgpIHx8IGRvY3VtZW50
KCkuc2Vzc2lvbklEKCktPmlzRXBoZW1lcmFsKCkKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQo
KS5wYWdlKCk7CisgICAgaWYgKCFwYWdlIHx8IHBhZ2UtPnNlc3Npb25JRCgpLmlzRXBoZW1lcmFs
KCkKICAgICAgICAgfHwgIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
YWRDbGlja0F0dHJpYnV0aW9uRW5hYmxlZCgpCiAgICAgICAgIHx8ICFVc2VyR2VzdHVyZUluZGlj
YXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCA0YTc2NThk
MmMyZTBhYTY0YjgxMWNmZjcyMmJmZDI5OGEyMzJkMGQzLi45NDFiOWY5NGU0NDNiMjIwNDMzODYy
ZGVmZGIwYmViZjFiNDRjYmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAKQEAgLTk2NywxNSArOTY3LDExIEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmNvbnRpbnVl
QWZ0ZXJDb250ZW50UG9saWN5KFBvbGljeUFjdGlvbiBwb2xpY3kpCiAgICAgICAgIC8vIERvd25s
b2FkIG1heSB1c2UgdGhpcyBrbm93bGVkZ2UgZm9yIHB1cnBvc2VzIHVucmVsYXRlZCB0byBjb29r
aWVzLCBub3RhYmx5IGZvciBzZXR0aW5nIGZpbGUgcXVhcmFudGluZSBkYXRhLgogICAgICAgICBm
cmFtZUxvYWRlcigpLT5zZXRPcmlnaW5hbFVSTEZvckRvd25sb2FkUmVxdWVzdChtX3JlcXVlc3Qp
OwogCi0gICAgICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEOjpk
ZWZhdWx0U2Vzc2lvbklEKCk7Ci0gICAgICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnBhZ2Uo
KSkKLSAgICAgICAgICAgIHNlc3Npb25JRCA9IGZyYW1lKCktPnBhZ2UoKS0+c2Vzc2lvbklEKCk7
Ci0KICAgICAgICAgaWYgKG1fcmVxdWVzdC51cmwoKS5wcm90b2NvbElzRGF0YSgpKSB7CiAgICAg
ICAgICAgICAvLyBXZSBkZWNvZGUgZGF0YSBVUkwgaW50ZXJuYWxseSwgdGhlcmUgaXMgbm8gcmVz
b3VyY2UgbG9hZCB0byBjb252ZXJ0LgogICAgICAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50
KCkuc3RhcnREb3dubG9hZChtX3JlcXVlc3QpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9h
ZCh0aGlzLCBzZXNzaW9uSUQsIG1fcmVxdWVzdCwgbV9yZXNwb25zZSk7CisgICAgICAgICAgICBm
cmFtZUxvYWRlcigpLT5jbGllbnQoKS5jb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQo
dGhpcywgbV9yZXF1ZXN0LCBtX3Jlc3BvbnNlKTsKIAogICAgICAgICAvLyBUaGUgbWFpbiByZXNv
dXJjZSBtaWdodCBiZSBsb2FkaW5nIGZyb20gdGhlIG1lbW9yeSBjYWNoZSwgb3IgaXRzIGxvYWRl
ciBtaWdodCBoYXZlIGdvbmUgbWlzc2luZy4KICAgICAgICAgaWYgKG1haW5SZXNvdXJjZUxvYWRl
cigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRl
ckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCAyZjZkMjI1MmUxZDE4NzIwM2Y5NTQ5ZTY1ZTJlOTljZGJmZDYwODMxLi5lYzFhNmE3
YmE2MjhmYzc5YTc2NjllYTI0MmU1YWQ4YTk2NTViNGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTU2LDcgKzU2LDcgQEAgY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBGcmFtZUxvYWRl
ckNsaWVudCB7CiAgICAgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQyKCkgZmluYWwgeyB9CiAgICAg
dm9pZCBkZXRhY2hlZEZyb21QYXJlbnQzKCkgZmluYWwgeyB9CiAKLSAgICB2b2lkIGNvbnZlcnRN
YWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciosIFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWwg
eyB9CisgICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRM
b2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikg
ZmluYWwgeyB9CiAKICAgICB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVu
c2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgZmlu
YWwgeyB9CiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShEb2N1bWVudExvYWRl
ciosIHVuc2lnbmVkIGxvbmcpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDdmNjgwMTllMGQ5NmQ4NmM2Y2My
NDczZWQ0M2UzNzJkNTVmN2IzNjcuLjVkZmY2MTAwNTQ0NTVkZTQ1MzZlZmU1MGNmMTdkZDAxYmVk
NmYyN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0y
ODgsNyArMjg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEJlY29t
ZUZyYW1lc2V0KGJvb2wpID0gMDsgLy8gQ2FuIGNoYW5nZSBkdWUgdG8gbmF2aWdhdGlvbiBvciBE
T00gbW9kaWZpY2F0aW9uLgogCiAgICAgdmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2Fk
KERvY3VtZW50TG9hZGVyKiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbnZlcnRN
YWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSA9IDA7CiAKICAgICB2aXJ0dWFsIFJl
ZlB0cjxGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBI
VE1MRnJhbWVPd25lckVsZW1lbnQmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKSA9IDA7CiAgICAg
dmlydHVhbCBSZWZQdHI8V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxQ
bHVnSW5FbGVtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYsIGJvb2wgbG9hZE1hbnVhbGx5KSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVy
LmNwcAppbmRleCBmZTEyZWMxOTYxYTdkYWEzOGQ1NzIxMDE5YTY5ZWMyYjIyNTQ5ZDFkLi42YjRm
NDlmZmFiZmY4NGM2ODA5MzAyZDI1ZWYxZWEwNGZjYWRkNTk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE4OCwx
NiArMTg4LDYgQEAgRnJhbWUqIENhY2hlZFJlc291cmNlTG9hZGVyOjpmcmFtZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fZG9jdW1lbnRMb2FkZXIgPyBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpIDog
bnVsbHB0cjsKIH0KIAotUEFMOjpTZXNzaW9uSUQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNlc3Np
b25JRCgpIGNvbnN0Ci17Ci0gICAgYXV0byBzZXNzaW9uSUQgPSBQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpOwotICAgIGlmIChhdXRvKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkpIHsK
LSAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBmcmFtZS0+cGFnZSgpKQotICAgICAgICAgICAgc2Vz
c2lvbklEID0gcGFnZS0+c2Vzc2lvbklEKCk7Ci0gICAgfQotICAgIHJldHVybiBzZXNzaW9uSUQ7
Ci19Ci0KIFJlc291cmNlRXJyb3JPcjxDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4+
IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCkKIHsKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUoKSkgewpA
QCAtMjQ3LDcgKzIzNyw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hl
ZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0CiAKICAgICBhdXRvJiBt
ZW1vcnlDYWNoZSA9IE1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKTsKICAgICBpZiAocmVxdWVzdC5h
bGxvd3NDYWNoaW5nKCkpIHsKLSAgICAgICAgaWYgKENhY2hlZFJlc291cmNlKiBleGlzdGluZyA9
IG1lbW9yeUNhY2hlLnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgp
LCBzZXNzaW9uSUQoKSkpIHsKKyAgICAgICAgaWYgKENhY2hlZFJlc291cmNlKiBleGlzdGluZyA9
IG1lbW9yeUNhY2hlLnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgp
LCBwYWdlLnNlc3Npb25JRCgpKSkgewogICAgICAgICAgICAgaWYgKGlzPENhY2hlZENTU1N0eWxl
U2hlZXQ+KCpleGlzdGluZykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENhY2hl
ZENTU1N0eWxlU2hlZXQ+KGV4aXN0aW5nKTsKICAgICAgICAgICAgIG1lbW9yeUNhY2hlLnJlbW92
ZSgqZXhpc3RpbmcpOwpAQCAtNjg3LDE0ICs2NzcsMTQgQEAgc3RhdGljIGlubGluZSBib29sIGlz
UmVzb3VyY2VTdWl0YWJsZUZvckRpcmVjdFJldXNlKGNvbnN0IENhY2hlZFJlc291cmNlJiByZXNv
dXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVz
b3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjp1cGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJy
ZW50UmVxdWVzdChjb25zdCBDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIENhY2hlZFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0
IENvb2tpZUphciogY29va2llSmFyKQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3Vy
Y2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjp1cGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50
UmVxdWVzdChjb25zdCBDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIENhY2hlZFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IENv
b2tpZUphciYgY29va2llSmFyKQogewogICAgIGlmICghaXNSZXNvdXJjZVN1aXRhYmxlRm9yRGly
ZWN0UmV1c2UocmVzb3VyY2UsIHJlcXVlc3QpKSB7CiAgICAgICAgIHJlcXVlc3Quc2V0Q2FjaGlu
Z1BvbGljeShDYWNoaW5nUG9saWN5OjpEaXNhbGxvd0NhY2hpbmcpOwotICAgICAgICByZXR1cm4g
bG9hZFJlc291cmNlKHJlc291cmNlLnR5cGUoKSwgV1RGTW92ZShyZXF1ZXN0KSwgY29va2llSmFy
KTsKKyAgICAgICAgcmV0dXJuIGxvYWRSZXNvdXJjZShyZXNvdXJjZS50eXBlKCksIHNlc3Npb25J
RCwgV1RGTW92ZShyZXF1ZXN0KSwgY29va2llSmFyKTsKICAgICB9CiAKLSAgICBhdXRvIHJlc291
cmNlSGFuZGxlID0gY3JlYXRlUmVzb3VyY2UocmVzb3VyY2UudHlwZSgpLCBXVEZNb3ZlKHJlcXVl
c3QpLCBzZXNzaW9uSUQsIGNvb2tpZUphcik7CisgICAgYXV0byByZXNvdXJjZUhhbmRsZSA9IGNy
ZWF0ZVJlc291cmNlKHJlc291cmNlLnR5cGUoKSwgV1RGTW92ZShyZXF1ZXN0KSwgc2Vzc2lvbklE
LCAmY29va2llSmFyKTsKICAgICByZXNvdXJjZUhhbmRsZS0+bG9hZEZyb20ocmVzb3VyY2UpOwog
ICAgIHJldHVybiByZXNvdXJjZUhhbmRsZTsKIH0KQEAgLTc4Nyw2ICs3NzcsMTMgQEAgc3RhdGlj
IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb25Gb3JUeXBlKENhY2hlZFJlc291
cmNlOjpUeXBlIHR5cGUpCiAKIFJlc291cmNlRXJyb3JPcjxDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSZXNvdXJjZT4+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
Rm9yUHJlbG9hZCBmb3JQcmVsb2FkLCBEZWZlck9wdGlvbiBkZWZlcikKIHsKKyAgICBpZiAoIWZy
YW1lKCkgfHwgIWZyYW1lKCktPnBhZ2UoKSkgeworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJyZXF1ZXN0UmVzb3VyY2U6IGZhaWxlZCBiZWNhdXNlIG5vIGZyYW1lIG9yIHBhZ2UiKTsK
KyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFJlc291cmNlRXJyb3IgeyBlcnJvckRvbWFp
bldlYktpdEludGVybmFsLCAwLCByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpLCAiSW52
YWxpZCBsb2FkZXIgc3RhdGUiX3MgfSk7CisgICAgfQorICAgIGF1dG8mIGZyYW1lID0gKnRoaXMt
PmZyYW1lKCk7CisgICAgYXV0byYgcGFnZSA9ICpmcmFtZS5wYWdlKCk7CisKICAgICByZXF1ZXN0
LnNldERlc3RpbmF0aW9uSWZOb3RTZXQoZGVzdGluYXRpb25Gb3JUeXBlKHR5cGUpKTsKIAogICAg
IC8vIEVudHJ5IHBvaW50IHRvIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNtYWluLWZl
dGNoLgpAQCAtODAwLDcgKzc5Nyw3IEBAIFJlc291cmNlRXJyb3JPcjxDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRSZXNvdXJjZT4+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1CiAgICAgaWYg
KERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCiAgICAgICAgIHJlcXVlc3Qu
dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKCpkb2N1bWVudCk7CiAKLSAgICBpZiAoSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW50ZXJjZXB0UmVxdWVzdChmcmFtZSgpLCByZXF1
ZXN0LnJlc291cmNlUmVxdWVzdCgpKSkKKyAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsSW50ZXJjZXB0UmVxdWVzdCgmZnJhbWUsIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkp
KQogICAgICAgICByZXF1ZXN0LnNldENhY2hpbmdQb2xpY3koQ2FjaGluZ1BvbGljeTo6RGlzYWxs
b3dDYWNoaW5nKTsKIAogICAgIHJlcXVlc3QudXBkYXRlUmVmZXJyZXJQb2xpY3koZG9jdW1lbnQo
KSA/IGRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCkgOiBSZWZlcnJlclBvbGljeTo6Tm9SZWZl
cnJlcldoZW5Eb3duZ3JhZGUpOwpAQCAtODA5LDcgKzgwNiw3IEBAIFJlc291cmNlRXJyb3JPcjxD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4+IENhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1CiAgICAgTE9HKFJlc291cmNlTG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0UmVzb3VyY2UgJyUuMjU1cycsIGNoYXJzZXQgJyVzJywgcHJpb3JpdHk9JWQsIGZvclBy
ZWxvYWQ9JXUiLCB1cmwuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkubGF0aW4xKCku
ZGF0YSgpLCByZXF1ZXN0LmNoYXJzZXQoKS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3QucHJpb3Jp
dHkoKSA/IHN0YXRpY19jYXN0PGludD4ocmVxdWVzdC5wcmlvcml0eSgpLnZhbHVlKCkpIDogLTEs
IGZvclByZWxvYWQgPT0gRm9yUHJlbG9hZDo6WWVzKTsKIAogICAgIGlmICghdXJsLmlzVmFsaWQo
KSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXF1ZXN0UmVzb3VyY2U6IFVS
TCBpcyBpbnZhbGlkIChmcmFtZSA9ICVwKSIsIGZyYW1lKCkpOworICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJyZXF1ZXN0UmVzb3VyY2U6IFVSTCBpcyBpbnZhbGlkIChmcmFtZSA9ICVw
KSIsICZmcmFtZSk7CiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChSZXNvdXJjZUVycm9y
IHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgdXJsLCAiVVJMIGlzIGludmFsaWQiX3Mg
fSk7CiAgICAgfQogCkBAIC04MTcsMjIgKzgxNCwyMSBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dQogCiAgICAgLy8gV2UgYXJlIHBhc3NpbmcgdXJsIGFzIHdlbGwgYXMgcmVxdWVzdCwgYXMgcmVx
dWVzdCB1cmwgbWF5IGNvbnRhaW4gYSBmcmFnbWVudCBpZGVudGlmaWVyLgogICAgIGlmICghY2Fu
UmVxdWVzdCh0eXBlLCB1cmwsIHJlcXVlc3QsIGZvclByZWxvYWQpKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInJlcXVlc3RSZXNvdXJjZTogTm90IGFsbG93ZWQgdG8gcmVxdWVz
dCByZXNvdXJjZSAoZnJhbWUgPSAlcCkiLCBmcmFtZSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgicmVxdWVzdFJlc291cmNlOiBOb3QgYWxsb3dlZCB0byByZXF1ZXN0IHJlc291
cmNlIChmcmFtZSA9ICVwKSIsICZmcmFtZSk7CiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChSZXNvdXJjZUVycm9yIHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgdXJsLCAiTm90
IGFsbG93ZWQgdG8gcmVxdWVzdCByZXNvdXJjZSJfcywgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNj
ZXNzQ29udHJvbCB9KTsKICAgICB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQot
ICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnBhZ2UoKSAmJiBtX2RvY3VtZW50TG9hZGVyKSB7
CisgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpIHsKICAgICAgICAgY29uc3QgYXV0byYgcmVzb3Vy
Y2VSZXF1ZXN0ID0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKTsKLSAgICAgICAgYXV0byogcGFn
ZSA9IGZyYW1lKCktPnBhZ2UoKTsKLSAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNv
bnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChyZXNvdXJjZVJl
cXVlc3QudXJsKCksIENvbnRlbnRFeHRlbnNpb25zOjp0b1Jlc291cmNlVHlwZSh0eXBlKSwgKm1f
ZG9jdW1lbnRMb2FkZXIpOworICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLnVzZXJDb250ZW50
UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocmVzb3VyY2VSZXF1ZXN0
LnVybCgpLCBDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5cGUodHlwZSksICptX2RvY3Vt
ZW50TG9hZGVyKTsKICAgICAgICAgYm9vbCBibG9ja2VkTG9hZCA9IHJlc3VsdHMuc3VtbWFyeS5i
bG9ja2VkTG9hZDsKICAgICAgICAgYm9vbCBtYWRlSFRUUFMgPSByZXN1bHRzLnN1bW1hcnkubWFk
ZUhUVFBTOwotICAgICAgICByZXF1ZXN0LmFwcGx5UmVzdWx0cyhXVEZNb3ZlKHJlc3VsdHMpLCBw
YWdlKTsKKyAgICAgICAgcmVxdWVzdC5hcHBseVJlc3VsdHMoV1RGTW92ZShyZXN1bHRzKSwgJnBh
Z2UpOwogICAgICAgICBpZiAoYmxvY2tlZExvYWQpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoInJlcXVlc3RSZXNvdXJjZTogUmVzb3VyY2UgYmxvY2tlZCBieSBjb250ZW50
IGJsb2NrZXIgKGZyYW1lID0gJXApIiwgZnJhbWUoKSk7CisgICAgICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJyZXF1ZXN0UmVzb3VyY2U6IFJlc291cmNlIGJsb2NrZWQgYnkgY29udGVu
dCBibG9ja2VyIChmcmFtZSA9ICVwKSIsICZmcmFtZSk7CiAgICAgICAgICAgICBpZiAodHlwZSA9
PSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6TWFpblJlc291cmNlKSB7Ci0gICAgICAgICAgICAgICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlID0gY3JlYXRlUmVz
b3VyY2UodHlwZSwgV1RGTW92ZShyZXF1ZXN0KSwgcGFnZS0+c2Vzc2lvbklEKCksICZwYWdlLT5j
b29raWVKYXIoKSk7CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+IHJlc291cmNlID0gY3JlYXRlUmVzb3VyY2UodHlwZSwgV1RGTW92ZShyZXF1ZXN0
KSwgcGFnZS5zZXNzaW9uSUQoKSwgJnBhZ2UuY29va2llSmFyKCkpOwogICAgICAgICAgICAgICAg
IEFTU0VSVChyZXNvdXJjZSk7CiAgICAgICAgICAgICAgICAgcmVzb3VyY2UtPmVycm9yKENhY2hl
ZFJlc291cmNlOjpTdGF0dXM6OkxvYWRFcnJvcik7CiAgICAgICAgICAgICAgICAgcmVzb3VyY2Ut
PnNldFJlc291cmNlRXJyb3IoUmVzb3VyY2VFcnJvcihDb250ZW50RXh0ZW5zaW9uczo6V2ViS2l0
Q29udGVudEJsb2NrZXJEb21haW4sIDAsIHJlc291cmNlUmVxdWVzdC51cmwoKSwgV0VCX1VJX1NU
UklORygiVGhlIFVSTCB3YXMgYmxvY2tlZCBieSBhIGNvbnRlbnQgYmxvY2tlciIsICJXZWJLaXRF
cnJvckJsb2NrZWRCeUNvbnRlbnRCbG9ja2VyIGRlc2NyaXB0aW9uIikpKTsKQEAgLTg1MSwxMyAr
ODQ3LDEzIEBAIFJlc291cmNlRXJyb3JPcjxDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNv
dXJjZT4+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1CiAgICAgfQogI2VuZGlmCiAKLSAgICBp
ZiAoZnJhbWUoKSAmJiBtX2RvY3VtZW50TG9hZGVyICYmICFtX2RvY3VtZW50TG9hZGVyLT5jdXN0
b21IZWFkZXJGaWVsZHMoKS5pc0VtcHR5KCkpIHsKKyAgICBpZiAobV9kb2N1bWVudExvYWRlciAm
JiAhbV9kb2N1bWVudExvYWRlci0+Y3VzdG9tSGVhZGVyRmllbGRzKCkuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIGJvb2wgc2FtZU9yaWdpblJlcXVlc3QgPSBmYWxzZTsKICAgICAgICAgYXV0byByZXF1
ZXN0ZWRPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVybCk7CiAgICAgICAgIGlmICh0
eXBlID09IENhY2hlZFJlc291cmNlOjpUeXBlOjpNYWluUmVzb3VyY2UpIHsKLSAgICAgICAgICAg
IGlmIChmcmFtZSgpLT5pc01haW5GcmFtZSgpKQorICAgICAgICAgICAgaWYgKGZyYW1lLmlzTWFp
bkZyYW1lKCkpCiAgICAgICAgICAgICAgICAgc2FtZU9yaWdpblJlcXVlc3QgPSB0cnVlOwotICAg
ICAgICAgICAgZWxzZSBpZiAoYXV0byogdG9wRG9jdW1lbnQgPSBmcmFtZSgpLT5tYWluRnJhbWUo
KS5kb2N1bWVudCgpKQorICAgICAgICAgICAgZWxzZSBpZiAoYXV0byogdG9wRG9jdW1lbnQgPSBm
cmFtZS5tYWluRnJhbWUoKS5kb2N1bWVudCgpKQogICAgICAgICAgICAgICAgIHNhbWVPcmlnaW5S
ZXF1ZXN0ID0gdG9wRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBv
cnQocmVxdWVzdGVkT3JpZ2luLmdldCgpKTsKICAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudCgp
KSB7CiAgICAgICAgICAgICBzYW1lT3JpZ2luUmVxdWVzdCA9IGRvY3VtZW50KCktPnRvcERvY3Vt
ZW50KCkuc2VjdXJpdHlPcmlnaW4oKS5pc1NhbWVTY2hlbWVIb3N0UG9ydChyZXF1ZXN0ZWRPcmln
aW4uZ2V0KCkpCkBAIC04ODgsMTQgKzg4NCwxNCBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQog
ICAgICAgICByZXF1ZXN0LnNldERvbWFpbkZvckNhY2hlUGFydGl0aW9uKCpkb2N1bWVudCgpKTsK
IAogICAgIGlmIChyZXF1ZXN0LmFsbG93c0NhY2hpbmcoKSkKLSAgICAgICAgcmVzb3VyY2UgPSBt
ZW1vcnlDYWNoZS5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwg
c2Vzc2lvbklEKCkpOworICAgICAgICByZXNvdXJjZSA9IG1lbW9yeUNhY2hlLnJlc291cmNlRm9y
UmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBwYWdlLnNlc3Npb25JRCgpKTsKIAog
ICAgIGlmIChyZXNvdXJjZSAmJiByZXF1ZXN0LmlzTGlua1ByZWxvYWQoKSAmJiAhcmVzb3VyY2Ut
PmlzTGlua1ByZWxvYWQoKSkKICAgICAgICAgcmVzb3VyY2UtPnNldExpbmtQcmVsb2FkKCk7CiAK
LSAgICBsb2dNZW1vcnlDYWNoZVJlc291cmNlUmVxdWVzdChmcmFtZSgpLCBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6Om1lbW9yeUNhY2hlVXNhZ2VLZXkoKSwgcmVzb3VyY2UgPyBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OmluTWVtb3J5Q2FjaGVLZXkoKSA6IERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm90
SW5NZW1vcnlDYWNoZUtleSgpKTsKKyAgICBsb2dNZW1vcnlDYWNoZVJlc291cmNlUmVxdWVzdCgm
ZnJhbWUsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVtb3J5Q2FjaGVVc2FnZUtleSgpLCByZXNv
dXJjZSA/IERpYWdub3N0aWNMb2dnaW5nS2V5czo6aW5NZW1vcnlDYWNoZUtleSgpIDogRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpub3RJbk1lbW9yeUNhY2hlS2V5KCkpOwogCi0gICAgYXV0byogY29v
a2llSmFyID0gZG9jdW1lbnQoKSAmJiBkb2N1bWVudCgpLT5wYWdlKCkgPyAmZG9jdW1lbnQoKS0+
cGFnZSgpLT5jb29raWVKYXIoKSA6IG51bGxwdHI7CisgICAgYXV0byYgY29va2llSmFyID0gcGFn
ZS5jb29raWVKYXIoKTsKIAogICAgIFJldmFsaWRhdGlvblBvbGljeSBwb2xpY3kgPSBkZXRlcm1p
bmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdCwgcmVzb3VyY2UuZ2V0KCksIGZvclBy
ZWxvYWQsIGRlZmVyKTsKICAgICBzd2l0Y2ggKHBvbGljeSkgewpAQCAtOTA0LDEyICs5MDAsMTIg
QEAgUmVzb3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPj4g
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXUKICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgY2Fz
ZSBMb2FkOgogICAgICAgICBpZiAocmVzb3VyY2UpCi0gICAgICAgICAgICBsb2dNZW1vcnlDYWNo
ZVJlc291cmNlUmVxdWVzdChmcmFtZSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lbW9yeUNh
Y2hlRW50cnlEZWNpc2lvbktleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnVudXNlZEtleSgp
KTsKLSAgICAgICAgcmVzb3VyY2UgPSBsb2FkUmVzb3VyY2UodHlwZSwgV1RGTW92ZShyZXF1ZXN0
KSwgY29va2llSmFyKTsKKyAgICAgICAgICAgIGxvZ01lbW9yeUNhY2hlUmVzb3VyY2VSZXF1ZXN0
KCZmcmFtZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjptZW1vcnlDYWNoZUVudHJ5RGVjaXNpb25L
ZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1bnVzZWRLZXkoKSk7CisgICAgICAgIHJlc291
cmNlID0gbG9hZFJlc291cmNlKHR5cGUsIHBhZ2Uuc2Vzc2lvbklEKCksIFdURk1vdmUocmVxdWVz
dCksIGNvb2tpZUphcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUmV2YWxpZGF0ZToKICAg
ICAgICAgaWYgKHJlc291cmNlKQotICAgICAgICAgICAgbG9nTWVtb3J5Q2FjaGVSZXNvdXJjZVJl
cXVlc3QoZnJhbWUoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjptZW1vcnlDYWNoZUVudHJ5RGVj
aXNpb25LZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXZhbGlkYXRpbmdLZXkoKSk7Cisg
ICAgICAgICAgICBsb2dNZW1vcnlDYWNoZVJlc291cmNlUmVxdWVzdCgmZnJhbWUsIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6bWVtb3J5Q2FjaGVFbnRyeURlY2lzaW9uS2V5KCksIERpYWdub3N0aWNM
b2dnaW5nS2V5czo6cmV2YWxpZGF0aW5nS2V5KCkpOwogICAgICAgICByZXNvdXJjZSA9IHJldmFs
aWRhdGVSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCAqcmVzb3VyY2UpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFVzZToKQEAgLTkxOSwxNCArOTE1LDE0IEBAIFJlc291cmNlRXJyb3JPcjxD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4+IENhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1CiAgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFdURk1vdmUoKmVy
cm9yKSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHNob3VsZFVwZGF0ZUNhY2hlZFJlc291cmNl
V2l0aEN1cnJlbnRSZXF1ZXN0KCpyZXNvdXJjZSwgcmVxdWVzdCkpIHsKLSAgICAgICAgICAgIHJl
c291cmNlID0gdXBkYXRlQ2FjaGVkUmVzb3VyY2VXaXRoQ3VycmVudFJlcXVlc3QoKnJlc291cmNl
LCBXVEZNb3ZlKHJlcXVlc3QpLCBkb2N1bWVudCgpLT5wYWdlKCktPnNlc3Npb25JRCgpLCBjb29r
aWVKYXIpOworICAgICAgICAgICAgcmVzb3VyY2UgPSB1cGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhD
dXJyZW50UmVxdWVzdCgqcmVzb3VyY2UsIFdURk1vdmUocmVxdWVzdCksIHBhZ2Uuc2Vzc2lvbklE
KCksIGNvb2tpZUphcik7CiAgICAgICAgICAgICBpZiAocmVzb3VyY2UtPnN0YXR1cygpICE9IENh
Y2hlZFJlc291cmNlOjpTdGF0dXM6OkNhY2hlZCkKICAgICAgICAgICAgICAgICBwb2xpY3kgPSBM
b2FkOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgUmVzb3VyY2VFcnJvciBlcnJvcjsK
ICAgICAgICAgICAgIGlmICghc2hvdWxkQ29udGludWVBZnRlck5vdGlmeWluZ0xvYWRlZEZyb21N
ZW1vcnlDYWNoZShyZXF1ZXN0LCAqcmVzb3VyY2UsIGVycm9yKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQoV1RGTW92ZShlcnJvcikpOwotICAgICAgICAgICAgbG9nTWVt
b3J5Q2FjaGVSZXNvdXJjZVJlcXVlc3QoZnJhbWUoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpt
ZW1vcnlDYWNoZUVudHJ5RGVjaXNpb25LZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1c2Vk
S2V5KCkpOworICAgICAgICAgICAgbG9nTWVtb3J5Q2FjaGVSZXNvdXJjZVJlcXVlc3QoJmZyYW1l
LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lbW9yeUNhY2hlRW50cnlEZWNpc2lvbktleSgpLCBE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OnVzZWRLZXkoKSk7CiAgICAgICAgICAgICBsb2FkVGltaW5n
LnNldFJlc3BvbnNlRW5kKE1vbm90b25pY1RpbWU6Om5vdygpKTsKIAogICAgICAgICAgICAgbWVt
b3J5Q2FjaGUucmVzb3VyY2VBY2Nlc3NlZCgqcmVzb3VyY2UpOwpAQCAtOTM4LDcgKzkzNCw3IEBA
IFJlc291cmNlRXJyb3JPcjxDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1CiAgICAgICAgICAgICAgICAgICAgIGRvd25jYXN0PENh
Y2hlZFJhd1Jlc291cmNlPihyZXNvdXJjZS5nZXQoKSktPmZpbmlzaGVkVGltaW5nRm9yV29ya2Vy
TG9hZChXVEZNb3ZlKHJlc291cmNlVGltaW5nKSk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGluaXRpYXRvckNvbnRleHQgPT0gSW5pdGlhdG9y
Q29udGV4dDo6RG9jdW1lbnQpOwotICAgICAgICAgICAgICAgICAgICBtX3Jlc291cmNlVGltaW5n
SW5mby5zdG9yZVJlc291cmNlVGltaW5nSW5pdGlhdG9ySW5mb3JtYXRpb24ocmVzb3VyY2UsIHJl
cXVlc3QuaW5pdGlhdG9yTmFtZSgpLCBmcmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9y
ZXNvdXJjZVRpbWluZ0luZm8uc3RvcmVSZXNvdXJjZVRpbWluZ0luaXRpYXRvckluZm9ybWF0aW9u
KHJlc291cmNlLCByZXF1ZXN0LmluaXRpYXRvck5hbWUoKSwgJmZyYW1lKTsKICAgICAgICAgICAg
ICAgICAgICAgbV9yZXNvdXJjZVRpbWluZ0luZm8uYWRkUmVzb3VyY2VUaW1pbmcoKnJlc291cmNl
LmdldCgpLCAqZG9jdW1lbnQoKSwgV1RGTW92ZShyZXNvdXJjZVRpbWluZykpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTEwMDIsNyArOTk4LDYgQEAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXZhbGlkYXRl
UmVzb3VyY2UoQ2EKICAgICBBU1NFUlQoIW1lbW9yeUNhY2hlLmRpc2FibGVkKCkpOwogICAgIEFT
U0VSVChyZXNvdXJjZS5jYW5Vc2VDYWNoZVZhbGlkYXRvcigpKTsKICAgICBBU1NFUlQoIXJlc291
cmNlLnJlc291cmNlVG9SZXZhbGlkYXRlKCkpOwotICAgIEFTU0VSVChyZXNvdXJjZS5zZXNzaW9u
SUQoKSA9PSBzZXNzaW9uSUQoKSk7CiAgICAgQVNTRVJUKHJlc291cmNlLmFsbG93c0NhY2hpbmco
KSk7CiAKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gbmV3UmVzb3Vy
Y2UgPSBjcmVhdGVSZXNvdXJjZShyZXNvdXJjZS50eXBlKCksIFdURk1vdmUocmVxdWVzdCksIHJl
c291cmNlLnNlc3Npb25JRCgpLCByZXNvdXJjZS5jb29raWVKYXIoKSk7CkBAIC0xMDE5LDE1ICsx
MDE0LDE1IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmV2YWxpZGF0ZVJlc291cmNlKENhCiAgICAgcmV0dXJuIG5ld1Jlc291cmNl
OwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OmxvYWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBDb29raWVKYXIqIGNvb2tpZUphcikKK0Nh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
bG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgQ29va2llSmFy
JiBjb29raWVKYXIpCiB7CiAgICAgYXV0byYgbWVtb3J5Q2FjaGUgPSBNZW1vcnlDYWNoZTo6c2lu
Z2xldG9uKCk7Ci0gICAgQVNTRVJUKCFyZXF1ZXN0LmFsbG93c0NhY2hpbmcoKSB8fCAhbWVtb3J5
Q2FjaGUucmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHNlc3Np
b25JRCgpKQorICAgIEFTU0VSVCghcmVxdWVzdC5hbGxvd3NDYWNoaW5nKCkgfHwgIW1lbW9yeUNh
Y2hlLnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9u
SUQpCiAgICAgICAgIHx8IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuY2FjaGVQb2xpY3koKSA9
PSBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6RG9Ob3RVc2VBbnlDYWNoZSB8fCByZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLmNhY2hlUG9saWN5KCkgPT0gUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQ
b2xpY3k6OlJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhIHx8IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCkuY2FjaGVQb2xpY3koKSA9PSBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmVmcmVzaEFu
eUNhY2hlRGF0YSk7CiAKICAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiTG9hZGluZyBDYWNoZWRS
ZXNvdXJjZSBmb3IgJyVzJy4iLCByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpLnN0cmlu
Z0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLmxhdGluMSgpLmRhdGEoKSk7CiAKLSAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVzb3VyY2UgPSBjcmVhdGVSZXNvdXJj
ZSh0eXBlLCBXVEZNb3ZlKHJlcXVlc3QpLCBzZXNzaW9uSUQoKSwgY29va2llSmFyKTsKKyAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVzb3VyY2UgPSBjcmVhdGVSZXNv
dXJjZSh0eXBlLCBXVEZNb3ZlKHJlcXVlc3QpLCBzZXNzaW9uSUQsICZjb29raWVKYXIpOwogCiAg
ICAgaWYgKHJlc291cmNlLT5hbGxvd3NDYWNoaW5nKCkpCiAgICAgICAgIG1lbW9yeUNhY2hlLmFk
ZCgqcmVzb3VyY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaAppbmRleCA0ZTljMWEwNTBkYTQ1MTJlYzczNDRjZDZkM2NkMjA4Mjcw
OTE1MzIyLi4xNTIwNGZlNGFmZjBkNGNhMDk2MmVlNTdlNjA5ODgzMDAyYThiMjFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApA
QCAtMTI5LDcgKzEyOSw2IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25z
dCB7IHJldHVybiBtX2RvY3VtZW50LmdldCgpOyB9IC8vIENhbiBiZSBudWxsCiAgICAgdm9pZCBz
ZXREb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQpIHsgbV9kb2N1bWVudCA9IG1ha2VXZWFrUHRy
KGRvY3VtZW50KTsgfQogICAgIHZvaWQgY2xlYXJEb2N1bWVudExvYWRlcigpIHsgbV9kb2N1bWVu
dExvYWRlciA9IG51bGxwdHI7IH0KLSAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25z
dDsKIAogICAgIHZvaWQgbG9hZERvbmUoTG9hZENvbXBsZXRpb25UeXBlLCBib29sIHNob3VsZFBl
cmZvcm1Qb3N0TG9hZEFjdGlvbnMgPSB0cnVlKTsKIApAQCAtMTY4LDcgKzE2Nyw3IEBAIHByaXZh
dGU6CiAKICAgICBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVz
b3VyY2U+PiByZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENhY2hlZFJlc291
cmNlUmVxdWVzdCYmLCBGb3JQcmVsb2FkID0gRm9yUHJlbG9hZDo6Tm8sIERlZmVyT3B0aW9uID0g
RGVmZXJPcHRpb246Ok5vRGVmZXIpOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJl
c291cmNlPiByZXZhbGlkYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIENhY2hl
ZFJlc291cmNlJik7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IGxv
YWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYs
IGNvbnN0IENvb2tpZUphciopOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291
cmNlPiBsb2FkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIFBBTDo6U2Vzc2lvbklELCBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgQ29va2llSmFyJik7CiAKICAgICB2b2lkIHBy
ZXBhcmVGZXRjaChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7
CiAgICAgdm9pZCB1cGRhdGVIVFRQUmVxdWVzdEhlYWRlcnMoQ2FjaGVkUmVzb3VyY2U6OlR5cGUs
IENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwpAQCAtMTc5LDcgKzE3OCw3IEBAIHByaXZhdGU6CiAg
ICAgUmV2YWxpZGF0aW9uUG9saWN5IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeShDYWNoZWRS
ZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiwgQ2FjaGVkUmVzb3VyY2UqIGV4
aXN0aW5nUmVzb3VyY2UsIEZvclByZWxvYWQsIERlZmVyT3B0aW9uKSBjb25zdDsKIAogICAgIGJv
b2wgc2hvdWxkVXBkYXRlQ2FjaGVkUmVzb3VyY2VXaXRoQ3VycmVudFJlcXVlc3QoY29uc3QgQ2Fj
aGVkUmVzb3VyY2UmLCBjb25zdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gdXBkYXRlQ2FjaGVkUmVzb3VyY2VXaXRoQ3Vy
cmVudFJlcXVlc3QoY29uc3QgQ2FjaGVkUmVzb3VyY2UmLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiwgY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBDb29raWVKYXIqKTsKKyAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gdXBkYXRlQ2FjaGVkUmVzb3VyY2VXaXRoQ3Vy
cmVudFJlcXVlc3QoY29uc3QgQ2FjaGVkUmVzb3VyY2UmLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiwgY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBDb29raWVKYXImKTsKIAogICAgIGJvb2wg
c2hvdWxkQ29udGludWVBZnRlck5vdGlmeWluZ0xvYWRlZEZyb21NZW1vcnlDYWNoZShjb25zdCBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZWRSZXNvdXJjZSYsIFJlc291cmNlRXJyb3ImKTsK
ICAgICBib29sIGNoZWNrSW5zZWN1cmVDb250ZW50KENhY2hlZFJlc291cmNlOjpUeXBlLCBjb25z
dCBVUkwmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggZWZhYTM5ZGUxMDA3MzFiOTQ5
Nzc1ZWM5MjgzMzI1NjQzNzRjZDVmNi4uNjQ2NmE2MDIyNjJlZjYzNjdmZjFiZTNjNmE5NTMxMjMx
NWZmZjZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTEwMTMsMTAgKzEwMTMsNCBAQCB2b2lk
IEZyYW1lOjpzZWxmT25seURlcmVmKCkKICAgICBkZXJlZigpOwogfQogCi1QQUw6OlNlc3Npb25J
RCBGcmFtZTo6c2Vzc2lvbklEKCkgY29uc3QKLXsKLSAgICBhdXRvKiBwYWdlID0gdGhpcy0+cGFn
ZSgpOwotICAgIHJldHVybiBwYWdlID8gcGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmgKaW5kZXggM2FkZGMyYjhiNWVlMDMyNjVjZTMwZDMzMzlhZjM5NGY3ZmEyNmUxYy4u
ZDhiOTcxNjI4NDUzMjk3NjQyNzI2ZmE1ZmYzN2IxZGRiZjgyYTg5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
aApAQCAtMzAxLDggKzMwMSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbGZPbmx5UmVmKCk7CiAg
ICAgdm9pZCBzZWxmT25seURlcmVmKCk7CiAKLSAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQo
KSBjb25zdDsKLQogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTmF2aWdhdGlvbkRpc2FibGVy
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckNvbnRhaW5lci5jcHAKaW5kZXggYjI2NTRkMDhlYmJiYzBkMjZlNWI1NmNhN2M2MTI5
ZDM0NDEzODE5Ni4uOTVkMmNlNjc0MGU2OWM2ODJiNmNmNTM4N2Y2NGI3MTJlOTI4MTlhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGFpbmVyLmNwcApAQCAtNjIyLDggKzYyMiw4IEBAIGJvb2wgU2VydmljZVdvcmtlckNv
bnRhaW5lcjo6aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3QKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgaWYgKGlzPERvY3VtZW50PigqY29udGV4dCkpIHsKLSAgICAgICAgYXV0
byBzZXNzaW9uSUQgPSBkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRleHQpLnNlc3Npb25JRCgpOwot
ICAgICAgICByZXR1cm4gc2Vzc2lvbklEICYmIHNlc3Npb25JRC0+aXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCk7CisgICAgICAgIGF1dG8qIHBhZ2UgPSBkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRl
eHQpLnBhZ2UoKTsKKyAgICAgICAgcmV0dXJuIHBhZ2UgJiYgcGFnZS0+c2Vzc2lvbklEKCkuaXNB
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IE5vIGxvZ2dp
bmcgaW5zaWRlIHNlcnZpY2Ugd29ya2VycyBmb3Igbm93LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKaW5kZXggODk0NzE5OGU3Mjk4OGViNWE0MjkyMjNhNTM3ZWY2Njg0YjI5OGU1Ni4u
OWZhMTVlMDhmNjRjNTQ5YTkwZmQxMGEyZGU3NjI1MTFkYmE5ZjhiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xNTY0LDkgKzE1NjQsOSBAQCBib29sIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjYW5DYWNoZVBhZ2UoKSBjb25zdAogICAgIHJldHVybiAhbV9mcmFtZUhhc0N1
c3RvbUNvbnRlbnRQcm92aWRlcjsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29u
dmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyICpkb2N1bWVudExv
YWRlciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9h
ZGVyICpkb2N1bWVudExvYWRlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICBtX2ZyYW1lLT5jb252ZXJ0TWFp
blJlc291cmNlTG9hZFRvRG93bmxvYWQoZG9jdW1lbnRMb2FkZXIsIHNlc3Npb25JRCwgcmVxdWVz
dCwgcmVzcG9uc2UpOworICAgIG1fZnJhbWUtPmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3du
bG9hZChkb2N1bWVudExvYWRlciwgcmVxdWVzdCwgcmVzcG9uc2UpOwogfQogCiBSZWZQdHI8RnJh
bWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25zdCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMDQ2OGI2YmEwZGZkZTgyMzQ2ZjFlMDI1ZWQz
NjliYjU2MjA4ZDQyMy4uY2RlMmFkYTMzYmI2YjI1NzQxNmM3YmQwNjdhOTVhOTcxZGFiNTUwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIxNyw3ICsyMTcsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSBmaW5hbDsKIAogICAg
IGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb252ZXJ0TWFpblJl
c291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBQQUw6OlNlc3Np
b25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYpIGZpbmFsOworICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRU
b0Rvd25sb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOwogCiAg
ICAgUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCYsIGNvbnN0IFN0cmlu
ZyYgcmVmZXJyZXIpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5jcHAKaW5kZXggYjQ4NWM1NmI0MTE2YWYxYWVhNjYzODBiNzFiYTFkMTUyNDIz
NzllNS4uMWRmZTM5ZDhmZWM3ZjdlY2U5MmE3MjM4MzI0YzVlZjY0MGYxZjFhNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMjg2LDcgKzI4
Niw3IEBAIHZvaWQgV2ViRnJhbWU6OnN0YXJ0RG93bmxvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTdGFydERvd25sb2FkKHBvbGlj
eURvd25sb2FkSUQsIHJlcXVlc3QsIHN1Z2dlc3RlZE5hbWUpLCAwKTsKIH0KIAotdm9pZCBXZWJG
cmFtZTo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBk
b2N1bWVudExvYWRlciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBX
ZWJGcmFtZTo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVy
KiBkb2N1bWVudExvYWRlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBBU1NFUlQobV9wb2xpY3lEb3dubG9h
ZElELmRvd25sb2FkSUQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5oCmluZGV4IDNkZjA1NmM5OGQ0N2Y3NWE5NDkxZjgxYzJkMmU1OWZlN2I4NDExYWIu
LjFiNGRjYmMwMDdjMmQ3MGNjY2E2YjUxZDExNzVjNDI5OGNkYmRiMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaApAQCAtOTIsNyArOTIsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBjb250aW51ZVdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90KTsKIAogICAgIHZv
aWQgc3RhcnREb3dubG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSB7IH0pOwotICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJj
ZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmKTsKKyAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChX
ZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKIAogICAgIHZvaWQgYWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1aW50
NjRfdCByZXF1ZXN0SUQgPSAwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNTM0
YmJiODk4YmIzOTBhYjQ1YzUzNDdjYTEzZThkOGQxMTAzMWNmMS4uODMyNDBiOWViYTA3ZWNjYWJh
MGQ5N2RiM2I1ZTk5YTM5MWE5MmU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC03
OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQyKCkgZmlu
YWw7CiAgICAgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQzKCkgZmluYWw7CiAKLSAgICB2b2lkIGNv
bnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlcios
IFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7CisgICAgdm9pZCBjb252ZXJ0TWFpblJl
c291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikg
ZmluYWw7CiAKICAgICB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQppbmRleCAxMzc2NjEyNmVhZGFiMWYyNmQwM2MwYTA4MjFiZjZhYjAwYTJhMDdkLi5kNWVkZDU4
ZjMzMzU5ZDA5NDNjNjMxMzA2YWMyZmExMGQ0Mjc3Mjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbQpAQCAtMzAyLDcgKzMwMiw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRl
dGFjaGVkRnJvbVBhcmVudDMoKQogICAgIG1fd2ViRnJhbWUtPl9wcml2YXRlLT53ZWJGcmFtZVZp
ZXcgPSBuaWw7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVz
b3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIsIFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1h
aW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKIHsKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1l
LmdldCgpKTsKICAgICBTdWJyZXNvdXJjZUxvYWRlciogbWFpblJlc291cmNlTG9hZGVyID0gZG9j
dW1lbnRMb2FkZXItPm1haW5SZXNvdXJjZUxvYWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IDI5Yjg1NDdjZmEzNDczNjZiZjNkZThhMDQ3ZWFjYTA1Y2QwNzA0YjkuLmQ0
ZmI1ZDc3NmM2MDM3M2ZlNjczYmMxNTFlNmYxMmE3MDc0ODhkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkZXRhY2hlZEZyb21QYXJlbnQzKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxv
YWQoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyLCBQQUw6OlNlc3Npb25JRCwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9E
b3dubG9hZChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAg
Q09NUHRyPElXZWJEb3dubG9hZERlbGVnYXRlPiBkb3dubG9hZERlbGVnYXRlOwogICAgIENPTVB0
cjxJV2ViVmlldz4gd2ViVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDFhMmQy
ZjhkZWRjYjI0N2Q2OGI2NjM1MzhiMzU0NTM2NWMwMjAzMTUuLjMzYTg2Y2U1N2ZmMTQ4NWFjMjcw
MTk3MGQ0NDBmYjIzY2QzODQ1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNjcs
NyArNjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQyKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQzKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lk
IGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRl
ciosIFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb252ZXJ0
TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBhc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVz
dCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpc3Bh
dGNoV2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBvdmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379338</attachid>
            <date>2019-09-21 22:13:12 -0700</date>
            <delta_ts>2019-09-21 23:04:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202080-20190921221310.patch</filename>
            <type>text/plain</type>
            <size>37847</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjljNzA0ZWEyN2VjYWNk
ZGViM2FhNDJhYjc3OTI2ZTRkNzA3NDBhZS4uMmY3ZmMzNTNmZGJiYjU2MDI5MGEzZTI0MjZmNWE1
MWM5NGE4MWIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTA5LTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIHVzZSBvZiBTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjA4MAorCisgICAgICAgIFJldmlld2VkIGJ5
IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgUmVkdWNlIHVzZSBvZiBTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSBpbiBXZWJLaXQuIEZhbGxpbmcgYmFjayB0byB0aGUgZGVmYXVsdCBz
ZXNzaW9uCisgICAgICAgIHdoZW4geW91IGRvbid0IGtub3cgd2hpY2ggc2Vzc2lvbiB0byB1c2Ug
aXMgbmV2ZXIgYSBnb29kIGlkZWEgYW5kIGEgcG90ZW50aWFsIHByaXZhY3kgaXNzdWUuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmxvZ2dlcik6CisgICAgICAg
ICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6cGFyc2VBZENsaWNrQXR0cmli
dXRpb24gY29uc3QpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6Y29udGludWVBZnRlckNvbnRlbnRQb2xpY3kp
OgorICAgICAgICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnVwZGF0ZUNhY2hlZFJlc291cmNlV2l0aEN1cnJlbnRSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291
cmNlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpjbGVhckRvY3VtZW50TG9hZGVy
KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6aXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkIGNvbnN0KToKKwogMjAxOS0wOS0yMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBbRlRXXSBSZXNvbHZlIGNyYXNoZXMgZm91bmQgd2hpbGUgcnVu
bmluZyBjYW52YXMgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDJlZjliYzg4ZTU1MzcxMTdiODhjOGI5NWUy
N2U3NjZjY2FhZDAxOS4uZjI2NDE1OTYwNzExMjBhZTAzNTQxYWUxM2ZhNjBjOTJiMDk3OWI4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlZHVjZSB1c2Ugb2YgU2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCkgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDIwODAKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVu
c2VuLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252
ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y29udmVy
dE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuaDoKKwogMjAxOS0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24oaU9TIDEzKSB3ZWIgdmlld3MgZG8gbm90IGRlYWwg
cHJvcGVybHkgd2l0aCB0aGVpciB3aW5kb3cncyBVSVNjZW5lIGNoYW5naW5nCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKaW5kZXggOWIxYmJlMDNmMTM0NDNmOTA3YjYxMjdhN2NhODg5Mjc2ODkw
Zjc0Ni4uMzJmZDc5MjBkNDY0ZGEyYTk1MDMxYWY1NmU1NzFkZTAxNjVjN2MwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA5LTIxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIHVzZSBvZiBTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IEFs
ZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VM
b2FkVG9Eb3dubG9hZCk6CisKIDIwMTktMDktMjAgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBzb21lIHN1cHBvcnQgZm9yIDwgaU9TIDEzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggM2Y3OWU4YTE2NzhlOTYyZTNkMDY3YmMzZTJkYmE3
N2Q1NjU4NTllYy4uOTYyZmNjOGQ1NDJjODIwM2FmMDI4OTE3YzY2OWE3YWVlODdhYTYzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA5LTIxICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIHVzZSBvZiBT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjA4MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVy
dE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE5LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgQmxvYlJlZ2lzdHJ5IG5vIGxvbmdlciBuZWVkcyBTZXNz
aW9uSURzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggZGJiMWI0NTQ5MGM2ZmY2NzNkZGVkZTZmYTdiZWI0ODU0
NjdmYTQwMi4uYWNkODgxMzE4Y2RjM2Q5OTBmMTlkZDg4MDA4ZjRmMzA3MjY4OWNhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmNwcApAQCAtMTA0LDEzICsxMDQsMTQgQEAgV2ViU29ja2V0Q2hhbm5lbDo6Q29ubmVjdFN0
YXR1cyBXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0IFVSTCYgcmVxdWVzdGVkVVIKICAg
ICBpZiAobV9pZGVudGlmaWVyKQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENyZWF0ZVdlYlNvY2tldChtX2RvY3VtZW50LmdldCgpLCBtX2lkZW50aWZpZXIsIHZhbGlkYXRl
ZFVSTC0+dXJsKTsKIAotICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2RvY3VtZW50LT5mcmFtZSgp
KSB7Ci0gICAgICAgIHJlZigpOwotICAgICAgICBQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsK
LSAgICAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEID0gcGFnZSA/IHBhZ2UtPnNlc3Npb25J
RCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKLSAgICAgICAgU3RyaW5n
IHBhcnRpdGlvbiA9IG1fZG9jdW1lbnQtPmRvbWFpbkZvckNhY2hlUGFydGl0aW9uKCk7Ci0gICAg
ICAgIG1faGFuZGxlID0gbV9zb2NrZXRQcm92aWRlci0+Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxl
KG1faGFuZHNoYWtlLT51cmwoKSwgKnRoaXMsIHNlc3Npb25JRCwgcGFydGl0aW9uLCBmcmFtZS0+
bG9hZGVyKCkubmV0d29ya2luZ0NvbnRleHQoKSk7Ci0gICAgfQorICAgIGF1dG8qIGZyYW1lID0g
bV9kb2N1bWVudC0+ZnJhbWUoKTsKKyAgICBhdXRvKiBwYWdlID0gbV9kb2N1bWVudC0+cGFnZSgp
OworICAgIGlmICghZnJhbWUgfHwgIXBhZ2UpCisgICAgICAgIHJldHVybiBDb25uZWN0U3RhdHVz
OjpLTzsKKworICAgIHJlZigpOworICAgIFN0cmluZyBwYXJ0aXRpb24gPSBtX2RvY3VtZW50LT5k
b21haW5Gb3JDYWNoZVBhcnRpdGlvbigpOworICAgIG1faGFuZGxlID0gbV9zb2NrZXRQcm92aWRl
ci0+Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKG1faGFuZHNoYWtlLT51cmwoKSwgKnRoaXMsIHBh
Z2UtPnNlc3Npb25JRCgpLCBwYXJ0aXRpb24sIGZyYW1lLT5sb2FkZXIoKS5uZXR3b3JraW5nQ29u
dGV4dCgpKTsKICAgICByZXR1cm4gQ29ubmVjdFN0YXR1czo6T0s7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCmluZGV4IDhlZDJmODgxOGE1N2JkZDljMGNjZjI2ZWJhOGY3NmMyZjY3OTAwNmQu
LjIzMmFmZTM5MmI5YWUzNTMzZDFjOGU4OGMyMDE1MmUwM2U2ZTY2NDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcApAQCAtNTA2NSwxMiArNTA2NSw2IEBAIFVSTCBEb2N1bWVudDo6Y29tcGxldGVV
UkwoY29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0CiAgICAgcmV0dXJuIGNvbXBsZXRlVVJMKHVybCwg
bV9iYXNlVVJMKTsKIH0KIAotT3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IERvY3VtZW50OjpzZXNz
aW9uSUQoKSBjb25zdAotewotICAgIGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCk7Ci0gICAgcmV0
dXJuIHBhZ2UgPyBtYWtlT3B0aW9uYWwocGFnZS0+c2Vzc2lvbklEKCkpIDogV1RGOjpudWxsb3B0
OwotfQotCiB2b2lkIERvY3VtZW50OjpzZXRQYWdlQ2FjaGVTdGF0ZShQYWdlQ2FjaGVTdGF0ZSBz
dGF0ZSkKIHsKICAgICBpZiAobV9wYWdlQ2FjaGVTdGF0ZSA9PSBzdGF0ZSkKQEAgLTUyNjYsNiAr
NTI2MCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnN0b3JhZ2VCbG9ja2luZ1N0YXRlRGlkQ2hhbmdlKCkK
ICAgICBzZWN1cml0eU9yaWdpbigpLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShzZXR0aW5ncygp
LnN0b3JhZ2VCbG9ja2luZ1BvbGljeSgpKTsKIH0KIAorLy8gVXNlZCBvbmx5IGJ5IFdlYktpdExl
Z2FjeS4KIHZvaWQgRG9jdW1lbnQ6OnByaXZhdGVCcm93c2luZ1N0YXRlRGlkQ2hhbmdlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBpZiAobV9sb2dnZXIpCkBAIC03Nzg5LDcgKzc3
ODQsOCBAQCBMb2dnZXImIERvY3VtZW50Ojpsb2dnZXIoKQogewogICAgIGlmICghbV9sb2dnZXIp
IHsKICAgICAgICAgbV9sb2dnZXIgPSBMb2dnZXI6OmNyZWF0ZSh0aGlzKTsKLSAgICAgICAgbV9s
b2dnZXItPnNldEVuYWJsZWQodGhpcywgc2Vzc2lvbklEKCkgJiYgc2Vzc2lvbklEKCktPmlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpKTsKKyAgICAgICAgYXV0byogcGFnZSA9IHRoaXMtPnBhZ2Uo
KTsKKyAgICAgICAgbV9sb2dnZXItPnNldEVuYWJsZWQodGhpcywgcGFnZSAmJiBwYWdlLT5zZXNz
aW9uSUQoKS5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSk7CiAgICAgICAgIG1fbG9nZ2VyLT5h
ZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDhjNDZk
N2U3OGFjZDZhY2MxYTAwOGRhM2M5OGE0MWY2YzU0YTZjMzIuLjcwNTM4YzU5YjM4OGNmYmU4ZjU3
Mjg2MDk0MDk2Mjk3ZDU0ZGYzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC02ODMsNyArNjgz
LDYgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgVVJMIGNvbXBsZXRlVVJMKGNvbnN0
IFN0cmluZyYpIGNvbnN0IGZpbmFsOwogICAgIFVSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcm
LCBjb25zdCBVUkwmIGJhc2VVUkxPdmVycmlkZSkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
T3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IHNlc3Npb25JRCgpIGNvbnN0OwogCiAgICAgU3RyaW5n
IHVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCBhN2E5MjJhNWJmMjYzOWQ1Njg1MDdlMDM4NzIx
MDM4MDA0MTRlYTBjLi41OTdhY2NiZGUzNzE3MjVlMWU3NDkwNmYwMDUxNGVlMDI3Yzg5ZTIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtNDA3LDcgKzQw
Nyw4IEBAIE9wdGlvbmFsPEFkQ2xpY2tBdHRyaWJ1dGlvbj4gSFRNTEFuY2hvckVsZW1lbnQ6OnBh
cnNlQWRDbGlja0F0dHJpYnV0aW9uKCkgY29uc3QKICAgICB1c2luZyBTb3VyY2UgPSBBZENsaWNr
QXR0cmlidXRpb246OlNvdXJjZTsKICAgICB1c2luZyBEZXN0aW5hdGlvbiA9IEFkQ2xpY2tBdHRy
aWJ1dGlvbjo6RGVzdGluYXRpb247CiAKLSAgICBpZiAoIWRvY3VtZW50KCkuc2Vzc2lvbklEKCkg
fHwgZG9jdW1lbnQoKS5zZXNzaW9uSUQoKS0+aXNFcGhlbWVyYWwoKQorICAgIGF1dG8qIHBhZ2Ug
PSBkb2N1bWVudCgpLnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UgfHwgcGFnZS0+c2Vzc2lvbklEKCku
aXNFcGhlbWVyYWwoKQogICAgICAgICB8fCAhUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5hZENsaWNrQXR0cmlidXRpb25FbmFibGVkKCkKICAgICAgICAgfHwgIVVzZXJH
ZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmlu
ZGV4IDRhNzY1OGQyYzJlMGFhNjRiODExY2ZmNzIyYmZkMjk4YTIzMmQwZDMuLjk0MWI5Zjk0ZTQ0
M2IyMjA0MzM4NjJkZWZkYjBiZWJmMWI0NGNiYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcApAQCAtOTY3LDE1ICs5NjcsMTEgQEAgdm9pZCBEb2N1bWVudExvYWRl
cjo6Y29udGludWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0aW9uIHBvbGljeSkKICAgICAg
ICAgLy8gRG93bmxvYWQgbWF5IHVzZSB0aGlzIGtub3dsZWRnZSBmb3IgcHVycG9zZXMgdW5yZWxh
dGVkIHRvIGNvb2tpZXMsIG5vdGFibHkgZm9yIHNldHRpbmcgZmlsZSBxdWFyYW50aW5lIGRhdGEu
CiAgICAgICAgIGZyYW1lTG9hZGVyKCktPnNldE9yaWdpbmFsVVJMRm9yRG93bmxvYWRSZXF1ZXN0
KG1fcmVxdWVzdCk7CiAKLSAgICAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEID0gUEFMOjpT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKLSAgICAgICAgaWYgKGZyYW1lKCkgJiYgZnJh
bWUoKS0+cGFnZSgpKQotICAgICAgICAgICAgc2Vzc2lvbklEID0gZnJhbWUoKS0+cGFnZSgpLT5z
ZXNzaW9uSUQoKTsKLQogICAgICAgICBpZiAobV9yZXF1ZXN0LnVybCgpLnByb3RvY29sSXNEYXRh
KCkpIHsKICAgICAgICAgICAgIC8vIFdlIGRlY29kZSBkYXRhIFVSTCBpbnRlcm5hbGx5LCB0aGVy
ZSBpcyBubyByZXNvdXJjZSBsb2FkIHRvIGNvbnZlcnQuCiAgICAgICAgICAgICBmcmFtZUxvYWRl
cigpLT5jbGllbnQoKS5zdGFydERvd25sb2FkKG1fcmVxdWVzdCk7CiAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuY29udmVydE1haW5SZXNvdXJjZUxv
YWRUb0Rvd25sb2FkKHRoaXMsIHNlc3Npb25JRCwgbV9yZXF1ZXN0LCBtX3Jlc3BvbnNlKTsKKyAg
ICAgICAgICAgIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNvbnZlcnRNYWluUmVzb3VyY2VMb2Fk
VG9Eb3dubG9hZCh0aGlzLCBtX3JlcXVlc3QsIG1fcmVzcG9uc2UpOwogCiAgICAgICAgIC8vIFRo
ZSBtYWluIHJlc291cmNlIG1pZ2h0IGJlIGxvYWRpbmcgZnJvbSB0aGUgbWVtb3J5IGNhY2hlLCBv
ciBpdHMgbG9hZGVyIG1pZ2h0IGhhdmUgZ29uZSBtaXNzaW5nLgogICAgICAgICBpZiAobWFpblJl
c291cmNlTG9hZGVyKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxv
YWRlckNsaWVudC5oCmluZGV4IDJmNmQyMjUyZTFkMTg3MjAzZjk1NDllNjVlMmU5OWNkYmZkNjA4
MzEuLmVjMWE2YTdiYTYyOGZjNzlhNzY2OWVhMjQyZTVhZDhhOTY1NWI0YmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNTYsNyArNTYs
NyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGlj
IEZyYW1lTG9hZGVyQ2xpZW50IHsKICAgICB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDIoKSBmaW5h
bCB7IH0KICAgICB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDMoKSBmaW5hbCB7IH0KIAotICAgIHZv
aWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiwgUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9h
ZChEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlh
bFJlcXVlc3QodW5zaWduZWQgbG9uZywgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmKSBmaW5hbCB7IH0KICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKERv
Y3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZykgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggN2Y2ODAxOWUw
ZDk2ZDg2YzZjYzI0NzNlZDQzZTM3MmQ1NWY3YjM2Ny4uNWRmZjYxMDA1NDQ1NWRlNDUzNmVmZTUw
Y2YxN2RkMDFiZWQ2ZjI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKQEAgLTI4OCw3ICsyODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgPSAwOyAvLyBDYW4gY2hhbmdlIGR1ZSB0byBuYXZp
Z2F0aW9uIG9yIERPTSBtb2RpZmljYXRpb24uCiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQ
YWdlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9h
ZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIqLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKIAogICAg
IHZpcnR1YWwgUmVmUHRyPEZyYW1lPiBjcmVhdGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIp
ID0gMDsKICAgICB2aXJ0dWFsIFJlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRT
aXplJiwgSFRNTFBsdWdJbkVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCBsb2FkTWFudWFs
bHkpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwCmluZGV4IGZlMTJlYzE5NjFhN2RhYTM4ZDU3MjEwMTlhNjllYzJiMjI1
NDlkMWQuLjZiNGY0OWZmYWJmZjg0YzY4MDkzMDJkMjVlZjFlYTA0ZmNhZGQ1OTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNw
cApAQCAtMTg4LDE2ICsxODgsNiBAQCBGcmFtZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmZyYW1l
KCkgY29uc3QKICAgICByZXR1cm4gbV9kb2N1bWVudExvYWRlciA/IG1fZG9jdW1lbnRMb2FkZXIt
PmZyYW1lKCkgOiBudWxscHRyOwogfQogCi1QQUw6OlNlc3Npb25JRCBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6c2Vzc2lvbklEKCkgY29uc3QKLXsKLSAgICBhdXRvIHNlc3Npb25JRCA9IFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7Ci0gICAgaWYgKGF1dG8qIGZyYW1lID0gdGhpcy0+
ZnJhbWUoKSkgewotICAgICAgICBpZiAoYXV0byogcGFnZSA9IGZyYW1lLT5wYWdlKCkpCi0gICAg
ICAgICAgICBzZXNzaW9uSUQgPSBwYWdlLT5zZXNzaW9uSUQoKTsKLSAgICB9Ci0gICAgcmV0dXJu
IHNlc3Npb25JRDsKLX0KLQogUmVzb3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZEltYWdlPj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZShDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAgIGlmIChGcmFtZSogZnJhbWUgPSB0aGlzLT5m
cmFtZSgpKSB7CkBAIC0yNDcsNyArMjM3LDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
Q1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3QKIAog
ICAgIGF1dG8mIG1lbW9yeUNhY2hlID0gTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpOwogICAgIGlm
IChyZXF1ZXN0LmFsbG93c0NhY2hpbmcoKSkgewotICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2Uq
IGV4aXN0aW5nID0gbWVtb3J5Q2FjaGUucmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKSkgeworICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2Uq
IGV4aXN0aW5nID0gbWVtb3J5Q2FjaGUucmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCksIHBhZ2Uuc2Vzc2lvbklEKCkpKSB7CiAgICAgICAgICAgICBpZiAoaXM8Q2Fj
aGVkQ1NTU3R5bGVTaGVldD4oKmV4aXN0aW5nKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZG93
bmNhc3Q8Q2FjaGVkQ1NTU3R5bGVTaGVldD4oZXhpc3RpbmcpOwogICAgICAgICAgICAgbWVtb3J5
Q2FjaGUucmVtb3ZlKCpleGlzdGluZyk7CkBAIC02ODcsMTQgKzY3NywxNCBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgaXNSZXNvdXJjZVN1aXRhYmxlRm9yRGlyZWN0UmV1c2UoY29uc3QgQ2FjaGVkUmVz
b3VyY2UmIHJlc291cgogICAgIHJldHVybiB0cnVlOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnVwZGF0ZUNhY2hlZFJlc291
cmNlV2l0aEN1cnJlbnRSZXF1ZXN0KGNvbnN0IENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Np
b25JRCwgY29uc3QgQ29va2llSmFyKiBjb29raWVKYXIpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnVwZGF0ZUNhY2hlZFJlc291cmNl
V2l0aEN1cnJlbnRSZXF1ZXN0KGNvbnN0IENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25J
RCwgY29uc3QgQ29va2llSmFyJiBjb29raWVKYXIpCiB7CiAgICAgaWYgKCFpc1Jlc291cmNlU3Vp
dGFibGVGb3JEaXJlY3RSZXVzZShyZXNvdXJjZSwgcmVxdWVzdCkpIHsKICAgICAgICAgcmVxdWVz
dC5zZXRDYWNoaW5nUG9saWN5KENhY2hpbmdQb2xpY3k6OkRpc2FsbG93Q2FjaGluZyk7Ci0gICAg
ICAgIHJldHVybiBsb2FkUmVzb3VyY2UocmVzb3VyY2UudHlwZSgpLCBXVEZNb3ZlKHJlcXVlc3Qp
LCBjb29raWVKYXIpOworICAgICAgICByZXR1cm4gbG9hZFJlc291cmNlKHJlc291cmNlLnR5cGUo
KSwgc2Vzc2lvbklELCBXVEZNb3ZlKHJlcXVlc3QpLCBjb29raWVKYXIpOwogICAgIH0KIAotICAg
IGF1dG8gcmVzb3VyY2VIYW5kbGUgPSBjcmVhdGVSZXNvdXJjZShyZXNvdXJjZS50eXBlKCksIFdU
Rk1vdmUocmVxdWVzdCksIHNlc3Npb25JRCwgY29va2llSmFyKTsKKyAgICBhdXRvIHJlc291cmNl
SGFuZGxlID0gY3JlYXRlUmVzb3VyY2UocmVzb3VyY2UudHlwZSgpLCBXVEZNb3ZlKHJlcXVlc3Qp
LCBzZXNzaW9uSUQsICZjb29raWVKYXIpOwogICAgIHJlc291cmNlSGFuZGxlLT5sb2FkRnJvbShy
ZXNvdXJjZSk7CiAgICAgcmV0dXJuIHJlc291cmNlSGFuZGxlOwogfQpAQCAtNzg3LDYgKzc3Nywx
MyBAQCBzdGF0aWMgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbkZvclR5cGUo
Q2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKIAogUmVzb3VyY2VFcnJvck9yPENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RS
ZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBGb3JQcmVsb2FkIGZvclByZWxvYWQsIERlZmVyT3B0aW9uIGRlZmVyKQogewor
ICAgIGlmICghZnJhbWUoKSB8fCAhZnJhbWUoKS0+cGFnZSgpKSB7CisgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoInJlcXVlc3RSZXNvdXJjZTogZmFpbGVkIGJlY2F1c2Ugbm8gZnJhbWUg
b3IgcGFnZSIpOworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoUmVzb3VyY2VFcnJvciB7
IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCku
dXJsKCksICJJbnZhbGlkIGxvYWRlciBzdGF0ZSJfcyB9KTsKKyAgICB9CisgICAgYXV0byYgZnJh
bWUgPSAqdGhpcy0+ZnJhbWUoKTsKKyAgICBhdXRvJiBwYWdlID0gKmZyYW1lLnBhZ2UoKTsKKwog
ICAgIHJlcXVlc3Quc2V0RGVzdGluYXRpb25JZk5vdFNldChkZXN0aW5hdGlvbkZvclR5cGUodHlw
ZSkpOwogCiAgICAgLy8gRW50cnkgcG9pbnQgdG8gaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5v
cmcvI21haW4tZmV0Y2guCkBAIC04MDAsNyArNzk3LDcgQEAgUmVzb3VyY2VFcnJvck9yPENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXUKICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkKICAgICAg
ICAgcmVxdWVzdC51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQoKmRvY3VtZW50KTsKIAot
ICAgIGlmIChJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnRlcmNlcHRSZXF1ZXN0KGZy
YW1lKCksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKQorICAgIGlmIChJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxJbnRlcmNlcHRSZXF1ZXN0KCZmcmFtZSwgcmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKSkpCiAgICAgICAgIHJlcXVlc3Quc2V0Q2FjaGluZ1BvbGljeShDYWNoaW5nUG9s
aWN5OjpEaXNhbGxvd0NhY2hpbmcpOwogCiAgICAgcmVxdWVzdC51cGRhdGVSZWZlcnJlclBvbGlj
eShkb2N1bWVudCgpID8gZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSA6IFJlZmVycmVyUG9s
aWN5OjpOb1JlZmVycmVyV2hlbkRvd25ncmFkZSk7CkBAIC04MDksNyArODA2LDcgQEAgUmVzb3Vy
Y2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPj4gQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXUKICAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSAnJS4yNTVzJywgY2hhcnNldCAnJXMnLCBwcmlvcml0
eT0lZCwgZm9yUHJlbG9hZD0ldSIsIHVybC5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgo
KS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3QuY2hhcnNldCgpLmxhdGluMSgpLmRhdGEoKSwgcmVx
dWVzdC5wcmlvcml0eSgpID8gc3RhdGljX2Nhc3Q8aW50PihyZXF1ZXN0LnByaW9yaXR5KCkudmFs
dWUoKSkgOiAtMSwgZm9yUHJlbG9hZCA9PSBGb3JQcmVsb2FkOjpZZXMpOwogCiAgICAgaWYgKCF1
cmwuaXNWYWxpZCgpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJlcXVlc3RS
ZXNvdXJjZTogVVJMIGlzIGludmFsaWQgKGZyYW1lID0gJXApIiwgZnJhbWUoKSk7CisgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJlcXVlc3RSZXNvdXJjZTogVVJMIGlzIGludmFsaWQg
KGZyYW1lID0gJXApIiwgJmZyYW1lKTsKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFJl
c291cmNlRXJyb3IgeyBlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCB1cmwsICJVUkwgaXMg
aW52YWxpZCJfcyB9KTsKICAgICB9CiAKQEAgLTgxNywyMiArODE0LDIxIEBAIFJlc291cmNlRXJy
b3JPcjxDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4+IENhY2hlZFJlc291cmNl
TG9hZGVyOjpyZXF1CiAKICAgICAvLyBXZSBhcmUgcGFzc2luZyB1cmwgYXMgd2VsbCBhcyByZXF1
ZXN0LCBhcyByZXF1ZXN0IHVybCBtYXkgY29udGFpbiBhIGZyYWdtZW50IGlkZW50aWZpZXIuCiAg
ICAgaWYgKCFjYW5SZXF1ZXN0KHR5cGUsIHVybCwgcmVxdWVzdCwgZm9yUHJlbG9hZCkpIHsKLSAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmVxdWVzdFJlc291cmNlOiBOb3QgYWxsb3dl
ZCB0byByZXF1ZXN0IHJlc291cmNlIChmcmFtZSA9ICVwKSIsIGZyYW1lKCkpOworICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXF1ZXN0UmVzb3VyY2U6IE5vdCBhbGxvd2VkIHRvIHJl
cXVlc3QgcmVzb3VyY2UgKGZyYW1lID0gJXApIiwgJmZyYW1lKTsKICAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKFJlc291cmNlRXJyb3IgeyBlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAw
LCB1cmwsICJOb3QgYWxsb3dlZCB0byByZXF1ZXN0IHJlc291cmNlIl9zLCBSZXNvdXJjZUVycm9y
OjpUeXBlOjpBY2Nlc3NDb250cm9sIH0pOwogICAgIH0KIAogI2lmIEVOQUJMRShDT05URU5UX0VY
VEVOU0lPTlMpCi0gICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+cGFnZSgpICYmIG1fZG9jdW1l
bnRMb2FkZXIpIHsKKyAgICBpZiAobV9kb2N1bWVudExvYWRlcikgewogICAgICAgICBjb25zdCBh
dXRvJiByZXNvdXJjZVJlcXVlc3QgPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpOwotICAgICAg
ICBhdXRvKiBwYWdlID0gZnJhbWUoKS0+cGFnZSgpOwotICAgICAgICBhdXRvIHJlc3VsdHMgPSBw
YWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2Fk
KHJlc291cmNlUmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVuc2lvbnM6OnRvUmVzb3VyY2VUeXBl
KHR5cGUpLCAqbV9kb2N1bWVudExvYWRlcik7CisgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2Uu
dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChyZXNv
dXJjZVJlcXVlc3QudXJsKCksIENvbnRlbnRFeHRlbnNpb25zOjp0b1Jlc291cmNlVHlwZSh0eXBl
KSwgKm1fZG9jdW1lbnRMb2FkZXIpOwogICAgICAgICBib29sIGJsb2NrZWRMb2FkID0gcmVzdWx0
cy5zdW1tYXJ5LmJsb2NrZWRMb2FkOwogICAgICAgICBib29sIG1hZGVIVFRQUyA9IHJlc3VsdHMu
c3VtbWFyeS5tYWRlSFRUUFM7Ci0gICAgICAgIHJlcXVlc3QuYXBwbHlSZXN1bHRzKFdURk1vdmUo
cmVzdWx0cyksIHBhZ2UpOworICAgICAgICByZXF1ZXN0LmFwcGx5UmVzdWx0cyhXVEZNb3ZlKHJl
c3VsdHMpLCAmcGFnZSk7CiAgICAgICAgIGlmIChibG9ja2VkTG9hZCkgewotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmVxdWVzdFJlc291cmNlOiBSZXNvdXJjZSBibG9ja2Vk
IGJ5IGNvbnRlbnQgYmxvY2tlciAoZnJhbWUgPSAlcCkiLCBmcmFtZSgpKTsKKyAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJlcXVlc3RSZXNvdXJjZTogUmVzb3VyY2UgYmxvY2tl
ZCBieSBjb250ZW50IGJsb2NrZXIgKGZyYW1lID0gJXApIiwgJmZyYW1lKTsKICAgICAgICAgICAg
IGlmICh0eXBlID09IENhY2hlZFJlc291cmNlOjpUeXBlOjpNYWluUmVzb3VyY2UpIHsKLSAgICAg
ICAgICAgICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVzb3VyY2Ug
PSBjcmVhdGVSZXNvdXJjZSh0eXBlLCBXVEZNb3ZlKHJlcXVlc3QpLCBwYWdlLT5zZXNzaW9uSUQo
KSwgJnBhZ2UtPmNvb2tpZUphcigpKTsKKyAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVzb3VyY2UgPSBjcmVhdGVSZXNvdXJjZSh0eXBlLCBXVEZN
b3ZlKHJlcXVlc3QpLCBwYWdlLnNlc3Npb25JRCgpLCAmcGFnZS5jb29raWVKYXIoKSk7CiAgICAg
ICAgICAgICAgICAgQVNTRVJUKHJlc291cmNlKTsKICAgICAgICAgICAgICAgICByZXNvdXJjZS0+
ZXJyb3IoQ2FjaGVkUmVzb3VyY2U6OlN0YXR1czo6TG9hZEVycm9yKTsKICAgICAgICAgICAgICAg
ICByZXNvdXJjZS0+c2V0UmVzb3VyY2VFcnJvcihSZXNvdXJjZUVycm9yKENvbnRlbnRFeHRlbnNp
b25zOjpXZWJLaXRDb250ZW50QmxvY2tlckRvbWFpbiwgMCwgcmVzb3VyY2VSZXF1ZXN0LnVybCgp
LCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIHdhcyBibG9ja2VkIGJ5IGEgY29udGVudCBibG9ja2Vy
IiwgIldlYktpdEVycm9yQmxvY2tlZEJ5Q29udGVudEJsb2NrZXIgZGVzY3JpcHRpb24iKSkpOwpA
QCAtODUxLDEzICs4NDcsMTMgQEAgUmVzb3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFJlc291cmNlPj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXUKICAgICB9CiAjZW5k
aWYKIAotICAgIGlmIChmcmFtZSgpICYmIG1fZG9jdW1lbnRMb2FkZXIgJiYgIW1fZG9jdW1lbnRM
b2FkZXItPmN1c3RvbUhlYWRlckZpZWxkcygpLmlzRW1wdHkoKSkgeworICAgIGlmIChtX2RvY3Vt
ZW50TG9hZGVyICYmICFtX2RvY3VtZW50TG9hZGVyLT5jdXN0b21IZWFkZXJGaWVsZHMoKS5pc0Vt
cHR5KCkpIHsKICAgICAgICAgYm9vbCBzYW1lT3JpZ2luUmVxdWVzdCA9IGZhbHNlOwogICAgICAg
ICBhdXRvIHJlcXVlc3RlZE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKTsKICAg
ICAgICAgaWYgKHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Ok1haW5SZXNvdXJjZSkgewot
ICAgICAgICAgICAgaWYgKGZyYW1lKCktPmlzTWFpbkZyYW1lKCkpCisgICAgICAgICAgICBpZiAo
ZnJhbWUuaXNNYWluRnJhbWUoKSkKICAgICAgICAgICAgICAgICBzYW1lT3JpZ2luUmVxdWVzdCA9
IHRydWU7Ci0gICAgICAgICAgICBlbHNlIGlmIChhdXRvKiB0b3BEb2N1bWVudCA9IGZyYW1lKCkt
Pm1haW5GcmFtZSgpLmRvY3VtZW50KCkpCisgICAgICAgICAgICBlbHNlIGlmIChhdXRvKiB0b3BE
b2N1bWVudCA9IGZyYW1lLm1haW5GcmFtZSgpLmRvY3VtZW50KCkpCiAgICAgICAgICAgICAgICAg
c2FtZU9yaWdpblJlcXVlc3QgPSB0b3BEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS5pc1NhbWVT
Y2hlbWVIb3N0UG9ydChyZXF1ZXN0ZWRPcmlnaW4uZ2V0KCkpOwogICAgICAgICB9IGVsc2UgaWYg
KGRvY3VtZW50KCkpIHsKICAgICAgICAgICAgIHNhbWVPcmlnaW5SZXF1ZXN0ID0gZG9jdW1lbnQo
KS0+dG9wRG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KHJl
cXVlc3RlZE9yaWdpbi5nZXQoKSkKQEAgLTg4OCwxNCArODg0LDE0IEBAIFJlc291cmNlRXJyb3JP
cjxDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1CiAgICAgICAgIHJlcXVlc3Quc2V0RG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24oKmRv
Y3VtZW50KCkpOwogCiAgICAgaWYgKHJlcXVlc3QuYWxsb3dzQ2FjaGluZygpKQotICAgICAgICBy
ZXNvdXJjZSA9IG1lbW9yeUNhY2hlLnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNl
UmVxdWVzdCgpLCBzZXNzaW9uSUQoKSk7CisgICAgICAgIHJlc291cmNlID0gbWVtb3J5Q2FjaGUu
cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHBhZ2Uuc2Vzc2lv
bklEKCkpOwogCiAgICAgaWYgKHJlc291cmNlICYmIHJlcXVlc3QuaXNMaW5rUHJlbG9hZCgpICYm
ICFyZXNvdXJjZS0+aXNMaW5rUHJlbG9hZCgpKQogICAgICAgICByZXNvdXJjZS0+c2V0TGlua1By
ZWxvYWQoKTsKIAotICAgIGxvZ01lbW9yeUNhY2hlUmVzb3VyY2VSZXF1ZXN0KGZyYW1lKCksIERp
YWdub3N0aWNMb2dnaW5nS2V5czo6bWVtb3J5Q2FjaGVVc2FnZUtleSgpLCByZXNvdXJjZSA/IERp
YWdub3N0aWNMb2dnaW5nS2V5czo6aW5NZW1vcnlDYWNoZUtleSgpIDogRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpub3RJbk1lbW9yeUNhY2hlS2V5KCkpOworICAgIGxvZ01lbW9yeUNhY2hlUmVzb3Vy
Y2VSZXF1ZXN0KCZmcmFtZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjptZW1vcnlDYWNoZVVzYWdl
S2V5KCksIHJlc291cmNlID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbk1lbW9yeUNhY2hlS2V5
KCkgOiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5vdEluTWVtb3J5Q2FjaGVLZXkoKSk7CiAKLSAg
ICBhdXRvKiBjb29raWVKYXIgPSBkb2N1bWVudCgpICYmIGRvY3VtZW50KCktPnBhZ2UoKSA/ICZk
b2N1bWVudCgpLT5wYWdlKCktPmNvb2tpZUphcigpIDogbnVsbHB0cjsKKyAgICBhdXRvJiBjb29r
aWVKYXIgPSBwYWdlLmNvb2tpZUphcigpOwogCiAgICAgUmV2YWxpZGF0aW9uUG9saWN5IHBvbGlj
eSA9IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeSh0eXBlLCByZXF1ZXN0LCByZXNvdXJjZS5n
ZXQoKSwgZm9yUHJlbG9hZCwgZGVmZXIpOwogICAgIHN3aXRjaCAocG9saWN5KSB7CkBAIC05MDQs
MTIgKzkwMCwxMiBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQogICAgICAgICBGQUxMVEhST1VH
SDsKICAgICBjYXNlIExvYWQ6CiAgICAgICAgIGlmIChyZXNvdXJjZSkKLSAgICAgICAgICAgIGxv
Z01lbW9yeUNhY2hlUmVzb3VyY2VSZXF1ZXN0KGZyYW1lKCksIERpYWdub3N0aWNMb2dnaW5nS2V5
czo6bWVtb3J5Q2FjaGVFbnRyeURlY2lzaW9uS2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
dW51c2VkS2V5KCkpOwotICAgICAgICByZXNvdXJjZSA9IGxvYWRSZXNvdXJjZSh0eXBlLCBXVEZN
b3ZlKHJlcXVlc3QpLCBjb29raWVKYXIpOworICAgICAgICAgICAgbG9nTWVtb3J5Q2FjaGVSZXNv
dXJjZVJlcXVlc3QoJmZyYW1lLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lbW9yeUNhY2hlRW50
cnlEZWNpc2lvbktleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnVudXNlZEtleSgpKTsKKyAg
ICAgICAgcmVzb3VyY2UgPSBsb2FkUmVzb3VyY2UodHlwZSwgcGFnZS5zZXNzaW9uSUQoKSwgV1RG
TW92ZShyZXF1ZXN0KSwgY29va2llSmFyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBSZXZh
bGlkYXRlOgogICAgICAgICBpZiAocmVzb3VyY2UpCi0gICAgICAgICAgICBsb2dNZW1vcnlDYWNo
ZVJlc291cmNlUmVxdWVzdChmcmFtZSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lbW9yeUNh
Y2hlRW50cnlEZWNpc2lvbktleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldmFsaWRhdGlu
Z0tleSgpKTsKKyAgICAgICAgICAgIGxvZ01lbW9yeUNhY2hlUmVzb3VyY2VSZXF1ZXN0KCZmcmFt
ZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjptZW1vcnlDYWNoZUVudHJ5RGVjaXNpb25LZXkoKSwg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXZhbGlkYXRpbmdLZXkoKSk7CiAgICAgICAgIHJlc291
cmNlID0gcmV2YWxpZGF0ZVJlc291cmNlKFdURk1vdmUocmVxdWVzdCksICpyZXNvdXJjZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgVXNlOgpAQCAtOTE5LDE0ICs5MTUsMTQgQEAgUmVzb3Vy
Y2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPj4gQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXUKICAgICAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
V1RGTW92ZSgqZXJyb3IpKTsKICAgICAgICAgfQogICAgICAgICBpZiAoc2hvdWxkVXBkYXRlQ2Fj
aGVkUmVzb3VyY2VXaXRoQ3VycmVudFJlcXVlc3QoKnJlc291cmNlLCByZXF1ZXN0KSkgewotICAg
ICAgICAgICAgcmVzb3VyY2UgPSB1cGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50UmVxdWVz
dCgqcmVzb3VyY2UsIFdURk1vdmUocmVxdWVzdCksIGRvY3VtZW50KCktPnBhZ2UoKS0+c2Vzc2lv
bklEKCksIGNvb2tpZUphcik7CisgICAgICAgICAgICByZXNvdXJjZSA9IHVwZGF0ZUNhY2hlZFJl
c291cmNlV2l0aEN1cnJlbnRSZXF1ZXN0KCpyZXNvdXJjZSwgV1RGTW92ZShyZXF1ZXN0KSwgcGFn
ZS5zZXNzaW9uSUQoKSwgY29va2llSmFyKTsKICAgICAgICAgICAgIGlmIChyZXNvdXJjZS0+c3Rh
dHVzKCkgIT0gQ2FjaGVkUmVzb3VyY2U6OlN0YXR1czo6Q2FjaGVkKQogICAgICAgICAgICAgICAg
IHBvbGljeSA9IExvYWQ7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBSZXNvdXJjZUVy
cm9yIGVycm9yOwogICAgICAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZUFmdGVyTm90aWZ5aW5n
TG9hZGVkRnJvbU1lbW9yeUNhY2hlKHJlcXVlc3QsICpyZXNvdXJjZSwgZXJyb3IpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChXVEZNb3ZlKGVycm9yKSk7Ci0gICAgICAg
ICAgICBsb2dNZW1vcnlDYWNoZVJlc291cmNlUmVxdWVzdChmcmFtZSgpLCBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6Om1lbW9yeUNhY2hlRW50cnlEZWNpc2lvbktleSgpLCBEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OnVzZWRLZXkoKSk7CisgICAgICAgICAgICBsb2dNZW1vcnlDYWNoZVJlc291cmNlUmVx
dWVzdCgmZnJhbWUsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVtb3J5Q2FjaGVFbnRyeURlY2lz
aW9uS2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6dXNlZEtleSgpKTsKICAgICAgICAgICAg
IGxvYWRUaW1pbmcuc2V0UmVzcG9uc2VFbmQoTW9ub3RvbmljVGltZTo6bm93KCkpOwogCiAgICAg
ICAgICAgICBtZW1vcnlDYWNoZS5yZXNvdXJjZUFjY2Vzc2VkKCpyZXNvdXJjZSk7CkBAIC05Mzgs
NyArOTM0LDcgQEAgUmVzb3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJl
c291cmNlPj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXUKICAgICAgICAgICAgICAgICAgICAg
ZG93bmNhc3Q8Q2FjaGVkUmF3UmVzb3VyY2U+KHJlc291cmNlLmdldCgpKS0+ZmluaXNoZWRUaW1p
bmdGb3JXb3JrZXJMb2FkKFdURk1vdmUocmVzb3VyY2VUaW1pbmcpKTsKICAgICAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBBU1NFUlQoaW5pdGlhdG9yQ29udGV4dCA9
PSBJbml0aWF0b3JDb250ZXh0OjpEb2N1bWVudCk7Ci0gICAgICAgICAgICAgICAgICAgIG1fcmVz
b3VyY2VUaW1pbmdJbmZvLnN0b3JlUmVzb3VyY2VUaW1pbmdJbml0aWF0b3JJbmZvcm1hdGlvbihy
ZXNvdXJjZSwgcmVxdWVzdC5pbml0aWF0b3JOYW1lKCksIGZyYW1lKCkpOworICAgICAgICAgICAg
ICAgICAgICBtX3Jlc291cmNlVGltaW5nSW5mby5zdG9yZVJlc291cmNlVGltaW5nSW5pdGlhdG9y
SW5mb3JtYXRpb24ocmVzb3VyY2UsIHJlcXVlc3QuaW5pdGlhdG9yTmFtZSgpLCAmZnJhbWUpOwog
ICAgICAgICAgICAgICAgICAgICBtX3Jlc291cmNlVGltaW5nSW5mby5hZGRSZXNvdXJjZVRpbWlu
ZygqcmVzb3VyY2UuZ2V0KCksICpkb2N1bWVudCgpLCBXVEZNb3ZlKHJlc291cmNlVGltaW5nKSk7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMTAwMiw3ICs5OTgsNiBAQCBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnJldmFsaWRhdGVSZXNvdXJjZShDYQogICAgIEFTU0VSVCghbWVtb3J5Q2FjaGUuZGlzYWJsZWQo
KSk7CiAgICAgQVNTRVJUKHJlc291cmNlLmNhblVzZUNhY2hlVmFsaWRhdG9yKCkpOwogICAgIEFT
U0VSVCghcmVzb3VyY2UucmVzb3VyY2VUb1JldmFsaWRhdGUoKSk7Ci0gICAgQVNTRVJUKHJlc291
cmNlLnNlc3Npb25JRCgpID09IHNlc3Npb25JRCgpKTsKICAgICBBU1NFUlQocmVzb3VyY2UuYWxs
b3dzQ2FjaGluZygpKTsKIAogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNl
PiBuZXdSZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlKHJlc291cmNlLnR5cGUoKSwgV1RGTW92ZShy
ZXF1ZXN0KSwgcmVzb3VyY2Uuc2Vzc2lvbklEKCksIHJlc291cmNlLmNvb2tpZUphcigpKTsKQEAg
LTEwMTksMTUgKzEwMTQsMTUgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+
IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXZhbGlkYXRlUmVzb3VyY2UoQ2EKICAgICByZXR1cm4g
bmV3UmVzb3VyY2U7CiB9CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5
cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IENvb2tpZUphciogY29v
a2llSmFyKQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25z
dCBDb29raWVKYXImIGNvb2tpZUphcikKIHsKICAgICBhdXRvJiBtZW1vcnlDYWNoZSA9IE1lbW9y
eUNhY2hlOjpzaW5nbGV0b24oKTsKLSAgICBBU1NFUlQoIXJlcXVlc3QuYWxsb3dzQ2FjaGluZygp
IHx8ICFtZW1vcnlDYWNoZS5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdC5yZXNvdXJjZVJlcXVl
c3QoKSwgc2Vzc2lvbklEKCkpCisgICAgQVNTRVJUKCFyZXF1ZXN0LmFsbG93c0NhY2hpbmcoKSB8
fCAhbWVtb3J5Q2FjaGUucmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCksIHNlc3Npb25JRCkKICAgICAgICAgfHwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5jYWNo
ZVBvbGljeSgpID09IFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5OjpEb05vdFVzZUFueUNhY2hl
IHx8IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuY2FjaGVQb2xpY3koKSA9PSBSZXNvdXJjZVJl
cXVlc3RDYWNoZVBvbGljeTo6UmVsb2FkSWdub3JpbmdDYWNoZURhdGEgfHwgcmVxdWVzdC5yZXNv
dXJjZVJlcXVlc3QoKS5jYWNoZVBvbGljeSgpID09IFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5
OjpSZWZyZXNoQW55Q2FjaGVEYXRhKTsKIAogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJMb2Fk
aW5nIENhY2hlZFJlc291cmNlIGZvciAnJXMnLiIsIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCku
dXJsKCkuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkubGF0aW4xKCkuZGF0YSgpKTsK
IAotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IGNy
ZWF0ZVJlc291cmNlKHR5cGUsIFdURk1vdmUocmVxdWVzdCksIHNlc3Npb25JRCgpLCBjb29raWVK
YXIpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9
IGNyZWF0ZVJlc291cmNlKHR5cGUsIFdURk1vdmUocmVxdWVzdCksIHNlc3Npb25JRCwgJmNvb2tp
ZUphcik7CiAKICAgICBpZiAocmVzb3VyY2UtPmFsbG93c0NhY2hpbmcoKSkKICAgICAgICAgbWVt
b3J5Q2FjaGUuYWRkKCpyZXNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCmluZGV4IDRlOWMxYTA1MGRhNDUxMmVjNzM0NGNk
NmQzY2QyMDgyNzA5MTUzMjIuLjE1MjA0ZmU0YWZmMGQ0Y2EwOTYyZWU1N2U2MDk4ODMwMDJhOGIy
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5oCkBAIC0xMjksNyArMTI5LDYgQEAgcHVibGljOgogICAgIERvY3VtZW50KiBkb2N1
bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQuZ2V0KCk7IH0gLy8gQ2FuIGJlIG51bGwK
ICAgICB2b2lkIHNldERvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCkgeyBtX2RvY3VtZW50ID0g
bWFrZVdlYWtQdHIoZG9jdW1lbnQpOyB9CiAgICAgdm9pZCBjbGVhckRvY3VtZW50TG9hZGVyKCkg
eyBtX2RvY3VtZW50TG9hZGVyID0gbnVsbHB0cjsgfQotICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCgpIGNvbnN0OwogCiAgICAgdm9pZCBsb2FkRG9uZShMb2FkQ29tcGxldGlvblR5cGUsIGJv
b2wgc2hvdWxkUGVyZm9ybVBvc3RMb2FkQWN0aW9ucyA9IHRydWUpOwogCkBAIC0xNjgsNyArMTY3
LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlc291cmNlRXJyb3JPcjxDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRSZXNvdXJjZT4+IHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIEZvclByZWxvYWQgPSBGb3JQcmVsb2FkOjpObywgRGVm
ZXJPcHRpb24gPSBEZWZlck9wdGlvbjo6Tm9EZWZlcik7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkUmVzb3VyY2U+IHJldmFsaWRhdGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmJiwgQ2FjaGVkUmVzb3VyY2UmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRS
ZXNvdXJjZT4gbG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QmJiwgY29uc3QgQ29va2llSmFyKik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkUmVzb3VyY2U+IGxvYWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgUEFMOjpT
ZXNzaW9uSUQsIENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBDb29raWVKYXImKTsKIAog
ICAgIHZvaWQgcHJlcGFyZUZldGNoKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QmKTsKICAgICB2b2lkIHVwZGF0ZUhUVFBSZXF1ZXN0SGVhZGVycyhDYWNoZWRSZXNv
dXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CkBAIC0xNzksNyArMTc4LDcgQEAg
cHJpdmF0ZToKICAgICBSZXZhbGlkYXRpb25Qb2xpY3kgZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9s
aWN5KENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZWRS
ZXNvdXJjZSogZXhpc3RpbmdSZXNvdXJjZSwgRm9yUHJlbG9hZCwgRGVmZXJPcHRpb24pIGNvbnN0
OwogCiAgICAgYm9vbCBzaG91bGRVcGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50UmVxdWVz
dChjb25zdCBDYWNoZWRSZXNvdXJjZSYsIGNvbnN0IENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwot
ICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiB1cGRhdGVDYWNoZWRSZXNv
dXJjZVdpdGhDdXJyZW50UmVxdWVzdChjb25zdCBDYWNoZWRSZXNvdXJjZSYsIENhY2hlZFJlc291
cmNlUmVxdWVzdCYmLCBjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IENvb2tpZUphciopOwor
ICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiB1cGRhdGVDYWNoZWRSZXNv
dXJjZVdpdGhDdXJyZW50UmVxdWVzdChjb25zdCBDYWNoZWRSZXNvdXJjZSYsIENhY2hlZFJlc291
cmNlUmVxdWVzdCYmLCBjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IENvb2tpZUphciYpOwog
CiAgICAgYm9vbCBzaG91bGRDb250aW51ZUFmdGVyTm90aWZ5aW5nTG9hZGVkRnJvbU1lbW9yeUNh
Y2hlKGNvbnN0IENhY2hlZFJlc291cmNlUmVxdWVzdCYsIENhY2hlZFJlc291cmNlJiwgUmVzb3Vy
Y2VFcnJvciYpOwogICAgIGJvb2wgY2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6
OlR5cGUsIGNvbnN0IFVSTCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBlZmFhMzlk
ZTEwMDczMWI5NDk3NzVlYzkyODMzMjU2NDM3NGNkNWY2Li42NDY2YTYwMjI2MmVmNjM2N2ZmMWJl
M2M2YTk1MzEyMzE1ZmZmNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMTAxMywxMCArMTAx
Myw0IEBAIHZvaWQgRnJhbWU6OnNlbGZPbmx5RGVyZWYoKQogICAgIGRlcmVmKCk7CiB9CiAKLVBB
TDo6U2Vzc2lvbklEIEZyYW1lOjpzZXNzaW9uSUQoKSBjb25zdAotewotICAgIGF1dG8qIHBhZ2Ug
PSB0aGlzLT5wYWdlKCk7Ci0gICAgcmV0dXJuIHBhZ2UgPyBwYWdlLT5zZXNzaW9uSUQoKSA6IFBB
TDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCAzYWRkYzJiOGI1ZWUwMzI2NWNlMzBkMzMzOWFmMzk0
ZjdmYTI2ZTFjLi5kOGI5NzE2Mjg0NTMyOTc2NDI3MjZmYTVmZjM3YjFkZGJmODJhODk2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5oCkBAIC0zMDEsOCArMzAxLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2VsZk9u
bHlSZWYoKTsKICAgICB2b2lkIHNlbGZPbmx5RGVyZWYoKTsKIAotICAgIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCgpIGNvbnN0OwotCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBOYXZpZ2F0
aW9uRGlzYWJsZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAppbmRleCBiMjY1NGQwOGViYmJjMGQyNmU1
YjU2Y2E3YzYxMjlkMzQ0MTM4MTk2Li45NWQyY2U2NzQwZTY5YzY4MmI2Y2Y1Mzg3ZjY0YjcxMmU5
MjgxOWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCkBAIC02MjIsOCArNjIyLDggQEAgYm9vbCBTZXJ2
aWNlV29ya2VyQ29udGFpbmVyOjppc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdAogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoaXM8RG9jdW1lbnQ+KCpjb250ZXh0KSkgewot
ICAgICAgICBhdXRvIHNlc3Npb25JRCA9IGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkuc2Vz
c2lvbklEKCk7Ci0gICAgICAgIHJldHVybiBzZXNzaW9uSUQgJiYgc2Vzc2lvbklELT5pc0Fsd2F5
c09uTG9nZ2luZ0FsbG93ZWQoKTsKKyAgICAgICAgYXV0byogcGFnZSA9IGRvd25jYXN0PERvY3Vt
ZW50PigqY29udGV4dCkucGFnZSgpOworICAgICAgICByZXR1cm4gcGFnZSAmJiBwYWdlLT5zZXNz
aW9uSUQoKS5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKTsKICAgICB9CiAKICAgICAvLyBGSVhN
RTogTm8gbG9nZ2luZyBpbnNpZGUgc2VydmljZSB3b3JrZXJzIGZvciBub3cuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA4OTQ3MTk4ZTcyOTg4ZWI1YTQyOTIyM2E1MzdlZjY2
ODRiMjk4ZTU2Li45ZmExNWUwOGY2NGM1NDlhOTBmZDEwYTJkZTc2MjUxMWRiYTlmOGJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE1NjQsOSArMTU2NCw5IEBAIGJvb2wg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbkNhY2hlUGFnZSgpIGNvbnN0CiAgICAgcmV0dXJuICFt
X2ZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIg
KmRvY3VtZW50TG9hZGVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQo
RG9jdW1lbnRMb2FkZXIgKmRvY3VtZW50TG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIG1fZnJhbWUt
PmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChkb2N1bWVudExvYWRlciwgc2Vzc2lv
bklELCByZXF1ZXN0LCByZXNwb25zZSk7CisgICAgbV9mcmFtZS0+Y29udmVydE1haW5SZXNvdXJj
ZUxvYWRUb0Rvd25sb2FkKGRvY3VtZW50TG9hZGVyLCByZXF1ZXN0LCByZXNwb25zZSk7CiB9CiAK
IFJlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJF
bGVtZW50LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAwNDY4YjZiYTBkZmRlODIz
NDZmMWUwMjVlZDM2OWJiNTYyMDhkNDIzLi5jZGUyYWRhMzNiYjZiMjU3NDE2YzdiZDA2N2E5NWE5
NzFkYWI1NTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjE3LDcgKzIxNyw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpIGZp
bmFsOwogCiAgICAgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIGNv
bnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlcios
IFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7CisgICAgdm9pZCBjb252ZXJ0TWFpblJl
c291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikg
ZmluYWw7CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Jiwg
Y29uc3QgU3RyaW5nJiByZWZlcnJlcikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCBiNDg1YzU2YjQxMTZhZjFhZWE2NjM4MGI3
MWJhMWQxNTI0MjM3OWU1Li4xZGZlMzlkOGZlYzdmN2VjZTkyYTcyMzgzMjRjNWVmNjQwZjFmMWE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBA
IC0yODYsNyArMjg2LDcgQEAgdm9pZCBXZWJGcmFtZTo6c3RhcnREb3dubG9hZChjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmkKICAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlN0YXJ0RG93
bmxvYWQocG9saWN5RG93bmxvYWRJRCwgcmVxdWVzdCwgc3VnZ2VzdGVkTmFtZSksIDApOwogfQog
Ci12b2lkIFdlYkZyYW1lOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1l
bnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCit2b2lkIFdlYkZyYW1lOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9j
dW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIEFTU0VSVChtX3Bv
bGljeURvd25sb2FkSUQuZG93bmxvYWRJRCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXggM2RmMDU2Yzk4ZDQ3Zjc1YTk0OTFmODFjMmQyZTU5
ZmU3Yjg0MTFhYi4uMWI0ZGNiYzAwN2MyZDcwY2NjYTZiNTFkMTE3NWM0Mjk4Y2RiZGIxMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBAIC05Miw3ICs5
Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0odWludDY0X3Qp
OwogCiAgICAgdm9pZCBzdGFydERvd25sb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IHsgfSk7Ci0gICAgdm9pZCBjb252ZXJ0
TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBQQUw6
OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRU
b0Rvd25sb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCiAgICAgdm9p
ZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYsIHVpbnQ2NF90IHJlcXVlc3RJRCA9IDApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCA1MzRiYmI4OThiYjM5MGFiNDVjNTM0N2NhMTNlOGQ4ZDExMDMxY2YxLi44MzI0MGI5
ZWJhMDdlY2NhYmEwZDk3ZGIzYjVlOTlhMzkxYTkyZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKQEAgLTc4LDcgKzc4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRldGFjaGVkRnJvbVBh
cmVudDIoKSBmaW5hbDsKICAgICB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDMoKSBmaW5hbDsKIAot
ICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyKiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBmaW5hbDsKKyAgICB2b2lkIGNv
bnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlcios
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmKSBmaW5hbDsKIAogICAgIHZvaWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJl
cXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlcios
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCmluZGV4IDEzNzY2MTI2ZWFkYWIxZjI2ZDAzYzBhMDgyMWJmNmFiMDBhMmEw
N2QuLmQ1ZWRkNThmMzMzNTlkMDk0M2M2MzEzMDZhYzJmYTEwZDQyNzcyOTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0zMDIsNyArMzAyLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGV0YWNoZWRGcm9tUGFyZW50MygpCiAgICAgbV93ZWJGcmFtZS0+X3ByaXZhdGUt
PndlYkZyYW1lVmlldyA9IG5pbDsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29u
dmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExv
YWRlciwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIqIGRvY3Vt
ZW50TG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBnZXRXZWJWaWV3
KG1fd2ViRnJhbWUuZ2V0KCkpOwogICAgIFN1YnJlc291cmNlTG9hZGVyKiBtYWluUmVzb3VyY2VM
b2FkZXIgPSBkb2N1bWVudExvYWRlci0+bWFpblJlc291cmNlTG9hZGVyKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMjliODU0N2NmYTM0NzM2NmJmM2RlOGEwNDdlYWNhMDVj
ZDA3MDRiOS4uZDRmYjVkNzc2YzYwMzczZmU2NzNiYzE1MWU2ZjEyYTcwNzQ4OGQxZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTYzLDcgKzE2Myw3IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRldGFjaGVkRnJvbVBhcmVudDMoKQogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VM
b2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIsIFBBTDo6U2Vzc2lv
bklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udmVydE1haW5SZXNv
dXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKIHsKICAgICBDT01QdHI8SVdlYkRvd25sb2FkRGVsZWdhdGU+IGRvd25sb2FkRGVsZWdhdGU7
CiAgICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
aW5kZXggMWEyZDJmOGRlZGNiMjQ3ZDY4YjY2MzUzOGIzNTQ1MzY1YzAyMDMxNS4uMzNhODZjZTU3
ZmYxNDg1YWMyNzAxOTcwZDQ0MGZiMjNjZDM4NDUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRldGFjaGVkRnJvbVBhcmVu
dDIoKSBvdmVycmlkZTsKICAgICB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDMoKSBvdmVycmlkZTsK
IAotICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExv
YWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKICAgICB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0lu
aXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpIG92ZXJyaWRlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>