<?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>200020</bug_id>
          
          <creation_ts>2019-07-22 17:13:55 -0700</creation_ts>
          <short_desc>Make NetworkSession no longer RefCounted</short_desc>
          <delta_ts>2019-07-26 09:20:10 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1554938</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-07-22 17:13:55 -0700</bug_when>
    <thetext>This will simplify the object management model.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554945</commentid>
    <comment_count>1</comment_count>
      <attachid>374658</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-07-22 17:30:09 -0700</bug_when>
    <thetext>Created attachment 374658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554966</commentid>
    <comment_count>2</comment_count>
      <attachid>374663</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-07-22 18:53:35 -0700</bug_when>
    <thetext>Created attachment 374663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555060</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-23 10:09:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/53451361&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555117</commentid>
    <comment_count>4</comment_count>
      <attachid>374663</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-23 13:00:16 -0700</bug_when>
    <thetext>Comment on attachment 374663
Patch

I like it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555296</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-07-23 20:23:02 -0700</bug_when>
    <thetext>I probably am missing some if(m_networkSession).
@cgarcia, could you look whether some are missing in GTK code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555343</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-07-24 06:24:11 -0700</bug_when>
    <thetext>We need for sure a null check in the NetworkDataTask destructor, but I wonder if we need it everywhere m_session is used, or only in async completion handlers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555504</commentid>
    <comment_count>7</comment_count>
      <attachid>374810</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-07-24 14:23:56 -0700</bug_when>
    <thetext>Created attachment 374810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555505</commentid>
    <comment_count>8</comment_count>
      <attachid>374811</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-07-24 14:25:15 -0700</bug_when>
    <thetext>Created attachment 374811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555854</commentid>
    <comment_count>9</comment_count>
      <attachid>374811</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-25 11:17:26 -0700</bug_when>
    <thetext>Comment on attachment 374811
Patch

Clearing flags on attachment: 374811

Committed r247831: &lt;https://trac.webkit.org/changeset/247831&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555855</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-25 11:17:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1555891</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-07-25 14:11:09 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #9)
&gt; Comment on attachment 374811 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 374811
&gt; 
&gt; Committed r247831: &lt;https://trac.webkit.org/changeset/247831&gt;

Seems this broke GTK Debug build:

