<?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>176579</bug_id>
          
          <creation_ts>2017-09-07 19:10:27 -0700</creation_ts>
          <short_desc>Introduce a RecordData for Cache to efficiently check whether it matches a corresponding request or not</short_desc>
          <delta_ts>2017-09-27 12:37:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1346686</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-07 19:10:27 -0700</bug_when>
    <thetext>This will be useful to store the information to check whether a record is matching before fully reading the record.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346691</commentid>
    <comment_count>1</comment_count>
      <attachid>320225</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-07 19:22:09 -0700</bug_when>
    <thetext>Created attachment 320225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346693</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-07 19:24:18 -0700</bug_when>
    <thetext>Attachment 320225 did not pass style-queue:


ERROR: Source/WebCore/Modules/cache/DOMCacheEngine.h:51:  The parameter name &quot;request&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/Modules/cache/DOMCacheEngine.h:51:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348063</commentid>
    <comment_count>3</comment_count>
      <attachid>320225</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-12 15:24:20 -0700</bug_when>
    <thetext>Comment on attachment 320225
Patch

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

&gt; Source/WebKit/NetworkProcess/cache/CacheStorageEngineCache.h:46
&gt; +    uint64_t identifier { 0};

space</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348064</commentid>
    <comment_count>4</comment_count>
      <attachid>320573</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-12 15:43:10 -0700</bug_when>
    <thetext>Created attachment 320573
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348065</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-12 15:43:36 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 320225 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=320225&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/cache/CacheStorageEngineCache.h:46
&gt; &gt; +    uint64_t identifier { 0};
&gt; 
&gt; space

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348066</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-12 15:44:35 -0700</bug_when>
    <thetext>Attachment 320573 did not pass style-queue:


ERROR: Source/WebCore/Modules/cache/DOMCacheEngine.h:51:  The parameter name &quot;request&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/Modules/cache/DOMCacheEngine.h:51:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348079</commentid>
    <comment_count>7</comment_count>
      <attachid>320573</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-12 16:13:20 -0700</bug_when>
    <thetext>Comment on attachment 320573
Patch for landing

Clearing flags on attachment: 320573

Committed r221942: &lt;http://trac.webkit.org/changeset/221942&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348080</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-12 16:13:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353530</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:37:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693609&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320225</attachid>
            <date>2017-09-07 19:22:09 -0700</date>
            <delta_ts>2017-09-12 15:43:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176579-20170907192208.patch</filename>
            <type>text/plain</type>
            <size>17746</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTQ4NjI1MDY5Y2VjMmMx