https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Debug%20%28Build%29/builds/23203/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556054</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-07-26 00:54:51 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #11)
&gt; (In reply to WebKit Commit Bot from comment #9)
&gt; &gt; Comment on attachment 374811 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 374811
&gt; &gt; 
&gt; &gt; Committed r247831: &lt;https://trac.webkit.org/changeset/247831&gt;
&gt; 
&gt; Seems this broke GTK Debug build:
&gt; 
&gt; https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Debug%20%28Build%29/
&gt; builds/23203/steps/compile-webkit/logs/stdio

Fixed in r247856: &lt;https://trac.webkit.org/changeset/247856&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556123</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-07-26 09:20:10 -0700</bug_when>
    <thetext>Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374658</attachid>
            <date>2019-07-22 17:30:09 -0700</date>
            <delta_ts>2019-07-22 18:53:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200020-20190722173008.patch</filename>
            <type>text/plain</type>
            <size>28399</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgxYzNlMzhiYjI2ODE0Yjc5
MWE5MzI0MWRlMjIwNmU1ZWQxZDc2YzMuLmZmOGVlMjEyNWQ3ZWFmNTMxY2JkMjczYzdmOGI3N2M5
ZmFmZDZmY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTktMDctMjIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgTmV0d29ya1Nlc3Npb24g
bm8gbG9uZ2VyIFJlZkNvdW50ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMDAyMAorCisgICAgICAgIFRoaXMgYWxsb3dzIHRvIGhhdmUgYSBzaW1w
bGVyIG1lbW9yeSBtYW5hZ2VtZW50IG1vZGVsIHdoZXJlCisgICAgICAgIE5ldHdvcmtTZXNzaW9u
IGNhbm5vdCBsaXZlIG9uY2UgcmVtb3ZlZCBmcm9tIHRoZSBuZXR3b3JrIHByb2Nlc3Mgc2Vzc2lv
biBtYXAuCisgICAgICAgIFRoaXMgcmVxdWlyZXMgc29tZSBhZGRpdGlvbmFsIG51bGwgY2hlY2tz
LCBlc3BlY2lhbGx5IGluIE5ldHdvcmtEYXRhVGFzay4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFz
ay5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6TmV0d29ya0RhdGFUYXNr
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0RhdGFUYXNrQmxvYjo6fk5ldHdvcmtEYXRhVGFza0Jsb2IpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tCbG9iOjpkb3dubG9hZCk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6bG93TWVtb3J5SGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lT
ZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRl
bGV0ZVdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6bmV0d29ya1Nlc3Npb25zKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjpjcmVhdGUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrU29ja2V0Q2hhbm5lbDo6TmV0d29ya1NvY2tldENoYW5uZWwpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6fk5ldHdvcmtTb2NrZXRDaGFubmVsKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtEYXRhVGFza0NvY29hOjphcHBseVNuaWZmaW5nUG9saWNpZXNBbmRCaW5kUmVxdWVz
dFRvSW5mZXJmYWNlSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0Ojpjb21wdXRlSXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6
Ok5ldHdvcmtEYXRhVGFza0NvY29hKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNr
Q29jb2E6On5OZXR3b3JrRGF0YVRhc2tDb2NvYSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFza0NvY29hOjpyZXN1bWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tD
b2NvYTo6aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKC1bV0tOZXR3b3Jr
U2Vzc2lvbkRlbGVnYXRlIGluaXRXaXRoTmV0d29ya1Nlc3Npb246d2l0aENyZWRlbnRpYWxzOl0p
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGVSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6Y2xlYXJSZXF1ZXN0KToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6Y2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0RhdGFUYXNrU291cDo6YXV0aGVudGljYXRlQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrRGF0YVRhc2tTb3VwOjphdXRoZW50aWNhdGUpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUF1dGhlbnRpY2F0ZSk6CisKIDIwMTktMDct
MjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW90ZSBX
ZWJJbnNwZWN0b3Igc2hvdWxkIGVuYWJsZSBtb2NrIGNhcHR1cmUgZGV2aWNlcyBpbiBVSVByb2Nl
c3MgaWYgZG9pbmcgaXQgaW4gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IGJjYmFlOWQzMWZiZjhlNzYwZTRkNmZm
NjYwMDEyODZkMDI1NGFhM2QuLjhiM2JjZTk2ZDczNjUxZDU5OTliMWU1NWEwYzE2ZTAzNTEzMTE4
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFz
ay5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgUmVmPE5ldHdvcmtEYXRhVGFzaz4gTmV0d29ya0RhdGFU
YXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXQKIAogTmV0d29y
a0RhdGFUYXNrOjpOZXR3b3JrRGF0YVRhc2soTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdv
cmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RX
aXRoQ3JlZGVudGlhbHMsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIGJv
b2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24pCiAgICAgOiBtX2ZhaWx1cmVUaW1l
cigqdGhpcywgJk5ldHdvcmtEYXRhVGFzazo6ZmFpbHVyZVRpbWVyRmlyZWQpCi0gICAgLCBtX3Nl
c3Npb24oc2Vzc2lvbikKKyAgICAsIG1fc2Vzc2lvbihtYWtlV2Vha1B0cihzZXNzaW9uKSkKICAg
ICAsIG1fY2xpZW50KCZjbGllbnQpCiAgICAgLCBtX3BhcnRpdGlvbihyZXF1ZXN0V2l0aENyZWRl
bnRpYWxzLmNhY2hlUGFydGl0aW9uKCkpCiAgICAgLCBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5
KHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0RhdGFUYXNrLmgKaW5kZXggOWY1ZmUxZjRiMzgzOTY0OTBjY2I0ZjQzMTVjNDJl
MTJiZWI2N2QwNy4uMWZiMDc4ZGY3YTMyZGM4MTc4YjI4N2Q2ODM4N2ZiYmY4M2UxZDc2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oCkBAIC0x
NDMsNyArMTQzLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgRmFpbHVyZVR5cGUgbV9zY2hlZHVsZWRG
YWlsdXJlVHlwZSB7IE5vRmFpbHVyZSB9OwogICAgIFdlYkNvcmU6OlRpbWVyIG1fZmFpbHVyZVRp
bWVyOwotICAgIFJlZjxOZXR3b3JrU2Vzc2lvbj4gbV9zZXNzaW9uOworICAgIFdlYWtQdHI8TmV0
d29ya1Nlc3Npb24+IG1fc2Vzc2lvbjsKICAgICBOZXR3b3JrRGF0YVRhc2tDbGllbnQqIG1fY2xp
ZW50IHsgbnVsbHB0ciB9OwogICAgIFBlbmRpbmdEb3dubG9hZCogbV9wZW5kaW5nRG93bmxvYWQg
eyBudWxscHRyIH07CiAgICAgRG93bmxvYWRJRCBtX3BlbmRpbmdEb3dubG9hZElEOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHAK
aW5kZXggYmViOGIzNmM4YjdmNDdmYmQ2Y2FlOWNjYjA2MDlmMmI3M2Y1MGMxZC4uODU2Y2ExZjA5
NWUxMDNjNTQyYWQ0ZTQzMDAwYmNiNzBmZjFmYjMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuY3BwCkBAIC04Niw3ICs4Niw4
IEBAIE5ldHdvcmtEYXRhVGFza0Jsb2I6On5OZXR3b3JrRGF0YVRhc2tCbG9iKCkKICAgICAgICAg
ZmlsZVJlZmVyZW5jZS0+cmV2b2tlRmlsZUFjY2VzcygpOwogCiAgICAgY2xlYXJTdHJlYW0oKTsK
LSAgICBtX3Nlc3Npb24tPnVucmVnaXN0ZXJOZXR3b3JrRGF0YVRhc2soKnRoaXMpOworICAgIGlm
IChtX3Nlc3Npb24pCisgICAgICAgIG1fc2Vzc2lvbi0+dW5yZWdpc3Rlck5ldHdvcmtEYXRhVGFz
aygqdGhpcyk7CiB9CiAKIHZvaWQgTmV0d29ya0RhdGFUYXNrQmxvYjo6Y2xlYXJTdHJlYW0oKQpA
QCAtNDU1LDYgKzQ1Niw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQmxvYjo6ZG93bmxvYWQoKQog
ewogICAgIEFTU0VSVChpc0Rvd25sb2FkKCkpOwogICAgIEFTU0VSVChtX3BlbmRpbmdEb3dubG9h
ZExvY2F0aW9uKTsKKyAgICBBU1NFUlQobV9zZXNzaW9uKTsKIAogICAgIExPRyhOZXR3b3JrU2Vz
c2lvbiwgIiVwIC0gTmV0d29ya0RhdGFUYXNrQmxvYjo6ZG93bmxvYWQgdG8gJXMiLCB0aGlzLCBt
X3BlbmRpbmdEb3dubG9hZExvY2F0aW9uLnV0ZjgoKS5kYXRhKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDI0YmQ3MTY5OWFh
ZmY0ZDJiMjgzNTMzMDQ5MDBmNjQ5ZTNlMGI4ODMuLmZmMGY4MzhiNGE5MjNhOTBhYjgzZGQzZGNj
M2RkZDYyZTFkNjJmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCkBAIC04NSw2ICs4NSw3IEBACiAjaW5jbHVkZSA8d3RmL09wdGlvblNl
dC5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CiAjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
QXRvbVN0cmluZy5oPgogCiAjaWYgRU5BQkxFKFNFQ19JVEVNX1NISU0pCkBAIC0yNzQsNyArMjc1
LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6bG93TWVtb3J5SGFuZGxlcihDcml0aWNhbCBjcml0
aWNhbCkKICAgICBXVEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgpOwogCiAgICAgZm9y
IChhdXRvJiBuZXR3b3JrU2Vzc2lvbiA6IG1fbmV0d29ya1Nlc3Npb25zLnZhbHVlcygpKQotICAg
ICAgICBuZXR3b3JrU2Vzc2lvbi5nZXQoKS5jbGVhclByZWZldGNoQ2FjaGUoKTsKKyAgICAgICAg
bmV0d29ya1Nlc3Npb24tPmNsZWFyUHJlZmV0Y2hDYWNoZSgpOwogfQogCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQpAQCAtNTc2LDcgKzU3Nyw3IEBAIE5ldHdvcmtTZXNzaW9u
KiBOZXR3b3JrUHJvY2Vzczo6bmV0d29ya1Nlc3Npb25CeUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uJiBjb25uCiAgICAgcmV0dXJuIHNlc3Npb25JRC5pc1ZhbGlkKCkgPyBuZXR3b3JrU2Vzc2lv
bihzZXNzaW9uSUQpIDogbnVsbHB0cjsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2Vz
c2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBSZWY8TmV0d29ya1Nlc3Npb24+
JiYgc2Vzc2lvbikKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFNlc3Npb24oY29uc3QgUEFMOjpT
ZXNzaW9uSUQmIHNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTZXNzaW9uPiYmIHNl
c3Npb24pCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQoc2Vz
c2lvbklELmlzVmFsaWQoKSk7CkBAIC01OTYsNyArNTk3LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6ZGVzdHJveVNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCkKICAgICBB
U1NFUlQoc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwog
CiAgICAgaWYgKGF1dG8gc2Vzc2lvbiA9IG1fbmV0d29ya1Nlc3Npb25zLnRha2Uoc2Vzc2lvbklE
KSkKLSAgICAgICAgc2Vzc2lvbi0+Z2V0KCkuaW52YWxpZGF0ZUFuZENhbmNlbCgpOworICAgICAg
ICBzZXNzaW9uLT5pbnZhbGlkYXRlQW5kQ2FuY2VsKCk7CiAgICAgbV9uZXR3b3JrU3RvcmFnZVNl
c3Npb25zLnJlbW92ZShzZXNzaW9uSUQpOwogICAgIG1fc2Vzc2lvbnNDb250cm9sbGVkQnlBdXRv
bWF0aW9uLnJlbW92ZShzZXNzaW9uSUQpOwogICAgIENhY2hlU3RvcmFnZTo6RW5naW5lOjpkZXN0
cm95RW5naW5lKCp0aGlzLCBzZXNzaW9uSUQpOwpAQCAtMTE0Niw3ICsxMTQ3LDcgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6c2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jk
c1JlbW92YWwoUEFMOjpTZXMKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBmb3IgKGF1dG8mIG5ldHdvcmtT
ZXNzaW9uIDogbV9uZXR3b3JrU2Vzc2lvbnMudmFsdWVzKCkpCi0gICAgICAgIG5ldHdvcmtTZXNz
aW9uLmdldCgpLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGVuYWJsZWQpOworICAg
ICAgICBuZXR3b3JrU2Vzc2lvbi0+c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZW5h
YmxlZCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIGRlYnVnTW9kZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTc1NCw3ICsx
NzU1LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JSZWdpc3Ry
YWJsZURvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2kKIAogICAgIGlmICh3ZWJzaXRlRGF0YVR5
cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSkgewogICAgICAgICBmb3Ig
KGF1dG8mIHNlc3Npb24gOiBuZXR3b3JrU2Vzc2lvbnMoKS52YWx1ZXMoKSkgewotICAgICAgICAg
ICAgZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzKHNlc3Npb24tPmNhY2hlKCksIHNlc3Npb25JRCwgZmV0
Y2hPcHRpb25zLCBbZG9tYWluc1RvRGVsZXRlQWxsQnV0Q29va2llc0ZvciwgY2FsbGJhY2tBZ2dy
ZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKSwgc2Vzc2lvbiA9IHNlc3Npb24u
Y29weVJlZigpXShhdXRvIGVudHJpZXMpIG11dGFibGUgeworICAgICAgICAgICAgZmV0Y2hEaXNr
Q2FjaGVFbnRyaWVzKHNlc3Npb24tPmNhY2hlKCksIHNlc3Npb25JRCwgZmV0Y2hPcHRpb25zLCBb
ZG9tYWluc1RvRGVsZXRlQWxsQnV0Q29va2llc0ZvciwgY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2Fs
bGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKSwgc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNlc3Npb24u
Z2V0KCkpXShhdXRvIGVudHJpZXMpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmICghc2Vz
c2lvbikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICAgICAgVmVj
dG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gZW50cmllc1RvRGVsZXRlOwogICAgICAgICAgICAgICAg
IGZvciAoYXV0byYgZW50cnkgOiBlbnRyaWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNjlmM2Q0ZjY3OTJjMGI5Y2M3YTEwMjg2YTgy
YWM1M2Q4YjEyOTQ3ZC4uNGExYzNmNDljN2FjYzc4MmYxNTU2Mjk2NzVlZjE2MzFkZDg3Nzc4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAt
MTYxLDEzICsxNjEsMTMgQEAgcHVibGljOgogICAgIEF1dGhlbnRpY2F0aW9uTWFuYWdlciYgYXV0
aGVudGljYXRpb25NYW5hZ2VyKCk7CiAgICAgRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFn
ZXIoKTsKIAotICAgIHZvaWQgc2V0U2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYsIFJlZjxO
ZXR3b3JrU2Vzc2lvbj4mJik7CisgICAgdm9pZCBzZXRTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lv
bklEJiwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTZXNzaW9uPiYmKTsKICAgICBOZXR3b3JrU2Vz
c2lvbiogbmV0d29ya1Nlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKSBjb25zdCBmaW5hbDsK
ICAgICBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb25CeUNvbm5lY3Rpb24oSVBDOjpDb25u
ZWN0aW9uJikgY29uc3Q7CiAgICAgdm9pZCBkZXN0cm95U2Vzc2lvbihjb25zdCBQQUw6OlNlc3Np
b25JRCYpOwogCiAgICAgLy8gTmVlZGVkIGZvciB0ZXN0IGluZnJhc3RydWN0dXJlCi0gICAgSGFz
aE1hcDxQQUw6OlNlc3Npb25JRCwgUmVmPE5ldHdvcmtTZXNzaW9uPj4mIG5ldHdvcmtTZXNzaW9u
cygpIHsgcmV0dXJuIG1fbmV0d29ya1Nlc3Npb25zOyB9CisgICAgSGFzaE1hcDxQQUw6OlNlc3Np
b25JRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTZXNzaW9uPj4mIG5ldHdvcmtTZXNzaW9ucygp
IHsgcmV0dXJuIG1fbmV0d29ya1Nlc3Npb25zOyB9CiAKICAgICB2b2lkIGZvckVhY2hOZXR3b3Jr
U3RvcmFnZVNlc3Npb24oY29uc3QgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mKT4mKTsKICAgICBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24qIHN0b3Jh
Z2VTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJikgY29uc3Q7CkBAIC00OTYsNyArNDk2LDcg
QEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFBBTDo6U2Vzc2lvbklEPiBtX3Nlc3Npb25zQ29udHJv
bGxlZEJ5QXV0b21hdGlvbjsKICAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBWZWN0b3I8Q2Fj
aGVTdG9yYWdlUm9vdFBhdGhDYWxsYmFjaz4+IG1fY2FjaGVTdG9yYWdlUGFyYW1ldGVyc0NhbGxi
YWNrczsKIAotICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZjxOZXR3b3JrU2Vzc2lvbj4+
IG1fbmV0d29ya1Nlc3Npb25zOworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5p
cXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4+IG1fbmV0d29ya1Nlc3Npb25zOwogICAgIEhhc2hNYXA8
UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24+PiBtX25ldHdvcmtTdG9yYWdlU2Vzc2lvbnM7CiAgICAgbXV0YWJsZSBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPiBtX2RlZmF1bHROZXR3b3JrU3Rv
cmFnZVNlc3Npb247CiAgICAgTmV0d29ya0Jsb2JSZWdpc3RyeSBtX25ldHdvcmtCbG9iUmVnaXN0
cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
CmluZGV4IDJhMTE2MmQ3NWVhYThkZGZkOGRkMDE3YTBiNmE1Nzk4MGEzMGFkMjYuLjUzNzVlMTYz
YWE0ZTczYWU1Y2FmODcwMmE2NDY2YTFjMjczODA1NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC01Niw3ICs1Niw3IEBACiBuYW1l
c3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8TmV0d29ya1Nl
c3Npb24+IE5ldHdvcmtTZXNzaW9uOjpjcmVhdGUoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9j
ZXNzLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCitzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+IE5ldHdvcmtTZXNzaW9uOjpjcmVhdGUoTmV0d29y
a1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cyYmIHBhcmFtZXRlcnMpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgcmV0dXJuIE5ldHdv
cmtTZXNzaW9uQ29jb2E6OmNyZWF0ZShuZXR3b3JrUHJvY2VzcywgV1RGTW92ZShwYXJhbWV0ZXJz
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5k
ZXggYjNlNDEyZWJmMzAzNWQ4MTljZWQyNzRhZjAwZDZhYzY5Mjk3ZTcyYy4uN2I2ODNhNzM1MDE5
OTRjZTMwMDc1ZTkxYmFiMDgyNzcxOTQ4NmExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgPHBh
bC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRz
Lmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CkBAIC02NCw5ICs2Myw5IEBAIG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGUgewogY2xhc3MgQ2FjaGU7
CiB9CiAKLWNsYXNzIE5ldHdvcmtTZXNzaW9uIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya1Nl
c3Npb24+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TmV0d29ya1Nlc3Npb24+IHsKK2NsYXNzIE5l
dHdvcmtTZXNzaW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE5ldHdvcmtTZXNzaW9uPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrU2Vzc2lvbj4gY3JlYXRlKE5ldHdvcmtQcm9j
ZXNzJiwgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJik7CisgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4gY3JlYXRlKE5ldHdvcmtQcm9jZXNzJiwgTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJik7CiAgICAgdmlydHVhbCB+TmV0d29ya1Nl
c3Npb24oKTsKIAogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQW5kQ2FuY2VsKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwu
Y3BwCmluZGV4IDU2OTMwYzM2MGZiYTBkZjcwMGQ0MTMyNDRkZWQ1Mjk2MjU3Mjg0MDkuLmE5OGU5
NmYxMDVjNGI5M2I0NGI3NDRjOWIxOWU0OGQzN2M3MWM3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCkBAIC00Niwx
MCArNDYsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTb2NrZXRDaGFubmVsPiBOZXR3b3Jr
U29ja2V0Q2hhbm5lbDo6Y3JlYXRlKE5ldHdvcmtDb25uZWMKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1OZXR3b3JrU29ja2V0Q2hhbm5lbDo6TmV0d29ya1NvY2tldENoYW5uZWwoTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFJlZlB0cjxOZXR3b3JrU2Vzc2lvbj4m
JiBzZXNzaW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYg
cHJvdG9jb2wsIHVpbnQ2NF90IGlkZW50aWZpZXIpCitOZXR3b3JrU29ja2V0Q2hhbm5lbDo6TmV0
d29ya1NvY2tldENoYW5uZWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rp
b24sIE5ldHdvcmtTZXNzaW9uKiBzZXNzaW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIHVpbnQ2NF90IGlkZW50aWZpZXIpCiAgICAgOiBt
X2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvbikKICAgICAsIG1faWRlbnRpZmllcihp
ZGVudGlmaWVyKQotICAgICwgbV9zZXNzaW9uKFdURk1vdmUoc2Vzc2lvbikpCisgICAgLCBtX3Nl
c3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCiB7CiAgICAgaWYgKCFtX3Nlc3Npb24pCiAgICAg
ICAgIHJldHVybjsKQEAgLTYzLDExICs2MywxMSBAQCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6TmV0
d29ya1NvY2tldENoYW5uZWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lYwog
CiBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6fk5ldHdvcmtTb2NrZXRDaGFubmVsKCkKIHsKLSAgICBp
ZiAoIW1fc29ja2V0KQotICAgICAgICByZXR1cm47CisgICAgaWYgKG1fc2Vzc2lvbikKKyAgICAg
ICAgbV9zZXNzaW9uLT5yZW1vdmVXZWJTb2NrZXRUYXNrKCptX3NvY2tldCk7CiAKLSAgICBtX3Nv
Y2tldC0+Y2FuY2VsKCk7Ci0gICAgbV9zZXNzaW9uLT5yZW1vdmVXZWJTb2NrZXRUYXNrKCptX3Nv
Y2tldCk7CisgICAgaWYgKG1fc29ja2V0KQorICAgICAgICBtX3NvY2tldC0+Y2FuY2VsKCk7CiB9
CiAKIHZvaWQgTmV0d29ya1NvY2tldENoYW5uZWw6OnNlbmRTdHJpbmcoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgKaW5kZXgg
NDI3ZjI3YjdhYjdjN2Q4NTc4ODExZTVhODg4NGNkM2FmNDY0OTE1My4uZjdjZDJhMTg0ZDc3OWU4
YzJlNzFlMTA3ODIzZTdlYmZjYTU4NDU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaApAQCAtNTEsNyArNTEsNyBAQCBjbGFz
cyBOZXR3b3JrU29ja2V0Q2hhbm5lbCA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VSZWNlaQogcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
TmV0d29ya1NvY2tldENoYW5uZWw+IGNyZWF0ZShOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBTdHJpbmcmIHByb3RvY29sLCB1aW50NjRfdCBpZGVudGlmaWVyKTsKIAotICAgIE5ldHdvcmtT
b2NrZXRDaGFubmVsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVmUHRyPE5ldHdv
cmtTZXNzaW9uPiYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJp
bmcmIHByb3RvY29sLCB1aW50NjRfdCBpZGVudGlmaWVyKTsKKyAgICBOZXR3b3JrU29ja2V0Q2hh
bm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uKiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgdWlu
dDY0X3QgaWRlbnRpZmllcik7CiAgICAgfk5ldHdvcmtTb2NrZXRDaGFubmVsKCk7CiAKICAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwpA
QCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgogCiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIG1fY29ubmVjdGlvblRvV2ViUHJvY2VzczsKICAgICB1aW50NjRfdCBtX2lkZW50aWZp
ZXI7Ci0gICAgUmVmUHRyPE5ldHdvcmtTZXNzaW9uPiBtX3Nlc3Npb247CisgICAgV2Vha1B0cjxO
ZXR3b3JrU2Vzc2lvbj4gbV9zZXNzaW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRU
YXNrPiBtX3NvY2tldDsKIAogICAgIGVudW0gY2xhc3MgU3RhdGUgeyBPcGVuLCBDbG9zaW5nLCBD
bG9zZWQgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCA3NzFiM2FiNTkxMTNlMzUxOTdiYjllZDI4
NGQwZWNiMGUyMzBjNmUyLi4zOGVkOWNmNThjYjY5NGFlNTUzOTgwNjIxZTUxMmViYmVlNWFhY2Fm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC0xMDAsNiArMTAwLDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAgICAgYm9vbCBtX2lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1faXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkIHsgZmFsc2UgfTsK
IH07CiAKIFdlYkNvcmU6OkNyZWRlbnRpYWwgc2VydmVyVHJ1c3RDcmVkZW50aWFsKGNvbnN0IFdl
YkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRl
eCAxZjRlN2I0NGM4ODQ2YWJjZWRlYWVhZWM5YWVjOWFjZWM1MWQ0ZDFjLi5iYTVlODgwMGViYjBl
OWYwNWZhODFhNGEzYWQ1MjNjMWI3Y2ZiZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KQEAgLTg1
LDcgKzg1LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6YXBwbHlTbmlmZmluZ1BvbGlj
aWVzQW5kQmluZFJlcXVlc3RUb0luZmVyZmFjZUlmTmVlZGUKICAgICBVTlVTRURfUEFSQU0oc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYpOwogI2VuZGlmCiAKLSAgICBhdXRvJiBjb2NvYVNlc3Np
b24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4obV9zZXNzaW9uLmdldCgpKTsK
KyAgICBhdXRvJiBjb2NvYVNlc3Npb24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29h
Jj4oKm1fc2Vzc2lvbik7CiAgICAgaWYgKHNob3VsZENvbnRlbnRTbmlmZgogI2lmIFVTRShDRk5F
VFdPUktfQ09OVEVOVF9FTkNPRElOR19TTklGRklOR19PVkVSUklERSkKICAgICAgICAgJiYgc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYKQEAgLTE2OCwxMSArMTY4LDIwIEBAIHN0YXRpYyB2b2lk
IHVwZGF0ZVRhc2tXaXRoRmlyc3RQYXJ0eUZvclNhbWVTaXRlQ29va2llcyhOU1VSTFNlc3Npb25E
YXRhVGFzayogdGFzCiAjZW5kaWYKIH0KIAorc3RhdGljIGlubGluZSBib29sIGNvbXB1dGVJc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24pCit7CisgICAgaWYg
KHNlc3Npb24ubmV0d29ya1Byb2Nlc3MoKS5zZXNzaW9uSXNDb250cm9sbGVkQnlBdXRvbWF0aW9u
KHNlc3Npb24uc2Vzc2lvbklEKCkpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVy
biBzZXNzaW9uLnNlc3Npb25JRCgpLmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpOworfQorCiBO
ZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24m
IHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZyYW1lSUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmlu
Z1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZm
aW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5l
Y3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFU
YXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdv
cmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCiAgICAgOiBOZXR3b3Jr
RGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCwgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24pCiAgICAgLCBtX2ZyYW1lSUQoZnJh
bWVJRCkKICAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKICAgICAsIG1faXNGb3JNYWluUmVzb3VyY2VO
YXZpZ2F0aW9uRm9yQW55RnJhbWUoZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25G
b3JBbnlGcmFtZSkKKyAgICAsIG1faXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKGNvbXB1dGVJc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoc2Vzc2lvbikpCiB7CiAgICAgaWYgKG1fc2NoZWR1bGVkRmFp
bHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICByZXR1cm47CkBAIC0yMTIsNyArMjIxLDcg
QEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNz
aW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKICAgICBOU1VSTFJlcXVlc3QgKm5zUmVxdWVzdCA9
IHJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpVcGRh
dGVIVFRQQm9keSk7CiAgICAgYXBwbHlTbmlmZmluZ1BvbGljaWVzQW5kQmluZFJlcXVlc3RUb0lu
ZmVyZmFjZUlmTmVlZGVkKG5zUmVxdWVzdCwgc2hvdWxkQ29udGVudFNuaWZmID09IFdlYkNvcmU6
OkNvbnRlbnRTbmlmZmluZ1BvbGljeTo6U25pZmZDb250ZW50ICYmICF1cmwuaXNMb2NhbEZpbGUo
KSwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgPT0gV2ViQ29yZTo6Q29udGVudEVuY29kaW5n
U25pZmZpbmdQb2xpY3k6OlNuaWZmKTsKIAotICAgIGF1dG8mIGNvY29hU2Vzc2lvbiA9IHN0YXRp
Y19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihtX3Nlc3Npb24uZ2V0KCkpOworICAgIGF1dG8m
IGNvY29hU2Vzc2lvbiA9IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPigqbV9zZXNz
aW9uKTsKICAgICBzd2l0Y2ggKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KSB7CiAgICAgY2FzZSBX
ZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlOgogICAgICAgICBtX3Rhc2sgPSBb
Y29jb2FTZXNzaW9uLm1fc2Vzc2lvbldpdGhDcmVkZW50aWFsU3RvcmFnZSBkYXRhVGFza1dpdGhS
ZXF1ZXN0Om5zUmVxdWVzdF07CkBAIC0yNjksMTAgKzI3OCwxMCBAQCBOZXR3b3JrRGF0YVRhc2tD
b2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdv
cmtEYXRhVAogCiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6fk5ldHdvcmtEYXRhVGFza0NvY29hKCkK
IHsKLSAgICBpZiAoIW1fdGFzaykKKyAgICBpZiAoIW1fdGFzayB8fCAhbV9zZXNzaW9uKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvJiBjb2NvYVNlc3Npb24gPSBzdGF0aWNfY2FzdDxOZXR3
b3JrU2Vzc2lvbkNvY29hJj4obV9zZXNzaW9uLmdldCgpKTsKKyAgICBhdXRvJiBjb2NvYVNlc3Np
b24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4oKm1fc2Vzc2lvbik7CiAgICAg
c3dpdGNoIChtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5KSB7CiAgICAgY2FzZSBXZWJDb3JlOjpT
dG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlOgogICAgICAgICBBU1NFUlQoY29jb2FTZXNzaW9u
Lm1fZGF0YVRhc2tNYXBXaXRoQ3JlZGVudGlhbHMuZ2V0KFttX3Rhc2sgdGFza0lkZW50aWZpZXJd
KSA9PSB0aGlzKTsKQEAgLTUwNSw3ICs1MTQsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29h
OjpyZXN1bWUoKQogICAgIGlmIChtX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkK
ICAgICAgICAgbV9mYWlsdXJlVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiAKLSAgICBhdXRvJiBj
b2NvYVNlc3Npb24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4obV9zZXNzaW9u
LmdldCgpKTsKKyAgICBhdXRvJiBjb2NvYVNlc3Npb24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vz
c2lvbkNvY29hJj4oKm1fc2Vzc2lvbik7CiAgICAgaWYgKGNvY29hU2Vzc2lvbi5kZXZpY2VNYW5h
Z2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgpICYmIG1faXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0
aW9uRm9yQW55RnJhbWUpIHsKICAgICAgICAgYXV0byBkaWREZXRlcm1pbmVEZXZpY2VSZXN0cmlj
dGlvblBvbGljeUZvclVSTCA9IG1ha2VCbG9ja1B0cihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpXShCT09MIGlzQmxvY2tlZCkgewogICAgICAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpc0Jsb2NrZWRdIHsK
QEAgLTU2MSwxMCArNTcwLDcgQEAgV2ViQ29yZTo6Q3JlZGVudGlhbCBzZXJ2ZXJUcnVzdENyZWRl
bnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UKIAogYm9vbCBOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3QKIHsKLSAg
ICBpZiAobV9zZXNzaW9uLT5uZXR3b3JrUHJvY2VzcygpLnNlc3Npb25Jc0NvbnRyb2xsZWRCeUF1
dG9tYXRpb24obV9zZXNzaW9uLT5zZXNzaW9uSUQoKSkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
Ci0gICAgcmV0dXJuIG1fc2Vzc2lvbi0+c2Vzc2lvbklEKCkuaXNBbHdheXNPbkxvZ2dpbmdBbGxv
d2VkKCk7CisgICAgcmV0dXJuIG1faXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkOwogfQogCiBTdHJp
bmcgTmV0d29ya0RhdGFUYXNrQ29jb2E6OmRlc2NyaXB0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
LmgKaW5kZXggM2UxMzc3MGU1Y2JjNTYzYmE3NjQxMjA0ZmIyMTE1NjY0NDM1Nzc5OC4uNGJhYjIz
ZWE4NTNjZThhYTcyZTM4ZGRmYTZmODU4YTUxNWJkOTBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKQEAg
LTQ3LDcgKzQ3LDkgQEAgY2xhc3MgTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOwogY2xhc3Mg
TmV0d29ya1Nlc3Npb25Db2NvYSBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrU2Vzc2lvbiB7CiAgICAg
ZnJpZW5kIGNsYXNzIE5ldHdvcmtEYXRhVGFza0NvY29hOwogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8TmV0d29ya1Nlc3Npb24+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzJiYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29y
a1Nlc3Npb24+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzJiYpOworCisgICAgTmV0d29ya1Nlc3Npb25Db2NvYShOZXR3b3JrUHJvY2VzcyYs
IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIH5OZXR3b3JrU2Vzc2lv
bkNvY29hKCk7CiAKICAgICB2b2lkIGluaXRpYWxpemVFcGhlbWVyYWxTdGF0ZWxlc3NDb29raWVs
ZXNzU2Vzc2lvbigpOwpAQCAtODAsOCArODIsNiBAQCBwdWJsaWM6CiAgICAgRE1GV2Vic2l0ZVBv
bGljeU1vbml0b3IgKmRldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yKCk7CiAKIHByaXZhdGU6
Ci0gICAgTmV0d29ya1Nlc3Npb25Db2NvYShOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzJiYpOwotCiAgICAgdm9pZCBpbnZhbGlkYXRlQW5kQ2FuY2VsKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBjbGVhckNyZWRlbnRpYWxzKCkgb3ZlcnJpZGU7CiAgICAgYm9v
bCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb247IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCAwMGVk
YTViYzg4YWU1MjIyZjdhMjIwNDVkNTg3NThiZWM0OWY3MzMyLi4wNGIwMzQ5MTRlNmM2NmQzZjcz
ZDIyOGNhMjQxMDdhZTFhNmVmMDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCkBAIC0zMjksNyArMzI5
LDcgQEAgQGludGVyZmFjZSBXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgOiBOU09iamVjdCA8TlNV
UkxTZXNzaW9uRGF0YURlbGVnYXRlCiAgICAgLCBOU1VSTFNlc3Npb25XZWJTb2NrZXREZWxlZ2F0
ZQogI2VuZGlmCiA+IHsKLSAgICBSZWZQdHI8V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hPiBf
c2Vzc2lvbjsKKyAgICBXZWFrUHRyPFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYT4gX3Nlc3Np
b247CiAgICAgYm9vbCBfd2l0aENyZWRlbnRpYWxzOwogfQogCkBAIC0zNDYsNyArMzQ2LDcgQEAg
LSAoaWQpaW5pdFdpdGhOZXR3b3JrU2Vzc2lvbjooV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29h
JilzZXNzaW9uIHdpdGhDcmVkZW50aWEKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBu
aWw7CiAKLSAgICBfc2Vzc2lvbiA9ICZzZXNzaW9uOworICAgIF9zZXNzaW9uID0gbWFrZVdlYWtQ
dHIoc2Vzc2lvbik7CiAgICAgX3dpdGhDcmVkZW50aWFscyA9IHdpdGhDcmVkZW50aWFsczsKIAog
ICAgIHJldHVybiBzZWxmOwpAQCAtODk2LDkgKzg5Niw5IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25D
b2NvYTo6c2V0Q1REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkK
IH0KICNlbmRpZgogCi1SZWY8TmV0d29ya1Nlc3Npb24+IE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNy
ZWF0ZShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKK3N0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lv
bj4gTmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJv
Y2VzcywgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtTZXNzaW9uQ29jb2EobmV0d29ya1Byb2Nl
c3MsIFdURk1vdmUocGFyYW1ldGVycykpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxO
ZXR3b3JrU2Vzc2lvbkNvY29hPihuZXR3b3JrUHJvY2VzcywgV1RGTW92ZShwYXJhbWV0ZXJzKSk7
CiB9CiAKIHN0YXRpYyBOU0RpY3Rpb25hcnkgKnByb3h5RGljdGlvbmFyeShjb25zdCBVUkwmIGh0
dHBQcm94eSwgY29uc3QgVVJMJiBodHRwc1Byb3h5KQpAQCAtOTM1LDggKzkzNSw2IEBAIE5ldHdv
cmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdv
cmtQcm9jZXNzLCBOZXR3b3JrCiB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJv
Y2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwogCi0gICAgcmVsYXhBZG9wdGlv
blJlcXVpcmVtZW50KCk7Ci0KICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgc2Vzc2lvbnNDcmVh
dGVkID0gdHJ1ZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4IDhmY2ZiY2FjZWUwNGRj
ZTliZWM4YjQwYTRhYjE4OTUyMDQ1YzNmOTkuLjQ2OGQ0MGE5Y2I3MGM4OTk1MzdlNmU4Zjc3NTg3
MDVmNGM5NWJlNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291
cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lk
IE5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEdSZWZQdHI8U291cFJlcXVlc3Q+
IHNvdXBSZXF1ZXN0ID0gYWRvcHRHUmVmKHNvdXBfc2Vzc2lvbl9yZXF1ZXN0X3VyaShzdGF0aWNf
Y2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPihtX3Nlc3Npb24uZ2V0KCkpLnNvdXBTZXNzaW9uKCks
IHNvdXBVUkkuZ2V0KCksIG51bGxwdHIpKTsKKyAgICBHUmVmUHRyPFNvdXBSZXF1ZXN0PiBzb3Vw
UmVxdWVzdCA9IGFkb3B0R1JlZihzb3VwX3Nlc3Npb25fcmVxdWVzdF91cmkoc3RhdGljX2Nhc3Q8
TmV0d29ya1Nlc3Npb25Tb3VwJj4oKm1fc2Vzc2lvbikuc291cFNlc3Npb24oKSwgc291cFVSSS5n
ZXQoKSwgbnVsbHB0cikpOwogICAgIGlmICghc291cFJlcXVlc3QpIHsKICAgICAgICAgc2NoZWR1
bGVGYWlsdXJlKEludmFsaWRVUkxGYWlsdXJlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTY0LDcg
KzE2NCw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0KQogCiAgICAgZ19zaWduYWxfY29ubmVjdChtX3NvdXBNZXNzYWdl
LmdldCgpLCAiZ290LWhlYWRlcnMiLCBHX0NBTExCQUNLKGdvdEhlYWRlcnNDYWxsYmFjayksIHRo
aXMpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9zb3VwTWVzc2FnZS5nZXQoKSwgIndyb3RlLWJv
ZHktZGF0YSIsIEdfQ0FMTEJBQ0sod3JvdGVCb2R5RGF0YUNhbGxiYWNrKSwgdGhpcyk7Ci0gICAg
Z19zaWduYWxfY29ubmVjdChzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPihtX3Nlc3Np
b24uZ2V0KCkpLnNvdXBTZXNzaW9uKCksICJhdXRoZW50aWNhdGUiLCAgR19DQUxMQkFDSyhhdXRo
ZW50aWNhdGVDYWxsYmFjayksIHRoaXMpOworICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc3RhdGljX2Nh
c3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4oKm1fc2Vzc2lvbikuc291cFNlc3Npb24oKSwgImF1dGhl
bnRpY2F0ZSIsICBHX0NBTExCQUNLKGF1dGhlbnRpY2F0ZUNhbGxiYWNrKSwgdGhpcyk7CiAgICAg
Z19zaWduYWxfY29ubmVjdChtX3NvdXBNZXNzYWdlLmdldCgpLCAibmV0d29yay1ldmVudCIsIEdf
Q0FMTEJBQ0sobmV0d29ya0V2ZW50Q2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25u
ZWN0KG1fc291cE1lc3NhZ2UuZ2V0KCksICJyZXN0YXJ0ZWQiLCBHX0NBTExCQUNLKHJlc3RhcnRl
ZENhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdChtX3NvdXBNZXNzYWdlLmdl
dCgpLCAic3RhcnRpbmciLCBHX0NBTExCQUNLKHN0YXJ0aW5nQ2FsbGJhY2spLCB0aGlzKTsKQEAg
LTE4NywxMCArMTg3LDEwIEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y2xlYXJSZXF1ZXN0
KCkKICAgICBtX2NhbmNlbGxhYmxlID0gbnVsbHB0cjsKICAgICBpZiAobV9zb3VwTWVzc2FnZSkg
ewogICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X21hdGNoZWQobV9zb3VwTWVz
c2FnZS5nZXQoKSwgR19TSUdOQUxfTUFUQ0hfREFUQSwgMCwgMCwgbnVsbHB0ciwgbnVsbHB0ciwg
dGhpcyk7Ci0gICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5jZWxfbWVzc2FnZShzdGF0aWNfY2FzdDxO
ZXR3b3JrU2Vzc2lvblNvdXAmPihtX3Nlc3Npb24uZ2V0KCkpLnNvdXBTZXNzaW9uKCksIG1fc291
cE1lc3NhZ2UuZ2V0KCksIFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7CisgICAgICAgIHNvdXBfc2Vz
c2lvbl9jYW5jZWxfbWVzc2FnZShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPigqbV9z
ZXNzaW9uKS5zb3VwU2Vzc2lvbigpLCBtX3NvdXBNZXNzYWdlLmdldCgpLCBTT1VQX1NUQVRVU19D
QU5DRUxMRUQpOwogICAgICAgICBtX3NvdXBNZXNzYWdlID0gbnVsbHB0cjsKICAgICB9Ci0gICAg
Z19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9tYXRjaGVkKHN0YXRpY19jYXN0PE5ldHdvcmtT
ZXNzaW9uU291cCY+KG1fc2Vzc2lvbi5nZXQoKSkuc291cFNlc3Npb24oKSwgR19TSUdOQUxfTUFU
Q0hfREFUQSwgMCwgMCwgbnVsbHB0ciwgbnVsbHB0ciwgdGhpcyk7CisgICAgZ19zaWduYWxfaGFu
ZGxlcnNfZGlzY29ubmVjdF9tYXRjaGVkKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uU291cCY+
KCptX3Nlc3Npb24pLnNvdXBTZXNzaW9uKCksIEdfU0lHTkFMX01BVENIX0RBVEEsIDAsIDAsIG51
bGxwdHIsIG51bGxwdHIsIHRoaXMpOwogfQogCiB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OnJl
c3VtZSgpCkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjYW5j
ZWwoKQogICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q2FuY2VsaW5nOwogCiAgICAgaWYgKG1fc291cE1l
c3NhZ2UpCi0gICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5jZWxfbWVzc2FnZShzdGF0aWNfY2FzdDxO
ZXR3b3JrU2Vzc2lvblNvdXAmPihtX3Nlc3Npb24uZ2V0KCkpLnNvdXBTZXNzaW9uKCksIG1fc291
cE1lc3NhZ2UuZ2V0KCksIFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7CisgICAgICAgIHNvdXBfc2Vz
c2lvbl9jYW5jZWxfbWVzc2FnZShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPigqbV9z
ZXNzaW9uKS5zb3VwU2Vzc2lvbigpLCBtX3NvdXBNZXNzYWdlLmdldCgpLCBTT1VQX1NUQVRVU19D
QU5DRUxMRUQpOwogCiAgICAgZ19jYW5jZWxsYWJsZV9jYW5jZWwobV9jYW5jZWxsYWJsZS5nZXQo
KSk7CiAKQEAgLTQzMyw3ICs0MzMsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmFwcGx5
QXV0aGVudGljYXRpb25Ub1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogCiB2b2lk
IE5ldHdvcmtEYXRhVGFza1NvdXA6OmF1dGhlbnRpY2F0ZUNhbGxiYWNrKFNvdXBTZXNzaW9uKiBz
ZXNzaW9uLCBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIFNvdXBBdXRoKiBzb3VwQXV0aCwgZ2Jv
b2xlYW4gcmV0cnlpbmcsIE5ldHdvcmtEYXRhVGFza1NvdXAqIHRhc2spCiB7Ci0gICAgQVNTRVJU
KHNlc3Npb24gPT0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4odGFzay0+bV9zZXNz
aW9uLmdldCgpKS5zb3VwU2Vzc2lvbigpKTsKKyAgICBBU1NFUlQoc2Vzc2lvbiA9PSBzdGF0aWNf
Y2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPih0YXNrLT4qbV9zZXNzaW9uKS5zb3VwU2Vzc2lvbigp
KTsKIAogICAgIC8vIFdlIGRvbid0IHJldHVybiBlYXJseSBoZXJlIGluIGNhc2UgdGhlIGdpdmVu
IHNvdXBNZXNzYWdlIGlzIGRpZmZlcmVudCB0byBtX3NvdXBNZXNzYWdlIHdoZW4KICAgICAvLyBp
dCdzIHByb3h5IGF1dGhlbnRpY2F0aW9uIGFuZCB0aGUgcmVxdWVzdCBVUkwgaXMgSFRUUFMsIGJl
Y2F1c2UgaW4gdGhhdCBjYXNlIGxpYnNvdXAgdXNlcyBhCkBAIC00ODEsNyArNDgxLDcgQEAgdm9p
ZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjphdXRoZW50aWNhdGUoQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmJiBjaGFsbGVuZ2UpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBzb3VwX3Nlc3Npb25fcGF1
c2VfbWVzc2FnZShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPihtX3Nlc3Npb24uZ2V0
KCkpLnNvdXBTZXNzaW9uKCksIGNoYWxsZW5nZS5zb3VwTWVzc2FnZSgpKTsKKyAgICBzb3VwX3Nl
c3Npb25fcGF1c2VfbWVzc2FnZShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPigqbV9z
ZXNzaW9uKS5zb3VwU2Vzc2lvbigpLCBjaGFsbGVuZ2Uuc291cE1lc3NhZ2UoKSk7CiAKICAgICAv
LyBXZSBjb3VsZCBhbHNvIGRvIHRoaXMgYmVmb3JlIHdlIGV2ZW4gc3RhcnQgdGhlIHJlcXVlc3Qs
IGJ1dCB0aGF0IHdvdWxkIGJlIGF0IHRoZSBleHBlbnNlCiAgICAgLy8gb2YgYWxsIHJlcXVlc3Qg
bGF0ZW5jeSwgdmVyc3VzIGEgb25lLXRpbWUgbGF0ZW5jeSBmb3IgdGhlIHNtYWxsIHN1YnNldCBv
ZiByZXF1ZXN0cyB0aGF0CkBAIC01MzUsNyArNTM1LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tT
b3VwOjpjb250aW51ZUF1dGhlbnRpY2F0ZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmIGNoYWxs
ZW4KICAgICAgICAgICAgIHNvdXBfYXV0aF9hdXRoZW50aWNhdGUoY2hhbGxlbmdlLnNvdXBBdXRo
KCksIGNyZWRlbnRpYWwudXNlcigpLnV0ZjgoKS5kYXRhKCksIGNyZWRlbnRpYWwucGFzc3dvcmQo
KS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgfQogCi0gICAgICAgIHNvdXBfc2Vzc2lvbl91bnBh
dXNlX21lc3NhZ2Uoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4obV9zZXNzaW9uLmdl
dCgpKS5zb3VwU2Vzc2lvbigpLCBjaGFsbGVuZ2Uuc291cE1lc3NhZ2UoKSk7CisgICAgICAgIHNv
dXBfc2Vzc2lvbl91bnBhdXNlX21lc3NhZ2Uoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3Vw
Jj4oKm1fc2Vzc2lvbikuc291cFNlc3Npb24oKSwgY2hhbGxlbmdlLnNvdXBNZXNzYWdlKCkpOwog
ICAgIH0pOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374663</attachid>
            <date>2019-07-22 18:53:35 -0700</date>
            <delta_ts>2019-07-24 14:23:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200020-20190722185334.patch</filename>
            <type>text/plain</type>
            <size>31142</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgxYzNlMzhiYjI2ODE0Yjc5
MWE5MzI0MWRlMjIwNmU1ZWQxZDc2YzMuLjkwNWU2Y2FkMzhmNDlkNTU5MGU0YmFmYTNkMGI5NDEz
OWE5YmE1OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTktMDctMjIgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgTmV0d29ya1Nlc3Npb24g
bm8gbG9uZ2VyIFJlZkNvdW50ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMDAyMAorCisgICAgICAgIFRoaXMgYWxsb3dzIHRvIGhhdmUgYSBzaW1w
bGVyIG1lbW9yeSBtYW5hZ2VtZW50IG1vZGVsIHdoZXJlCisgICAgICAgIE5ldHdvcmtTZXNzaW9u
IGNhbm5vdCBsaXZlIG9uY2UgcmVtb3ZlZCBmcm9tIHRoZSBuZXR3b3JrIHByb2Nlc3Mgc2Vzc2lv
biBtYXAuCisgICAgICAgIFRoaXMgcmVxdWlyZXMgc29tZSBhZGRpdGlvbmFsIG51bGwgY2hlY2tz
LCBlc3BlY2lhbGx5IGluIE5ldHdvcmtEYXRhVGFzay4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nl
c3Npb25DdXJsLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lv
blNvdXAuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6Ok5ldHdvcmtEYXRhVGFzayk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtEYXRhVGFza0Jsb2I6On5OZXR3b3JrRGF0YVRhc2tCbG9iKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0RhdGFUYXNrQmxvYjo6ZG93bmxvYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Omxv
d01lbW9yeUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0U2Vz
c2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJz
aXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om5ldHdv
cmtTZXNzaW9ucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1NvY2tl
dENoYW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFubmVsKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1NvY2tldENoYW5uZWw6On5OZXR3b3JrU29ja2V0Q2hhbm5lbCk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
RGF0YVRhc2tDb2NvYTo6YXBwbHlTbmlmZmluZ1BvbGljaWVzQW5kQmluZFJlcXVlc3RUb0luZmVy
ZmFjZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYktpdDo6Y29tcHV0ZUlzQWx3YXlzT25Mb2dnaW5n
QWxsb3dlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3Jr
RGF0YVRhc2tDb2NvYSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjp+
TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tD
b2NvYTo6cmVzdW1lKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Omlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCBjb25zdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25E
ZWxlZ2F0ZSBpbml0V2l0aE5ldHdvcmtTZXNzaW9uOndpdGhDcmVkZW50aWFsczpdKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlUmVxdWVzdCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNsZWFyUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNhbmNlbCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFza1NvdXA6OmF1dGhlbnRpY2F0ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0RhdGFUYXNrU291cDo6YXV0aGVudGljYXRlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0RhdGFUYXNrU291cDo6Y29udGludWVBdXRoZW50aWNhdGUpOgorCiAyMDE5LTA3LTIyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdGUgV2ViSW5zcGVj
dG9yIHNob3VsZCBlbmFibGUgbW9jayBjYXB0dXJlIGRldmljZXMgaW4gVUlQcm9jZXNzIGlmIGRv
aW5nIGl0IGluIFdlYlByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0RhdGFUYXNrLmNwcAppbmRleCBiY2JhZTlkMzFmYmY4ZTc2MGU0ZDZmZjY2MDAxMjg2
ZDAyNTRhYTNkLi44YjNiY2U5NmQ3MzY1MWQ1OTk5YjFlNTVhMGMxNmUwMzUxMzExODAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCkBA
IC02Miw3ICs2Miw3IEBAIFJlZjxOZXR3b3JrRGF0YVRhc2s+IE5ldHdvcmtEYXRhVGFzazo6Y3Jl
YXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0CiAKIE5ldHdvcmtEYXRhVGFz
azo6TmV0d29ya0RhdGFUYXNrKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRh
c2tDbGllbnQmIGNsaWVudCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRl
bnRpYWxzLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBib29sIGRhdGFU
YXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKQogICAgIDogbV9mYWlsdXJlVGltZXIoKnRoaXMs
ICZOZXR3b3JrRGF0YVRhc2s6OmZhaWx1cmVUaW1lckZpcmVkKQotICAgICwgbV9zZXNzaW9uKHNl
c3Npb24pCisgICAgLCBtX3Nlc3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikpCiAgICAgLCBtX2Ns
aWVudCgmY2xpZW50KQogICAgICwgbV9wYXJ0aXRpb24ocmVxdWVzdFdpdGhDcmVkZW50aWFscy5j
YWNoZVBhcnRpdGlvbigpKQogICAgICwgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeShzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0RhdGFUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtEYXRhVGFzay5oCmluZGV4IDlmNWZlMWY0YjM4Mzk2NDkwY2NiNGY0MzE1YzQyZTEyYmViNjdk
MDcuLjFmYjA3OGRmN2EzMmRjODE3OGIyODdkNjgzODdmYmJmODNlMWQ3NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaApAQCAtMTQzLDcgKzE0
Myw3IEBAIHByb3RlY3RlZDoKIAogICAgIEZhaWx1cmVUeXBlIG1fc2NoZWR1bGVkRmFpbHVyZVR5
cGUgeyBOb0ZhaWx1cmUgfTsKICAgICBXZWJDb3JlOjpUaW1lciBtX2ZhaWx1cmVUaW1lcjsKLSAg
ICBSZWY8TmV0d29ya1Nlc3Npb24+IG1fc2Vzc2lvbjsKKyAgICBXZWFrUHRyPE5ldHdvcmtTZXNz
aW9uPiBtX3Nlc3Npb247CiAgICAgTmV0d29ya0RhdGFUYXNrQ2xpZW50KiBtX2NsaWVudCB7IG51
bGxwdHIgfTsKICAgICBQZW5kaW5nRG93bmxvYWQqIG1fcGVuZGluZ0Rvd25sb2FkIHsgbnVsbHB0
ciB9OwogICAgIERvd25sb2FkSUQgbV9wZW5kaW5nRG93bmxvYWRJRDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuY3BwCmluZGV4IGJl
YjhiMzZjOGI3ZjQ3ZmJkNmNhZTljY2IwNjA5ZjJiNzNmNTBjMWQuLjg1NmNhMWYwOTVlMTAzYzU0
MmFkNGU0MzAwMGJjYjcwZmYxZmIzMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNwcApAQCAtODYsNyArODYsOCBAQCBOZXR3
b3JrRGF0YVRhc2tCbG9iOjp+TmV0d29ya0RhdGFUYXNrQmxvYigpCiAgICAgICAgIGZpbGVSZWZl
cmVuY2UtPnJldm9rZUZpbGVBY2Nlc3MoKTsKIAogICAgIGNsZWFyU3RyZWFtKCk7Ci0gICAgbV9z
ZXNzaW9uLT51bnJlZ2lzdGVyTmV0d29ya0RhdGFUYXNrKCp0aGlzKTsKKyAgICBpZiAobV9zZXNz
aW9uKQorICAgICAgICBtX3Nlc3Npb24tPnVucmVnaXN0ZXJOZXR3b3JrRGF0YVRhc2soKnRoaXMp
OwogfQogCiB2b2lkIE5ldHdvcmtEYXRhVGFza0Jsb2I6OmNsZWFyU3RyZWFtKCkKQEAgLTQ1NSw2
ICs0NTYsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0Jsb2I6OmRvd25sb2FkKCkKIHsKICAgICBB
U1NFUlQoaXNEb3dubG9hZCgpKTsKICAgICBBU1NFUlQobV9wZW5kaW5nRG93bmxvYWRMb2NhdGlv
bik7CisgICAgQVNTRVJUKG1fc2Vzc2lvbik7CiAKICAgICBMT0coTmV0d29ya1Nlc3Npb24sICIl
cCAtIE5ldHdvcmtEYXRhVGFza0Jsb2I6OmRvd25sb2FkIHRvICVzIiwgdGhpcywgbV9wZW5kaW5n
RG93bmxvYWRMb2NhdGlvbi51dGY4KCkuZGF0YSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAyNGJkNzE2OTlhYWZmNGQyYjI4
MzUzMzA0OTAwZjY0OWUzZTBiODgzLi5mZjBmODM4YjRhOTIzYTkwYWI4M2RkM2RjYzNkZGQ2MmUx
ZDYyZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtODUsNiArODUsNyBAQAogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNp
bmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJp
bmcuaD4KIAogI2lmIEVOQUJMRShTRUNfSVRFTV9TSElNKQpAQCAtMjc0LDcgKzI3NSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwgY3JpdGljYWwpCiAg
ICAgV1RGOjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnkoKTsKIAogICAgIGZvciAoYXV0byYg
bmV0d29ya1Nlc3Npb24gOiBtX25ldHdvcmtTZXNzaW9ucy52YWx1ZXMoKSkKLSAgICAgICAgbmV0
d29ya1Nlc3Npb24uZ2V0KCkuY2xlYXJQcmVmZXRjaENhY2hlKCk7CisgICAgICAgIG5ldHdvcmtT
ZXNzaW9uLT5jbGVhclByZWZldGNoQ2FjaGUoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6
aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
JiYgcGFyYW1ldGVycykKQEAgLTU3Niw3ICs1NzcsNyBAQCBOZXR3b3JrU2Vzc2lvbiogTmV0d29y
a1Byb2Nlc3M6Om5ldHdvcmtTZXNzaW9uQnlDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29u
bgogICAgIHJldHVybiBzZXNzaW9uSUQuaXNWYWxpZCgpID8gbmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSA6IG51bGxwdHI7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFNlc3Npb24oY29u
c3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgUmVmPE5ldHdvcmtTZXNzaW9uPiYmIHNlc3Np
b24pCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklE
JiBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4mJiBzZXNzaW9uKQog
ewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKHNlc3Npb25JRC5p
c1ZhbGlkKCkpOwpAQCAtNTk2LDcgKzU5Nyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlc3Ry
b3lTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQpCiAgICAgQVNTRVJUKHNl
c3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKIAogICAgIGlm
IChhdXRvIHNlc3Npb24gPSBtX25ldHdvcmtTZXNzaW9ucy50YWtlKHNlc3Npb25JRCkpCi0gICAg
ICAgIHNlc3Npb24tPmdldCgpLmludmFsaWRhdGVBbmRDYW5jZWwoKTsKKyAgICAgICAgc2Vzc2lv
bi0+aW52YWxpZGF0ZUFuZENhbmNlbCgpOwogICAgIG1fbmV0d29ya1N0b3JhZ2VTZXNzaW9ucy5y
ZW1vdmUoc2Vzc2lvbklEKTsKICAgICBtX3Nlc3Npb25zQ29udHJvbGxlZEJ5QXV0b21hdGlvbi5y
ZW1vdmUoc2Vzc2lvbklEKTsKICAgICBDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6ZGVzdHJveUVuZ2lu
ZSgqdGhpcywgc2Vzc2lvbklEKTsKQEAgLTExNDYsNyArMTE0Nyw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3M6OnNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFs
KFBBTDo6U2VzCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgZm9yIChhdXRvJiBuZXR3b3JrU2Vzc2lvbiA6
IG1fbmV0d29ya1Nlc3Npb25zLnZhbHVlcygpKQotICAgICAgICBuZXR3b3JrU2Vzc2lvbi5nZXQo
KS5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChlbmFibGVkKTsKKyAgICAgICAgbmV0
d29ya1Nlc3Npb24tPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGVuYWJsZWQpOwog
fQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdN
b2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBkZWJ1Z01vZGUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTE3NTQsNyArMTc1NSw5IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21h
aW5zKFBBTDo6U2Vzc2lvbklEIHNlc3NpCiAKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250
YWlucyhXZWJzaXRlRGF0YVR5cGU6OkRpc2tDYWNoZSkpIHsKICAgICAgICAgZm9yIChhdXRvJiBz
ZXNzaW9uIDogbmV0d29ya1Nlc3Npb25zKCkudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGZldGNo
RGlza0NhY2hlRW50cmllcyhzZXNzaW9uLT5jYWNoZSgpLCBzZXNzaW9uSUQsIGZldGNoT3B0aW9u
cywgW2RvbWFpbnNUb0RlbGV0ZUFsbEJ1dENvb2tpZXNGb3IsIGNhbGxiYWNrQWdncmVnYXRvciA9
IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCksIHNlc3Npb24gPSBzZXNzaW9uLmNvcHlSZWYo
KV0oYXV0byBlbnRyaWVzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGZldGNoRGlza0NhY2hlRW50
cmllcyhzZXNzaW9uLT5jYWNoZSgpLCBzZXNzaW9uSUQsIGZldGNoT3B0aW9ucywgW2RvbWFpbnNU
b0RlbGV0ZUFsbEJ1dENvb2tpZXNGb3IsIGNhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxiYWNrQWdn
cmVnYXRvci5jb3B5UmVmKCksIHNlc3Npb24gPSBtYWtlV2Vha1B0cihzZXNzaW9uLmdldCgpKV0o
YXV0byBlbnRyaWVzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoIXNlc3Npb24pCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgICAgIFZlY3RvcjxTZWN1
cml0eU9yaWdpbkRhdGE+IGVudHJpZXNUb0RlbGV0ZTsKICAgICAgICAgICAgICAgICBmb3IgKGF1
dG8mIGVudHJ5IDogZW50cmllcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDY5ZjNkNGY2NzkyYzBiOWNjN2ExMDI4NmE4MmFjNTNkOGIx
Mjk0N2QuLjRhMWMzZjQ5YzdhY2M3ODJmMTU1NjI5Njc1ZWYxNjMxZGQ4Nzc3OGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTE2MSwxMyAr
MTYxLDEzIEBAIHB1YmxpYzoKICAgICBBdXRoZW50aWNhdGlvbk1hbmFnZXImIGF1dGhlbnRpY2F0
aW9uTWFuYWdlcigpOwogICAgIERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyKCk7CiAK
LSAgICB2b2lkIHNldFNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBSZWY8TmV0d29ya1Nl
c3Npb24+JiYpOworICAgIHZvaWQgc2V0U2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYsIHN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4mJik7CiAgICAgTmV0d29ya1Nlc3Npb24qIG5l
dHdvcmtTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJikgY29uc3QgZmluYWw7CiAgICAgTmV0
d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uQnlDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYp
IGNvbnN0OwogICAgIHZvaWQgZGVzdHJveVNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKTsK
IAogICAgIC8vIE5lZWRlZCBmb3IgdGVzdCBpbmZyYXN0cnVjdHVyZQotICAgIEhhc2hNYXA8UEFM
OjpTZXNzaW9uSUQsIFJlZjxOZXR3b3JrU2Vzc2lvbj4+JiBuZXR3b3JrU2Vzc2lvbnMoKSB7IHJl
dHVybiBtX25ldHdvcmtTZXNzaW9uczsgfQorICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIHN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4+JiBuZXR3b3JrU2Vzc2lvbnMoKSB7IHJldHVy
biBtX25ldHdvcmtTZXNzaW9uczsgfQogCiAgICAgdm9pZCBmb3JFYWNoTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKGNvbnN0IEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
Jik+Jik7CiAgICAgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBzdG9yYWdlU2Vzc2lv
bihjb25zdCBQQUw6OlNlc3Npb25JRCYpIGNvbnN0OwpAQCAtNDk2LDcgKzQ5Niw3IEBAIHByaXZh
dGU6CiAgICAgSGFzaFNldDxQQUw6OlNlc3Npb25JRD4gbV9zZXNzaW9uc0NvbnRyb2xsZWRCeUF1
dG9tYXRpb247CiAgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgVmVjdG9yPENhY2hlU3RvcmFn
ZVJvb3RQYXRoQ2FsbGJhY2s+PiBtX2NhY2hlU3RvcmFnZVBhcmFtZXRlcnNDYWxsYmFja3M7CiAK
LSAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBSZWY8TmV0d29ya1Nlc3Npb24+PiBtX25ldHdv
cmtTZXNzaW9uczsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8
TmV0d29ya1Nlc3Npb24+PiBtX25ldHdvcmtTZXNzaW9uczsKICAgICBIYXNoTWFwPFBBTDo6U2Vz
c2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4g
bV9uZXR3b3JrU3RvcmFnZVNlc3Npb25zOwogICAgIG11dGFibGUgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gbV9kZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNz
aW9uOwogICAgIE5ldHdvcmtCbG9iUmVnaXN0cnkgbV9uZXR3b3JrQmxvYlJlZ2lzdHJ5OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCAy
YTExNjJkNzVlYWE4ZGRmZDhkZDAxN2EwYjZhNTc5ODBhMzBhZDI2Li41Mzc1ZTE2M2FhNGU3M2Fl
NWNhZjg3MDJhNjQ2NmExYzI3MzgwNTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtNTYsNyArNTYsNyBAQAogbmFtZXNwYWNlIFdl
YktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPE5ldHdvcmtTZXNzaW9uPiBO
ZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQorc3RkOjp1bmlxdWVf
cHRyPE5ldHdvcmtTZXNzaW9uPiBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKE5ldHdvcmtQcm9jZXNz
JiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHJldHVybiBOZXR3b3JrU2Vzc2lv
bkNvY29hOjpjcmVhdGUobmV0d29ya1Byb2Nlc3MsIFdURk1vdmUocGFyYW1ldGVycykpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IGIzZTQx
MmViZjMwMzVkODE5Y2VkMjc0YWYwMGQ2YWM2OTI5N2U3MmMuLjdiNjgzYTczNTAxOTk0Y2UzMDA3
NWU5MWJhYjA4Mjc3MTk0ODZhMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlIDxwYWwvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtNjQs
OSArNjMsOSBAQCBuYW1lc3BhY2UgTmV0d29ya0NhY2hlIHsKIGNsYXNzIENhY2hlOwogfQogCi1j
bGFzcyBOZXR3b3JrU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHdvcmtTZXNzaW9uPiwg
cHVibGljIENhbk1ha2VXZWFrUHRyPE5ldHdvcmtTZXNzaW9uPiB7CitjbGFzcyBOZXR3b3JrU2Vz
c2lvbiA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxOZXR3b3JrU2Vzc2lvbj4gewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Npb24+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYsIE5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8TmV0d29ya1Nlc3Npb24+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIHZpcnR1YWwgfk5ldHdvcmtTZXNzaW9uKCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcAppbmRl
eCA1NjkzMGMzNjBmYmEwZGY3MDBkNDEzMjQ0ZGVkNTI5NjI1NzI4NDA5Li5hOThlOTZmMTA1YzRi
OTNiNDRiNzQ0YzliMTllNDhkMzdjNzFjNzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcApAQCAtNDYsMTAgKzQ2LDEw
IEBAIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29ja2V0Q2hhbm5lbD4gTmV0d29ya1NvY2tldENo
YW5uZWw6OmNyZWF0ZShOZXR3b3JrQ29ubmVjCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotTmV0
d29ya1NvY2tldENoYW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFubmVsKE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBSZWZQdHI8TmV0d29ya1Nlc3Npb24+JiYgc2Vzc2lv
biwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29s
LCB1aW50NjRfdCBpZGVudGlmaWVyKQorTmV0d29ya1NvY2tldENoYW5uZWw6Ok5ldHdvcmtTb2Nr
ZXRDaGFubmVsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBOZXR3
b3JrU2Vzc2lvbiogc2Vzc2lvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIHByb3RvY29sLCB1aW50NjRfdCBpZGVudGlmaWVyKQogICAgIDogbV9jb25uZWN0
aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb24pCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmll
cikKLSAgICAsIG1fc2Vzc2lvbihXVEZNb3ZlKHNlc3Npb24pKQorICAgICwgbV9zZXNzaW9uKG1h
a2VXZWFrUHRyKHNlc3Npb24pKQogewogICAgIGlmICghbV9zZXNzaW9uKQogICAgICAgICByZXR1
cm47CkBAIC02MywxMSArNjMsMTEgQEAgTmV0d29ya1NvY2tldENoYW5uZWw6Ok5ldHdvcmtTb2Nr
ZXRDaGFubmVsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWMKIAogTmV0d29y
a1NvY2tldENoYW5uZWw6On5OZXR3b3JrU29ja2V0Q2hhbm5lbCgpCiB7Ci0gICAgaWYgKCFtX3Nv
Y2tldCkKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3Nlc3Npb24pCisgICAgICAgIG1fc2Vz
c2lvbi0+cmVtb3ZlV2ViU29ja2V0VGFzaygqbV9zb2NrZXQpOwogCi0gICAgbV9zb2NrZXQtPmNh
bmNlbCgpOwotICAgIG1fc2Vzc2lvbi0+cmVtb3ZlV2ViU29ja2V0VGFzaygqbV9zb2NrZXQpOwor
ICAgIGlmIChtX3NvY2tldCkKKyAgICAgICAgbV9zb2NrZXQtPmNhbmNlbCgpOwogfQogCiB2b2lk
IE5ldHdvcmtTb2NrZXRDaGFubmVsOjpzZW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCmluZGV4IDQyN2YyN2I3
YWI3YzdkODU3ODgxMWU1YTg4ODRjZDNhZjQ2NDkxNTMuLmY3Y2QyYTE4NGQ3NzllOGMyZTcxZTEw
NzgyM2U3ZWJmY2E1ODQ1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1NvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgTmV0d29y
a1NvY2tldENoYW5uZWwgOiBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyLCBwdWJsaWMgSVBDOjpN
ZXNzYWdlUmVjZWkKIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtT
b2NrZXRDaGFubmVsPiBjcmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBQQUw6
OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5n
JiBwcm90b2NvbCwgdWludDY0X3QgaWRlbnRpZmllcik7CiAKLSAgICBOZXR3b3JrU29ja2V0Q2hh
bm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFJlZlB0cjxOZXR3b3JrU2Vzc2lv
bj4mJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90
b2NvbCwgdWludDY0X3QgaWRlbnRpZmllcik7CisgICAgTmV0d29ya1NvY2tldENoYW5uZWwoTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbiosIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIHVpbnQ2NF90IGlk
ZW50aWZpZXIpOwogICAgIH5OZXR3b3JrU29ja2V0Q2hhbm5lbCgpOwogCiAgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKQEAgLTc2LDcg
Kzc2LDcgQEAgcHJpdmF0ZToKIAogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBt
X2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgdWludDY0X3QgbV9pZGVudGlmaWVyOwotICAg
IFJlZlB0cjxOZXR3b3JrU2Vzc2lvbj4gbV9zZXNzaW9uOworICAgIFdlYWtQdHI8TmV0d29ya1Nl
c3Npb24+IG1fc2Vzc2lvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gbV9z
b2NrZXQ7CiAKICAgICBlbnVtIGNsYXNzIFN0YXRlIHsgT3BlbiwgQ2xvc2luZywgQ2xvc2VkIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLmgKaW5kZXggNzcxYjNhYjU5MTEzZTM1MTk3YmI5ZWQyODRkMGVjYjBl
MjMwYzZlMi4uMzhlZDljZjU4Y2I2OTRhZTU1Mzk4MDYyMWU1MTJlYmJlZTVhYWNhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0Rh
dGFUYXNrQ29jb2EuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAg
IGJvb2wgbV9pc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSB7IGZhbHNlIH07
CisgICAgYm9vbCBtX2lzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCB7IGZhbHNlIH07CiB9OwogCiBX
ZWJDb3JlOjpDcmVkZW50aWFsIHNlcnZlclRydXN0Q3JlZGVudGlhbChjb25zdCBXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggMWY0ZTdi
NDRjODg0NmFiY2VkZWFlYWVjOWFlYzlhY2VjNTFkNGQxYy4uYmE1ZTg4MDBlYmIwZTlmMDVmYTgx
YTRhM2FkNTIzYzFiN2NmYmQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC04NSw3ICs4NSw3
IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6OmFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJp
bmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlCiAgICAgVU5VU0VEX1BBUkFNKHNob3VsZENvbnRl
bnRFbmNvZGluZ1NuaWZmKTsKICNlbmRpZgogCi0gICAgYXV0byYgY29jb2FTZXNzaW9uID0gc3Rh
dGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KG1fc2Vzc2lvbi5nZXQoKSk7CisgICAgYXV0
byYgY29jb2FTZXNzaW9uID0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KCptX3Nl
c3Npb24pOwogICAgIGlmIChzaG91bGRDb250ZW50U25pZmYKICNpZiBVU0UoQ0ZORVRXT1JLX0NP
TlRFTlRfRU5DT0RJTkdfU05JRkZJTkdfT1ZFUlJJREUpCiAgICAgICAgICYmIHNob3VsZENvbnRl
bnRFbmNvZGluZ1NuaWZmCkBAIC0xNjgsMTEgKzE2OCwyMCBAQCBzdGF0aWMgdm9pZCB1cGRhdGVU
YXNrV2l0aEZpcnN0UGFydHlGb3JTYW1lU2l0ZUNvb2tpZXMoTlNVUkxTZXNzaW9uRGF0YVRhc2sq
IHRhcwogI2VuZGlmCiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb21wdXRlSXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uKQoreworICAgIGlmIChzZXNzaW9u
Lm5ldHdvcmtQcm9jZXNzKCkuc2Vzc2lvbklzQ29udHJvbGxlZEJ5QXV0b21hdGlvbihzZXNzaW9u
LnNlc3Npb25JRCgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gc2Vzc2lv
bi5zZXNzaW9uSUQoKS5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKTsKK30KKwogTmV0d29ya0Rh
dGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9u
LCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kg
c2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGlj
eSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwg
Ym9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9y
TWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZp
dHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQogICAgIDogTmV0d29ya0RhdGFUYXNr
KHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIGRhdGFU
YXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKQogICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCiAg
ICAgLCBtX3BhZ2VJRChwYWdlSUQpCiAgICAgLCBtX2lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlv
bkZvckFueUZyYW1lKGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJh
bWUpCisgICAgLCBtX2lzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZChjb21wdXRlSXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKHNlc3Npb24pKQogewogICAgIGlmIChtX3NjaGVkdWxlZEZhaWx1cmVUeXBl
ICE9IE5vRmFpbHVyZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjEyLDcgKzIyMSw3IEBAIE5ldHdv
cmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vz
c2lvbiwgTmV0d29ya0RhdGFUCiAgICAgTlNVUkxSZXF1ZXN0ICpuc1JlcXVlc3QgPSByZXF1ZXN0
Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpIVFRQQm9keVVwZGF0ZVBvbGljeTo6VXBkYXRlSFRUUEJv
ZHkpOwogICAgIGFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJ
Zk5lZWRlZChuc1JlcXVlc3QsIHNob3VsZENvbnRlbnRTbmlmZiA9PSBXZWJDb3JlOjpDb250ZW50
U25pZmZpbmdQb2xpY3k6OlNuaWZmQ29udGVudCAmJiAhdXJsLmlzTG9jYWxGaWxlKCksIHNob3Vs
ZENvbnRlbnRFbmNvZGluZ1NuaWZmID09IFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5n
UG9saWN5OjpTbmlmZik7CiAKLSAgICBhdXRvJiBjb2NvYVNlc3Npb24gPSBzdGF0aWNfY2FzdDxO
ZXR3b3JrU2Vzc2lvbkNvY29hJj4obV9zZXNzaW9uLmdldCgpKTsKKyAgICBhdXRvJiBjb2NvYVNl
c3Npb24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4oKm1fc2Vzc2lvbik7CiAg
ICAgc3dpdGNoIChzdG9yZWRDcmVkZW50aWFsc1BvbGljeSkgewogICAgIGNhc2UgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZToKICAgICAgICAgbV90YXNrID0gW2NvY29hU2Vz
c2lvbi5tX3Nlc3Npb25XaXRoQ3JlZGVudGlhbFN0b3JhZ2UgZGF0YVRhc2tXaXRoUmVxdWVzdDpu
c1JlcXVlc3RdOwpAQCAtMjY5LDEwICsyNzgsMTAgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5l
dHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQK
IAogTmV0d29ya0RhdGFUYXNrQ29jb2E6On5OZXR3b3JrRGF0YVRhc2tDb2NvYSgpCiB7Ci0gICAg
aWYgKCFtX3Rhc2spCisgICAgaWYgKCFtX3Rhc2sgfHwgIW1fc2Vzc2lvbikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXV0byYgY29jb2FTZXNzaW9uID0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Np
b25Db2NvYSY+KG1fc2Vzc2lvbi5nZXQoKSk7CisgICAgYXV0byYgY29jb2FTZXNzaW9uID0gc3Rh
dGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KCptX3Nlc3Npb24pOwogICAgIHN3aXRjaCAo
bV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSkgewogICAgIGNhc2UgV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3k6OlVzZToKICAgICAgICAgQVNTRVJUKGNvY29hU2Vzc2lvbi5tX2RhdGFU
YXNrTWFwV2l0aENyZWRlbnRpYWxzLmdldChbbV90YXNrIHRhc2tJZGVudGlmaWVyXSkgPT0gdGhp
cyk7CkBAIC01MDUsNyArNTE0LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6cmVzdW1l
KCkKICAgICBpZiAobV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAg
IG1fZmFpbHVyZVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogCi0gICAgYXV0byYgY29jb2FTZXNz
aW9uID0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KG1fc2Vzc2lvbi5nZXQoKSk7
CisgICAgYXV0byYgY29jb2FTZXNzaW9uID0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2Nv
YSY+KCptX3Nlc3Npb24pOwogICAgIGlmIChjb2NvYVNlc3Npb24uZGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0VuYWJsZWQoKSAmJiBtX2lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFu
eUZyYW1lKSB7CiAgICAgICAgIGF1dG8gZGlkRGV0ZXJtaW5lRGV2aWNlUmVzdHJpY3Rpb25Qb2xp
Y3lGb3JVUkwgPSBtYWtlQmxvY2tQdHIoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKV0oQk9PTCBpc0Jsb2NrZWQpIHsKICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaXNCbG9ja2VkXSB7CkBAIC01NjEs
MTAgKzU3MCw3IEBAIFdlYkNvcmU6OkNyZWRlbnRpYWwgc2VydmVyVHJ1c3RDcmVkZW50aWFsKGNv
bnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlCiAKIGJvb2wgTmV0d29ya0RhdGFU
YXNrQ29jb2E6OmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1f
c2Vzc2lvbi0+bmV0d29ya1Byb2Nlc3MoKS5zZXNzaW9uSXNDb250cm9sbGVkQnlBdXRvbWF0aW9u
KG1fc2Vzc2lvbi0+c2Vzc2lvbklEKCkpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHJl
dHVybiBtX3Nlc3Npb24tPnNlc3Npb25JRCgpLmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpOwor
ICAgIHJldHVybiBtX2lzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZDsKIH0KIAogU3RyaW5nIE5ldHdv
cmtEYXRhVGFza0NvY29hOjpkZXNjcmlwdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCmluZGV4
IDNlMTM3NzBlNWNiYzU2M2JhNzY0MTIwNGZiMjExNTY2NDQzNTc3OTguLjRiYWIyM2VhODUzY2U4
YWE3MmUzOGRkZmE2Zjg1OGE1MTViZDkwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCkBAIC00Nyw3ICs0
Nyw5IEBAIGNsYXNzIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlcjsKIGNsYXNzIE5ldHdvcmtT
ZXNzaW9uQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya1Nlc3Npb24gewogICAgIGZyaWVuZCBj
bGFzcyBOZXR3b3JrRGF0YVRhc2tDb2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdv
cmtTZXNzaW9uPiBjcmVhdGUoTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycyYmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTZXNzaW9u
PiBjcmVhdGUoTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cyYmKTsKKworICAgIE5ldHdvcmtTZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmKTsKICAgICB+TmV0d29ya1Nlc3Npb25Db2NvYSgp
OwogCiAgICAgdm9pZCBpbml0aWFsaXplRXBoZW1lcmFsU3RhdGVsZXNzQ29va2llbGVzc1Nlc3Np
b24oKTsKQEAgLTgwLDggKzgyLDYgQEAgcHVibGljOgogICAgIERNRldlYnNpdGVQb2xpY3lNb25p
dG9yICpkZXZpY2VNYW5hZ2VtZW50UG9saWN5TW9uaXRvcigpOwogCiBwcml2YXRlOgotICAgIE5l
dHdvcmtTZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycyYmKTsKLQogICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpIG92ZXJyaWRl
OwogICAgIHZvaWQgY2xlYXJDcmVkZW50aWFscygpIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxk
TG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nob3VsZExv
Z0Nvb2tpZUluZm9ybWF0aW9uOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggMDBlZGE1YmM4OGFl
NTIyMmY3YTIyMDQ1ZDU4NzU4YmVjNDlmNzMzMi4uMDRiMDM0OTE0ZTZjNjZkM2Y3M2QyMjhjYTI0
MTA3YWUxYTZlZjAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMzI5LDcgKzMyOSw3IEBAIEBp
bnRlcmZhY2UgV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIDogTlNPYmplY3QgPE5TVVJMU2Vzc2lv
bkRhdGFEZWxlZ2F0ZQogICAgICwgTlNVUkxTZXNzaW9uV2ViU29ja2V0RGVsZWdhdGUKICNlbmRp
ZgogPiB7Ci0gICAgUmVmUHRyPFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYT4gX3Nlc3Npb247
CisgICAgV2Vha1B0cjxXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E+IF9zZXNzaW9uOwogICAg
IGJvb2wgX3dpdGhDcmVkZW50aWFsczsKIH0KIApAQCAtMzQ2LDcgKzM0Niw3IEBAIC0gKGlkKWlu
aXRXaXRoTmV0d29ya1Nlc3Npb246KFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYSYpc2Vzc2lv
biB3aXRoQ3JlZGVudGlhCiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCi0g
ICAgX3Nlc3Npb24gPSAmc2Vzc2lvbjsKKyAgICBfc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNlc3Np
b24pOwogICAgIF93aXRoQ3JlZGVudGlhbHMgPSB3aXRoQ3JlZGVudGlhbHM7CiAKICAgICByZXR1
cm4gc2VsZjsKQEAgLTg5Niw5ICs4OTYsOSBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OnNl
dENURGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiB9CiAjZW5k
aWYKIAotUmVmPE5ldHdvcmtTZXNzaW9uPiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGUoTmV0
d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1l
dGVycyYmIHBhcmFtZXRlcnMpCitzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+IE5ldHdv
cmtTZXNzaW9uQ29jb2E6OmNyZWF0ZShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrU2Vzc2lvbkNvY29hKG5ldHdvcmtQcm9jZXNzLCBXVEZN
b3ZlKHBhcmFtZXRlcnMpKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1Nl
c3Npb25Db2NvYT4obmV0d29ya1Byb2Nlc3MsIFdURk1vdmUocGFyYW1ldGVycykpOwogfQogCiBz
dGF0aWMgTlNEaWN0aW9uYXJ5ICpwcm94eURpY3Rpb25hcnkoY29uc3QgVVJMJiBodHRwUHJveHks
IGNvbnN0IFVSTCYgaHR0cHNQcm94eSkKQEAgLTkzNSw4ICs5MzUsNiBAQCBOZXR3b3JrU2Vzc2lv
bkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2Vz
cywgTmV0d29yawogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2
aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIAotICAgIHJlbGF4QWRvcHRpb25SZXF1aXJl
bWVudCgpOwotCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgIHNlc3Npb25zQ3JlYXRlZCA9IHRy
dWU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3Vy
bC9OZXR3b3JrU2Vzc2lvbkN1cmwuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3Vy
bC9OZXR3b3JrU2Vzc2lvbkN1cmwuaAppbmRleCBmZGVkNTY4OTJlYmNmZjU0OGM5ODkxMDM4ODU5
M2ExMTJhZDk1MzE3Li5kNDcwOWE1ZTRhYzhhMmZiNmFjZWI1NmM1N2ViZjBiNWM3NDBkNDU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Np
b25DdXJsLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtT
ZXNzaW9uQ3VybC5oCkBAIC0zMywxNCArMzMsMTIgQEAgc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzOwogCiBjbGFzcyBOZXR3b3JrU2Vzc2lvbkN1cmwgZmluYWwgOiBwdWJs
aWMgTmV0d29ya1Nlc3Npb24gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Np
b24+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPE5ldHdvcmtTZXNzaW9uPiBjcmVhdGUoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNz
LCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrU2Vzc2lvbkN1cmwobmV0d29ya1By
b2Nlc3MsIFdURk1vdmUocGFyYW1ldGVycykpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8TmV0d29ya1Nlc3Npb25DdXJsPihuZXR3b3JrUHJvY2VzcywgV1RGTW92ZShwYXJhbWV0
ZXJzKSk7CiAgICAgfQotICAgIH5OZXR3b3JrU2Vzc2lvbkN1cmwoKTsKLQotcHJpdmF0ZToKICAg
ICBOZXR3b3JrU2Vzc2lvbkN1cmwoTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycyYmKTsKKyAgICB+TmV0d29ya1Nlc3Npb25DdXJsKCk7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAppbmRleCA4ZmNmYmNhY2VlMDRkY2U5
YmVjOGI0MGE0YWIxODk1MjA0NWMzZjk5Li40NjhkNDBhOWNiNzBjODk5NTM3ZTZlOGY3NzU4NzA1
ZjRjOTViZTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAv
TmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBO
ZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGVSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBHUmVmUHRyPFNvdXBSZXF1ZXN0PiBz
b3VwUmVxdWVzdCA9IGFkb3B0R1JlZihzb3VwX3Nlc3Npb25fcmVxdWVzdF91cmkoc3RhdGljX2Nh
c3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4obV9zZXNzaW9uLmdldCgpKS5zb3VwU2Vzc2lvbigpLCBz
b3VwVVJJLmdldCgpLCBudWxscHRyKSk7CisgICAgR1JlZlB0cjxTb3VwUmVxdWVzdD4gc291cFJl
cXVlc3QgPSBhZG9wdEdSZWYoc291cF9zZXNzaW9uX3JlcXVlc3RfdXJpKHN0YXRpY19jYXN0PE5l
dHdvcmtTZXNzaW9uU291cCY+KCptX3Nlc3Npb24pLnNvdXBTZXNzaW9uKCksIHNvdXBVUkkuZ2V0
KCksIG51bGxwdHIpKTsKICAgICBpZiAoIXNvdXBSZXF1ZXN0KSB7CiAgICAgICAgIHNjaGVkdWxl
RmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTE2NCw3ICsx
NjQsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZVJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCkKIAogICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9zb3VwTWVzc2FnZS5n
ZXQoKSwgImdvdC1oZWFkZXJzIiwgR19DQUxMQkFDSyhnb3RIZWFkZXJzQ2FsbGJhY2spLCB0aGlz
KTsKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fc291cE1lc3NhZ2UuZ2V0KCksICJ3cm90ZS1ib2R5
LWRhdGEiLCBHX0NBTExCQUNLKHdyb3RlQm9keURhdGFDYWxsYmFjayksIHRoaXMpOwotICAgIGdf
c2lnbmFsX2Nvbm5lY3Qoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4obV9zZXNzaW9u
LmdldCgpKS5zb3VwU2Vzc2lvbigpLCAiYXV0aGVudGljYXRlIiwgIEdfQ0FMTEJBQ0soYXV0aGVu
dGljYXRlQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KHN0YXRpY19jYXN0
PE5ldHdvcmtTZXNzaW9uU291cCY+KCptX3Nlc3Npb24pLnNvdXBTZXNzaW9uKCksICJhdXRoZW50
aWNhdGUiLCAgR19DQUxMQkFDSyhhdXRoZW50aWNhdGVDYWxsYmFjayksIHRoaXMpOwogICAgIGdf
c2lnbmFsX2Nvbm5lY3QobV9zb3VwTWVzc2FnZS5nZXQoKSwgIm5ldHdvcmstZXZlbnQiLCBHX0NB
TExCQUNLKG5ldHdvcmtFdmVudENhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVj
dChtX3NvdXBNZXNzYWdlLmdldCgpLCAicmVzdGFydGVkIiwgR19DQUxMQkFDSyhyZXN0YXJ0ZWRD
YWxsYmFjayksIHRoaXMpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9zb3VwTWVzc2FnZS5nZXQo
KSwgInN0YXJ0aW5nIiwgR19DQUxMQkFDSyhzdGFydGluZ0NhbGxiYWNrKSwgdGhpcyk7CkBAIC0x
ODcsMTAgKzE4NywxMCBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNsZWFyUmVxdWVzdCgp
CiAgICAgbV9jYW5jZWxsYWJsZSA9IG51bGxwdHI7CiAgICAgaWYgKG1fc291cE1lc3NhZ2UpIHsK
ICAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9tYXRjaGVkKG1fc291cE1lc3Nh
Z2UuZ2V0KCksIEdfU0lHTkFMX01BVENIX0RBVEEsIDAsIDAsIG51bGxwdHIsIG51bGxwdHIsIHRo
aXMpOwotICAgICAgICBzb3VwX3Nlc3Npb25fY2FuY2VsX21lc3NhZ2Uoc3RhdGljX2Nhc3Q8TmV0
d29ya1Nlc3Npb25Tb3VwJj4obV9zZXNzaW9uLmdldCgpKS5zb3VwU2Vzc2lvbigpLCBtX3NvdXBN
ZXNzYWdlLmdldCgpLCBTT1VQX1NUQVRVU19DQU5DRUxMRUQpOworICAgICAgICBzb3VwX3Nlc3Np
b25fY2FuY2VsX21lc3NhZ2Uoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4oKm1fc2Vz
c2lvbikuc291cFNlc3Npb24oKSwgbV9zb3VwTWVzc2FnZS5nZXQoKSwgU09VUF9TVEFUVVNfQ0FO
Q0VMTEVEKTsKICAgICAgICAgbV9zb3VwTWVzc2FnZSA9IG51bGxwdHI7CiAgICAgfQotICAgIGdf
c2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfbWF0Y2hlZChzdGF0aWNfY2FzdDxOZXR3b3JrU2Vz
c2lvblNvdXAmPihtX3Nlc3Npb24uZ2V0KCkpLnNvdXBTZXNzaW9uKCksIEdfU0lHTkFMX01BVENI
X0RBVEEsIDAsIDAsIG51bGxwdHIsIG51bGxwdHIsIHRoaXMpOworICAgIGdfc2lnbmFsX2hhbmRs
ZXJzX2Rpc2Nvbm5lY3RfbWF0Y2hlZChzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPigq
bV9zZXNzaW9uKS5zb3VwU2Vzc2lvbigpLCBHX1NJR05BTF9NQVRDSF9EQVRBLCAwLCAwLCBudWxs
cHRyLCBudWxscHRyLCB0aGlzKTsKIH0KIAogdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpyZXN1
bWUoKQpAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y2FuY2Vs
KCkKICAgICBtX3N0YXRlID0gU3RhdGU6OkNhbmNlbGluZzsKIAogICAgIGlmIChtX3NvdXBNZXNz
YWdlKQotICAgICAgICBzb3VwX3Nlc3Npb25fY2FuY2VsX21lc3NhZ2Uoc3RhdGljX2Nhc3Q8TmV0
d29ya1Nlc3Npb25Tb3VwJj4obV9zZXNzaW9uLmdldCgpKS5zb3VwU2Vzc2lvbigpLCBtX3NvdXBN
ZXNzYWdlLmdldCgpLCBTT1VQX1NUQVRVU19DQU5DRUxMRUQpOworICAgICAgICBzb3VwX3Nlc3Np
b25fY2FuY2VsX21lc3NhZ2Uoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4oKm1fc2Vz
c2lvbikuc291cFNlc3Npb24oKSwgbV9zb3VwTWVzc2FnZS5nZXQoKSwgU09VUF9TVEFUVVNfQ0FO
Q0VMTEVEKTsKIAogICAgIGdfY2FuY2VsbGFibGVfY2FuY2VsKG1fY2FuY2VsbGFibGUuZ2V0KCkp
OwogCkBAIC00MzMsNyArNDMzLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjphcHBseUF1
dGhlbnRpY2F0aW9uVG9SZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIAogdm9pZCBO
ZXR3b3JrRGF0YVRhc2tTb3VwOjphdXRoZW50aWNhdGVDYWxsYmFjayhTb3VwU2Vzc2lvbiogc2Vz
c2lvbiwgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlLCBTb3VwQXV0aCogc291cEF1dGgsIGdib29s
ZWFuIHJldHJ5aW5nLCBOZXR3b3JrRGF0YVRhc2tTb3VwKiB0YXNrKQogewotICAgIEFTU0VSVChz
ZXNzaW9uID09IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uU291cCY+KHRhc2stPm1fc2Vzc2lv
bi5nZXQoKSkuc291cFNlc3Npb24oKSk7CisgICAgQVNTRVJUKHNlc3Npb24gPT0gc3RhdGljX2Nh
c3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4odGFzay0+Km1fc2Vzc2lvbikuc291cFNlc3Npb24oKSk7
CiAKICAgICAvLyBXZSBkb24ndCByZXR1cm4gZWFybHkgaGVyZSBpbiBjYXNlIHRoZSBnaXZlbiBz
b3VwTWVzc2FnZSBpcyBkaWZmZXJlbnQgdG8gbV9zb3VwTWVzc2FnZSB3aGVuCiAgICAgLy8gaXQn
cyBwcm94eSBhdXRoZW50aWNhdGlvbiBhbmQgdGhlIHJlcXVlc3QgVVJMIGlzIEhUVFBTLCBiZWNh
dXNlIGluIHRoYXQgY2FzZSBsaWJzb3VwIHVzZXMgYQpAQCAtNDgxLDcgKzQ4MSw3IEBAIHZvaWQg
TmV0d29ya0RhdGFUYXNrU291cDo6YXV0aGVudGljYXRlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiYgY2hhbGxlbmdlKQogICAgICAgICB9CiAgICAgfQogCi0gICAgc291cF9zZXNzaW9uX3BhdXNl
X21lc3NhZ2Uoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4obV9zZXNzaW9uLmdldCgp
KS5zb3VwU2Vzc2lvbigpLCBjaGFsbGVuZ2Uuc291cE1lc3NhZ2UoKSk7CisgICAgc291cF9zZXNz
aW9uX3BhdXNlX21lc3NhZ2Uoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4oKm1fc2Vz
c2lvbikuc291cFNlc3Npb24oKSwgY2hhbGxlbmdlLnNvdXBNZXNzYWdlKCkpOwogCiAgICAgLy8g
V2UgY291bGQgYWxzbyBkbyB0aGlzIGJlZm9yZSB3ZSBldmVuIHN0YXJ0IHRoZSByZXF1ZXN0LCBi
dXQgdGhhdCB3b3VsZCBiZSBhdCB0aGUgZXhwZW5zZQogICAgIC8vIG9mIGFsbCByZXF1ZXN0IGxh
dGVuY3ksIHZlcnN1cyBhIG9uZS10aW1lIGxhdGVuY3kgZm9yIHRoZSBzbWFsbCBzdWJzZXQgb2Yg
cmVxdWVzdHMgdGhhdApAQCAtNTM1LDcgKzUzNSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291
cDo6Y29udGludWVBdXRoZW50aWNhdGUoQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjaGFsbGVu
CiAgICAgICAgICAgICBzb3VwX2F1dGhfYXV0aGVudGljYXRlKGNoYWxsZW5nZS5zb3VwQXV0aCgp
LCBjcmVkZW50aWFsLnVzZXIoKS51dGY4KCkuZGF0YSgpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCku
dXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIH0KIAotICAgICAgICBzb3VwX3Nlc3Npb25fdW5wYXVz
ZV9tZXNzYWdlKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uU291cCY+KG1fc2Vzc2lvbi5nZXQo
KSkuc291cFNlc3Npb24oKSwgY2hhbGxlbmdlLnNvdXBNZXNzYWdlKCkpOworICAgICAgICBzb3Vw
X3Nlc3Npb25fdW5wYXVzZV9tZXNzYWdlKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uU291cCY+
KCptX3Nlc3Npb24pLnNvdXBTZXNzaW9uKCksIGNoYWxsZW5nZS5zb3VwTWVzc2FnZSgpKTsKICAg
ICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtTZXNzaW9uU291cC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtTZXNzaW9uU291cC5oCmluZGV4IGMzMTMwNTY4MjYyYzQ3NDAyYzY3ZGJjMGUwNzFm
Y2QyNGI4OTkwN2MuLjkxNWQwMmQ1MjRlZDIwMmQ3OWRiY2Y4NDQzMGU5ZTlmOWNmMGQ4ZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lv
blNvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nl
c3Npb25Tb3VwLmgKQEAgLTM3LDIwICszNywxOCBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVh
dGlvblBhcmFtZXRlcnM7CiAKIGNsYXNzIE5ldHdvcmtTZXNzaW9uU291cCBmaW5hbCA6IHB1Ymxp
YyBOZXR3b3JrU2Vzc2lvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrU2Vzc2lv
bj4gY3JlYXRlKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya1Nlc3Npb24+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3Ms
IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtTZXNzaW9uU291cChuZXR3b3JrUHJv
Y2VzcywgV1RGTW92ZShwYXJhbWV0ZXJzKSkpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxOZXR3b3JrU2Vzc2lvblNvdXA+KG5ldHdvcmtQcm9jZXNzLCBXVEZNb3ZlKHBhcmFtZXRl
cnMpKTsKICAgICB9CisgICAgTmV0d29ya1Nlc3Npb25Tb3VwKE5ldHdvcmtQcm9jZXNzJiwgTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJik7CiAgICAgfk5ldHdvcmtTZXNzaW9uU291
cCgpOwogCiAgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCkgY29uc3Q7CiAKIHByaXZhdGU6
Ci0gICAgTmV0d29ya1Nlc3Npb25Tb3VwKE5ldHdvcmtQcm9jZXNzJiwgTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnMmJik7Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFz
az4gY3JlYXRlV2ViU29ja2V0VGFzayhOZXR3b3JrU29ja2V0Q2hhbm5lbCYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpIG92ZXJyaWRlOwot
Ci0gICAgdm9pZCBjbGVhckNyZWRlbnRpYWxzKCkgb3ZlcnJpZGU7CisgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYlNvY2tldFRhc2s+IGNyZWF0ZVdlYlNvY2tldFRhc2soTmV0d29ya1NvY2tldENoYW5u
ZWwmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3Rv
Y29sKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFyQ3JlZGVudGlhbHMoKSBmaW5hbDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374810</attachid>
            <date>2019-07-24 14:23:56 -0700</date>
            <delta_ts>2019-07-24 14:25:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200020-20190724142353.patch</filename>
            <type>text/plain</type>
            <size>31500</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3Nzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFkYjg3NzFmYWEyZmM2OGYw
YjdiY2I0Y2YyZmFiZjQ2MzczNmQ3NjAuLmRkZDNlNzI0MThhNDdhZTUwN2Q1ZDc4ZWRmMGVlMjJk
NGYyY2EwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTktMDctMjQgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgTmV0d29ya1Nlc3Npb24g
bm8gbG9uZ2VyIFJlZkNvdW50ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMDAyMAorCisgICAgICAgIFRoaXMgYWxsb3dzIHRvIGhhdmUgYSBzaW1w
bGVyIG1lbW9yeSBtYW5hZ2VtZW50IG1vZGVsIHdoZXJlCisgICAgICAgIE5ldHdvcmtTZXNzaW9u
IGNhbm5vdCBsaXZlIG9uY2UgcmVtb3ZlZCBmcm9tIHRoZSBuZXR3b3JrIHByb2Nlc3Mgc2Vzc2lv
biBtYXAuCisgICAgICAgIFRoaXMgcmVxdWlyZXMgc29tZSBhZGRpdGlvbmFsIG51bGwgY2hlY2tz
LCBlc3BlY2lhbGx5IGluIE5ldHdvcmtEYXRhVGFzay4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtTZXNz
aW9uQ3VybC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25T
b3VwLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpOZXR3b3JrRGF0YVRhc2spOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
RGF0YVRhc2tCbG9iOjp+TmV0d29ya0RhdGFUYXNrQmxvYik6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtEYXRhVGFza0Jsb2I6OmRvd25sb2FkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpsb3dN
ZW1vcnlIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFNlc3Np
b24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24pOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0
ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpuZXR3b3Jr
U2Vzc2lvbnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OmNyZWF0ZSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRD
aGFubmVsOjpOZXR3b3JrU29ja2V0Q2hhbm5lbCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtT
b2NrZXRDaGFubmVsOjp+TmV0d29ya1NvY2tldENoYW5uZWwpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Rh
dGFUYXNrQ29jb2E6OmFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZh
Y2VJZk5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OmNvbXB1dGVJc0Fsd2F5c09uTG9nZ2luZ0Fs
bG93ZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0Rh
dGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6fk5l
dHdvcmtEYXRhVGFza0NvY29hKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29j
b2E6OnJlc3VtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjppc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQgY29uc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVs
ZWdhdGUgaW5pdFdpdGhOZXR3b3JrU2Vzc2lvbjp3aXRoQ3JlZGVudGlhbHM6XSk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrRGF0YVRhc2tTb3VwOjpjbGVhclJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrRGF0YVRhc2tTb3VwOjpjYW5jZWwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0
YVRhc2tTb3VwOjphdXRoZW50aWNhdGVDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtEYXRhVGFza1NvdXA6OmF1dGhlbnRpY2F0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFza1NvdXA6OmNvbnRpbnVlQXV0aGVudGljYXRlKToKKwogMjAxOS0wNy0yNCAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4gV2ViQ29udGVu
dCBwcm9jZXNzIHdpdGggY3VzdG9tIHNjaGVtZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKaW5kZXggYmNiYWU5ZDMxZmJmOGU3NjBlNGQ2
ZmY2NjAwMTI4NmQwMjU0YWEzZC4uOGIzYmNlOTZkNzM2NTFkNTk5OWIxZTU1YTBjMTZlMDM1MTMx
MTgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0
YVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrLmNwcApAQCAtNjIsNyArNjIsNyBAQCBSZWY8TmV0d29ya0RhdGFUYXNrPiBOZXR3b3JrRGF0
YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdAogCiBOZXR3
b3JrRGF0YVRhc2s6Ok5ldHdvcmtEYXRhVGFzayhOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0
d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dFdpdGhDcmVkZW50aWFscywgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwg
Ym9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbikKICAgICA6IG1fZmFpbHVyZVRp
bWVyKCp0aGlzLCAmTmV0d29ya0RhdGFUYXNrOjpmYWlsdXJlVGltZXJGaXJlZCkKLSAgICAsIG1f
c2Vzc2lvbihzZXNzaW9uKQorICAgICwgbV9zZXNzaW9uKG1ha2VXZWFrUHRyKHNlc3Npb24pKQog
ICAgICwgbV9jbGllbnQoJmNsaWVudCkKICAgICAsIG1fcGFydGl0aW9uKHJlcXVlc3RXaXRoQ3Jl
ZGVudGlhbHMuY2FjaGVQYXJ0aXRpb24oKSkKICAgICAsIG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3koc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrRGF0YVRhc2suaAppbmRleCA5ZjVmZTFmNGIzODM5NjQ5MGNjYjRmNDMxNWM0
MmUxMmJlYjY3ZDA3Li4xZmIwNzhkZjdhMzJkYzgxNzhiMjg3ZDY4Mzg3ZmJiZjgzZTFkNzY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgKQEAg
LTE0Myw3ICsxNDMsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBGYWlsdXJlVHlwZSBtX3NjaGVkdWxl
ZEZhaWx1cmVUeXBlIHsgTm9GYWlsdXJlIH07CiAgICAgV2ViQ29yZTo6VGltZXIgbV9mYWlsdXJl
VGltZXI7Ci0gICAgUmVmPE5ldHdvcmtTZXNzaW9uPiBtX3Nlc3Npb247CisgICAgV2Vha1B0cjxO
ZXR3b3JrU2Vzc2lvbj4gbV9zZXNzaW9uOwogICAgIE5ldHdvcmtEYXRhVGFza0NsaWVudCogbV9j
bGllbnQgeyBudWxscHRyIH07CiAgICAgUGVuZGluZ0Rvd25sb2FkKiBtX3BlbmRpbmdEb3dubG9h
ZCB7IG51bGxwdHIgfTsKICAgICBEb3dubG9hZElEIG1fcGVuZGluZ0Rvd25sb2FkSUQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2Iu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNw
cAppbmRleCBiZWI4YjM2YzhiN2Y0N2ZiZDZjYWU5Y2NiMDYwOWYyYjczZjUwYzFkLi44NTZjYTFm
MDk1ZTEwM2M1NDJhZDRlNDMwMDBiY2I3MGZmMWZiMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHAKQEAgLTg2LDcgKzg2
LDggQEAgTmV0d29ya0RhdGFUYXNrQmxvYjo6fk5ldHdvcmtEYXRhVGFza0Jsb2IoKQogICAgICAg
ICBmaWxlUmVmZXJlbmNlLT5yZXZva2VGaWxlQWNjZXNzKCk7CiAKICAgICBjbGVhclN0cmVhbSgp
OwotICAgIG1fc2Vzc2lvbi0+dW5yZWdpc3Rlck5ldHdvcmtEYXRhVGFzaygqdGhpcyk7CisgICAg
aWYgKG1fc2Vzc2lvbikKKyAgICAgICAgbV9zZXNzaW9uLT51bnJlZ2lzdGVyTmV0d29ya0RhdGFU
YXNrKCp0aGlzKTsKIH0KIAogdm9pZCBOZXR3b3JrRGF0YVRhc2tCbG9iOjpjbGVhclN0cmVhbSgp
CkBAIC00NTUsNiArNDU2LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tCbG9iOjpkb3dubG9hZCgp
CiB7CiAgICAgQVNTRVJUKGlzRG93bmxvYWQoKSk7CiAgICAgQVNTRVJUKG1fcGVuZGluZ0Rvd25s
b2FkTG9jYXRpb24pOworICAgIEFTU0VSVChtX3Nlc3Npb24pOwogCiAgICAgTE9HKE5ldHdvcmtT
ZXNzaW9uLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tCbG9iOjpkb3dubG9hZCB0byAlcyIsIHRoaXMs
IG1fcGVuZGluZ0Rvd25sb2FkTG9jYXRpb24udXRmOCgpLmRhdGEoKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMjRiZDcxNjk5
YWFmZjRkMmIyODM1MzMwNDkwMGY2NDllM2UwYjg4My4uZmYwZjgzOGI0YTkyM2E5MGFiODNkZDNk
Y2MzZGRkNjJlMWQ2MmY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTg1LDYgKzg1LDcgQEAKICNpbmNsdWRlIDx3dGYvT3B0aW9u
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4KICNpbmNsdWRlIDx3dGYv
UnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9BdG9tU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoU0VDX0lURU1fU0hJTSkKQEAgLTI3NCw3ICsy
NzUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsIGNy
aXRpY2FsKQogICAgIFdURjo6cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5KCk7CiAKICAgICBm
b3IgKGF1dG8mIG5ldHdvcmtTZXNzaW9uIDogbV9uZXR3b3JrU2Vzc2lvbnMudmFsdWVzKCkpCi0g
ICAgICAgIG5ldHdvcmtTZXNzaW9uLmdldCgpLmNsZWFyUHJlZmV0Y2hDYWNoZSgpOworICAgICAg
ICBuZXR3b3JrU2Vzc2lvbi0+Y2xlYXJQcmVmZXRjaENhY2hlKCk7CiB9CiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCkBAIC01NzYsNyArNTc3LDcgQEAgTmV0d29ya1Nlc3Np
b24qIE5ldHdvcmtQcm9jZXNzOjpuZXR3b3JrU2Vzc2lvbkJ5Q29ubmVjdGlvbihJUEM6OkNvbm5l
Y3Rpb24mIGNvbm4KICAgICByZXR1cm4gc2Vzc2lvbklELmlzVmFsaWQoKSA/IG5ldHdvcmtTZXNz
aW9uKHNlc3Npb25JRCkgOiBudWxscHRyOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRT
ZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIFJlZjxOZXR3b3JrU2Vzc2lv
bj4mJiBzZXNzaW9uKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2Vzc2lvbihjb25zdCBQQUw6
OlNlc3Npb25JRCYgc2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+JiYg
c2Vzc2lvbikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIEFTU0VSVChz
ZXNzaW9uSUQuaXNWYWxpZCgpKTsKQEAgLTU5Niw3ICs1OTcsNyBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpkZXN0cm95U2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQogICAg
IEFTU0VSVChzZXNzaW9uSUQgIT0gUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7
CiAKICAgICBpZiAoYXV0byBzZXNzaW9uID0gbV9uZXR3b3JrU2Vzc2lvbnMudGFrZShzZXNzaW9u
SUQpKQotICAgICAgICBzZXNzaW9uLT5nZXQoKS5pbnZhbGlkYXRlQW5kQ2FuY2VsKCk7CisgICAg
ICAgIHNlc3Npb24tPmludmFsaWRhdGVBbmRDYW5jZWwoKTsKICAgICBtX25ldHdvcmtTdG9yYWdl
U2Vzc2lvbnMucmVtb3ZlKHNlc3Npb25JRCk7CiAgICAgbV9zZXNzaW9uc0NvbnRyb2xsZWRCeUF1
dG9tYXRpb24ucmVtb3ZlKHNlc3Npb25JRCk7CiAgICAgQ2FjaGVTdG9yYWdlOjpFbmdpbmU6OmRl
c3Ryb3lFbmdpbmUoKnRoaXMsIHNlc3Npb25JRCk7CkBAIC0xMTQ2LDcgKzExNDcsNyBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNv
cmRzUmVtb3ZhbChQQUw6OlNlcwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAgIGZvciAoYXV0byYgbmV0d29y
a1Nlc3Npb24gOiBtX25ldHdvcmtTZXNzaW9ucy52YWx1ZXMoKSkKLSAgICAgICAgbmV0d29ya1Nl
c3Npb24uZ2V0KCkuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZW5hYmxlZCk7Cisg
ICAgICAgIG5ldHdvcmtTZXNzaW9uLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChl
bmFibGVkKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RlYnVnTW9kZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgZGVidWdNb2RlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0xNzU0LDcg
KzE3NTUsOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lz
dHJhYmxlRG9tYWlucyhQQUw6OlNlc3Npb25JRCBzZXNzaQogCiAgICAgaWYgKHdlYnNpdGVEYXRh
VHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2FjaGUpKSB7CiAgICAgICAgIGZv
ciAoYXV0byYgc2Vzc2lvbiA6IG5ldHdvcmtTZXNzaW9ucygpLnZhbHVlcygpKSB7Ci0gICAgICAg
ICAgICBmZXRjaERpc2tDYWNoZUVudHJpZXMoc2Vzc2lvbi0+Y2FjaGUoKSwgc2Vzc2lvbklELCBm
ZXRjaE9wdGlvbnMsIFtkb21haW5zVG9EZWxldGVBbGxCdXRDb29raWVzRm9yLCBjYWxsYmFja0Fn
Z3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpLCBzZXNzaW9uID0gc2Vzc2lv
bi5jb3B5UmVmKCldKGF1dG8gZW50cmllcykgbXV0YWJsZSB7CisgICAgICAgICAgICBmZXRjaERp
c2tDYWNoZUVudHJpZXMoc2Vzc2lvbi0+Y2FjaGUoKSwgc2Vzc2lvbklELCBmZXRjaE9wdGlvbnMs
IFtkb21haW5zVG9EZWxldGVBbGxCdXRDb29raWVzRm9yLCBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBj
YWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpLCBzZXNzaW9uID0gbWFrZVdlYWtQdHIoc2Vzc2lv
bi5nZXQoKSldKGF1dG8gZW50cmllcykgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKCFz
ZXNzaW9uKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgICAgICBW
ZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBlbnRyaWVzVG9EZWxldGU7CiAgICAgICAgICAgICAg
ICAgZm9yIChhdXRvJiBlbnRyeSA6IGVudHJpZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA2OWYzZDRmNjc5MmMwYjljYzdhMTAyODZh
ODJhYzUzZDhiMTI5NDdkLi40YTFjM2Y0OWM3YWNjNzgyZjE1NTYyOTY3NWVmMTYzMWRkODc3Nzhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBA
IC0xNjEsMTMgKzE2MSwxMyBAQCBwdWJsaWM6CiAgICAgQXV0aGVudGljYXRpb25NYW5hZ2VyJiBh
dXRoZW50aWNhdGlvbk1hbmFnZXIoKTsKICAgICBEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFu
YWdlcigpOwogCi0gICAgdm9pZCBzZXRTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgUmVm
PE5ldHdvcmtTZXNzaW9uPiYmKTsKKyAgICB2b2lkIHNldFNlc3Npb24oY29uc3QgUEFMOjpTZXNz
aW9uSUQmLCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+JiYpOwogICAgIE5ldHdvcmtT
ZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYpIGNvbnN0IGZpbmFs
OwogICAgIE5ldHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbkJ5Q29ubmVjdGlvbihJUEM6OkNv
bm5lY3Rpb24mKSBjb25zdDsKICAgICB2b2lkIGRlc3Ryb3lTZXNzaW9uKGNvbnN0IFBBTDo6U2Vz
c2lvbklEJik7CiAKICAgICAvLyBOZWVkZWQgZm9yIHRlc3QgaW5mcmFzdHJ1Y3R1cmUKLSAgICBI
YXNoTWFwPFBBTDo6U2Vzc2lvbklELCBSZWY8TmV0d29ya1Nlc3Npb24+PiYgbmV0d29ya1Nlc3Np
b25zKCkgeyByZXR1cm4gbV9uZXR3b3JrU2Vzc2lvbnM7IH0KKyAgICBIYXNoTWFwPFBBTDo6U2Vz
c2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+PiYgbmV0d29ya1Nlc3Npb25z
KCkgeyByZXR1cm4gbV9uZXR3b3JrU2Vzc2lvbnM7IH0KIAogICAgIHZvaWQgZm9yRWFjaE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbihjb25zdCBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYpPiYpOwogICAgIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogc3Rv
cmFnZVNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmKSBjb25zdDsKQEAgLTQ5Niw3ICs0OTYs
NyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8UEFMOjpTZXNzaW9uSUQ+IG1fc2Vzc2lvbnNDb250
cm9sbGVkQnlBdXRvbWF0aW9uOwogICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFZlY3RvcjxD
YWNoZVN0b3JhZ2VSb290UGF0aENhbGxiYWNrPj4gbV9jYWNoZVN0b3JhZ2VQYXJhbWV0ZXJzQ2Fs
bGJhY2tzOwogCi0gICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgUmVmPE5ldHdvcmtTZXNzaW9u
Pj4gbV9uZXR3b3JrU2Vzc2lvbnM7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1
bmlxdWVfcHRyPE5ldHdvcmtTZXNzaW9uPj4gbV9uZXR3b3JrU2Vzc2lvbnM7CiAgICAgSGFzaE1h
cDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbj4+IG1fbmV0d29ya1N0b3JhZ2VTZXNzaW9uczsKICAgICBtdXRhYmxlIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+IG1fZGVmYXVsdE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjsKICAgICBOZXR3b3JrQmxvYlJlZ2lzdHJ5IG1fbmV0d29ya0Jsb2JSZWdp
c3RyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5j
cHAKaW5kZXggOWFhYWUwNTI0MWUyZDRmMmFjOTBhYmQ0N2ZmOTE0MzY2NDY2NDgxMi4uNjYzNTcw
YTk5MWQ5NDRiMzhkYjg1NGViMjdiZjA2ZjFjMWFmODNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTU2LDcgKzU2LDcgQEAKIG5h
bWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxOZXR3b3Jr
U2Vzc2lvbj4gTmV0d29ya1Nlc3Npb246OmNyZWF0ZShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1By
b2Nlc3MsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKK3N0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4gTmV0d29ya1Nlc3Npb246OmNyZWF0ZShOZXR3
b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzJiYgcGFyYW1ldGVycykKIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICByZXR1cm4gTmV0
d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlKG5ldHdvcmtQcm9jZXNzLCBXVEZNb3ZlKHBhcmFtZXRl
cnMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApp
bmRleCAwYWQxODBlOWFlNjhiNDQ3ZjZlMGQ2ZDM3ODdkYjhhMjM2YmI5OGU0Li45MDZhZWNkMGQ1
YTA4ZWQ1YjJhNjY0NDUyOTY2ZDhlMmE2YzYxYjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSA8
cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZi5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29u
ZHMuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KQEAgLTY0LDkgKzYzLDkgQEAgbmFtZXNwYWNlIE5ldHdvcmtDYWNoZSB7CiBjbGFzcyBDYWNo
ZTsKIH0KIAotY2xhc3MgTmV0d29ya1Nlc3Npb24gOiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3Jr
U2Vzc2lvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxOZXR3b3JrU2Vzc2lvbj4geworY2xhc3Mg
TmV0d29ya1Nlc3Npb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TmV0d29ya1Nlc3Npb24+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtTZXNzaW9uPiBjcmVhdGUoTmV0d29ya1By
b2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmKTsKKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTZXNzaW9uPiBjcmVhdGUoTmV0d29ya1Byb2Nlc3MmLCBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmKTsKICAgICB2aXJ0dWFsIH5OZXR3b3Jr
U2Vzc2lvbigpOwogCiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVBbmRDYW5jZWwoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5u
ZWwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5jcHAKaW5kZXggNTY5MzBjMzYwZmJhMGRmNzAwZDQxMzI0NGRlZDUyOTYyNTcyODQwOS4uYTk4
ZTk2ZjEwNWM0YjkzYjQ0Yjc0NGM5YjE5ZTQ4ZDM3YzcxYzc4YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTQ2
LDEwICs0NiwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENoYW5uZWw+IE5ldHdv
cmtTb2NrZXRDaGFubmVsOjpjcmVhdGUoTmV0d29ya0Nvbm5lYwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLU5ldHdvcmtTb2NrZXRDaGFubmVsOjpOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgUmVmUHRyPE5ldHdvcmtTZXNzaW9u
PiYmIHNlc3Npb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5n
JiBwcm90b2NvbCwgdWludDY0X3QgaWRlbnRpZmllcikKK05ldHdvcmtTb2NrZXRDaGFubmVsOjpO
ZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVj
dGlvbiwgTmV0d29ya1Nlc3Npb24qIHNlc3Npb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgdWludDY0X3QgaWRlbnRpZmllcikKICAgICA6
IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uKQogICAgICwgbV9pZGVudGlmaWVy
KGlkZW50aWZpZXIpCi0gICAgLCBtX3Nlc3Npb24oV1RGTW92ZShzZXNzaW9uKSkKKyAgICAsIG1f
c2Vzc2lvbihtYWtlV2Vha1B0cihzZXNzaW9uKSkKIHsKICAgICBpZiAoIW1fc2Vzc2lvbikKICAg
ICAgICAgcmV0dXJuOwpAQCAtNjMsMTEgKzYzLDExIEBAIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpO
ZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVj
CiAKIE5ldHdvcmtTb2NrZXRDaGFubmVsOjp+TmV0d29ya1NvY2tldENoYW5uZWwoKQogewotICAg
IGlmICghbV9zb2NrZXQpCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAobV9zZXNzaW9uKQorICAg
ICAgICBtX3Nlc3Npb24tPnJlbW92ZVdlYlNvY2tldFRhc2soKm1fc29ja2V0KTsKIAotICAgIG1f
c29ja2V0LT5jYW5jZWwoKTsKLSAgICBtX3Nlc3Npb24tPnJlbW92ZVdlYlNvY2tldFRhc2soKm1f
c29ja2V0KTsKKyAgICBpZiAobV9zb2NrZXQpCisgICAgICAgIG1fc29ja2V0LT5jYW5jZWwoKTsK
IH0KIAogdm9pZCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6c2VuZFN0cmluZyhjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaAppbmRl
eCA0MjdmMjdiN2FiN2M3ZDg1Nzg4MTFlNWE4ODg0Y2QzYWY0NjQ5MTUzLi5mN2NkMmExODRkNzc5
ZThjMmU3MWUxMDc4MjNlN2ViZmNhNTg0NThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCkBAIC01MSw3ICs1MSw3IEBAIGNs
YXNzIE5ldHdvcmtTb2NrZXRDaGFubmVsIDogcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciwgcHVi
bGljIElQQzo6TWVzc2FnZVJlY2VpCiBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxOZXR3b3JrU29ja2V0Q2hhbm5lbD4gY3JlYXRlKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFN0cmluZyYgcHJvdG9jb2wsIHVpbnQ2NF90IGlkZW50aWZpZXIpOwogCi0gICAgTmV0d29y
a1NvY2tldENoYW5uZWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBSZWZQdHI8TmV0
d29ya1Nlc3Npb24+JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0
cmluZyYgcHJvdG9jb2wsIHVpbnQ2NF90IGlkZW50aWZpZXIpOworICAgIE5ldHdvcmtTb2NrZXRD
aGFubmVsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTmV0d29ya1Nlc3Npb24qLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCB1
aW50NjRfdCBpZGVudGlmaWVyKTsKICAgICB+TmV0d29ya1NvY2tldENoYW5uZWwoKTsKIAogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7
CkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogICAgIHVpbnQ2NF90IG1faWRlbnRp
ZmllcjsKLSAgICBSZWZQdHI8TmV0d29ya1Nlc3Npb24+IG1fc2Vzc2lvbjsKKyAgICBXZWFrUHRy
PE5ldHdvcmtTZXNzaW9uPiBtX3Nlc3Npb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tl
dFRhc2s+IG1fc29ja2V0OwogCiAgICAgZW51bSBjbGFzcyBTdGF0ZSB7IE9wZW4sIENsb3Npbmcs
IENsb3NlZCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCmluZGV4IDc3MWIzYWI1OTExM2UzNTE5N2JiOWVk
Mjg0ZDBlY2IwZTIzMGM2ZTIuLjM4ZWQ5Y2Y1OGNiNjk0YWU1NTM5ODA2MjFlNTEyZWJiZWU1YWFj
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTEwMCw2ICsxMDAsNyBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAKICAgICBib29sIG1faXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQgeyBmYWxzZSB9
OwogfTsKIAogV2ViQ29yZTo6Q3JlZGVudGlhbCBzZXJ2ZXJUcnVzdENyZWRlbnRpYWwoY29uc3Qg
V2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmlu
ZGV4IDFmNGU3YjQ0Yzg4NDZhYmNlZGVhZWFlYzlhZWM5YWNlYzUxZDRkMWMuLmJhNWU4ODAwZWJi
MGU5ZjA1ZmE4MWE0YTNhZDUyM2MxYjdjZmJkMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAt
ODUsNyArODUsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjphcHBseVNuaWZmaW5nUG9s
aWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZQogICAgIFVOVVNFRF9QQVJBTShz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CiAjZW5kaWYKIAotICAgIGF1dG8mIGNvY29hU2Vz
c2lvbiA9IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihtX3Nlc3Npb24uZ2V0KCkp
OworICAgIGF1dG8mIGNvY29hU2Vzc2lvbiA9IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29j
b2EmPigqbV9zZXNzaW9uKTsKICAgICBpZiAoc2hvdWxkQ29udGVudFNuaWZmCiAjaWYgVVNFKENG
TkVUV09SS19DT05URU5UX0VOQ09ESU5HX1NOSUZGSU5HX09WRVJSSURFKQogICAgICAgICAmJiBz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZgpAQCAtMTY4LDExICsxNjgsMjAgQEAgc3RhdGljIHZv
aWQgdXBkYXRlVGFza1dpdGhGaXJzdFBhcnR5Rm9yU2FtZVNpdGVDb29raWVzKE5TVVJMU2Vzc2lv
bkRhdGFUYXNrKiB0YXMKICNlbmRpZgogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgY29tcHV0ZUlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZChOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBp
ZiAoc2Vzc2lvbi5uZXR3b3JrUHJvY2VzcygpLnNlc3Npb25Jc0NvbnRyb2xsZWRCeUF1dG9tYXRp
b24oc2Vzc2lvbi5zZXNzaW9uSUQoKSkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0
dXJuIHNlc3Npb24uc2Vzc2lvbklEKCkuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCk7Cit9CisK
IE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lv
biYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgdWludDY0X3QgZnJhbWVJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50
aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZm
aW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25p
ZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29u
bmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0
YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0
d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcikKICAgICA6IE5ldHdv
cmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbikKICAgICAsIG1fZnJhbWVJRChm
cmFtZUlEKQogICAgICwgbV9wYWdlSUQocGFnZUlEKQogICAgICwgbV9pc0Zvck1haW5SZXNvdXJj
ZU5hdmlnYXRpb25Gb3JBbnlGcmFtZShkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlv
bkZvckFueUZyYW1lKQorICAgICwgbV9pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoY29tcHV0ZUlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZChzZXNzaW9uKSkKIHsKICAgICBpZiAobV9zY2hlZHVsZWRG
YWlsdXJlVHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAgIHJldHVybjsKQEAgLTIxMiw3ICsyMjEs
NyBAQCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVAogICAgIE5TVVJMUmVxdWVzdCAqbnNSZXF1ZXN0
ID0gcmVxdWVzdC5uc1VSTFJlcXVlc3QoV2ViQ29yZTo6SFRUUEJvZHlVcGRhdGVQb2xpY3k6OlVw
ZGF0ZUhUVFBCb2R5KTsKICAgICBhcHBseVNuaWZmaW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRv
SW5mZXJmYWNlSWZOZWVkZWQobnNSZXF1ZXN0LCBzaG91bGRDb250ZW50U25pZmYgPT0gV2ViQ29y
ZTo6Q29udGVudFNuaWZmaW5nUG9saWN5OjpTbmlmZkNvbnRlbnQgJiYgIXVybC5pc0xvY2FsRmls
ZSgpLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiA9PSBXZWJDb3JlOjpDb250ZW50RW5jb2Rp
bmdTbmlmZmluZ1BvbGljeTo6U25pZmYpOwogCi0gICAgYXV0byYgY29jb2FTZXNzaW9uID0gc3Rh
dGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KG1fc2Vzc2lvbi5nZXQoKSk7CisgICAgYXV0
byYgY29jb2FTZXNzaW9uID0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KCptX3Nl
c3Npb24pOwogICAgIHN3aXRjaCAoc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpIHsKICAgICBjYXNl
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2U6CiAgICAgICAgIG1fdGFzayA9
IFtjb2NvYVNlc3Npb24ubV9zZXNzaW9uV2l0aENyZWRlbnRpYWxTdG9yYWdlIGRhdGFUYXNrV2l0
aFJlcXVlc3Q6bnNSZXF1ZXN0XTsKQEAgLTI2OSwxMCArMjc4LDEwIEBAIE5ldHdvcmtEYXRhVGFz
a0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0
d29ya0RhdGFUCiAKIE5ldHdvcmtEYXRhVGFza0NvY29hOjp+TmV0d29ya0RhdGFUYXNrQ29jb2Eo
KQogewotICAgIGlmICghbV90YXNrKQorICAgIGlmICghbV90YXNrIHx8ICFtX3Nlc3Npb24pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGF1dG8mIGNvY29hU2Vzc2lvbiA9IHN0YXRpY19jYXN0PE5l
dHdvcmtTZXNzaW9uQ29jb2EmPihtX3Nlc3Npb24uZ2V0KCkpOworICAgIGF1dG8mIGNvY29hU2Vz
c2lvbiA9IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPigqbV9zZXNzaW9uKTsKICAg
ICBzd2l0Y2ggKG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpIHsKICAgICBjYXNlIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2U6CiAgICAgICAgIEFTU0VSVChjb2NvYVNlc3Np
b24ubV9kYXRhVGFza01hcFdpdGhDcmVkZW50aWFscy5nZXQoW21fdGFzayB0YXNrSWRlbnRpZmll
cl0pID09IHRoaXMpOwpAQCAtNTA1LDcgKzUxNCw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29j
b2E6OnJlc3VtZSgpCiAgICAgaWYgKG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJl
KQogICAgICAgICBtX2ZhaWx1cmVUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKIAotICAgIGF1dG8m
IGNvY29hU2Vzc2lvbiA9IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EmPihtX3Nlc3Np
b24uZ2V0KCkpOworICAgIGF1dG8mIGNvY29hU2Vzc2lvbiA9IHN0YXRpY19jYXN0PE5ldHdvcmtT
ZXNzaW9uQ29jb2EmPigqbV9zZXNzaW9uKTsKICAgICBpZiAoY29jb2FTZXNzaW9uLmRldmljZU1h
bmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKCkgJiYgbV9pc0Zvck1haW5SZXNvdXJjZU5hdmln
YXRpb25Gb3JBbnlGcmFtZSkgewogICAgICAgICBhdXRvIGRpZERldGVybWluZURldmljZVJlc3Ry
aWN0aW9uUG9saWN5Rm9yVVJMID0gbWFrZUJsb2NrUHRyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyldKEJPT0wgaXNCbG9ja2VkKSB7CiAgICAgICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlzQmxvY2tlZF0g
ewpAQCAtNTYxLDEwICs1NzAsNyBAQCBXZWJDb3JlOjpDcmVkZW50aWFsIHNlcnZlclRydXN0Q3Jl
ZGVudGlhbChjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZQogCiBib29sIE5l
dHdvcmtEYXRhVGFza0NvY29hOjppc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdAogewot
ICAgIGlmIChtX3Nlc3Npb24tPm5ldHdvcmtQcm9jZXNzKCkuc2Vzc2lvbklzQ29udHJvbGxlZEJ5
QXV0b21hdGlvbihtX3Nlc3Npb24tPnNlc3Npb25JRCgpKSkKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0KLSAgICByZXR1cm4gbV9zZXNzaW9uLT5zZXNzaW9uSUQoKS5pc0Fsd2F5c09uTG9nZ2luZ0Fs
bG93ZWQoKTsKKyAgICByZXR1cm4gbV9pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQ7CiB9CiAKIFN0
cmluZyBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6ZGVzY3JpcHRpb24oKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EuaAppbmRleCAzZTEzNzcwZTVjYmM1NjNiYTc2NDEyMDRmYjIxMTU2NjQ0MzU3Nzk4Li40YmFi
MjNlYTg1M2NlOGFhNzJlMzhkZGZhNmY4NThhNTE1YmQ5MGIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaApA
QCAtNDcsNyArNDcsOSBAQCBjbGFzcyBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXI7CiBjbGFz
cyBOZXR3b3JrU2Vzc2lvbkNvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtTZXNzaW9uIHsKICAg
ICBmcmllbmQgY2xhc3MgTmV0d29ya0RhdGFUYXNrQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxOZXR3b3JrU2Vzc2lvbj4gY3JlYXRlKE5ldHdvcmtQcm9jZXNzJiwgTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMmJik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3
b3JrU2Vzc2lvbj4gY3JlYXRlKE5ldHdvcmtQcm9jZXNzJiwgTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMmJik7CisKKyAgICBOZXR3b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNz
JiwgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJik7CiAgICAgfk5ldHdvcmtTZXNz
aW9uQ29jb2EoKTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZUVwaGVtZXJhbFN0YXRlbGVzc0Nvb2tp
ZWxlc3NTZXNzaW9uKCk7CkBAIC04MCw4ICs4Miw2IEBAIHB1YmxpYzoKICAgICBETUZXZWJzaXRl
UG9saWN5TW9uaXRvciAqZGV2aWNlTWFuYWdlbWVudFBvbGljeU1vbml0b3IoKTsKIAogcHJpdmF0
ZToKLSAgICBOZXR3b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiwgTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMmJik7Ci0KICAgICB2b2lkIGludmFsaWRhdGVBbmRDYW5jZWwo
KSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyQ3JlZGVudGlhbHMoKSBvdmVycmlkZTsKICAgICBi
b29sIHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDAw
ZWRhNWJjODhhZTUyMjJmN2EyMjA0NWQ1ODc1OGJlYzQ5ZjczMzIuLjA0YjAzNDkxNGU2YzY2ZDNm
NzNkMjI4Y2EyNDEwN2FlMWE2ZWYwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTMyOSw3ICsz
MjksNyBAQCBAaW50ZXJmYWNlIFdLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxO
U1VSTFNlc3Npb25EYXRhRGVsZWdhdGUKICAgICAsIE5TVVJMU2Vzc2lvbldlYlNvY2tldERlbGVn
YXRlCiAjZW5kaWYKID4gewotICAgIFJlZlB0cjxXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E+
IF9zZXNzaW9uOworICAgIFdlYWtQdHI8V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hPiBfc2Vz
c2lvbjsKICAgICBib29sIF93aXRoQ3JlZGVudGlhbHM7CiB9CiAKQEAgLTM0Niw3ICszNDYsNyBA
QCAtIChpZClpbml0V2l0aE5ldHdvcmtTZXNzaW9uOihXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29j
b2EmKXNlc3Npb24gd2l0aENyZWRlbnRpYQogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJu
IG5pbDsKIAotICAgIF9zZXNzaW9uID0gJnNlc3Npb247CisgICAgX3Nlc3Npb24gPSBtYWtlV2Vh
a1B0cihzZXNzaW9uKTsKICAgICBfd2l0aENyZWRlbnRpYWxzID0gd2l0aENyZWRlbnRpYWxzOwog
CiAgICAgcmV0dXJuIHNlbGY7CkBAIC04OTYsOSArODk2LDkgQEAgdm9pZCBOZXR3b3JrU2Vzc2lv
bkNvY29hOjpzZXRDVERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUoY29uc3QgU3RyaW5nJiB0eXBl
KQogfQogI2VuZGlmCiAKLVJlZjxOZXR3b3JrU2Vzc2lvbj4gTmV0d29ya1Nlc3Npb25Db2NvYTo6
Y3JlYXRlKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1Nlc3Npb25DcmVh
dGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQorc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTZXNz
aW9uPiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGUoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQ
cm9jZXNzLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1Nlc3Npb25Db2NvYShuZXR3b3JrUHJv
Y2VzcywgV1RGTW92ZShwYXJhbWV0ZXJzKSkpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PE5ldHdvcmtTZXNzaW9uQ29jb2E+KG5ldHdvcmtQcm9jZXNzLCBXVEZNb3ZlKHBhcmFtZXRlcnMp
KTsKIH0KIAogc3RhdGljIE5TRGljdGlvbmFyeSAqcHJveHlEaWN0aW9uYXJ5KGNvbnN0IFVSTCYg
aHR0cFByb3h5LCBjb25zdCBVUkwmIGh0dHBzUHJveHkpCkBAIC05MzUsOCArOTM1LDYgQEAgTmV0
d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYShOZXR3b3JrUHJvY2VzcyYgbmV0
d29ya1Byb2Nlc3MsIE5ldHdvcmsKIHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQ
cm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CiAKLSAgICByZWxheEFkb3B0
aW9uUmVxdWlyZW1lbnQoKTsKLQogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICBzZXNzaW9uc0Ny
ZWF0ZWQgPSB0cnVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmgKaW5kZXggZmRlZDU2ODkyZWJjZmY1NDhj
OTg5MTAzODg1OTNhMTEyYWQ5NTMxNy4uZDQ3MDlhNWU0YWM4YTJmYjZhY2ViNTZjNTdlYmYwYjVj
NzQwZDQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jdXJsL05l
dHdvcmtTZXNzaW9uQ3VybC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3Vy
bC9OZXR3b3JrU2Vzc2lvbkN1cmwuaApAQCAtMzMsMTQgKzMzLDEyIEBAIHN0cnVjdCBOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczsKIAogY2xhc3MgTmV0d29ya1Nlc3Npb25DdXJsIGZp
bmFsIDogcHVibGljIE5ldHdvcmtTZXNzaW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5l
dHdvcmtTZXNzaW9uPiBjcmVhdGUoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCisgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4gY3JlYXRlKE5ldHdvcmtQcm9jZXNzJiBuZXR3
b3JrUHJvY2VzcywgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJz
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1Nlc3Npb25DdXJs
KG5ldHdvcmtQcm9jZXNzLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKSk7CisgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTZXNzaW9uQ3VybD4obmV0d29ya1Byb2Nlc3MsIFdURk1v
dmUocGFyYW1ldGVycykpOwogICAgIH0KLSAgICB+TmV0d29ya1Nlc3Npb25DdXJsKCk7Ci0KLXBy
aXZhdGU6CiAgICAgTmV0d29ya1Nlc3Npb25DdXJsKE5ldHdvcmtQcm9jZXNzJiwgTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJik7CisgICAgfk5ldHdvcmtTZXNzaW9uQ3VybCgpOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5kZXggOGZjZmJj
YWNlZTA0ZGNlOWJlYzhiNDBhNGFiMTg5NTIwNDVjM2Y5OS4uZmUxYTJjNDdkNjFhM2VhMjIyZDUx
YTgwNjU5OWQ5MjgxZTMxNmU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtODAsNyArODAsOCBA
QCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpOZXR3b3JrRGF0YVRhc2tTb3VwKE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhcwogTmV0d29ya0RhdGFUYXNrU291cDo6fk5ldHdvcmtE
YXRhVGFza1NvdXAoKQogewogICAgIGNsZWFyUmVxdWVzdCgpOwotICAgIG1fc2Vzc2lvbi0+dW5y
ZWdpc3Rlck5ldHdvcmtEYXRhVGFzaygqdGhpcyk7CisgICAgaWYgKG1fc2Vzc2lvbikKKyAgICAg
ICAgbV9zZXNzaW9uLT51bnJlZ2lzdGVyTmV0d29ya0RhdGFUYXNrKCp0aGlzKTsKIH0KIAogU3Ry
aW5nIE5ldHdvcmtEYXRhVGFza1NvdXA6OnN1Z2dlc3RlZEZpbGVuYW1lKCkgY29uc3QKQEAgLTEx
MSw3ICsxMTIsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZVJlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEdS
ZWZQdHI8U291cFJlcXVlc3Q+IHNvdXBSZXF1ZXN0ID0gYWRvcHRHUmVmKHNvdXBfc2Vzc2lvbl9y
ZXF1ZXN0X3VyaShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPihtX3Nlc3Npb24uZ2V0
KCkpLnNvdXBTZXNzaW9uKCksIHNvdXBVUkkuZ2V0KCksIG51bGxwdHIpKTsKKyAgICBHUmVmUHRy
PFNvdXBSZXF1ZXN0PiBzb3VwUmVxdWVzdCA9IGFkb3B0R1JlZihzb3VwX3Nlc3Npb25fcmVxdWVz
dF91cmkoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4oKm1fc2Vzc2lvbikuc291cFNl
c3Npb24oKSwgc291cFVSSS5nZXQoKSwgbnVsbHB0cikpOwogICAgIGlmICghc291cFJlcXVlc3Qp
IHsKICAgICAgICAgc2NoZWR1bGVGYWlsdXJlKEludmFsaWRVUkxGYWlsdXJlKTsKICAgICAgICAg
cmV0dXJuOwpAQCAtMTY0LDcgKzE2NSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y3Jl
YXRlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogCiAgICAgZ19zaWduYWxfY29u
bmVjdChtX3NvdXBNZXNzYWdlLmdldCgpLCAiZ290LWhlYWRlcnMiLCBHX0NBTExCQUNLKGdvdEhl
YWRlcnNDYWxsYmFjayksIHRoaXMpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9zb3VwTWVzc2Fn
ZS5nZXQoKSwgIndyb3RlLWJvZHktZGF0YSIsIEdfQ0FMTEJBQ0sod3JvdGVCb2R5RGF0YUNhbGxi
YWNrKSwgdGhpcyk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChzdGF0aWNfY2FzdDxOZXR3b3JrU2Vz
c2lvblNvdXAmPihtX3Nlc3Npb24uZ2V0KCkpLnNvdXBTZXNzaW9uKCksICJhdXRoZW50aWNhdGUi
LCAgR19DQUxMQkFDSyhhdXRoZW50aWNhdGVDYWxsYmFjayksIHRoaXMpOworICAgIGdfc2lnbmFs
X2Nvbm5lY3Qoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4oKm1fc2Vzc2lvbikuc291
cFNlc3Npb24oKSwgImF1dGhlbnRpY2F0ZSIsICBHX0NBTExCQUNLKGF1dGhlbnRpY2F0ZUNhbGxi
YWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdChtX3NvdXBNZXNzYWdlLmdldCgpLCAi
bmV0d29yay1ldmVudCIsIEdfQ0FMTEJBQ0sobmV0d29ya0V2ZW50Q2FsbGJhY2spLCB0aGlzKTsK
ICAgICBnX3NpZ25hbF9jb25uZWN0KG1fc291cE1lc3NhZ2UuZ2V0KCksICJyZXN0YXJ0ZWQiLCBH
X0NBTExCQUNLKHJlc3RhcnRlZENhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVj
dChtX3NvdXBNZXNzYWdlLmdldCgpLCAic3RhcnRpbmciLCBHX0NBTExCQUNLKHN0YXJ0aW5nQ2Fs
bGJhY2spLCB0aGlzKTsKQEAgLTE4NywxMCArMTg4LDEyIEBAIHZvaWQgTmV0d29ya0RhdGFUYXNr
U291cDo6Y2xlYXJSZXF1ZXN0KCkKICAgICBtX2NhbmNlbGxhYmxlID0gbnVsbHB0cjsKICAgICBp
ZiAobV9zb3VwTWVzc2FnZSkgewogICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0
X21hdGNoZWQobV9zb3VwTWVzc2FnZS5nZXQoKSwgR19TSUdOQUxfTUFUQ0hfREFUQSwgMCwgMCwg
bnVsbHB0ciwgbnVsbHB0ciwgdGhpcyk7Ci0gICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5jZWxfbWVz
c2FnZShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPihtX3Nlc3Npb24uZ2V0KCkpLnNv
dXBTZXNzaW9uKCksIG1fc291cE1lc3NhZ2UuZ2V0KCksIFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7
CisgICAgICAgIGlmIChtX3Nlc3Npb24pCisgICAgICAgICAgICBzb3VwX3Nlc3Npb25fY2FuY2Vs
X21lc3NhZ2Uoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4oKm1fc2Vzc2lvbikuc291
cFNlc3Npb24oKSwgbV9zb3VwTWVzc2FnZS5nZXQoKSwgU09VUF9TVEFUVVNfQ0FOQ0VMTEVEKTsK
ICAgICAgICAgbV9zb3VwTWVzc2FnZSA9IG51bGxwdHI7CiAgICAgfQotICAgIGdfc2lnbmFsX2hh
bmRsZXJzX2Rpc2Nvbm5lY3RfbWF0Y2hlZChzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAm
PihtX3Nlc3Npb24uZ2V0KCkpLnNvdXBTZXNzaW9uKCksIEdfU0lHTkFMX01BVENIX0RBVEEsIDAs
IDAsIG51bGxwdHIsIG51bGxwdHIsIHRoaXMpOworICAgIGlmIChtX3Nlc3Npb24pCisgICAgICAg
ICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X21hdGNoZWQoc3RhdGljX2Nhc3Q8TmV0d29y
a1Nlc3Npb25Tb3VwJj4oKm1fc2Vzc2lvbikuc291cFNlc3Npb24oKSwgR19TSUdOQUxfTUFUQ0hf
REFUQSwgMCwgMCwgbnVsbHB0ciwgbnVsbHB0ciwgdGhpcyk7CiB9CiAKIHZvaWQgTmV0d29ya0Rh
dGFUYXNrU291cDo6cmVzdW1lKCkKQEAgLTIzNiw3ICsyMzksNyBAQCB2b2lkIE5ldHdvcmtEYXRh
VGFza1NvdXA6OmNhbmNlbCgpCiAgICAgbV9zdGF0ZSA9IFN0YXRlOjpDYW5jZWxpbmc7CiAKICAg
ICBpZiAobV9zb3VwTWVzc2FnZSkKLSAgICAgICAgc291cF9zZXNzaW9uX2NhbmNlbF9tZXNzYWdl
KHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uU291cCY+KG1fc2Vzc2lvbi5nZXQoKSkuc291cFNl
c3Npb24oKSwgbV9zb3VwTWVzc2FnZS5nZXQoKSwgU09VUF9TVEFUVVNfQ0FOQ0VMTEVEKTsKKyAg
ICAgICAgc291cF9zZXNzaW9uX2NhbmNlbF9tZXNzYWdlKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNz
aW9uU291cCY+KCptX3Nlc3Npb24pLnNvdXBTZXNzaW9uKCksIG1fc291cE1lc3NhZ2UuZ2V0KCks
IFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7CiAKICAgICBnX2NhbmNlbGxhYmxlX2NhbmNlbChtX2Nh
bmNlbGxhYmxlLmdldCgpKTsKIApAQCAtNDMzLDcgKzQzNiw3IEBAIHZvaWQgTmV0d29ya0RhdGFU
YXNrU291cDo6YXBwbHlBdXRoZW50aWNhdGlvblRvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCiAKIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6YXV0aGVudGljYXRlQ2FsbGJhY2so
U291cFNlc3Npb24qIHNlc3Npb24sIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgU291cEF1dGgq
IHNvdXBBdXRoLCBnYm9vbGVhbiByZXRyeWluZywgTmV0d29ya0RhdGFUYXNrU291cCogdGFzaykK
IHsKLSAgICBBU1NFUlQoc2Vzc2lvbiA9PSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAm
Pih0YXNrLT5tX3Nlc3Npb24uZ2V0KCkpLnNvdXBTZXNzaW9uKCkpOworICAgIEFTU0VSVChzZXNz
aW9uID09IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uU291cCY+KHRhc2stPiptX3Nlc3Npb24p
LnNvdXBTZXNzaW9uKCkpOwogCiAgICAgLy8gV2UgZG9uJ3QgcmV0dXJuIGVhcmx5IGhlcmUgaW4g
Y2FzZSB0aGUgZ2l2ZW4gc291cE1lc3NhZ2UgaXMgZGlmZmVyZW50IHRvIG1fc291cE1lc3NhZ2Ug
d2hlbgogICAgIC8vIGl0J3MgcHJveHkgYXV0aGVudGljYXRpb24gYW5kIHRoZSByZXF1ZXN0IFVS
TCBpcyBIVFRQUywgYmVjYXVzZSBpbiB0aGF0IGNhc2UgbGlic291cCB1c2VzIGEKQEAgLTQ4MSw3
ICs0ODQsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmF1dGhlbnRpY2F0ZShBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYmIGNoYWxsZW5nZSkKICAgICAgICAgfQogICAgIH0KIAotICAgIHNv
dXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uU291cCY+
KG1fc2Vzc2lvbi5nZXQoKSkuc291cFNlc3Npb24oKSwgY2hhbGxlbmdlLnNvdXBNZXNzYWdlKCkp
OworICAgIHNvdXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNz
aW9uU291cCY+KCptX3Nlc3Npb24pLnNvdXBTZXNzaW9uKCksIGNoYWxsZW5nZS5zb3VwTWVzc2Fn
ZSgpKTsKIAogICAgIC8vIFdlIGNvdWxkIGFsc28gZG8gdGhpcyBiZWZvcmUgd2UgZXZlbiBzdGFy
dCB0aGUgcmVxdWVzdCwgYnV0IHRoYXQgd291bGQgYmUgYXQgdGhlIGV4cGVuc2UKICAgICAvLyBv
ZiBhbGwgcmVxdWVzdCBsYXRlbmN5LCB2ZXJzdXMgYSBvbmUtdGltZSBsYXRlbmN5IGZvciB0aGUg
c21hbGwgc3Vic2V0IG9mIHJlcXVlc3RzIHRoYXQKQEAgLTUzNSw3ICs1MzgsNyBAQCB2b2lkIE5l
dHdvcmtEYXRhVGFza1NvdXA6OmNvbnRpbnVlQXV0aGVudGljYXRlKEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJiYgY2hhbGxlbgogICAgICAgICAgICAgc291cF9hdXRoX2F1dGhlbnRpY2F0ZShjaGFs
bGVuZ2Uuc291cEF1dGgoKSwgY3JlZGVudGlhbC51c2VyKCkudXRmOCgpLmRhdGEoKSwgY3JlZGVu
dGlhbC5wYXNzd29yZCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICB9CiAKLSAgICAgICAgc291
cF9zZXNzaW9uX3VucGF1c2VfbWVzc2FnZShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAm
PihtX3Nlc3Npb24uZ2V0KCkpLnNvdXBTZXNzaW9uKCksIGNoYWxsZW5nZS5zb3VwTWVzc2FnZSgp
KTsKKyAgICAgICAgc291cF9zZXNzaW9uX3VucGF1c2VfbWVzc2FnZShzdGF0aWNfY2FzdDxOZXR3
b3JrU2Vzc2lvblNvdXAmPigqbV9zZXNzaW9uKS5zb3VwU2Vzc2lvbigpLCBjaGFsbGVuZ2Uuc291
cE1lc3NhZ2UoKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuaAppbmRleCBjMzEzMDU2ODI2MmM0
NzQwMmM2N2RiYzBlMDcxZmNkMjRiODk5MDdjLi45MTVkMDJkNTI0ZWQyMDJkNzlkYmNmODQ0MzBl
OWU5ZjljZjBkOGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya1Nlc3Npb25Tb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5oCkBAIC0zNywyMCArMzcsMTggQEAgc3RydWN0IE5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOwogCiBjbGFzcyBOZXR3b3JrU2Vzc2lvblNv
dXAgZmluYWwgOiBwdWJsaWMgTmV0d29ya1Nlc3Npb24gewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8TmV0d29ya1Nlc3Npb24+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3Ms
IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKKyAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTZXNzaW9uPiBjcmVhdGUoTmV0d29ya1Byb2Nlc3Mm
IG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrU2Vzc2lv
blNvdXAobmV0d29ya1Byb2Nlc3MsIFdURk1vdmUocGFyYW1ldGVycykpKTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1Nlc3Npb25Tb3VwPihuZXR3b3JrUHJvY2Vzcywg
V1RGTW92ZShwYXJhbWV0ZXJzKSk7CiAgICAgfQorICAgIE5ldHdvcmtTZXNzaW9uU291cChOZXR3
b3JrUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIH5O
ZXR3b3JrU2Vzc2lvblNvdXAoKTsKIAogICAgIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpIGNv
bnN0OwogCiBwcml2YXRlOgotICAgIE5ldHdvcmtTZXNzaW9uU291cChOZXR3b3JrUHJvY2VzcyYs
IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwotCi0gICAgc3RkOjp1bmlxdWVf
cHRyPFdlYlNvY2tldFRhc2s+IGNyZWF0ZVdlYlNvY2tldFRhc2soTmV0d29ya1NvY2tldENoYW5u
ZWwmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3Rv
Y29sKSBvdmVycmlkZTsKLQotICAgIHZvaWQgY2xlYXJDcmVkZW50aWFscygpIG92ZXJyaWRlOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBjcmVhdGVXZWJTb2NrZXRUYXNrKE5l
dHdvcmtTb2NrZXRDaGFubmVsJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgU3RyaW5nJiBwcm90b2NvbCkgZmluYWw7CisgICAgdm9pZCBjbGVhckNyZWRlbnRpYWxzKCkg
ZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374811</attachid>
            <date>2019-07-24 14:25:15 -0700</date>
            <delta_ts>2019-07-25 11:17:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200020-20190724142512.patch</filename>
            <type>text/plain</type>
            <size>31501</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3Nzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFkYjg3NzFmYWEyZmM2OGYw
YjdiY2I0Y2YyZmFiZjQ2MzczNmQ3NjAuLmFhYTI2NDUwZjFiZjU2Y2Y4NzA0ZjU5Y2I3NjVmZTcx
YWQwYzE4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTktMDctMjQgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgTmV0d29ya1Nlc3Npb24g
bm8gbG9uZ2VyIFJlZkNvdW50ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMDAyMAorCisgICAgICAgIFRoaXMgYWxsb3dzIHRvIGhhdmUgYSBzaW1w
bGVyIG1lbW9yeSBtYW5hZ2VtZW50IG1vZGVsIHdoZXJlCisgICAgICAgIE5ldHdvcmtTZXNzaW9u
IGNhbm5vdCBsaXZlIG9uY2UgcmVtb3ZlZCBmcm9tIHRoZSBuZXR3b3JrIHByb2Nlc3Mgc2Vzc2lv
biBtYXAuCisgICAgICAgIFRoaXMgcmVxdWlyZXMgc29tZSBhZGRpdGlvbmFsIG51bGwgY2hlY2tz
LCBlc3BlY2lhbGx5IGluIE5ldHdvcmtEYXRhVGFzay4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nl
c3Npb25DdXJsLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lv
blNvdXAuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6Ok5ldHdvcmtEYXRhVGFzayk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtEYXRhVGFza0Jsb2I6On5OZXR3b3JrRGF0YVRhc2tCbG9iKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0RhdGFUYXNrQmxvYjo6ZG93bmxvYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Omxv
d01lbW9yeUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0U2Vz
c2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJz
aXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om5ldHdv
cmtTZXNzaW9ucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1NvY2tl
dENoYW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFubmVsKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1NvY2tldENoYW5uZWw6On5OZXR3b3JrU29ja2V0Q2hhbm5lbCk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
RGF0YVRhc2tDb2NvYTo6YXBwbHlTbmlmZmluZ1BvbGljaWVzQW5kQmluZFJlcXVlc3RUb0luZmVy
ZmFjZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYktpdDo6Y29tcHV0ZUlzQWx3YXlzT25Mb2dnaW5n
QWxsb3dlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3Jr
RGF0YVRhc2tDb2NvYSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjp+
TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tD
b2NvYTo6cmVzdW1lKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Omlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCBjb25zdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25E
ZWxlZ2F0ZSBpbml0V2l0aE5ldHdvcmtTZXNzaW9uOndpdGhDcmVkZW50aWFsczpdKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlUmVxdWVzdCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNsZWFyUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNhbmNlbCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFza1NvdXA6OmF1dGhlbnRpY2F0ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0RhdGFUYXNrU291cDo6YXV0aGVudGljYXRlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0RhdGFUYXNrU291cDo6Y29udGludWVBdXRoZW50aWNhdGUpOgorCiAyMDE5LTA3LTI0ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBXZWJDb250
ZW50IHByb2Nlc3Mgd2l0aCBjdXN0b20gc2NoZW1lcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAppbmRleCBiY2JhZTlkMzFmYmY4ZTc2MGU0
ZDZmZjY2MDAxMjg2ZDAyNTRhYTNkLi44YjNiY2U5NmQ3MzY1MWQ1OTk5YjFlNTVhMGMxNmUwMzUx
MzExODAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtE
YXRhVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0
YVRhc2suY3BwCkBAIC02Miw3ICs2Miw3IEBAIFJlZjxOZXR3b3JrRGF0YVRhc2s+IE5ldHdvcmtE
YXRhVGFzazo6Y3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0CiAKIE5l
dHdvcmtEYXRhVGFzazo6TmV0d29ya0RhdGFUYXNrKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBO
ZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0V2l0aENyZWRlbnRpYWxzLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50
aWFsc1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKQogICAgIDogbV9mYWlsdXJl
VGltZXIoKnRoaXMsICZOZXR3b3JrRGF0YVRhc2s6OmZhaWx1cmVUaW1lckZpcmVkKQotICAgICwg
bV9zZXNzaW9uKHNlc3Npb24pCisgICAgLCBtX3Nlc3Npb24obWFrZVdlYWtQdHIoc2Vzc2lvbikp
CiAgICAgLCBtX2NsaWVudCgmY2xpZW50KQogICAgICwgbV9wYXJ0aXRpb24ocmVxdWVzdFdpdGhD
cmVkZW50aWFscy5jYWNoZVBhcnRpdGlvbigpKQogICAgICwgbV9zdG9yZWRDcmVkZW50aWFsc1Bv
bGljeShzdG9yZWRDcmVkZW50aWFsc1BvbGljeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtEYXRhVGFzay5oCmluZGV4IDlmNWZlMWY0YjM4Mzk2NDkwY2NiNGY0MzE1
YzQyZTEyYmViNjdkMDcuLjFmYjA3OGRmN2EzMmRjODE3OGIyODdkNjgzODdmYmJmODNlMWQ3NjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNr
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaApA
QCAtMTQzLDcgKzE0Myw3IEBAIHByb3RlY3RlZDoKIAogICAgIEZhaWx1cmVUeXBlIG1fc2NoZWR1
bGVkRmFpbHVyZVR5cGUgeyBOb0ZhaWx1cmUgfTsKICAgICBXZWJDb3JlOjpUaW1lciBtX2ZhaWx1
cmVUaW1lcjsKLSAgICBSZWY8TmV0d29ya1Nlc3Npb24+IG1fc2Vzc2lvbjsKKyAgICBXZWFrUHRy
PE5ldHdvcmtTZXNzaW9uPiBtX3Nlc3Npb247CiAgICAgTmV0d29ya0RhdGFUYXNrQ2xpZW50KiBt
X2NsaWVudCB7IG51bGxwdHIgfTsKICAgICBQZW5kaW5nRG93bmxvYWQqIG1fcGVuZGluZ0Rvd25s
b2FkIHsgbnVsbHB0ciB9OwogICAgIERvd25sb2FkSUQgbV9wZW5kaW5nRG93bmxvYWRJRDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxv
Yi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2Iu
Y3BwCmluZGV4IGJlYjhiMzZjOGI3ZjQ3ZmJkNmNhZTljY2IwNjA5ZjJiNzNmNTBjMWQuLjg1NmNh
MWYwOTVlMTAzYzU0MmFkNGU0MzAwMGJjYjcwZmYxZmIzMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNwcApAQCAtODYsNyAr
ODYsOCBAQCBOZXR3b3JrRGF0YVRhc2tCbG9iOjp+TmV0d29ya0RhdGFUYXNrQmxvYigpCiAgICAg
ICAgIGZpbGVSZWZlcmVuY2UtPnJldm9rZUZpbGVBY2Nlc3MoKTsKIAogICAgIGNsZWFyU3RyZWFt
KCk7Ci0gICAgbV9zZXNzaW9uLT51bnJlZ2lzdGVyTmV0d29ya0RhdGFUYXNrKCp0aGlzKTsKKyAg
ICBpZiAobV9zZXNzaW9uKQorICAgICAgICBtX3Nlc3Npb24tPnVucmVnaXN0ZXJOZXR3b3JrRGF0
YVRhc2soKnRoaXMpOwogfQogCiB2b2lkIE5ldHdvcmtEYXRhVGFza0Jsb2I6OmNsZWFyU3RyZWFt
KCkKQEAgLTQ1NSw2ICs0NTYsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0Jsb2I6OmRvd25sb2Fk
KCkKIHsKICAgICBBU1NFUlQoaXNEb3dubG9hZCgpKTsKICAgICBBU1NFUlQobV9wZW5kaW5nRG93
bmxvYWRMb2NhdGlvbik7CisgICAgQVNTRVJUKG1fc2Vzc2lvbik7CiAKICAgICBMT0coTmV0d29y
a1Nlc3Npb24sICIlcCAtIE5ldHdvcmtEYXRhVGFza0Jsb2I6OmRvd25sb2FkIHRvICVzIiwgdGhp
cywgbV9wZW5kaW5nRG93bmxvYWRMb2NhdGlvbi51dGY4KCkuZGF0YSgpKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAyNGJkNzE2
OTlhYWZmNGQyYjI4MzUzMzA0OTAwZjY0OWUzZTBiODgzLi5mZjBmODM4YjRhOTIzYTkwYWI4M2Rk
M2RjYzNkZGQ2MmUxZDYyZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcApAQCAtODUsNiArODUsNyBAQAogI2luY2x1ZGUgPHd0Zi9PcHRp
b25TZXQuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogI2luY2x1ZGUgPHd0
Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21TdHJpbmcuaD4KIAogI2lmIEVOQUJMRShTRUNfSVRFTV9TSElNKQpAQCAtMjc0LDcg
KzI3NSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwg
Y3JpdGljYWwpCiAgICAgV1RGOjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnkoKTsKIAogICAg
IGZvciAoYXV0byYgbmV0d29ya1Nlc3Npb24gOiBtX25ldHdvcmtTZXNzaW9ucy52YWx1ZXMoKSkK
LSAgICAgICAgbmV0d29ya1Nlc3Npb24uZ2V0KCkuY2xlYXJQcmVmZXRjaENhY2hlKCk7CisgICAg
ICAgIG5ldHdvcmtTZXNzaW9uLT5jbGVhclByZWZldGNoQ2FjaGUoKTsKIH0KIAogdm9pZCBOZXR3
b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKQEAgLTU3Niw3ICs1NzcsNyBAQCBOZXR3b3JrU2Vz
c2lvbiogTmV0d29ya1Byb2Nlc3M6Om5ldHdvcmtTZXNzaW9uQnlDb25uZWN0aW9uKElQQzo6Q29u
bmVjdGlvbiYgY29ubgogICAgIHJldHVybiBzZXNzaW9uSUQuaXNWYWxpZCgpID8gbmV0d29ya1Nl
c3Npb24oc2Vzc2lvbklEKSA6IG51bGxwdHI7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNl
dFNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgUmVmPE5ldHdvcmtTZXNz
aW9uPiYmIHNlc3Npb24pCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTZXNzaW9uKGNvbnN0IFBB
TDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4m
JiBzZXNzaW9uKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJU
KHNlc3Npb25JRC5pc1ZhbGlkKCkpOwpAQCAtNTk2LDcgKzU5Nyw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQpCiAg
ICAgQVNTRVJUKHNlc3Npb25JRCAhPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
KTsKIAogICAgIGlmIChhdXRvIHNlc3Npb24gPSBtX25ldHdvcmtTZXNzaW9ucy50YWtlKHNlc3Np
b25JRCkpCi0gICAgICAgIHNlc3Npb24tPmdldCgpLmludmFsaWRhdGVBbmRDYW5jZWwoKTsKKyAg
ICAgICAgc2Vzc2lvbi0+aW52YWxpZGF0ZUFuZENhbmNlbCgpOwogICAgIG1fbmV0d29ya1N0b3Jh
Z2VTZXNzaW9ucy5yZW1vdmUoc2Vzc2lvbklEKTsKICAgICBtX3Nlc3Npb25zQ29udHJvbGxlZEJ5
QXV0b21hdGlvbi5yZW1vdmUoc2Vzc2lvbklEKTsKICAgICBDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6
ZGVzdHJveUVuZ2luZSgqdGhpcywgc2Vzc2lvbklEKTsKQEAgLTExNDYsNyArMTE0Nyw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJl
Y29yZHNSZW1vdmFsKFBBTDo6U2VzCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgZm9yIChhdXRvJiBuZXR3
b3JrU2Vzc2lvbiA6IG1fbmV0d29ya1Nlc3Npb25zLnZhbHVlcygpKQotICAgICAgICBuZXR3b3Jr
U2Vzc2lvbi5nZXQoKS5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChlbmFibGVkKTsK
KyAgICAgICAgbmV0d29ya1Nlc3Npb24tPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KGVuYWJsZWQpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBkZWJ1Z01vZGUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTE3NTQs
NyArMTc1NSw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yUmVn
aXN0cmFibGVEb21haW5zKFBBTDo6U2Vzc2lvbklEIHNlc3NpCiAKICAgICBpZiAod2Vic2l0ZURh
dGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkRpc2tDYWNoZSkpIHsKICAgICAgICAg
Zm9yIChhdXRvJiBzZXNzaW9uIDogbmV0d29ya1Nlc3Npb25zKCkudmFsdWVzKCkpIHsKLSAgICAg
ICAgICAgIGZldGNoRGlza0NhY2hlRW50cmllcyhzZXNzaW9uLT5jYWNoZSgpLCBzZXNzaW9uSUQs
IGZldGNoT3B0aW9ucywgW2RvbWFpbnNUb0RlbGV0ZUFsbEJ1dENvb2tpZXNGb3IsIGNhbGxiYWNr
QWdncmVnYXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCksIHNlc3Npb24gPSBzZXNz
aW9uLmNvcHlSZWYoKV0oYXV0byBlbnRyaWVzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGZldGNo
RGlza0NhY2hlRW50cmllcyhzZXNzaW9uLT5jYWNoZSgpLCBzZXNzaW9uSUQsIGZldGNoT3B0aW9u
cywgW2RvbWFpbnNUb0RlbGV0ZUFsbEJ1dENvb2tpZXNGb3IsIGNhbGxiYWNrQWdncmVnYXRvciA9
IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCksIHNlc3Npb24gPSBtYWtlV2Vha1B0cihzZXNz
aW9uLmdldCgpKV0oYXV0byBlbnRyaWVzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAo
IXNlc3Npb24pCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgICAg
IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGVudHJpZXNUb0RlbGV0ZTsKICAgICAgICAgICAg
ICAgICBmb3IgKGF1dG8mIGVudHJ5IDogZW50cmllcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDY5ZjNkNGY2NzkyYzBiOWNjN2ExMDI4
NmE4MmFjNTNkOGIxMjk0N2QuLjRhMWMzZjQ5YzdhY2M3ODJmMTU1NjI5Njc1ZWYxNjMxZGQ4Nzc3
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
QEAgLTE2MSwxMyArMTYxLDEzIEBAIHB1YmxpYzoKICAgICBBdXRoZW50aWNhdGlvbk1hbmFnZXIm
IGF1dGhlbnRpY2F0aW9uTWFuYWdlcigpOwogICAgIERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRN
YW5hZ2VyKCk7CiAKLSAgICB2b2lkIHNldFNlc3Npb24oY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBS
ZWY8TmV0d29ya1Nlc3Npb24+JiYpOworICAgIHZvaWQgc2V0U2Vzc2lvbihjb25zdCBQQUw6OlNl
c3Npb25JRCYsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4mJik7CiAgICAgTmV0d29y
a1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJikgY29uc3QgZmlu
YWw7CiAgICAgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uQnlDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiYpIGNvbnN0OwogICAgIHZvaWQgZGVzdHJveVNlc3Npb24oY29uc3QgUEFMOjpT
ZXNzaW9uSUQmKTsKIAogICAgIC8vIE5lZWRlZCBmb3IgdGVzdCBpbmZyYXN0cnVjdHVyZQotICAg
IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZjxOZXR3b3JrU2Vzc2lvbj4+JiBuZXR3b3JrU2Vz
c2lvbnMoKSB7IHJldHVybiBtX25ldHdvcmtTZXNzaW9uczsgfQorICAgIEhhc2hNYXA8UEFMOjpT
ZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4+JiBuZXR3b3JrU2Vzc2lv
bnMoKSB7IHJldHVybiBtX25ldHdvcmtTZXNzaW9uczsgfQogCiAgICAgdm9pZCBmb3JFYWNoTmV0
d29ya1N0b3JhZ2VTZXNzaW9uKGNvbnN0IEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uJik+Jik7CiAgICAgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKiBz
dG9yYWdlU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYpIGNvbnN0OwpAQCAtNDk2LDcgKzQ5
Niw3IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxQQUw6OlNlc3Npb25JRD4gbV9zZXNzaW9uc0Nv
bnRyb2xsZWRCeUF1dG9tYXRpb247CiAgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgVmVjdG9y
PENhY2hlU3RvcmFnZVJvb3RQYXRoQ2FsbGJhY2s+PiBtX2NhY2hlU3RvcmFnZVBhcmFtZXRlcnND
YWxsYmFja3M7CiAKLSAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBSZWY8TmV0d29ya1Nlc3Np
b24+PiBtX25ldHdvcmtTZXNzaW9uczsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+PiBtX25ldHdvcmtTZXNzaW9uczsKICAgICBIYXNo
TWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uPj4gbV9uZXR3b3JrU3RvcmFnZVNlc3Npb25zOwogICAgIG11dGFibGUgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gbV9kZWZhdWx0TmV0d29y
a1N0b3JhZ2VTZXNzaW9uOwogICAgIE5ldHdvcmtCbG9iUmVnaXN0cnkgbV9uZXR3b3JrQmxvYlJl
Z2lzdHJ5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmNwcAppbmRleCA5YWFhZTA1MjQxZTJkNGYyYWM5MGFiZDQ3ZmY5MTQzNjY0NjY0ODEyLi42NjM1
NzBhOTkxZDk0NGIzOGRiODU0ZWIyN2JmMDZmMWMxYWY4M2E4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtNTYsNyArNTYsNyBAQAog
bmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPE5ldHdv
cmtTZXNzaW9uPiBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3Jr
UHJvY2VzcywgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQor
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTZXNzaW9uPiBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKE5l
dHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMmJiBwYXJhbWV0ZXJzKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHJldHVybiBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGUobmV0d29ya1Byb2Nlc3MsIFdURk1vdmUocGFyYW1l
dGVycykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5o
CmluZGV4IDBhZDE4MGU5YWU2OGI0NDdmNmUwZDZkMzc4N2RiOGEyMzZiYjk4ZTQuLjkwNmFlY2Qw
ZDVhMDhlZDViMmE2NjQ0NTI5NjZkOGUyYTZjNjFiODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRl
IDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2Vj
b25kcy5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgpAQCAtNjQsOSArNjMsOSBAQCBuYW1lc3BhY2UgTmV0d29ya0NhY2hlIHsKIGNsYXNzIENh
Y2hlOwogfQogCi1jbGFzcyBOZXR3b3JrU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHdv
cmtTZXNzaW9uPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE5ldHdvcmtTZXNzaW9uPiB7CitjbGFz
cyBOZXR3b3JrU2Vzc2lvbiA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxOZXR3b3JrU2Vzc2lvbj4g
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Npb24+IGNyZWF0ZShOZXR3b3Jr
UHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOworICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYs
IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIHZpcnR1YWwgfk5ldHdv
cmtTZXNzaW9uKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hh
bm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFu
bmVsLmNwcAppbmRleCA1NjkzMGMzNjBmYmEwZGY3MDBkNDEzMjQ0ZGVkNTI5NjI1NzI4NDA5Li5h
OThlOTZmMTA1YzRiOTNiNDRiNzQ0YzliMTllNDhkMzdjNzFjNzhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcApAQCAt
NDYsMTAgKzQ2LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29ja2V0Q2hhbm5lbD4gTmV0
d29ya1NvY2tldENoYW5uZWw6OmNyZWF0ZShOZXR3b3JrQ29ubmVjCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotTmV0d29ya1NvY2tldENoYW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFubmVsKE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBSZWZQdHI8TmV0d29ya1Nlc3Np
b24+JiYgc2Vzc2lvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJp
bmcmIHByb3RvY29sLCB1aW50NjRfdCBpZGVudGlmaWVyKQorTmV0d29ya1NvY2tldENoYW5uZWw6
Ok5ldHdvcmtTb2NrZXRDaGFubmVsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25u
ZWN0aW9uLCBOZXR3b3JrU2Vzc2lvbiogc2Vzc2lvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCB1aW50NjRfdCBpZGVudGlmaWVyKQogICAg
IDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb24pCiAgICAgLCBtX2lkZW50aWZp
ZXIoaWRlbnRpZmllcikKLSAgICAsIG1fc2Vzc2lvbihXVEZNb3ZlKHNlc3Npb24pKQorICAgICwg
bV9zZXNzaW9uKG1ha2VXZWFrUHRyKHNlc3Npb24pKQogewogICAgIGlmICghbV9zZXNzaW9uKQog
ICAgICAgICByZXR1cm47CkBAIC02MywxMSArNjMsMTEgQEAgTmV0d29ya1NvY2tldENoYW5uZWw6
Ok5ldHdvcmtTb2NrZXRDaGFubmVsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25u
ZWMKIAogTmV0d29ya1NvY2tldENoYW5uZWw6On5OZXR3b3JrU29ja2V0Q2hhbm5lbCgpCiB7Ci0g
ICAgaWYgKCFtX3NvY2tldCkKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3Nlc3Npb24pCisg
ICAgICAgIG1fc2Vzc2lvbi0+cmVtb3ZlV2ViU29ja2V0VGFzaygqbV9zb2NrZXQpOwogCi0gICAg
bV9zb2NrZXQtPmNhbmNlbCgpOwotICAgIG1fc2Vzc2lvbi0+cmVtb3ZlV2ViU29ja2V0VGFzaygq
bV9zb2NrZXQpOworICAgIGlmIChtX3NvY2tldCkKKyAgICAgICAgbV9zb2NrZXQtPmNhbmNlbCgp
OwogfQogCiB2b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpzZW5kU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCmlu
ZGV4IDQyN2YyN2I3YWI3YzdkODU3ODgxMWU1YTg4ODRjZDNhZjQ2NDkxNTMuLmY3Y2QyYTE4NGQ3
NzllOGMyZTcxZTEwNzgyM2U3ZWJmY2E1ODQ1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgKQEAgLTUxLDcgKzUxLDcgQEAg
Y2xhc3MgTmV0d29ya1NvY2tldENoYW5uZWwgOiBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyLCBw
dWJsaWMgSVBDOjpNZXNzYWdlUmVjZWkKIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPE5ldHdvcmtTb2NrZXRDaGFubmVsPiBjcmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgU3RyaW5nJiBwcm90b2NvbCwgdWludDY0X3QgaWRlbnRpZmllcik7CiAKLSAgICBOZXR3
b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFJlZlB0cjxO
ZXR3b3JrU2Vzc2lvbj4mJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
U3RyaW5nJiBwcm90b2NvbCwgdWludDY0X3QgaWRlbnRpZmllcik7CisgICAgTmV0d29ya1NvY2tl
dENoYW5uZWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbios
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2ws
IHVpbnQ2NF90IGlkZW50aWZpZXIpOwogICAgIH5OZXR3b3JrU29ja2V0Q2hhbm5lbCgpOwogCiAg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKIAogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgdWludDY0X3QgbV9pZGVu
dGlmaWVyOwotICAgIFJlZlB0cjxOZXR3b3JrU2Vzc2lvbj4gbV9zZXNzaW9uOworICAgIFdlYWtQ
dHI8TmV0d29ya1Nlc3Npb24+IG1fc2Vzc2lvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29j
a2V0VGFzaz4gbV9zb2NrZXQ7CiAKICAgICBlbnVtIGNsYXNzIFN0YXRlIHsgT3BlbiwgQ2xvc2lu
ZywgQ2xvc2VkIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKaW5kZXggNzcxYjNhYjU5MTEzZTM1MTk3YmI5
ZWQyODRkMGVjYjBlMjMwYzZlMi4uMzhlZDljZjU4Y2I2OTRhZTU1Mzk4MDYyMWU1MTJlYmJlZTVh
YWNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHByaXZhdGU6CiAj
ZW5kaWYKIAogICAgIGJvb2wgbV9pc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFt
ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCB7IGZhbHNl
IH07CiB9OwogCiBXZWJDb3JlOjpDcmVkZW50aWFsIHNlcnZlclRydXN0Q3JlZGVudGlhbChjb25z
dCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0K
aW5kZXggMWY0ZTdiNDRjODg0NmFiY2VkZWFlYWVjOWFlYzlhY2VjNTFkNGQxYy4uYmE1ZTg4MDBl
YmIwZTlmMDVmYTgxYTRhM2FkNTIzYzFiN2NmYmQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBA
IC04NSw3ICs4NSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6OmFwcGx5U25pZmZpbmdQ
b2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlCiAgICAgVU5VU0VEX1BBUkFN
KHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKICNlbmRpZgogCi0gICAgYXV0byYgY29jb2FT
ZXNzaW9uID0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KG1fc2Vzc2lvbi5nZXQo
KSk7CisgICAgYXV0byYgY29jb2FTZXNzaW9uID0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25D
b2NvYSY+KCptX3Nlc3Npb24pOwogICAgIGlmIChzaG91bGRDb250ZW50U25pZmYKICNpZiBVU0Uo
Q0ZORVRXT1JLX0NPTlRFTlRfRU5DT0RJTkdfU05JRkZJTkdfT1ZFUlJJREUpCiAgICAgICAgICYm
IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmCkBAIC0xNjgsMTEgKzE2OCwyMCBAQCBzdGF0aWMg
dm9pZCB1cGRhdGVUYXNrV2l0aEZpcnN0UGFydHlGb3JTYW1lU2l0ZUNvb2tpZXMoTlNVUkxTZXNz
aW9uRGF0YVRhc2sqIHRhcwogI2VuZGlmCiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb21wdXRl
SXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uKQoreworICAg
IGlmIChzZXNzaW9uLm5ldHdvcmtQcm9jZXNzKCkuc2Vzc2lvbklzQ29udHJvbGxlZEJ5QXV0b21h
dGlvbihzZXNzaW9uLnNlc3Npb25JRCgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBy
ZXR1cm4gc2Vzc2lvbi5zZXNzaW9uSUQoKS5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKTsKK30K
KwogTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNz
aW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCB1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRl
bnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25p
ZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdT
bmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVj
b25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBk
YXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxO
ZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQogICAgIDogTmV0
d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QsIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKQogICAgICwgbV9mcmFtZUlE
KGZyYW1lSUQpCiAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCiAgICAgLCBtX2lzRm9yTWFpblJlc291
cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lKGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0
aW9uRm9yQW55RnJhbWUpCisgICAgLCBtX2lzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZChjb21wdXRl
SXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKHNlc3Npb24pKQogewogICAgIGlmIChtX3NjaGVkdWxl
ZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjEyLDcgKzIy
MSw3IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3Jr
U2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUCiAgICAgTlNVUkxSZXF1ZXN0ICpuc1JlcXVl
c3QgPSByZXF1ZXN0Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpIVFRQQm9keVVwZGF0ZVBvbGljeTo6
VXBkYXRlSFRUUEJvZHkpOwogICAgIGFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0
VG9JbmZlcmZhY2VJZk5lZWRlZChuc1JlcXVlc3QsIHNob3VsZENvbnRlbnRTbmlmZiA9PSBXZWJD
b3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZmQ29udGVudCAmJiAhdXJsLmlzTG9jYWxG
aWxlKCksIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID09IFdlYkNvcmU6OkNvbnRlbnRFbmNv
ZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZik7CiAKLSAgICBhdXRvJiBjb2NvYVNlc3Npb24gPSBz
dGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4obV9zZXNzaW9uLmdldCgpKTsKKyAgICBh
dXRvJiBjb2NvYVNlc3Npb24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4oKm1f
c2Vzc2lvbik7CiAgICAgc3dpdGNoIChzdG9yZWRDcmVkZW50aWFsc1BvbGljeSkgewogICAgIGNh
c2UgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZToKICAgICAgICAgbV90YXNr
ID0gW2NvY29hU2Vzc2lvbi5tX3Nlc3Npb25XaXRoQ3JlZGVudGlhbFN0b3JhZ2UgZGF0YVRhc2tX
aXRoUmVxdWVzdDpuc1JlcXVlc3RdOwpAQCAtMjY5LDEwICsyNzgsMTAgQEAgTmV0d29ya0RhdGFU
YXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBO
ZXR3b3JrRGF0YVQKIAogTmV0d29ya0RhdGFUYXNrQ29jb2E6On5OZXR3b3JrRGF0YVRhc2tDb2Nv
YSgpCiB7Ci0gICAgaWYgKCFtX3Rhc2spCisgICAgaWYgKCFtX3Rhc2sgfHwgIW1fc2Vzc2lvbikK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byYgY29jb2FTZXNzaW9uID0gc3RhdGljX2Nhc3Q8
TmV0d29ya1Nlc3Npb25Db2NvYSY+KG1fc2Vzc2lvbi5nZXQoKSk7CisgICAgYXV0byYgY29jb2FT
ZXNzaW9uID0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KCptX3Nlc3Npb24pOwog
ICAgIHN3aXRjaCAobV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSkgewogICAgIGNhc2UgV2ViQ29y
ZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZToKICAgICAgICAgQVNTRVJUKGNvY29hU2Vz
c2lvbi5tX2RhdGFUYXNrTWFwV2l0aENyZWRlbnRpYWxzLmdldChbbV90YXNrIHRhc2tJZGVudGlm
aWVyXSkgPT0gdGhpcyk7CkBAIC01MDUsNyArNTE0LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tD
b2NvYTo6cmVzdW1lKCkKICAgICBpZiAobV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0ZhaWx1
cmUpCiAgICAgICAgIG1fZmFpbHVyZVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogCi0gICAgYXV0
byYgY29jb2FTZXNzaW9uID0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSY+KG1fc2Vz
c2lvbi5nZXQoKSk7CisgICAgYXV0byYgY29jb2FTZXNzaW9uID0gc3RhdGljX2Nhc3Q8TmV0d29y
a1Nlc3Npb25Db2NvYSY+KCptX3Nlc3Npb24pOwogICAgIGlmIChjb2NvYVNlc3Npb24uZGV2aWNl
TWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKSAmJiBtX2lzRm9yTWFpblJlc291cmNlTmF2
aWdhdGlvbkZvckFueUZyYW1lKSB7CiAgICAgICAgIGF1dG8gZGlkRGV0ZXJtaW5lRGV2aWNlUmVz
dHJpY3Rpb25Qb2xpY3lGb3JVUkwgPSBtYWtlQmxvY2tQdHIoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKV0oQk9PTCBpc0Jsb2NrZWQpIHsKICAgICAgICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaXNCbG9ja2Vk
XSB7CkBAIC01NjEsMTAgKzU3MCw3IEBAIFdlYkNvcmU6OkNyZWRlbnRpYWwgc2VydmVyVHJ1c3RD
cmVkZW50aWFsKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlCiAKIGJvb2wg
TmV0d29ya0RhdGFUYXNrQ29jb2E6OmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNvbnN0CiB7
Ci0gICAgaWYgKG1fc2Vzc2lvbi0+bmV0d29ya1Byb2Nlc3MoKS5zZXNzaW9uSXNDb250cm9sbGVk
QnlBdXRvbWF0aW9uKG1fc2Vzc2lvbi0+c2Vzc2lvbklEKCkpKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLQotICAgIHJldHVybiBtX3Nlc3Npb24tPnNlc3Npb25JRCgpLmlzQWx3YXlzT25Mb2dnaW5n
QWxsb3dlZCgpOworICAgIHJldHVybiBtX2lzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZDsKIH0KIAog
U3RyaW5nIE5ldHdvcmtEYXRhVGFza0NvY29hOjpkZXNjcmlwdGlvbigpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5oCmluZGV4IDNlMTM3NzBlNWNiYzU2M2JhNzY0MTIwNGZiMjExNTY2NDQzNTc3OTguLjRi
YWIyM2VhODUzY2U4YWE3MmUzOGRkZmE2Zjg1OGE1MTViZDkwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5o
CkBAIC00Nyw3ICs0Nyw5IEBAIGNsYXNzIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlcjsKIGNs
YXNzIE5ldHdvcmtTZXNzaW9uQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya1Nlc3Npb24gewog
ICAgIGZyaWVuZCBjbGFzcyBOZXR3b3JrRGF0YVRhc2tDb2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPE5ldHdvcmtTZXNzaW9uPiBjcmVhdGUoTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE5l
dHdvcmtTZXNzaW9uPiBjcmVhdGUoTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycyYmKTsKKworICAgIE5ldHdvcmtTZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nl
c3MmLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmKTsKICAgICB+TmV0d29ya1Nl
c3Npb25Db2NvYSgpOwogCiAgICAgdm9pZCBpbml0aWFsaXplRXBoZW1lcmFsU3RhdGVsZXNzQ29v
a2llbGVzc1Nlc3Npb24oKTsKQEAgLTgwLDggKzgyLDYgQEAgcHVibGljOgogICAgIERNRldlYnNp
dGVQb2xpY3lNb25pdG9yICpkZXZpY2VNYW5hZ2VtZW50UG9saWN5TW9uaXRvcigpOwogCiBwcml2
YXRlOgotICAgIE5ldHdvcmtTZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmKTsKLQogICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNl
bCgpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xlYXJDcmVkZW50aWFscygpIG92ZXJyaWRlOwogICAg
IGJvb2wgc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX3Nob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXgg
MDBlZGE1YmM4OGFlNTIyMmY3YTIyMDQ1ZDU4NzU4YmVjNDlmNzMzMi4uMDRiMDM0OTE0ZTZjNjZk
M2Y3M2QyMjhjYTI0MTA3YWUxYTZlZjAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMzI5LDcg
KzMyOSw3IEBAIEBpbnRlcmZhY2UgV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIDogTlNPYmplY3Qg
PE5TVVJMU2Vzc2lvbkRhdGFEZWxlZ2F0ZQogICAgICwgTlNVUkxTZXNzaW9uV2ViU29ja2V0RGVs
ZWdhdGUKICNlbmRpZgogPiB7Ci0gICAgUmVmUHRyPFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2Nv
YT4gX3Nlc3Npb247CisgICAgV2Vha1B0cjxXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E+IF9z
ZXNzaW9uOwogICAgIGJvb2wgX3dpdGhDcmVkZW50aWFsczsKIH0KIApAQCAtMzQ2LDcgKzM0Niw3
IEBAIC0gKGlkKWluaXRXaXRoTmV0d29ya1Nlc3Npb246KFdlYktpdDo6TmV0d29ya1Nlc3Npb25D
b2NvYSYpc2Vzc2lvbiB3aXRoQ3JlZGVudGlhCiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1
cm4gbmlsOwogCi0gICAgX3Nlc3Npb24gPSAmc2Vzc2lvbjsKKyAgICBfc2Vzc2lvbiA9IG1ha2VX
ZWFrUHRyKHNlc3Npb24pOwogICAgIF93aXRoQ3JlZGVudGlhbHMgPSB3aXRoQ3JlZGVudGlhbHM7
CiAKICAgICByZXR1cm4gc2VsZjsKQEAgLTg5Niw5ICs4OTYsOSBAQCB2b2lkIE5ldHdvcmtTZXNz
aW9uQ29jb2E6OnNldENURGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZShjb25zdCBTdHJpbmcmIHR5
cGUpCiB9CiAjZW5kaWYKIAotUmVmPE5ldHdvcmtTZXNzaW9uPiBOZXR3b3JrU2Vzc2lvbkNvY29h
OjpjcmVhdGUoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCitzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nl
c3Npb24+IE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNyZWF0ZShOZXR3b3JrUHJvY2VzcyYgbmV0d29y
a1Byb2Nlc3MsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrU2Vzc2lvbkNvY29hKG5ldHdvcmtQ
cm9jZXNzLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8TmV0d29ya1Nlc3Npb25Db2NvYT4obmV0d29ya1Byb2Nlc3MsIFdURk1vdmUocGFyYW1ldGVy
cykpOwogfQogCiBzdGF0aWMgTlNEaWN0aW9uYXJ5ICpwcm94eURpY3Rpb25hcnkoY29uc3QgVVJM
JiBodHRwUHJveHksIGNvbnN0IFVSTCYgaHR0cHNQcm94eSkKQEAgLTkzNSw4ICs5MzUsNiBAQCBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKE5ldHdvcmtQcm9jZXNzJiBu
ZXR3b3JrUHJvY2VzcywgTmV0d29yawogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdl
KFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIAotICAgIHJlbGF4QWRv
cHRpb25SZXF1aXJlbWVudCgpOwotCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgIHNlc3Npb25z
Q3JlYXRlZCA9IHRydWU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1cmwuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY3VybC9OZXR3b3JrU2Vzc2lvbkN1cmwuaAppbmRleCBmZGVkNTY4OTJlYmNmZjU0
OGM5ODkxMDM4ODU5M2ExMTJhZDk1MzE3Li5kNDcwOWE1ZTRhYzhhMmZiNmFjZWI1NmM1N2ViZjBi
NWM3NDBkNDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwv
TmV0d29ya1Nlc3Npb25DdXJsLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
dXJsL05ldHdvcmtTZXNzaW9uQ3VybC5oCkBAIC0zMywxNCArMzMsMTIgQEAgc3RydWN0IE5ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOwogCiBjbGFzcyBOZXR3b3JrU2Vzc2lvbkN1cmwg
ZmluYWwgOiBwdWJsaWMgTmV0d29ya1Nlc3Npb24gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
TmV0d29ya1Nlc3Npb24+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5l
dHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTZXNzaW9uPiBjcmVhdGUoTmV0d29ya1Byb2Nlc3MmIG5l
dHdvcmtQcm9jZXNzLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRl
cnMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrU2Vzc2lvbkN1
cmwobmV0d29ya1Byb2Nlc3MsIFdURk1vdmUocGFyYW1ldGVycykpKTsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1Nlc3Npb25DdXJsPihuZXR3b3JrUHJvY2VzcywgV1RG
TW92ZShwYXJhbWV0ZXJzKSk7CiAgICAgfQotICAgIH5OZXR3b3JrU2Vzc2lvbkN1cmwoKTsKLQot
cHJpdmF0ZToKICAgICBOZXR3b3JrU2Vzc2lvbkN1cmwoTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmKTsKKyAgICB+TmV0d29ya1Nlc3Npb25DdXJsKCk7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAppbmRleCA4ZmNm
YmNhY2VlMDRkY2U5YmVjOGI0MGE0YWIxODk1MjA0NWMzZjk5Li5mNzYzNDUwOTVkYWE3MWQyZTdj
NGNmZGVhN2VhOTc3YmI2MDU5MTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC04MCw3ICs4MCw4
IEBAIE5ldHdvcmtEYXRhVGFza1NvdXA6Ok5ldHdvcmtEYXRhVGFza1NvdXAoTmV0d29ya1Nlc3Np
b24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFzCiBOZXR3b3JrRGF0YVRhc2tTb3VwOjp+TmV0d29y
a0RhdGFUYXNrU291cCgpCiB7CiAgICAgY2xlYXJSZXF1ZXN0KCk7Ci0gICAgbV9zZXNzaW9uLT51
bnJlZ2lzdGVyTmV0d29ya0RhdGFUYXNrKCp0aGlzKTsKKyAgICBpZiAobV9zZXNzaW9uKQorICAg
ICAgICBtX3Nlc3Npb24tPnVucmVnaXN0ZXJOZXR3b3JrRGF0YVRhc2soKnRoaXMpOwogfQogCiBT
dHJpbmcgTmV0d29ya0RhdGFUYXNrU291cDo6c3VnZ2VzdGVkRmlsZW5hbWUoKSBjb25zdApAQCAt
MTExLDcgKzExMiw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlUmVxdWVzdChS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
R1JlZlB0cjxTb3VwUmVxdWVzdD4gc291cFJlcXVlc3QgPSBhZG9wdEdSZWYoc291cF9zZXNzaW9u
X3JlcXVlc3RfdXJpKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uU291cCY+KG1fc2Vzc2lvbi5n
ZXQoKSkuc291cFNlc3Npb24oKSwgc291cFVSSS5nZXQoKSwgbnVsbHB0cikpOworICAgIEdSZWZQ
dHI8U291cFJlcXVlc3Q+IHNvdXBSZXF1ZXN0ID0gYWRvcHRHUmVmKHNvdXBfc2Vzc2lvbl9yZXF1
ZXN0X3VyaShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPigqbV9zZXNzaW9uKS5zb3Vw
U2Vzc2lvbigpLCBzb3VwVVJJLmdldCgpLCBudWxscHRyKSk7CiAgICAgaWYgKCFzb3VwUmVxdWVz
dCkgewogICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOwogICAgICAg
ICByZXR1cm47CkBAIC0xNjQsNyArMTY1LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpj
cmVhdGVSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiAKICAgICBnX3NpZ25hbF9j
b25uZWN0KG1fc291cE1lc3NhZ2UuZ2V0KCksICJnb3QtaGVhZGVycyIsIEdfQ0FMTEJBQ0soZ290
SGVhZGVyc0NhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdChtX3NvdXBNZXNz
YWdlLmdldCgpLCAid3JvdGUtYm9keS1kYXRhIiwgR19DQUxMQkFDSyh3cm90ZUJvZHlEYXRhQ2Fs
bGJhY2spLCB0aGlzKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KHN0YXRpY19jYXN0PE5ldHdvcmtT
ZXNzaW9uU291cCY+KG1fc2Vzc2lvbi5nZXQoKSkuc291cFNlc3Npb24oKSwgImF1dGhlbnRpY2F0
ZSIsICBHX0NBTExCQUNLKGF1dGhlbnRpY2F0ZUNhbGxiYWNrKSwgdGhpcyk7CisgICAgZ19zaWdu
YWxfY29ubmVjdChzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPigqbV9zZXNzaW9uKS5z
b3VwU2Vzc2lvbigpLCAiYXV0aGVudGljYXRlIiwgIEdfQ0FMTEJBQ0soYXV0aGVudGljYXRlQ2Fs
bGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fc291cE1lc3NhZ2UuZ2V0KCks
ICJuZXR3b3JrLWV2ZW50IiwgR19DQUxMQkFDSyhuZXR3b3JrRXZlbnRDYWxsYmFjayksIHRoaXMp
OwogICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9zb3VwTWVzc2FnZS5nZXQoKSwgInJlc3RhcnRlZCIs
IEdfQ0FMTEJBQ0socmVzdGFydGVkQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25u
ZWN0KG1fc291cE1lc3NhZ2UuZ2V0KCksICJzdGFydGluZyIsIEdfQ0FMTEJBQ0soc3RhcnRpbmdD
YWxsYmFjayksIHRoaXMpOwpAQCAtMTg3LDEwICsxODgsMTIgQEAgdm9pZCBOZXR3b3JrRGF0YVRh
c2tTb3VwOjpjbGVhclJlcXVlc3QoKQogICAgIG1fY2FuY2VsbGFibGUgPSBudWxscHRyOwogICAg
IGlmIChtX3NvdXBNZXNzYWdlKSB7CiAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5l
Y3RfbWF0Y2hlZChtX3NvdXBNZXNzYWdlLmdldCgpLCBHX1NJR05BTF9NQVRDSF9EQVRBLCAwLCAw
LCBudWxscHRyLCBudWxscHRyLCB0aGlzKTsKLSAgICAgICAgc291cF9zZXNzaW9uX2NhbmNlbF9t
ZXNzYWdlKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uU291cCY+KG1fc2Vzc2lvbi5nZXQoKSku
c291cFNlc3Npb24oKSwgbV9zb3VwTWVzc2FnZS5nZXQoKSwgU09VUF9TVEFUVVNfQ0FOQ0VMTEVE
KTsKKyAgICAgICAgaWYgKG1fc2Vzc2lvbikKKyAgICAgICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5j
ZWxfbWVzc2FnZShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPigqbV9zZXNzaW9uKS5z
b3VwU2Vzc2lvbigpLCBtX3NvdXBNZXNzYWdlLmdldCgpLCBTT1VQX1NUQVRVU19DQU5DRUxMRUQp
OwogICAgICAgICBtX3NvdXBNZXNzYWdlID0gbnVsbHB0cjsKICAgICB9Ci0gICAgZ19zaWduYWxf
aGFuZGxlcnNfZGlzY29ubmVjdF9tYXRjaGVkKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uU291
cCY+KG1fc2Vzc2lvbi5nZXQoKSkuc291cFNlc3Npb24oKSwgR19TSUdOQUxfTUFUQ0hfREFUQSwg
MCwgMCwgbnVsbHB0ciwgbnVsbHB0ciwgdGhpcyk7CisgICAgaWYgKG1fc2Vzc2lvbikKKyAgICAg
ICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9tYXRjaGVkKHN0YXRpY19jYXN0PE5ldHdv
cmtTZXNzaW9uU291cCY+KCptX3Nlc3Npb24pLnNvdXBTZXNzaW9uKCksIEdfU0lHTkFMX01BVENI
X0RBVEEsIDAsIDAsIG51bGxwdHIsIG51bGxwdHIsIHRoaXMpOwogfQogCiB2b2lkIE5ldHdvcmtE
YXRhVGFza1NvdXA6OnJlc3VtZSgpCkBAIC0yMzYsNyArMjM5LDcgQEAgdm9pZCBOZXR3b3JrRGF0
YVRhc2tTb3VwOjpjYW5jZWwoKQogICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q2FuY2VsaW5nOwogCiAg
ICAgaWYgKG1fc291cE1lc3NhZ2UpCi0gICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5jZWxfbWVzc2Fn
ZShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPihtX3Nlc3Npb24uZ2V0KCkpLnNvdXBT
ZXNzaW9uKCksIG1fc291cE1lc3NhZ2UuZ2V0KCksIFNPVVBfU1RBVFVTX0NBTkNFTExFRCk7Cisg
ICAgICAgIHNvdXBfc2Vzc2lvbl9jYW5jZWxfbWVzc2FnZShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vz
c2lvblNvdXAmPigqbV9zZXNzaW9uKS5zb3VwU2Vzc2lvbigpLCBtX3NvdXBNZXNzYWdlLmdldCgp
LCBTT1VQX1NUQVRVU19DQU5DRUxMRUQpOwogCiAgICAgZ19jYW5jZWxsYWJsZV9jYW5jZWwobV9j
YW5jZWxsYWJsZS5nZXQoKSk7CiAKQEAgLTQzMyw3ICs0MzYsNyBAQCB2b2lkIE5ldHdvcmtEYXRh
VGFza1NvdXA6OmFwcGx5QXV0aGVudGljYXRpb25Ub1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQogCiB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmF1dGhlbnRpY2F0ZUNhbGxiYWNr
KFNvdXBTZXNzaW9uKiBzZXNzaW9uLCBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIFNvdXBBdXRo
KiBzb3VwQXV0aCwgZ2Jvb2xlYW4gcmV0cnlpbmcsIE5ldHdvcmtEYXRhVGFza1NvdXAqIHRhc2sp
CiB7Ci0gICAgQVNTRVJUKHNlc3Npb24gPT0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3Vw
Jj4odGFzay0+bV9zZXNzaW9uLmdldCgpKS5zb3VwU2Vzc2lvbigpKTsKKyAgICBBU1NFUlQoc2Vz
c2lvbiA9PSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPih0YXNrLT4qbV9zZXNzaW9u
KS5zb3VwU2Vzc2lvbigpKTsKIAogICAgIC8vIFdlIGRvbid0IHJldHVybiBlYXJseSBoZXJlIGlu
IGNhc2UgdGhlIGdpdmVuIHNvdXBNZXNzYWdlIGlzIGRpZmZlcmVudCB0byBtX3NvdXBNZXNzYWdl
IHdoZW4KICAgICAvLyBpdCdzIHByb3h5IGF1dGhlbnRpY2F0aW9uIGFuZCB0aGUgcmVxdWVzdCBV
UkwgaXMgSFRUUFMsIGJlY2F1c2UgaW4gdGhhdCBjYXNlIGxpYnNvdXAgdXNlcyBhCkBAIC00ODEs
NyArNDg0LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjphdXRoZW50aWNhdGUoQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmJiBjaGFsbGVuZ2UpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBz
b3VwX3Nlc3Npb25fcGF1c2VfbWVzc2FnZShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAm
PihtX3Nlc3Npb24uZ2V0KCkpLnNvdXBTZXNzaW9uKCksIGNoYWxsZW5nZS5zb3VwTWVzc2FnZSgp
KTsKKyAgICBzb3VwX3Nlc3Npb25fcGF1c2VfbWVzc2FnZShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vz
c2lvblNvdXAmPigqbV9zZXNzaW9uKS5zb3VwU2Vzc2lvbigpLCBjaGFsbGVuZ2Uuc291cE1lc3Nh
Z2UoKSk7CiAKICAgICAvLyBXZSBjb3VsZCBhbHNvIGRvIHRoaXMgYmVmb3JlIHdlIGV2ZW4gc3Rh
cnQgdGhlIHJlcXVlc3QsIGJ1dCB0aGF0IHdvdWxkIGJlIGF0IHRoZSBleHBlbnNlCiAgICAgLy8g
b2YgYWxsIHJlcXVlc3QgbGF0ZW5jeSwgdmVyc3VzIGEgb25lLXRpbWUgbGF0ZW5jeSBmb3IgdGhl
IHNtYWxsIHN1YnNldCBvZiByZXF1ZXN0cyB0aGF0CkBAIC01MzUsNyArNTM4LDcgQEAgdm9pZCBO
ZXR3b3JrRGF0YVRhc2tTb3VwOjpjb250aW51ZUF1dGhlbnRpY2F0ZShBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYmIGNoYWxsZW4KICAgICAgICAgICAgIHNvdXBfYXV0aF9hdXRoZW50aWNhdGUoY2hh
bGxlbmdlLnNvdXBBdXRoKCksIGNyZWRlbnRpYWwudXNlcigpLnV0ZjgoKS5kYXRhKCksIGNyZWRl
bnRpYWwucGFzc3dvcmQoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgfQogCi0gICAgICAgIHNv
dXBfc2Vzc2lvbl91bnBhdXNlX21lc3NhZ2Uoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3Vw
Jj4obV9zZXNzaW9uLmdldCgpKS5zb3VwU2Vzc2lvbigpLCBjaGFsbGVuZ2Uuc291cE1lc3NhZ2Uo
KSk7CisgICAgICAgIHNvdXBfc2Vzc2lvbl91bnBhdXNlX21lc3NhZ2Uoc3RhdGljX2Nhc3Q8TmV0
d29ya1Nlc3Npb25Tb3VwJj4oKm1fc2Vzc2lvbikuc291cFNlc3Npb24oKSwgY2hhbGxlbmdlLnNv
dXBNZXNzYWdlKCkpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmgKaW5kZXggYzMxMzA1NjgyNjJj
NDc0MDJjNjdkYmMwZTA3MWZjZDI0Yjg5OTA3Yy4uOTE1ZDAyZDUyNGVkMjAyZDc5ZGJjZjg0NDMw
ZTllOWY5Y2YwZDhlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtTZXNzaW9uU291cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuaApAQCAtMzcsMjAgKzM3LDE4IEBAIHN0cnVjdCBO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczsKIAogY2xhc3MgTmV0d29ya1Nlc3Npb25T
b3VwIGZpbmFsIDogcHVibGljIE5ldHdvcmtTZXNzaW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPE5ldHdvcmtTZXNzaW9uPiBjcmVhdGUoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNz
LCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU2Vzc2lvbj4gY3JlYXRlKE5ldHdvcmtQcm9jZXNz
JiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya1Nlc3Np
b25Tb3VwKG5ldHdvcmtQcm9jZXNzLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKSk7CisgICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTZXNzaW9uU291cD4obmV0d29ya1Byb2Nlc3Ms
IFdURk1vdmUocGFyYW1ldGVycykpOwogICAgIH0KKyAgICBOZXR3b3JrU2Vzc2lvblNvdXAoTmV0
d29ya1Byb2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmKTsKICAgICB+
TmV0d29ya1Nlc3Npb25Tb3VwKCk7CiAKICAgICBTb3VwU2Vzc2lvbiogc291cFNlc3Npb24oKSBj
b25zdDsKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrU2Vzc2lvblNvdXAoTmV0d29ya1Byb2Nlc3Mm
LCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmKTsKLQotICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJTb2NrZXRUYXNrPiBjcmVhdGVXZWJTb2NrZXRUYXNrKE5ldHdvcmtTb2NrZXRDaGFu
bmVsJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90
b2NvbCkgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGNsZWFyQ3JlZGVudGlhbHMoKSBvdmVycmlkZTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gY3JlYXRlV2ViU29ja2V0VGFzayhO
ZXR3b3JrU29ja2V0Q2hhbm5lbCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFN0cmluZyYgcHJvdG9jb2wpIGZpbmFsOworICAgIHZvaWQgY2xlYXJDcmVkZW50aWFscygp
IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>