NmQxMjY4OTdhMzIwNjAxNDY5N2EwMDdkZS4uZTIxNmNhNDM0YzUxYzEyOGIyZWUyYjU4MzUzNDFm
OWRhOWVjYWNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA5LTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZWNv
cmREYXRhIGZvciBDYWNoZSB0byBlZmZpY2llbnRseSBjaGVjayB3aGV0aGVyIGl0IG1hdGNoZXMg
YSBjb3JyZXNwb25kaW5nIHJlcXVlc3Qgb3Igbm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY1NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBjaGFuZ2Ugb2YgYmVoYXZpb3IuCisKKyAgICAgICAg
SW50cm9kdWNpbmcgYW5vdGhlciB2ZXJzaW9uIG9mIHF1ZXJ5Q2FjaGVNYXRjaCB1c2VkIGZvciB0
aGUgTmV0d29ya1Byb2Nlc3MgaW1wbGVtZW50YXRpb24gb2YgdGhlIENhY2hlLgorICAgICAgICBF
eHBvcnRpbmcgdGhlIGNvcHkgb2YgYSByZXNwb25zZSBib2R5IHRvIGJlIHVzZWQgYWxzbyB0aGVy
ZS4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6Om1hdGNoVVJMcyk6CisgICAgICAgIChXZWJDb3Jl
OjpET01DYWNoZUVuZ2luZTo6cXVlcnlDYWNoZU1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUNhY2hlRW5naW5lOjpjb3B5UmVzcG9uc2VCb2R5KToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hl
L0RPTUNhY2hlRW5naW5lLmg6CisKIDIwMTctMDktMDcgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRh
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIyMTcxNi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNTdmMTZlZjhkZWUxN2EwYmE2Njk5MWU1MmQzN2FiYTE0NGEyMzg0Ni4uZjVi
OTAyOGQzY2I5NWU5Mjg4NTEwMmEwMjYyZTFiM2FmMzRhOTJmYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsNSAr
MSwzNCBAQAogMjAxNy0wOS0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
KyAgICAgICAgSW50cm9kdWNlIGEgUmVjb3JkRGF0YSBmb3IgQ2FjaGUgdG8gZWZmaWNpZW50bHkg
Y2hlY2sgd2hldGhlciBpdCBtYXRjaGVzIGEgY29ycmVzcG9uZGluZyByZXF1ZXN0IG9yIG5vdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2NTc5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNp
bmcgUmVjb3JkRGF0YSB0aGF0IHNwbGl0cyBpdHMgc3RvcmVkIGRhdGEgaW4gbWFuZGF0b3J5IGRh
dGEsCisgICAgICAgIHVzZWQgdG8gY2hlY2sgYSByZWNvcmQgd2l0aCBhIHJlcXVlc3QgYW5kIG9w
dGlvbmFsIGRhdGEgdGhhdCBpcworICAgICAgICBuZWNlc3NhcnkgdG8gYnVpbGQgYSBDYWNoZVN0
b3JhZ2VFbmdpbmU6OlJlY29yZCB1c2VkIGJ5IFdlYlByb2Nlc3MuCisKKyAgICAgICAgVGhlIG1h
bmRhdG9yeSBkYXRhIGNvbnRhaW5zIHRoZSBVUkwsIFZhcnkgaGVhZGVyIGluZm9ybWF0aW9uIGFu
ZCBpZGVudGlmaWVycy4KKyAgICAgICAgQWRkaW5nIHJvdXRpbmVzIHRvIGdvIGZyb20gYSBSZWNv
cmQgdG8gUmVjb3JkRGF0YSBhbmQgdmljZSB2ZXJzYS4KKyAgICAgICAgU3RvcmluZyBpbiBDYWNo
ZVN0b3JhZ2U6OkNhY2hlIFJlY29yZERhdGEgaW5zdGVhZCBvZiBSZWNvcmQuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6cXVlcnlDYWNoZSk6CisgICAgICAgIChXZWJLaXQ6
OkNhY2hlU3RvcmFnZTo6dXBkYXRlVmFyeUluZm9ybWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
Q2FjaGVTdG9yYWdlOjp0b1JlY29yZCk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6
dG9SZWNvcmREYXRhKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpDYWNoZTo6cmV0
cmlldmVSZWNvcmRzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpDYWNo
ZTo6YWRkUmVjb3JkKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpDYWNoZTo6cmVj
b3Jkc0Zyb21VUkwpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkNhY2hlOjpyZWNv
cmRzRnJvbVVSTCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6Q2FjaGU6
OnB1dCk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6Q2FjaGU6OndyaXRlUmVjb3Jk
VG9EaXNrKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpDYWNoZTo6cmVtb3ZlUmVj
b3JkRnJvbURpc2spOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFn
ZUVuZ2luZUNhY2hlLmg6CisKKzIwMTctMDktMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCiAgICAgICAgIFJlbW92ZSBlbnRyeSBmcm9tIENhY2hlU3RvcmFnZUVuZ2luZUNv
bm5lY3Rpb24gbG9jayBtYXAgd2hlbiB1bmxvY2tpbmcgYSBDYWNoZQogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2NTQ4CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5jcHAKaW5kZXggYThiMTNmNmYxYjZj
MWM5NTE2MGYxMGIxZjJmNTNhNDY3ZGYzMzU2Yi4uY2MyM2YwNmIzZDBmMWM5NmZkM2EzNmRjNTM4
YmI0ZmYyNzM0MmFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9E
T01DYWNoZUVuZ2luZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01D
YWNoZUVuZ2luZS5jcHAKQEAgLTQ5LDE4ICs0OSwyNSBAQCBFeGNlcHRpb24gZXJyb3JUb0V4Y2Vw
dGlvbihFcnJvciBlcnJvcikKICAgICB9CiB9CiAKLWJvb2wgcXVlcnlDYWNoZU1hdGNoKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBjYWNoZWRS
ZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBjYWNoZWRSZXNwb25zZSwgY29uc3QgQ2Fj
aGVRdWVyeU9wdGlvbnMmIG9wdGlvbnMpCitzdGF0aWMgaW5saW5lIGJvb2wgbWF0Y2hVUkxzKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgVVJMJiBjYWNoZWRVUkwsIGNvbnN0
IENhY2hlUXVlcnlPcHRpb25zJiBvcHRpb25zKQogewogICAgIEFTU0VSVChvcHRpb25zLmlnbm9y
ZU1ldGhvZCB8fCByZXF1ZXN0Lmh0dHBNZXRob2QoKSA9PSAiR0VUIik7CiAKICAgICBVUkwgcmVx
dWVzdFVSTCA9IHJlcXVlc3QudXJsKCk7Ci0gICAgVVJMIGNhY2hlZFJlcXVlc3RVUkwgPSBjYWNo
ZWRSZXF1ZXN0LnVybCgpOworICAgIFVSTCBjYWNoZWRSZXF1ZXN0VVJMID0gY2FjaGVkVVJMOwog
CiAgICAgaWYgKG9wdGlvbnMuaWdub3JlU2VhcmNoKSB7Ci0gICAgICAgIHJlcXVlc3RVUkwuc2V0
UXVlcnkoeyB9KTsKLSAgICAgICAgY2FjaGVkUmVxdWVzdFVSTC5zZXRRdWVyeSh7IH0pOworICAg
ICAgICBpZiAocmVxdWVzdFVSTC5oYXNRdWVyeSgpKQorICAgICAgICAgICAgcmVxdWVzdFVSTC5z
ZXRRdWVyeSh7IH0pOworICAgICAgICBpZiAoY2FjaGVkUmVxdWVzdFVSTC5oYXNRdWVyeSgpKQor
ICAgICAgICAgICAgY2FjaGVkUmVxdWVzdFVSTC5zZXRRdWVyeSh7IH0pOwogICAgIH0KLSAgICBp
ZiAoIWVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIocmVxdWVzdFVSTCwgY2FjaGVkUmVx
dWVzdFVSTCkpCisgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIocmVx
dWVzdFVSTCwgY2FjaGVkUmVxdWVzdFVSTCk7Cit9CisKK2Jvb2wgcXVlcnlDYWNoZU1hdGNoKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBjYWNo
ZWRSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBjYWNoZWRSZXNwb25zZSwgY29uc3Qg
Q2FjaGVRdWVyeU9wdGlvbnMmIG9wdGlvbnMpCit7CisgICAgaWYgKCFtYXRjaFVSTHMocmVxdWVz
dCwgY2FjaGVkUmVxdWVzdC51cmwoKSwgb3B0aW9ucykpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGlmIChvcHRpb25zLmlnbm9yZVZhcnkpCkBAIC03MCwxMyArNzcsMzUgQEAgYm9vbCBx
dWVyeUNhY2hlTWF0Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIGNhY2gKICAgICBpZiAodmFyeVZhbHVlLmlzTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIGlzIGluZWZmaWNpZW50LCB3ZSBzaG91
bGQgYmUgYWJsZSB0byBzcGxpdCBhbmQgdHJpbSB3aGl0ZXNwYWNlcyBhdCB0aGUgc2FtZSB0aW1l
LgotICAgIFZlY3RvcjxTdHJpbmc+IHZhcnlIZWFkZXJOYW1lczsKLSAgICB2YXJ5VmFsdWUuc3Bs
aXQoJywnLCBmYWxzZSwgdmFyeUhlYWRlck5hbWVzKTsKLSAgICBmb3IgKGF1dG8mIG5hbWUgOiB2
YXJ5SGVhZGVyTmFtZXMpIHsKLSAgICAgICAgaWYgKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRU
UFNwYWNlcyhuYW1lKSA9PSAiKiIpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IGlmIChjYWNoZWRSZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZChuYW1lKSAhPSByZXF1ZXN0Lmh0dHBI
ZWFkZXJGaWVsZChuYW1lKSkKKyAgICBib29sIGlzVmFyeWluZyA9IGZhbHNlOworICAgIHZhcnlW
YWx1ZS5zcGxpdCgnLCcsIGZhbHNlLCBbJl0oU3RyaW5nVmlldyB2aWV3KSB7CisgICAgICAgIGlm
IChpc1ZhcnlpbmcpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGF1dG8gbmFtZVZpZXcg
PSBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUVFBTcGFjZXModmlldyk7CisgICAgICAgIGlmIChu
YW1lVmlldyA9PSAiKiIpIHsKKyAgICAgICAgICAgIGlzVmFyeWluZyA9IHRydWU7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYXV0byBuYW1lID0gbmFtZVZpZXcudG9T
dHJpbmcoKTsKKyAgICAgICAgaXNWYXJ5aW5nID0gY2FjaGVkUmVxdWVzdC5odHRwSGVhZGVyRmll
bGQobmFtZSkgIT0gcmVxdWVzdC5odHRwSGVhZGVyRmllbGQobmFtZSk7CisgICAgfSk7CisKKyAg
ICByZXR1cm4gIWlzVmFyeWluZzsKK30KKworYm9vbCBxdWVyeUNhY2hlTWF0Y2goY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBVUkwmIHVybCwgYm9vbCBoYXNWYXJ5U3Rhciwg
Y29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIHZhcnlIZWFkZXJzLCBjb25zdCBDYWNoZVF1
ZXJ5T3B0aW9ucyYgb3B0aW9ucykKK3sKKyAgICBpZiAoIW1hdGNoVVJMcyhyZXF1ZXN0LCB1cmws
IG9wdGlvbnMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAob3B0aW9ucy5pZ25v
cmVWYXJ5KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChoYXNWYXJ5U3RhcikKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yIChjb25zdCBhdXRvJiBwYWlyIDogdmFyeUhl
YWRlcnMpIHsKKyAgICAgICAgaWYgKHBhaXIudmFsdWUgIT0gcmVxdWVzdC5odHRwSGVhZGVyRmll
bGQocGFpci5rZXkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTkzLDcgKzEyMiw3IEBAIFJlc3BvbnNlQm9keSBpc29sYXRlZFJlc3BvbnNl
Qm9keShjb25zdCBSZXNwb25zZUJvZHkmIGJvZHkpCiAgICAgfSk7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgUmVzcG9uc2VCb2R5IGNvcHlSZXNwb25zZUJvZHkoY29uc3QgRE9NQ2FjaGVFbmdpbmU6OlJl
c3BvbnNlQm9keSYgYm9keSkKK1Jlc3BvbnNlQm9keSBjb3B5UmVzcG9uc2VCb2R5KGNvbnN0IFJl
c3BvbnNlQm9keSYgYm9keSkKIHsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihib2R5LCBbXShj
b25zdCBSZWY8Rm9ybURhdGE+JiBmb3JtRGF0YSkgewogICAgICAgICByZXR1cm4gZm9ybURhdGEu
Y29weVJlZigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01D
YWNoZUVuZ2luZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2lu
ZS5oCmluZGV4IDhmNzRjMzE1MjRkMzQ4MDhjZTg3NjJkM2M1OGVmNzdjYTJhZTA4OGIuLjRkNDUx
ZWIxYzkyOTc1OTNhNjRlNmE2OWM0NDA2ZjFkZTgzZGE5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlRW5naW5lLmgKQEAgLTQ4LDkgKzQ4LDExIEBAIGVudW0g
Y2xhc3MgRXJyb3IgewogRXhjZXB0aW9uIGVycm9yVG9FeGNlcHRpb24oRXJyb3IpOwogCiBXRUJD
T1JFX0VYUE9SVCBib29sIHF1ZXJ5Q2FjaGVNYXRjaChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgY2FjaGVkUmVxdWVzdCwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IENhY2hlUXVlcnlPcHRpb25zJik7CitXRUJDT1JFX0VYUE9SVCBi
b29sIHF1ZXJ5Q2FjaGVNYXRjaChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IFVSTCYgdXJsLCBib29sIGhhc1ZhcnlTdGFyLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiYgdmFyeUhlYWRlcnMsIGNvbnN0IENhY2hlUXVlcnlPcHRpb25zJik7CiAKIHVzaW5nIFJlc3Bv
bnNlQm9keSA9IFZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxGb3JtRGF0YT4sIFJlZjxTaGFy
ZWRCdWZmZXI+PjsKIFJlc3BvbnNlQm9keSBpc29sYXRlZFJlc3BvbnNlQm9keShjb25zdCBSZXNw
b25zZUJvZHkmKTsKK1dFQkNPUkVfRVhQT1JUIFJlc3BvbnNlQm9keSBjb3B5UmVzcG9uc2VCb2R5
KGNvbnN0IFJlc3BvbnNlQm9keSYpOwogCiBzdHJ1Y3QgUmVjb3JkIHsKICAgICBXRUJDT1JFX0VY
UE9SVCBSZWNvcmQgY29weSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcAppbmRl
eCA2MWEwNGMwOGE0NzQ5MjYwZjNjZjkwMGYwODMyZGQ2NmJkY2I2NmJmLi4zMGQ1N2MxOGE5NWU2
ZmRiYTBlZjY1Yjg2ZmM1NWU1NjJlYTdlMjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNw
cApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUtleS5oIgogI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZVF1ZXJ5T3B0aW9u
cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRUUFBhcnNlcnMuaD4KICNpbmNsdWRlIDxwYWwvU2Vz
c2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KQEAgLTUwLDcgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIG5hbWVz
cGFjZSBDYWNoZVN0b3JhZ2UgewogCi1zdGF0aWMgaW5saW5lIFZlY3Rvcjx1aW50NjRfdD4gcXVl
cnlDYWNoZShjb25zdCBWZWN0b3I8UmVjb3JkPiogcmVjb3JkcywgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKK3N0YXRpYyBp
bmxpbmUgVmVjdG9yPHVpbnQ2NF90PiBxdWVyeUNhY2hlKGNvbnN0IFZlY3RvcjxSZWNvcmREYXRh
PiogcmVjb3JkcywgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBDYWNoZVF1
ZXJ5T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAoIXJlY29yZHMpCiAgICAgICAgIHJldHVy
biB7IH07CkBAIC02MCwxMiArNjEsNDggQEAgc3RhdGljIGlubGluZSBWZWN0b3I8dWludDY0X3Q+
IHF1ZXJ5Q2FjaGUoY29uc3QgVmVjdG9yPFJlY29yZD4qIHJlY29yZHMsIGNvbnN0IFIKIAogICAg
IFZlY3Rvcjx1aW50NjRfdD4gcmVzdWx0czsKICAgICBmb3IgKGNvbnN0IGF1dG8mIHJlY29yZCA6
ICpyZWNvcmRzKSB7Ci0gICAgICAgIGlmIChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6cXVlcnlD
YWNoZU1hdGNoKHJlcXVlc3QsIHJlY29yZC5yZXF1ZXN0LCByZWNvcmQucmVzcG9uc2UsIG9wdGlv
bnMpKQorICAgICAgICBpZiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OnF1ZXJ5Q2FjaGVNYXRj
aChyZXF1ZXN0LCByZWNvcmQudXJsLCByZWNvcmQuaGFzVmFyeVN0YXIsIHJlY29yZC52YXJ5SGVh
ZGVycywgb3B0aW9ucykpCiAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChyZWNvcmQuaWRlbnRp
Zmllcik7CiAgICAgfQogICAgIHJldHVybiByZXN1bHRzOwogfQogCitzdGF0aWMgaW5saW5lIHZv
aWQgdXBkYXRlVmFyeUluZm9ybWF0aW9uKFJlY29yZERhdGEmIHJlY29yZERhdGEpCit7CisgICAg
YXV0byB2YXJ5VmFsdWUgPSByZWNvcmREYXRhLmRhdGEtPnJlc3BvbnNlLmh0dHBIZWFkZXJGaWVs
ZChXZWJDb3JlOjpIVFRQSGVhZGVyTmFtZTo6VmFyeSk7CisgICAgaWYgKHZhcnlWYWx1ZS5pc051
bGwoKSkgeworICAgICAgICByZWNvcmREYXRhLmhhc1ZhcnlTdGFyID0gZmFsc2U7CisgICAgICAg
IHJlY29yZERhdGEudmFyeUhlYWRlcnMgPSB7IH07CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICB2YXJ5VmFsdWUuc3BsaXQoJywnLCBmYWxzZSwgWyZdKFN0cmluZ1ZpZXcgdmlldykgewor
ICAgICAgICBpZiAoIXJlY29yZERhdGEuaGFzVmFyeVN0YXIgJiYgc3RyaXBMZWFkaW5nQW5kVHJh
aWxpbmdIVFRQU3BhY2VzKHZpZXcpID09ICIqIikKKyAgICAgICAgICAgIHJlY29yZERhdGEuaGFz
VmFyeVN0YXIgPSB0cnVlOworICAgICAgICBTdHJpbmcgaGVhZGVyTmFtZSA9IHZpZXcudG9TdHJp
bmcoKTsKKyAgICAgICAgcmVjb3JkRGF0YS52YXJ5SGVhZGVycy5hZGQoaGVhZGVyTmFtZSwgcmVj
b3JkRGF0YS5kYXRhLT5yZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZChoZWFkZXJOYW1lKSk7CisgICAg
fSk7CisKKyAgICBpZiAocmVjb3JkRGF0YS5oYXNWYXJ5U3RhcikKKyAgICAgICAgcmVjb3JkRGF0
YS52YXJ5SGVhZGVycyA9IHsgfTsKK30KKworc3RhdGljIGlubGluZSBSZWNvcmQgdG9SZWNvcmQo
Y29uc3QgUmVjb3JkRGF0YSYgcmVjb3JkKQoreworICAgIHJldHVybiB7IHJlY29yZC5pZGVudGlm
aWVyLCByZWNvcmQudXBkYXRlUmVzcG9uc2VDb3VudGVyLCByZWNvcmQuZGF0YS0+cmVxdWVzdEhl
YWRlcnNHdWFyZCwgcmVjb3JkLmRhdGEtPnJlcXVlc3QsIHJlY29yZC5kYXRhLT5vcHRpb25zLCBy
ZWNvcmQuZGF0YS0+cmVmZXJyZXIsIHJlY29yZC5kYXRhLT5yZXNwb25zZUhlYWRlcnNHdWFyZCwg
cmVjb3JkLmRhdGEtPnJlc3BvbnNlLCBjb3B5UmVzcG9uc2VCb2R5KHJlY29yZC5kYXRhLT5yZXNw
b25zZUJvZHkpIH07Cit9CisKK3N0YXRpYyBpbmxpbmUgUmVjb3JkRGF0YSB0b1JlY29yZERhdGEo
UmVjb3JkJiYgcmVjb3JkKQoreworICAgIGF1dG8gdXJsID0gcmVjb3JkLnJlcXVlc3QudXJsKCk7
CisgICAgUmVjb3JkRGF0YTo6RGF0YSBkYXRhID0geyByZWNvcmQucmVxdWVzdEhlYWRlcnNHdWFy
ZCwgV1RGTW92ZShyZWNvcmQucmVxdWVzdCksIFdURk1vdmUocmVjb3JkLm9wdGlvbnMpLCBXVEZN
b3ZlKHJlY29yZC5yZWZlcnJlciksIFdURk1vdmUocmVjb3JkLnJlc3BvbnNlSGVhZGVyc0d1YXJk
KSwgV1RGTW92ZShyZWNvcmQucmVzcG9uc2UpLCBXVEZNb3ZlKHJlY29yZC5yZXNwb25zZUJvZHkp
IH07CisgICAgUmVjb3JkRGF0YSByZWNvcmREYXRhID0geyB1cmwsIGZhbHNlLCB7IH0sIG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZU1TKCksIHsgfSwgcmVjb3JkLmlkZW50aWZpZXIsIDAsIFdU
Rk1vdmUoZGF0YSkgfTsKKworICAgIHVwZGF0ZVZhcnlJbmZvcm1hdGlvbihyZWNvcmREYXRhKTsK
KworICAgIHJldHVybiByZWNvcmREYXRhOworfQorCiBDYWNoZTo6Q2FjaGUoQ2FjaGVzJiBjYWNo
ZXMsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFN0YXRlIHN0YXRlLCBTdHJpbmcmJiBuYW1lKQogICAg
IDogbV9jYWNoZXMoY2FjaGVzKQogICAgICwgbV9zdGF0ZShzdGF0ZSkKQEAgLTEzMSw3ICsxNjgs
NyBAQCBWZWN0b3I8UmVjb3JkPiBDYWNoZTo6cmV0cmlldmVSZWNvcmRzKGNvbnN0IFVSTCYgdXJs
KSBjb25zdAogICAgICAgICBWZWN0b3I8UmVjb3JkPiByZXN1bHQ7CiAgICAgICAgIGZvciAoYXV0
byYgcmVjb3JkcyA6IG1fcmVjb3Jkcy52YWx1ZXMoKSkgewogICAgICAgICAgICAgZm9yIChhdXRv
JiByZWNvcmQgOiByZWNvcmRzKQotICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocmVjb3Jk
LmNvcHkoKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh0b1JlY29yZChyZWNvcmQp
KTsKICAgICAgICAgfQogICAgICAgICBzdGQ6OnNvcnQocmVzdWx0LmJlZ2luKCksIHJlc3VsdC5l
bmQoKSwgW10oY29uc3QgYXV0byYgYSwgY29uc3QgYXV0byYgYikgewogICAgICAgICAgICAgcmV0
dXJuIGEuaWRlbnRpZmllciA8IGIuaWRlbnRpZmllcjsKQEAgLTE0Niw3ICsxODMsNyBAQCBWZWN0
b3I8UmVjb3JkPiBDYWNoZTo6cmV0cmlldmVSZWNvcmRzKGNvbnN0IFVSTCYgdXJsKSBjb25zdAog
ICAgIFZlY3RvcjxSZWNvcmQ+IHJlc3VsdDsKICAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShyZWNvcmRzLT5zaXplKCkpOwogICAgIGZvciAoYXV0byYgcmVjb3JkIDogKnJlY29yZHMp
Ci0gICAgICAgIHJlc3VsdC51bmNoZWNrZWRBcHBlbmQocmVjb3JkLmNvcHkoKSk7CisgICAgICAg
IHJlc3VsdC5hcHBlbmQodG9SZWNvcmQocmVjb3JkKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IApAQCAtMTU5LDE4ICsxOTYsMTggQEAgc3RhdGljIGlubGluZSBTdHJpbmcgY29tcHV0ZUtleVVS
TChjb25zdCBVUkwmIHVybCkKICAgICByZXR1cm4ga2V5VVJMOwogfQogCi1SZWNvcmQmIENhY2hl
OjphZGROZXdVUkxSZWNvcmQoUmVjb3JkJiYgcmVjb3JkKQorUmVjb3JkRGF0YSYgQ2FjaGU6OmFk
ZFJlY29yZChWZWN0b3I8UmVjb3JkRGF0YT4qIHJlY29yZHMsIFJlY29yZCYmIHJlY29yZCkKIHsK
LSAgICBhdXRvIGtleSA9IGNvbXB1dGVLZXlVUkwocmVjb3JkLnJlcXVlc3QudXJsKCkpOwotICAg
IEFTU0VSVCghbV9yZWNvcmRzLmNvbnRhaW5zKGtleSkpOwotCi0gICAgVmVjdG9yPFJlY29yZD4g
bmV3UmVjb3JkczsKLSAgICBuZXdSZWNvcmRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoMSk7Ci0g
ICAgbmV3UmVjb3Jkcy51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZShyZWNvcmQpKTsKLSAgICByZXR1
cm4gbV9yZWNvcmRzLnNldChrZXksIFdURk1vdmUobmV3UmVjb3JkcykpLml0ZXJhdG9yLT52YWx1
ZS5sYXN0KCk7CisgICAgaWYgKCFyZWNvcmRzKSB7CisgICAgICAgIGF1dG8ga2V5ID0gY29tcHV0
ZUtleVVSTChyZWNvcmQucmVxdWVzdC51cmwoKSk7CisgICAgICAgIEFTU0VSVCghbV9yZWNvcmRz
LmNvbnRhaW5zKGtleSkpOworICAgICAgICByZWNvcmRzID0gJm1fcmVjb3Jkcy5zZXQoa2V5LCBW
ZWN0b3I8UmVjb3JkRGF0YT4geyB9KS5pdGVyYXRvci0+dmFsdWU7CisgICAgfQorICAgIHJlY29y
ZHMtPmFwcGVuZCh0b1JlY29yZERhdGEoV1RGTW92ZShyZWNvcmQpKSk7CisgICAgcmV0dXJuIHJl
Y29yZHMtPmxhc3QoKTsKIH0KIAotVmVjdG9yPFJlY29yZD4qIENhY2hlOjpyZWNvcmRzRnJvbVVS
TChjb25zdCBVUkwmIHVybCkKK1ZlY3RvcjxSZWNvcmREYXRhPiogQ2FjaGU6OnJlY29yZHNGcm9t
VVJMKGNvbnN0IFVSTCYgdXJsKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX3JlY29yZHMuZmlu
ZChjb21wdXRlS2V5VVJMKHVybCkpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX3JlY29yZHMuZW5k
KCkpCkBAIC0xNzgsNyArMjE1LDcgQEAgVmVjdG9yPFJlY29yZD4qIENhY2hlOjpyZWNvcmRzRnJv
bVVSTChjb25zdCBVUkwmIHVybCkKICAgICByZXR1cm4gJml0ZXJhdG9yLT52YWx1ZTsKIH0KIAot
Y29uc3QgVmVjdG9yPFJlY29yZD4qIENhY2hlOjpyZWNvcmRzRnJvbVVSTChjb25zdCBVUkwmIHVy
bCkgY29uc3QKK2NvbnN0IFZlY3RvcjxSZWNvcmREYXRhPiogQ2FjaGU6OnJlY29yZHNGcm9tVVJM
KGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX3JlY29yZHMu
ZmluZChjb21wdXRlS2V5VVJMKHVybCkpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX3JlY29yZHMu
ZW5kKCkpCkBAIC0yMDEsMTMgKzIzOCw4IEBAIHZvaWQgQ2FjaGU6OnB1dChWZWN0b3I8UmVjb3Jk
PiYmIHJlY29yZHMsIFJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJiBjYWxsYmFjaykKICAgICAg
ICAgICAgIHJlY29yZElkZW50aWZpZXJzLnVuY2hlY2tlZEFwcGVuZChyZWNvcmQuaWRlbnRpZmll
cik7CiAKICAgICAgICAgICAgIHNob3VsZFdyaXRlUmVjb3JkTGlzdCA9IHRydWU7Ci0gICAgICAg
ICAgICBpZiAoIXNhbWVVUkxSZWNvcmRzKSB7Ci0gICAgICAgICAgICAgICAgYXV0byYgcmVjb3Jk
VG9Xcml0ZSA9IGFkZE5ld1VSTFJlY29yZChXVEZNb3ZlKHJlY29yZCkpOwotICAgICAgICAgICAg
ICAgIHdyaXRlUmVjb3JkVG9EaXNrKHJlY29yZFRvV3JpdGUpOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBzYW1lVVJMUmVjb3Jkcy0+YXBwZW5kKFdURk1vdmUocmVjb3Jk
KSk7Ci0gICAgICAgICAgICAgICAgd3JpdGVSZWNvcmRUb0Rpc2soc2FtZVVSTFJlY29yZHMtPmxh
c3QoKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBhdXRvJiByZWNvcmRUb1dyaXRlID0g
YWRkUmVjb3JkKHNhbWVVUkxSZWNvcmRzLCBXVEZNb3ZlKHJlY29yZCkpOworICAgICAgICAgICAg
d3JpdGVSZWNvcmRUb0Rpc2socmVjb3JkVG9Xcml0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBtYXRjaGluZ1JlY29yZHNbMF07CiAgICAgICAgICAg
ICBhdXRvIHBvc2l0aW9uID0gc2FtZVVSTFJlY29yZHMtPmZpbmRNYXRjaGluZyhbJl0oY29uc3Qg
YXV0byYgaXRlbSkgeyByZXR1cm4gaXRlbS5pZGVudGlmaWVyID09IGlkZW50aWZpZXI7IH0pOwpA
QCAtMjE1LDExICsyNDcsMTQgQEAgdm9pZCBDYWNoZTo6cHV0KFZlY3RvcjxSZWNvcmQ+JiYgcmVj
b3JkcywgUmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmIGNhbGxiYWNrKQogICAgICAgICAgICAg
aWYgKHBvc2l0aW9uICE9IG5vdEZvdW5kKSB7CiAgICAgICAgICAgICAgICAgYXV0byYgZXhpc3Rp
bmdSZWNvcmQgPSAoKnNhbWVVUkxSZWNvcmRzKVtwb3NpdGlvbl07CiAgICAgICAgICAgICAgICAg
cmVjb3JkSWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5kKGlkZW50aWZpZXIpOwotICAgICAgICAg
ICAgICAgIGV4aXN0aW5nUmVjb3JkLnJlc3BvbnNlSGVhZGVyc0d1YXJkID0gcmVjb3JkLnJlc3Bv
bnNlSGVhZGVyc0d1YXJkOwotICAgICAgICAgICAgICAgIGV4aXN0aW5nUmVjb3JkLnJlc3BvbnNl
ID0gV1RGTW92ZShyZWNvcmQucmVzcG9uc2UpOwotICAgICAgICAgICAgICAgIGV4aXN0aW5nUmVj
b3JkLnJlc3BvbnNlQm9keSA9IFdURk1vdmUocmVjb3JkLnJlc3BvbnNlQm9keSk7CiAgICAgICAg
ICAgICAgICAgKytleGlzdGluZ1JlY29yZC51cGRhdGVSZXNwb25zZUNvdW50ZXI7CiAKKyAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGRhdGEgaXMgbnVsbC4K
KyAgICAgICAgICAgICAgICBBU1NFUlQoZXhpc3RpbmdSZWNvcmQuZGF0YSk7CisgICAgICAgICAg
ICAgICAgZXhpc3RpbmdSZWNvcmQuZGF0YS0+cmVzcG9uc2VIZWFkZXJzR3VhcmQgPSByZWNvcmQu
cmVzcG9uc2VIZWFkZXJzR3VhcmQ7CisgICAgICAgICAgICAgICAgZXhpc3RpbmdSZWNvcmQuZGF0
YS0+cmVzcG9uc2UgPSBXVEZNb3ZlKHJlY29yZC5yZXNwb25zZSk7CisgICAgICAgICAgICAgICAg
ZXhpc3RpbmdSZWNvcmQuZGF0YS0+cmVzcG9uc2VCb2R5ID0gV1RGTW92ZShyZWNvcmQucmVzcG9u
c2VCb2R5KTsKKyAgICAgICAgICAgICAgICB1cGRhdGVWYXJ5SW5mb3JtYXRpb24oZXhpc3RpbmdS
ZWNvcmQpOwogICAgICAgICAgICAgICAgIHdyaXRlUmVjb3JkVG9EaXNrKGV4aXN0aW5nUmVjb3Jk
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjc1LDEyICszMTAsMTIgQEAgdm9pZCBD
YWNoZTo6d3JpdGVSZWNvcmRzTGlzdChDb21wbGV0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKICAg
ICBjYWxsYmFjayhzdGQ6Om51bGxvcHQpOwogfQogCi12b2lkIENhY2hlOjp3cml0ZVJlY29yZFRv
RGlzayhSZWNvcmQmIHJlY29yZCkKK3ZvaWQgQ2FjaGU6OndyaXRlUmVjb3JkVG9EaXNrKFJlY29y
ZERhdGEmKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KIH0KIAotdm9pZCBDYWNo
ZTo6cmVtb3ZlUmVjb3JkRnJvbURpc2soUmVjb3JkJiByZWNvcmQpCit2b2lkIENhY2hlOjpyZW1v
dmVSZWNvcmRGcm9tRGlzayhSZWNvcmREYXRhJikKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRoaXMuCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmgKaW5kZXggYTY0NDVlMTUxMDcxZTMxNjlk
ZTRkMWIzYjgxMjZkYzU4Y2M0OTgxOS4uNmUxZTMzMTg5NmYzMmVmZGQ1OTJiNTcxMzRmZTE2NWZk
NzU4Y2U1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9D
YWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUtleS5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvRE9NQ2FjaGVFbmdpbmUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zNSw2ICszNiwzMCBAQCBuYW1lc3BhY2UgQ2Fj
aGVTdG9yYWdlIHsKIAogY2xhc3MgQ2FjaGVzOwogCitzdHJ1Y3QgUmVjb3JkRGF0YSB7CisgICAg
V2ViQ29yZTo6VVJMIHVybDsKKyAgICBib29sIGhhc1ZhcnlTdGFyIHsgZmFsc2UgfTsKKyAgICBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiB2YXJ5SGVhZGVyczsKKyAgICBkb3VibGUgaW5zZXJ0aW9u
VGltZSB7IDAgfTsKKyAgICBOZXR3b3JrQ2FjaGU6OktleSBrZXk7CisKKyAgICB1aW50NjRfdCBp
ZGVudGlmaWVyIHsgMH07CisgICAgdWludDY0X3QgdXBkYXRlUmVzcG9uc2VDb3VudGVyIHsgMCB9
OworCisgICAgc3RydWN0IERhdGEgeworICAgICAgICBXZWJDb3JlOjpGZXRjaEhlYWRlcnM6Okd1
YXJkIHJlcXVlc3RIZWFkZXJzR3VhcmQ7CisgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCByZXF1ZXN0OworICAgICAgICBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9uczsKKyAgICAg
ICAgU3RyaW5nIHJlZmVycmVyOworCisgICAgICAgIFdlYkNvcmU6OkZldGNoSGVhZGVyczo6R3Vh
cmQgcmVzcG9uc2VIZWFkZXJzR3VhcmQ7CisgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2U7CisgICAgICAgIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJv
ZHkgcmVzcG9uc2VCb2R5OworICAgIH07CisKKyAgICBzdGQ6Om9wdGlvbmFsPERhdGE+IGRhdGE7
Cit9OworCiBjbGFzcyBDYWNoZSB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBTdGF0ZSB7IFVu
aW5pdGlhbGl6ZWQsIE9wZW5pbmcsIE9wZW4gfTsKQEAgLTU2LDIyICs4MSwyMiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjbGVhck1lbW9yeVJlcHJlc2VudGF0aW9uKCk7CiAgCiBwcml2YXRlOgotICAg
IFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPiogcmVjb3Jkc0Zyb21VUkwo
Y29uc3QgV2ViQ29yZTo6VVJMJik7Ci0gICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkRPTUNhY2hl
RW5naW5lOjpSZWNvcmQ+KiByZWNvcmRzRnJvbVVSTChjb25zdCBXZWJDb3JlOjpVUkwmKSBjb25z
dDsKLSAgICBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkJiBhZGROZXdVUkxSZWNvcmQo
V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZCYmKTsKKyAgICBWZWN0b3I8UmVjb3JkRGF0
YT4qIHJlY29yZHNGcm9tVVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYpOworICAgIGNvbnN0IFZlY3Rv
cjxSZWNvcmREYXRhPiogcmVjb3Jkc0Zyb21VUkwoY29uc3QgV2ViQ29yZTo6VVJMJikgY29uc3Q7
CisgICAgUmVjb3JkRGF0YSYgYWRkUmVjb3JkKFZlY3RvcjxSZWNvcmREYXRhPiosIFdlYkNvcmU6
OkRPTUNhY2hlRW5naW5lOjpSZWNvcmQmJik7CiAKICAgICB2b2lkIGZpbmlzaE9wZW5pbmcoV2Vi
Q29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNvbXBsZXRpb25DYWxsYmFjayYmLCBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpFcnJvcj4mJik7CiAKICAgICB2b2lkIHJlYWRSZWNv
cmRzTGlzdChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q29tcGxldGlvbkNhbGxiYWNrJiYpOwog
ICAgIHZvaWQgd3JpdGVSZWNvcmRzTGlzdChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q29tcGxl
dGlvbkNhbGxiYWNrJiYpOwotICAgIHZvaWQgd3JpdGVSZWNvcmRUb0Rpc2soV2ViQ29yZTo6RE9N
Q2FjaGVFbmdpbmU6OlJlY29yZCYpOwotICAgIHZvaWQgcmVtb3ZlUmVjb3JkRnJvbURpc2soV2Vi
Q29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZCYpOworICAgIHZvaWQgd3JpdGVSZWNvcmRUb0Rp
c2soUmVjb3JkRGF0YSYpOworICAgIHZvaWQgcmVtb3ZlUmVjb3JkRnJvbURpc2soUmVjb3JkRGF0
YSYpOwogCiAgICAgQ2FjaGVzJiBtX2NhY2hlczsKICAgICBTdGF0ZSBtX3N0YXRlOwogICAgIHVp
bnQ2NF90IG1faWRlbnRpZmllciB7IDAgfTsKICAgICBTdHJpbmcgbV9uYW1lOwotICAgIEhhc2hN
YXA8U3RyaW5nLCBWZWN0b3I8V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4+IG1fcmVj
b3JkczsKKyAgICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFJlY29yZERhdGE+PiBtX3JlY29yZHM7
CiAgICAgdWludDY0X3QgbV9uZXh0UmVjb3JkSWRlbnRpZmllciB7IDAgfTsKICAgICBWZWN0b3I8
V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNvbXBsZXRpb25DYWxsYmFjaz4gbV9wZW5kaW5nT3Bl
bmluZ0NhbGxiYWNrczsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320573</attachid>
            <date>2017-09-12 15:43:10 -0700</date>
            <delta_ts>2017-09-12 16:13:20 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-176579-20170912154309.patch</filename>
            <type>text/plain</type>
            <size>17671</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxODY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU3ZWQ1YTQzMDdkM2Vm
Y2UzN2ZhNzY2YzM5YzdlNWVmZWUyZjYwYS4uYjNiOTBhZDE3ODg4ZDFmZGY4YTYyNzcxYmFjMGNm
MDlkZDM5MWIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA5LTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZWNv
cmREYXRhIGZvciBDYWNoZSB0byBlZmZpY2llbnRseSBjaGVjayB3aGV0aGVyIGl0IG1hdGNoZXMg
YSBjb3JyZXNwb25kaW5nIHJlcXVlc3Qgb3Igbm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY1NzkKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4
IENocmlzdGVuc2VuLgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAg
ICBJbnRyb2R1Y2luZyBhbm90aGVyIHZlcnNpb24gb2YgcXVlcnlDYWNoZU1hdGNoIHVzZWQgZm9y
IHRoZSBOZXR3b3JrUHJvY2VzcyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQ2FjaGUuCisgICAgICAg
IEV4cG9ydGluZyB0aGUgY29weSBvZiBhIHJlc3BvbnNlIGJvZHkgdG8gYmUgdXNlZCBhbHNvIHRo
ZXJlLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6bWF0Y2hVUkxzKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTUNhY2hlRW5naW5lOjpxdWVyeUNhY2hlTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NQ2FjaGVFbmdpbmU6OmNvcHlSZXNwb25zZUJvZHkpOgorICAgICAgICAqIE1vZHVsZXMvY2Fj
aGUvRE9NQ2FjaGVFbmdpbmUuaDoKKwogMjAxNy0wOS0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vZGVybml6ZSBCb3hFeHRlbnQgaW50
byBSZWN0RWRnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTVhMTg1NDU0MmE2ZTY5MGFmMWY5ZGM4NGM3MmM2NjY4
NzAzZTdlZi4uZmVlZmRlNzZiNTU3YjI5ZGI1MTNiOTlkOGEyOGNiODhlNjNmNjI0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMiBAQAorMjAxNy0wOS0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGEgUmVjb3JkRGF0YSBmb3IgQ2FjaGUgdG8g
ZWZmaWNpZW50bHkgY2hlY2sgd2hldGhlciBpdCBtYXRjaGVzIGEgY29ycmVzcG9uZGluZyByZXF1
ZXN0IG9yIG5vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc2NTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAg
ICAgICBJbnRyb2R1Y2luZyBSZWNvcmREYXRhIHRoYXQgc3BsaXRzIGl0cyBzdG9yZWQgZGF0YSBp
biBtYW5kYXRvcnkgZGF0YSwKKyAgICAgICAgdXNlZCB0byBjaGVjayBhIHJlY29yZCB3aXRoIGEg
cmVxdWVzdCBhbmQgb3B0aW9uYWwgZGF0YSB0aGF0IGlzCisgICAgICAgIG5lY2Vzc2FyeSB0byBi
dWlsZCBhIENhY2hlU3RvcmFnZUVuZ2luZTo6UmVjb3JkIHVzZWQgYnkgV2ViUHJvY2Vzcy4KKwor
ICAgICAgICBUaGUgbWFuZGF0b3J5IGRhdGEgY29udGFpbnMgdGhlIFVSTCwgVmFyeSBoZWFkZXIg
aW5mb3JtYXRpb24gYW5kIGlkZW50aWZpZXJzLgorICAgICAgICBBZGRpbmcgcm91dGluZXMgdG8g
Z28gZnJvbSBhIFJlY29yZCB0byBSZWNvcmREYXRhIGFuZCB2aWNlIHZlcnNhLgorICAgICAgICBT
dG9yaW5nIGluIENhY2hlU3RvcmFnZTo6Q2FjaGUgUmVjb3JkRGF0YSBpbnN0ZWFkIG9mIFJlY29y
ZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNh
Y2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpxdWVyeUNhY2hlKToKKyAg
ICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjp1cGRhdGVWYXJ5SW5mb3JtYXRpb24pOgorICAg
ICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OnRvUmVjb3JkKToKKyAgICAgICAgKFdlYktpdDo6
Q2FjaGVTdG9yYWdlOjp0b1JlY29yZERhdGEpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3Jh
Z2U6OkNhY2hlOjpyZXRyaWV2ZVJlY29yZHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpDYWNo
ZVN0b3JhZ2U6OkNhY2hlOjphZGRSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3Jh
Z2U6OkNhY2hlOjpyZWNvcmRzRnJvbVVSTCk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFn
ZTo6Q2FjaGU6OnJlY29yZHNGcm9tVVJMIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVT
dG9yYWdlOjpDYWNoZTo6cHV0KToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpDYWNo
ZTo6d3JpdGVSZWNvcmRUb0Rpc2spOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkNh
Y2hlOjpyZW1vdmVSZWNvcmRGcm9tRGlzayk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaDoKKwogMjAxNy0wOS0xMSAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vZGVybml6ZSBCb3hF
eHRlbnQgaW50byBSZWN0RWRnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvRE9NQ2FjaGVFbmdpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9E
T01DYWNoZUVuZ2luZS5jcHAKaW5kZXggYThiMTNmNmYxYjZjMWM5NTE2MGYxMGIxZjJmNTNhNDY3
ZGYzMzU2Yi4uY2MyM2YwNmIzZDBmMWM5NmZkM2EzNmRjNTM4YmI0ZmYyNzM0MmFlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5jcHAKQEAgLTQ5
LDE4ICs0OSwyNSBAQCBFeGNlcHRpb24gZXJyb3JUb0V4Y2VwdGlvbihFcnJvciBlcnJvcikKICAg
ICB9CiB9CiAKLWJvb2wgcXVlcnlDYWNoZU1hdGNoKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBjYWNoZWRSZXF1ZXN0LCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiBjYWNoZWRSZXNwb25zZSwgY29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmIG9wdGlv
bnMpCitzdGF0aWMgaW5saW5lIGJvb2wgbWF0Y2hVUkxzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgVVJMJiBjYWNoZWRVUkwsIGNvbnN0IENhY2hlUXVlcnlPcHRpb25zJiBv
cHRpb25zKQogewogICAgIEFTU0VSVChvcHRpb25zLmlnbm9yZU1ldGhvZCB8fCByZXF1ZXN0Lmh0
dHBNZXRob2QoKSA9PSAiR0VUIik7CiAKICAgICBVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3QudXJs
KCk7Ci0gICAgVVJMIGNhY2hlZFJlcXVlc3RVUkwgPSBjYWNoZWRSZXF1ZXN0LnVybCgpOworICAg
IFVSTCBjYWNoZWRSZXF1ZXN0VVJMID0gY2FjaGVkVVJMOwogCiAgICAgaWYgKG9wdGlvbnMuaWdu
b3JlU2VhcmNoKSB7Ci0gICAgICAgIHJlcXVlc3RVUkwuc2V0UXVlcnkoeyB9KTsKLSAgICAgICAg
Y2FjaGVkUmVxdWVzdFVSTC5zZXRRdWVyeSh7IH0pOworICAgICAgICBpZiAocmVxdWVzdFVSTC5o
YXNRdWVyeSgpKQorICAgICAgICAgICAgcmVxdWVzdFVSTC5zZXRRdWVyeSh7IH0pOworICAgICAg
ICBpZiAoY2FjaGVkUmVxdWVzdFVSTC5oYXNRdWVyeSgpKQorICAgICAgICAgICAgY2FjaGVkUmVx
dWVzdFVSTC5zZXRRdWVyeSh7IH0pOwogICAgIH0KLSAgICBpZiAoIWVxdWFsSWdub3JpbmdGcmFn
bWVudElkZW50aWZpZXIocmVxdWVzdFVSTCwgY2FjaGVkUmVxdWVzdFVSTCkpCisgICAgcmV0dXJu
IGVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIocmVxdWVzdFVSTCwgY2FjaGVkUmVxdWVz
dFVSTCk7Cit9CisKK2Jvb2wgcXVlcnlDYWNoZU1hdGNoKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBjYWNoZWRSZXF1ZXN0LCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiBjYWNoZWRSZXNwb25zZSwgY29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmIG9w
dGlvbnMpCit7CisgICAgaWYgKCFtYXRjaFVSTHMocmVxdWVzdCwgY2FjaGVkUmVxdWVzdC51cmwo
KSwgb3B0aW9ucykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChvcHRpb25zLmln
bm9yZVZhcnkpCkBAIC03MCwxMyArNzcsMzUgQEAgYm9vbCBxdWVyeUNhY2hlTWF0Y2goY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGNhY2gKICAg
ICBpZiAodmFyeVZhbHVlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIC8v
IEZJWE1FOiBUaGlzIGlzIGluZWZmaWNpZW50LCB3ZSBzaG91bGQgYmUgYWJsZSB0byBzcGxpdCBh
bmQgdHJpbSB3aGl0ZXNwYWNlcyBhdCB0aGUgc2FtZSB0aW1lLgotICAgIFZlY3RvcjxTdHJpbmc+
IHZhcnlIZWFkZXJOYW1lczsKLSAgICB2YXJ5VmFsdWUuc3BsaXQoJywnLCBmYWxzZSwgdmFyeUhl
YWRlck5hbWVzKTsKLSAgICBmb3IgKGF1dG8mIG5hbWUgOiB2YXJ5SGVhZGVyTmFtZXMpIHsKLSAg
ICAgICAgaWYgKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRUUFNwYWNlcyhuYW1lKSA9PSAiKiIp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChjYWNoZWRSZXF1ZXN0Lmh0
dHBIZWFkZXJGaWVsZChuYW1lKSAhPSByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZChuYW1lKSkKKyAg
ICBib29sIGlzVmFyeWluZyA9IGZhbHNlOworICAgIHZhcnlWYWx1ZS5zcGxpdCgnLCcsIGZhbHNl
LCBbJl0oU3RyaW5nVmlldyB2aWV3KSB7CisgICAgICAgIGlmIChpc1ZhcnlpbmcpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIGF1dG8gbmFtZVZpZXcgPSBzdHJpcExlYWRpbmdBbmRUcmFp
bGluZ0hUVFBTcGFjZXModmlldyk7CisgICAgICAgIGlmIChuYW1lVmlldyA9PSAiKiIpIHsKKyAg
ICAgICAgICAgIGlzVmFyeWluZyA9IHRydWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgYXV0byBuYW1lID0gbmFtZVZpZXcudG9TdHJpbmcoKTsKKyAgICAgICAgaXNW
YXJ5aW5nID0gY2FjaGVkUmVxdWVzdC5odHRwSGVhZGVyRmllbGQobmFtZSkgIT0gcmVxdWVzdC5o
dHRwSGVhZGVyRmllbGQobmFtZSk7CisgICAgfSk7CisKKyAgICByZXR1cm4gIWlzVmFyeWluZzsK
K30KKworYm9vbCBxdWVyeUNhY2hlTWF0Y2goY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBVUkwmIHVybCwgYm9vbCBoYXNWYXJ5U3RhciwgY29uc3QgSGFzaE1hcDxTdHJpbmcs
IFN0cmluZz4mIHZhcnlIZWFkZXJzLCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykK
K3sKKyAgICBpZiAoIW1hdGNoVVJMcyhyZXF1ZXN0LCB1cmwsIG9wdGlvbnMpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBpZiAob3B0aW9ucy5pZ25vcmVWYXJ5KQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIGlmIChoYXNWYXJ5U3RhcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgZm9yIChjb25zdCBhdXRvJiBwYWlyIDogdmFyeUhlYWRlcnMpIHsKKyAgICAgICAgaWYg
KHBhaXIudmFsdWUgIT0gcmVxdWVzdC5odHRwSGVhZGVyRmllbGQocGFpci5rZXkpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTkzLDcgKzEy
Miw3IEBAIFJlc3BvbnNlQm9keSBpc29sYXRlZFJlc3BvbnNlQm9keShjb25zdCBSZXNwb25zZUJv
ZHkmIGJvZHkpCiAgICAgfSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUmVzcG9uc2VCb2R5IGNvcHlS
ZXNwb25zZUJvZHkoY29uc3QgRE9NQ2FjaGVFbmdpbmU6OlJlc3BvbnNlQm9keSYgYm9keSkKK1Jl
c3BvbnNlQm9keSBjb3B5UmVzcG9uc2VCb2R5KGNvbnN0IFJlc3BvbnNlQm9keSYgYm9keSkKIHsK
ICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihib2R5LCBbXShjb25zdCBSZWY8Rm9ybURhdGE+JiBm
b3JtRGF0YSkgewogICAgICAgICByZXR1cm4gZm9ybURhdGEuY29weVJlZigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5oCmluZGV4IDhmNzRjMzE1MjRk
MzQ4MDhjZTg3NjJkM2M1OGVmNzdjYTJhZTA4OGIuLjRkNDUxZWIxYzkyOTc1OTNhNjRlNmE2OWM0
NDA2ZjFkZTgzZGE5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUv
RE9NQ2FjaGVFbmdpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNh
Y2hlRW5naW5lLmgKQEAgLTQ4LDkgKzQ4LDExIEBAIGVudW0gY2xhc3MgRXJyb3IgewogRXhjZXB0
aW9uIGVycm9yVG9FeGNlcHRpb24oRXJyb3IpOwogCiBXRUJDT1JFX0VYUE9SVCBib29sIHF1ZXJ5
Q2FjaGVNYXRjaChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgY2FjaGVkUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IENh
Y2hlUXVlcnlPcHRpb25zJik7CitXRUJDT1JFX0VYUE9SVCBib29sIHF1ZXJ5Q2FjaGVNYXRjaChj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFVSTCYgdXJsLCBib29sIGhhc1Zh
cnlTdGFyLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgdmFyeUhlYWRlcnMsIGNvbnN0
IENhY2hlUXVlcnlPcHRpb25zJik7CiAKIHVzaW5nIFJlc3BvbnNlQm9keSA9IFZhcmlhbnQ8c3Rk
OjpudWxscHRyX3QsIFJlZjxGb3JtRGF0YT4sIFJlZjxTaGFyZWRCdWZmZXI+PjsKIFJlc3BvbnNl
Qm9keSBpc29sYXRlZFJlc3BvbnNlQm9keShjb25zdCBSZXNwb25zZUJvZHkmKTsKK1dFQkNPUkVf
RVhQT1JUIFJlc3BvbnNlQm9keSBjb3B5UmVzcG9uc2VCb2R5KGNvbnN0IFJlc3BvbnNlQm9keSYp
OwogCiBzdHJ1Y3QgUmVjb3JkIHsKICAgICBXRUJDT1JFX0VYUE9SVCBSZWNvcmQgY29weSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcAppbmRleCA2MWEwNGMwOGE0NzQ5MjYwZjNj
ZjkwMGYwODMyZGQ2NmJkY2I2NmJmLi40ODFhZGQ3ZWNjYjFjNWEyNTIzZWVhZjgyYjY2NGI3M2Rm
ZWE2ODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcApAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgIk5ldHdvcmtDYWNoZUtleS5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZVF1ZXJ5T3B0aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvSFRUUFBhcnNlcnMuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTUwLDcg
KzUxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIG5hbWVzcGFjZSBDYWNoZVN0b3JhZ2Ugewog
Ci1zdGF0aWMgaW5saW5lIFZlY3Rvcjx1aW50NjRfdD4gcXVlcnlDYWNoZShjb25zdCBWZWN0b3I8
UmVjb3JkPiogcmVjb3JkcywgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBD
YWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykKK3N0YXRpYyBpbmxpbmUgVmVjdG9yPHVpbnQ2NF90
PiBxdWVyeUNhY2hlKGNvbnN0IFZlY3RvcjxSZWNvcmREYXRhPiogcmVjb3JkcywgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucykK
IHsKICAgICBpZiAoIXJlY29yZHMpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC02MCwxMiArNjEs
NDggQEAgc3RhdGljIGlubGluZSBWZWN0b3I8dWludDY0X3Q+IHF1ZXJ5Q2FjaGUoY29uc3QgVmVj
dG9yPFJlY29yZD4qIHJlY29yZHMsIGNvbnN0IFIKIAogICAgIFZlY3Rvcjx1aW50NjRfdD4gcmVz
dWx0czsKICAgICBmb3IgKGNvbnN0IGF1dG8mIHJlY29yZCA6ICpyZWNvcmRzKSB7Ci0gICAgICAg
IGlmIChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6cXVlcnlDYWNoZU1hdGNoKHJlcXVlc3QsIHJl
Y29yZC5yZXF1ZXN0LCByZWNvcmQucmVzcG9uc2UsIG9wdGlvbnMpKQorICAgICAgICBpZiAoV2Vi
Q29yZTo6RE9NQ2FjaGVFbmdpbmU6OnF1ZXJ5Q2FjaGVNYXRjaChyZXF1ZXN0LCByZWNvcmQudXJs
LCByZWNvcmQuaGFzVmFyeVN0YXIsIHJlY29yZC52YXJ5SGVhZGVycywgb3B0aW9ucykpCiAgICAg
ICAgICAgICByZXN1bHRzLmFwcGVuZChyZWNvcmQuaWRlbnRpZmllcik7CiAgICAgfQogICAgIHJl
dHVybiByZXN1bHRzOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlVmFyeUluZm9ybWF0
aW9uKFJlY29yZERhdGEmIHJlY29yZERhdGEpCit7CisgICAgYXV0byB2YXJ5VmFsdWUgPSByZWNv
cmREYXRhLmRhdGEtPnJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChXZWJDb3JlOjpIVFRQSGVhZGVy
TmFtZTo6VmFyeSk7CisgICAgaWYgKHZhcnlWYWx1ZS5pc051bGwoKSkgeworICAgICAgICByZWNv
cmREYXRhLmhhc1ZhcnlTdGFyID0gZmFsc2U7CisgICAgICAgIHJlY29yZERhdGEudmFyeUhlYWRl
cnMgPSB7IH07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB2YXJ5VmFsdWUuc3BsaXQo
JywnLCBmYWxzZSwgWyZdKFN0cmluZ1ZpZXcgdmlldykgeworICAgICAgICBpZiAoIXJlY29yZERh
dGEuaGFzVmFyeVN0YXIgJiYgc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVFRQU3BhY2VzKHZpZXcp
ID09ICIqIikKKyAgICAgICAgICAgIHJlY29yZERhdGEuaGFzVmFyeVN0YXIgPSB0cnVlOworICAg
ICAgICBTdHJpbmcgaGVhZGVyTmFtZSA9IHZpZXcudG9TdHJpbmcoKTsKKyAgICAgICAgcmVjb3Jk
RGF0YS52YXJ5SGVhZGVycy5hZGQoaGVhZGVyTmFtZSwgcmVjb3JkRGF0YS5kYXRhLT5yZXF1ZXN0
Lmh0dHBIZWFkZXJGaWVsZChoZWFkZXJOYW1lKSk7CisgICAgfSk7CisKKyAgICBpZiAocmVjb3Jk
RGF0YS5oYXNWYXJ5U3RhcikKKyAgICAgICAgcmVjb3JkRGF0YS52YXJ5SGVhZGVycyA9IHsgfTsK
K30KKworc3RhdGljIGlubGluZSBSZWNvcmQgdG9SZWNvcmQoY29uc3QgUmVjb3JkRGF0YSYgcmVj
b3JkKQoreworICAgIHJldHVybiB7IHJlY29yZC5pZGVudGlmaWVyLCByZWNvcmQudXBkYXRlUmVz
cG9uc2VDb3VudGVyLCByZWNvcmQuZGF0YS0+cmVxdWVzdEhlYWRlcnNHdWFyZCwgcmVjb3JkLmRh
dGEtPnJlcXVlc3QsIHJlY29yZC5kYXRhLT5vcHRpb25zLCByZWNvcmQuZGF0YS0+cmVmZXJyZXIs
IHJlY29yZC5kYXRhLT5yZXNwb25zZUhlYWRlcnNHdWFyZCwgcmVjb3JkLmRhdGEtPnJlc3BvbnNl
LCBjb3B5UmVzcG9uc2VCb2R5KHJlY29yZC5kYXRhLT5yZXNwb25zZUJvZHkpIH07Cit9CisKK3N0
YXRpYyBpbmxpbmUgUmVjb3JkRGF0YSB0b1JlY29yZERhdGEoUmVjb3JkJiYgcmVjb3JkKQorewor
ICAgIGF1dG8gdXJsID0gcmVjb3JkLnJlcXVlc3QudXJsKCk7CisgICAgUmVjb3JkRGF0YTo6RGF0
YSBkYXRhID0geyByZWNvcmQucmVxdWVzdEhlYWRlcnNHdWFyZCwgV1RGTW92ZShyZWNvcmQucmVx
dWVzdCksIFdURk1vdmUocmVjb3JkLm9wdGlvbnMpLCBXVEZNb3ZlKHJlY29yZC5yZWZlcnJlciks
IFdURk1vdmUocmVjb3JkLnJlc3BvbnNlSGVhZGVyc0d1YXJkKSwgV1RGTW92ZShyZWNvcmQucmVz
cG9uc2UpLCBXVEZNb3ZlKHJlY29yZC5yZXNwb25zZUJvZHkpIH07CisgICAgUmVjb3JkRGF0YSBy
ZWNvcmREYXRhID0geyB7IH0sIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZU1TKCksIHJlY29y
ZC5pZGVudGlmaWVyLCAwLCB1cmwsIGZhbHNlLCB7IH0sIFdURk1vdmUoZGF0YSkgfTsKKworICAg
IHVwZGF0ZVZhcnlJbmZvcm1hdGlvbihyZWNvcmREYXRhKTsKKworICAgIHJldHVybiByZWNvcmRE
YXRhOworfQorCiBDYWNoZTo6Q2FjaGUoQ2FjaGVzJiBjYWNoZXMsIHVpbnQ2NF90IGlkZW50aWZp
ZXIsIFN0YXRlIHN0YXRlLCBTdHJpbmcmJiBuYW1lKQogICAgIDogbV9jYWNoZXMoY2FjaGVzKQog
ICAgICwgbV9zdGF0ZShzdGF0ZSkKQEAgLTEzMSw3ICsxNjgsNyBAQCBWZWN0b3I8UmVjb3JkPiBD
YWNoZTo6cmV0cmlldmVSZWNvcmRzKGNvbnN0IFVSTCYgdXJsKSBjb25zdAogICAgICAgICBWZWN0
b3I8UmVjb3JkPiByZXN1bHQ7CiAgICAgICAgIGZvciAoYXV0byYgcmVjb3JkcyA6IG1fcmVjb3Jk
cy52YWx1ZXMoKSkgewogICAgICAgICAgICAgZm9yIChhdXRvJiByZWNvcmQgOiByZWNvcmRzKQot
ICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocmVjb3JkLmNvcHkoKSk7CisgICAgICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCh0b1JlY29yZChyZWNvcmQpKTsKICAgICAgICAgfQogICAgICAg
ICBzdGQ6OnNvcnQocmVzdWx0LmJlZ2luKCksIHJlc3VsdC5lbmQoKSwgW10oY29uc3QgYXV0byYg
YSwgY29uc3QgYXV0byYgYikgewogICAgICAgICAgICAgcmV0dXJuIGEuaWRlbnRpZmllciA8IGIu
aWRlbnRpZmllcjsKQEAgLTE0Niw3ICsxODMsNyBAQCBWZWN0b3I8UmVjb3JkPiBDYWNoZTo6cmV0
cmlldmVSZWNvcmRzKGNvbnN0IFVSTCYgdXJsKSBjb25zdAogICAgIFZlY3RvcjxSZWNvcmQ+IHJl
c3VsdDsKICAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShyZWNvcmRzLT5zaXplKCkp
OwogICAgIGZvciAoYXV0byYgcmVjb3JkIDogKnJlY29yZHMpCi0gICAgICAgIHJlc3VsdC51bmNo
ZWNrZWRBcHBlbmQocmVjb3JkLmNvcHkoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQodG9SZWNv
cmQocmVjb3JkKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTU5LDE4ICsxOTYsMTgg
QEAgc3RhdGljIGlubGluZSBTdHJpbmcgY29tcHV0ZUtleVVSTChjb25zdCBVUkwmIHVybCkKICAg
ICByZXR1cm4ga2V5VVJMOwogfQogCi1SZWNvcmQmIENhY2hlOjphZGROZXdVUkxSZWNvcmQoUmVj
b3JkJiYgcmVjb3JkKQorUmVjb3JkRGF0YSYgQ2FjaGU6OmFkZFJlY29yZChWZWN0b3I8UmVjb3Jk
RGF0YT4qIHJlY29yZHMsIFJlY29yZCYmIHJlY29yZCkKIHsKLSAgICBhdXRvIGtleSA9IGNvbXB1
dGVLZXlVUkwocmVjb3JkLnJlcXVlc3QudXJsKCkpOwotICAgIEFTU0VSVCghbV9yZWNvcmRzLmNv
bnRhaW5zKGtleSkpOwotCi0gICAgVmVjdG9yPFJlY29yZD4gbmV3UmVjb3JkczsKLSAgICBuZXdS
ZWNvcmRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoMSk7Ci0gICAgbmV3UmVjb3Jkcy51bmNoZWNr
ZWRBcHBlbmQoV1RGTW92ZShyZWNvcmQpKTsKLSAgICByZXR1cm4gbV9yZWNvcmRzLnNldChrZXks
IFdURk1vdmUobmV3UmVjb3JkcykpLml0ZXJhdG9yLT52YWx1ZS5sYXN0KCk7CisgICAgaWYgKCFy
ZWNvcmRzKSB7CisgICAgICAgIGF1dG8ga2V5ID0gY29tcHV0ZUtleVVSTChyZWNvcmQucmVxdWVz
dC51cmwoKSk7CisgICAgICAgIEFTU0VSVCghbV9yZWNvcmRzLmNvbnRhaW5zKGtleSkpOworICAg
ICAgICByZWNvcmRzID0gJm1fcmVjb3Jkcy5zZXQoa2V5LCBWZWN0b3I8UmVjb3JkRGF0YT4geyB9
KS5pdGVyYXRvci0+dmFsdWU7CisgICAgfQorICAgIHJlY29yZHMtPmFwcGVuZCh0b1JlY29yZERh
dGEoV1RGTW92ZShyZWNvcmQpKSk7CisgICAgcmV0dXJuIHJlY29yZHMtPmxhc3QoKTsKIH0KIAot
VmVjdG9yPFJlY29yZD4qIENhY2hlOjpyZWNvcmRzRnJvbVVSTChjb25zdCBVUkwmIHVybCkKK1Zl
Y3RvcjxSZWNvcmREYXRhPiogQ2FjaGU6OnJlY29yZHNGcm9tVVJMKGNvbnN0IFVSTCYgdXJsKQog
ewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX3JlY29yZHMuZmluZChjb21wdXRlS2V5VVJMKHVybCkp
OwogICAgIGlmIChpdGVyYXRvciA9PSBtX3JlY29yZHMuZW5kKCkpCkBAIC0xNzgsNyArMjE1LDcg
QEAgVmVjdG9yPFJlY29yZD4qIENhY2hlOjpyZWNvcmRzRnJvbVVSTChjb25zdCBVUkwmIHVybCkK
ICAgICByZXR1cm4gJml0ZXJhdG9yLT52YWx1ZTsKIH0KIAotY29uc3QgVmVjdG9yPFJlY29yZD4q
IENhY2hlOjpyZWNvcmRzRnJvbVVSTChjb25zdCBVUkwmIHVybCkgY29uc3QKK2NvbnN0IFZlY3Rv
cjxSZWNvcmREYXRhPiogQ2FjaGU6OnJlY29yZHNGcm9tVVJMKGNvbnN0IFVSTCYgdXJsKSBjb25z
dAogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX3JlY29yZHMuZmluZChjb21wdXRlS2V5VVJMKHVy
bCkpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX3JlY29yZHMuZW5kKCkpCkBAIC0yMDEsMTMgKzIz
OCw4IEBAIHZvaWQgQ2FjaGU6OnB1dChWZWN0b3I8UmVjb3JkPiYmIHJlY29yZHMsIFJlY29yZElk
ZW50aWZpZXJzQ2FsbGJhY2smJiBjYWxsYmFjaykKICAgICAgICAgICAgIHJlY29yZElkZW50aWZp
ZXJzLnVuY2hlY2tlZEFwcGVuZChyZWNvcmQuaWRlbnRpZmllcik7CiAKICAgICAgICAgICAgIHNo
b3VsZFdyaXRlUmVjb3JkTGlzdCA9IHRydWU7Ci0gICAgICAgICAgICBpZiAoIXNhbWVVUkxSZWNv
cmRzKSB7Ci0gICAgICAgICAgICAgICAgYXV0byYgcmVjb3JkVG9Xcml0ZSA9IGFkZE5ld1VSTFJl
Y29yZChXVEZNb3ZlKHJlY29yZCkpOwotICAgICAgICAgICAgICAgIHdyaXRlUmVjb3JkVG9EaXNr
KHJlY29yZFRvV3JpdGUpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBz
YW1lVVJMUmVjb3Jkcy0+YXBwZW5kKFdURk1vdmUocmVjb3JkKSk7Ci0gICAgICAgICAgICAgICAg
d3JpdGVSZWNvcmRUb0Rpc2soc2FtZVVSTFJlY29yZHMtPmxhc3QoKSk7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICBhdXRvJiByZWNvcmRUb1dyaXRlID0gYWRkUmVjb3JkKHNhbWVVUkxSZWNv
cmRzLCBXVEZNb3ZlKHJlY29yZCkpOworICAgICAgICAgICAgd3JpdGVSZWNvcmRUb0Rpc2socmVj
b3JkVG9Xcml0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBhdXRvIGlkZW50aWZp
ZXIgPSBtYXRjaGluZ1JlY29yZHNbMF07CiAgICAgICAgICAgICBhdXRvIHBvc2l0aW9uID0gc2Ft
ZVVSTFJlY29yZHMtPmZpbmRNYXRjaGluZyhbJl0oY29uc3QgYXV0byYgaXRlbSkgeyByZXR1cm4g
aXRlbS5pZGVudGlmaWVyID09IGlkZW50aWZpZXI7IH0pOwpAQCAtMjE1LDExICsyNDcsMTQgQEAg
dm9pZCBDYWNoZTo6cHV0KFZlY3RvcjxSZWNvcmQ+JiYgcmVjb3JkcywgUmVjb3JkSWRlbnRpZmll
cnNDYWxsYmFjayYmIGNhbGxiYWNrKQogICAgICAgICAgICAgaWYgKHBvc2l0aW9uICE9IG5vdEZv
dW5kKSB7CiAgICAgICAgICAgICAgICAgYXV0byYgZXhpc3RpbmdSZWNvcmQgPSAoKnNhbWVVUkxS
ZWNvcmRzKVtwb3NpdGlvbl07CiAgICAgICAgICAgICAgICAgcmVjb3JkSWRlbnRpZmllcnMudW5j
aGVja2VkQXBwZW5kKGlkZW50aWZpZXIpOwotICAgICAgICAgICAgICAgIGV4aXN0aW5nUmVjb3Jk
LnJlc3BvbnNlSGVhZGVyc0d1YXJkID0gcmVjb3JkLnJlc3BvbnNlSGVhZGVyc0d1YXJkOwotICAg
ICAgICAgICAgICAgIGV4aXN0aW5nUmVjb3JkLnJlc3BvbnNlID0gV1RGTW92ZShyZWNvcmQucmVz
cG9uc2UpOwotICAgICAgICAgICAgICAgIGV4aXN0aW5nUmVjb3JkLnJlc3BvbnNlQm9keSA9IFdU
Rk1vdmUocmVjb3JkLnJlc3BvbnNlQm9keSk7CiAgICAgICAgICAgICAgICAgKytleGlzdGluZ1Jl
Y29yZC51cGRhdGVSZXNwb25zZUNvdW50ZXI7CiAKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTog
SGFuZGxlIHRoZSBjYXNlIHdoZXJlIGRhdGEgaXMgbnVsbC4KKyAgICAgICAgICAgICAgICBBU1NF
UlQoZXhpc3RpbmdSZWNvcmQuZGF0YSk7CisgICAgICAgICAgICAgICAgZXhpc3RpbmdSZWNvcmQu
ZGF0YS0+cmVzcG9uc2VIZWFkZXJzR3VhcmQgPSByZWNvcmQucmVzcG9uc2VIZWFkZXJzR3VhcmQ7
CisgICAgICAgICAgICAgICAgZXhpc3RpbmdSZWNvcmQuZGF0YS0+cmVzcG9uc2UgPSBXVEZNb3Zl
KHJlY29yZC5yZXNwb25zZSk7CisgICAgICAgICAgICAgICAgZXhpc3RpbmdSZWNvcmQuZGF0YS0+
cmVzcG9uc2VCb2R5ID0gV1RGTW92ZShyZWNvcmQucmVzcG9uc2VCb2R5KTsKKyAgICAgICAgICAg
ICAgICB1cGRhdGVWYXJ5SW5mb3JtYXRpb24oZXhpc3RpbmdSZWNvcmQpOwogICAgICAgICAgICAg
ICAgIHdyaXRlUmVjb3JkVG9EaXNrKGV4aXN0aW5nUmVjb3JkKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQpAQCAtMjc1LDEyICszMTAsMTIgQEAgdm9pZCBDYWNoZTo6d3JpdGVSZWNvcmRzTGlz
dChDb21wbGV0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKICAgICBjYWxsYmFjayhzdGQ6Om51bGxv
cHQpOwogfQogCi12b2lkIENhY2hlOjp3cml0ZVJlY29yZFRvRGlzayhSZWNvcmQmIHJlY29yZCkK
K3ZvaWQgQ2FjaGU6OndyaXRlUmVjb3JkVG9EaXNrKFJlY29yZERhdGEmKQogewogICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgdGhpcy4KIH0KIAotdm9pZCBDYWNoZTo6cmVtb3ZlUmVjb3JkRnJvbURp
c2soUmVjb3JkJiByZWNvcmQpCit2b2lkIENhY2hlOjpyZW1vdmVSZWNvcmRGcm9tRGlzayhSZWNv
cmREYXRhJikKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNh
Y2hlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVu
Z2luZUNhY2hlLmgKaW5kZXggYTY0NDVlMTUxMDcxZTMxNjlkZTRkMWIzYjgxMjZkYzU4Y2M0OTgx
OS4uYzlmMGQ4MGU1NGI3NmUyMDQyZTEzYzllNDA1YzlkNTUyNzNkMTI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNo
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdl
RW5naW5lQ2FjaGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIk5ldHdvcmtDYWNoZUtleS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRE9NQ2FjaGVFbmdpbmUu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CkBAIC0zNSw2ICszNiwzMSBAQCBuYW1lc3BhY2UgQ2FjaGVTdG9yYWdlIHsKIAogY2xhc3Mg
Q2FjaGVzOwogCitzdHJ1Y3QgUmVjb3JkRGF0YSB7CisgICAgTmV0d29ya0NhY2hlOjpLZXkga2V5
OworICAgIGRvdWJsZSBpbnNlcnRpb25UaW1lIHsgMCB9OworCisgICAgdWludDY0X3QgaWRlbnRp
ZmllciB7IDAgfTsKKyAgICB1aW50NjRfdCB1cGRhdGVSZXNwb25zZUNvdW50ZXIgeyAwIH07CisK
KyAgICBXZWJDb3JlOjpVUkwgdXJsOworICAgIGJvb2wgaGFzVmFyeVN0YXIgeyBmYWxzZSB9Owor
ICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHZhcnlIZWFkZXJzOworCisgICAgc3RydWN0IERh
dGEgeworICAgICAgICBXZWJDb3JlOjpGZXRjaEhlYWRlcnM6Okd1YXJkIHJlcXVlc3RIZWFkZXJz
R3VhcmQ7CisgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OworICAgICAg
ICBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9uczsKKyAgICAgICAgU3RyaW5nIHJlZmVycmVy
OworCisgICAgICAgIFdlYkNvcmU6OkZldGNoSGVhZGVyczo6R3VhcmQgcmVzcG9uc2VIZWFkZXJz
R3VhcmQ7CisgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2U7CisgICAg
ICAgIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJvZHkgcmVzcG9uc2VCb2R5Owor
ICAgIH07CisKKyAgICBzdGQ6Om9wdGlvbmFsPERhdGE+IGRhdGE7Cit9OworCiBjbGFzcyBDYWNo
ZSB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBTdGF0ZSB7IFVuaW5pdGlhbGl6ZWQsIE9wZW5p
bmcsIE9wZW4gfTsKQEAgLTU2LDIyICs4MiwyMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhck1l
bW9yeVJlcHJlc2VudGF0aW9uKCk7CiAgCiBwcml2YXRlOgotICAgIFZlY3RvcjxXZWJDb3JlOjpE
T01DYWNoZUVuZ2luZTo6UmVjb3JkPiogcmVjb3Jkc0Zyb21VUkwoY29uc3QgV2ViQ29yZTo6VVJM
Jik7Ci0gICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmQ+KiBy
ZWNvcmRzRnJvbVVSTChjb25zdCBXZWJDb3JlOjpVUkwmKSBjb25zdDsKLSAgICBXZWJDb3JlOjpE
T01DYWNoZUVuZ2luZTo6UmVjb3JkJiBhZGROZXdVUkxSZWNvcmQoV2ViQ29yZTo6RE9NQ2FjaGVF
bmdpbmU6OlJlY29yZCYmKTsKKyAgICBWZWN0b3I8UmVjb3JkRGF0YT4qIHJlY29yZHNGcm9tVVJM
KGNvbnN0IFdlYkNvcmU6OlVSTCYpOworICAgIGNvbnN0IFZlY3RvcjxSZWNvcmREYXRhPiogcmVj
b3Jkc0Zyb21VUkwoY29uc3QgV2ViQ29yZTo6VVJMJikgY29uc3Q7CisgICAgUmVjb3JkRGF0YSYg
YWRkUmVjb3JkKFZlY3RvcjxSZWNvcmREYXRhPiosIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpS
ZWNvcmQmJik7CiAKICAgICB2b2lkIGZpbmlzaE9wZW5pbmcoV2ViQ29yZTo6RE9NQ2FjaGVFbmdp
bmU6OkNvbXBsZXRpb25DYWxsYmFjayYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkRPTUNhY2hl
RW5naW5lOjpFcnJvcj4mJik7CiAKICAgICB2b2lkIHJlYWRSZWNvcmRzTGlzdChXZWJDb3JlOjpE
T01DYWNoZUVuZ2luZTo6Q29tcGxldGlvbkNhbGxiYWNrJiYpOwogICAgIHZvaWQgd3JpdGVSZWNv
cmRzTGlzdChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q29tcGxldGlvbkNhbGxiYWNrJiYpOwot
ICAgIHZvaWQgd3JpdGVSZWNvcmRUb0Rpc2soV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29y
ZCYpOwotICAgIHZvaWQgcmVtb3ZlUmVjb3JkRnJvbURpc2soV2ViQ29yZTo6RE9NQ2FjaGVFbmdp
bmU6OlJlY29yZCYpOworICAgIHZvaWQgd3JpdGVSZWNvcmRUb0Rpc2soUmVjb3JkRGF0YSYpOwor
ICAgIHZvaWQgcmVtb3ZlUmVjb3JkRnJvbURpc2soUmVjb3JkRGF0YSYpOwogCiAgICAgQ2FjaGVz
JiBtX2NhY2hlczsKICAgICBTdGF0ZSBtX3N0YXRlOwogICAgIHVpbnQ2NF90IG1faWRlbnRpZmll
ciB7IDAgfTsKICAgICBTdHJpbmcgbV9uYW1lOwotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8
V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4+IG1fcmVjb3JkczsKKyAgICBIYXNoTWFw
PFN0cmluZywgVmVjdG9yPFJlY29yZERhdGE+PiBtX3JlY29yZHM7CiAgICAgdWludDY0X3QgbV9u
ZXh0UmVjb3JkSWRlbnRpZmllciB7IDAgfTsKICAgICBWZWN0b3I8V2ViQ29yZTo6RE9NQ2FjaGVF
bmdpbmU6OkNvbXBsZXRpb25DYWxsYmFjaz4gbV9wZW5kaW5nT3BlbmluZ0NhbGxiYWNrczsKIH07
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>