<?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>162258</bug_id>
          
          <creation_ts>2016-09-19 23:28:09 -0700</creation_ts>
          <short_desc>CachedResourceRequest should store a SecurityOrigin</short_desc>
          <delta_ts>2016-09-22 01:59:32 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>162151</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1231555</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-19 23:28:09 -0700</bug_when>
    <thetext>That way, it will be able to pass it to CachedResource at construction time.
Currently it is based on Origin header or Document origin.
In the first case, we lose some information like universal access.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1231562</commentid>
    <comment_count>1</comment_count>
      <attachid>289332</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-20 00:27:54 -0700</bug_when>
    <thetext>Created attachment 289332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1231570</commentid>
    <comment_count>2</comment_count>
      <attachid>289337</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-20 01:10:20 -0700</bug_when>
    <thetext>Created attachment 289337
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1231575</commentid>
    <comment_count>3</comment_count>
      <attachid>289338</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-20 01:56:18 -0700</bug_when>
    <thetext>Created attachment 289338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1231641</commentid>
    <comment_count>4</comment_count>
      <attachid>289338</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-09-20 08:37:57 -0700</bug_when>
    <thetext>Comment on attachment 289338
Patch

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

&gt; Source/WebCore/loader/cache/CachedResourceRequest.h:81
&gt; +    RefPtr&lt;SecurityOrigin&gt; m_origin;

In what scenarios can this be null (other than when we release it).  Can we require setting the origin in the constructor?  Also, should this really be a SecurityOrigin, or would a SecuirtyOriginData work (we need to establish clear rules on this, cc. andersca)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1231655</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-20 08:52:12 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 289338 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=289338&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/cache/CachedResourceRequest.h:81
&gt; &gt; +    RefPtr&lt;SecurityOrigin&gt; m_origin;
&gt; 
&gt; In what scenarios can this be null (other than when we release it).  Can we
&gt; require setting the origin in the constructor?

It is null when fetching main resources during navigation.
We could require setting it within the constructor but most of the time it will be the context securityOrigin.

In the fetch spec, the origin is either an origin or set to the special &quot;client&quot; value, which we represents as a null RefPtr. In both spec and implementation, this is the default value.

&gt; Also, should this really be
&gt; a SecurityOrigin, or would a SecuirtyOriginData work (we need to establish
&gt; clear rules on this, cc. andersca)?

Looking at SecurityOriginData, it seems it is a tuple (protocol, host, port)
As illustrated by the modified test, it is important to keep information such as m_universalAccess which AIUI SecurityOriginData is not aware.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1232063</commentid>
    <comment_count>6</comment_count>
      <attachid>289451</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-21 07:36:11 -0700</bug_when>
    <thetext>Created attachment 289451
Rebasing after bug 162260</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1232381</commentid>
    <comment_count>7</comment_count>
      <attachid>289451</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-22 01:59:27 -0700</bug_when>
    <thetext>Comment on attachment 289451
Rebasing after bug 162260

Clearing flags on attachment: 289451

Committed r206255: &lt;http://trac.webkit.org/changeset/206255&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1232382</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-22 01:59:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289332</attachid>
            <date>2016-09-20 00:27:54 -0700</date>
            <delta_ts>2016-09-20 01:10:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162258-20160920092507.patch</filename>
            <type>text/plain</type>
            <size>16877</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M1OWE5NTIxZDQ5NjA0
NmE4MWFmZTE4YWZlYWUxNDhlNmRkYTgwYi4uNjZkOTkzZTExM2Q3NjRlODMzYTliZWU5MzM1M2I5
YjU3N2Q4ZDFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTA5LTIwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3Qgc2hvdWxkIHN0b3JlIGEgU2VjdXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjI1OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbG9jYWwvc2NyaXB0
LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2NoZW1lLmh0bWwKKworICAgICAgICBQYXNzaW5nIFNl
Y3VyaXR5T3JpZ2luIGZyb20gbG9hZGVyIGNsaWVudHMgdG8gQ2FjaGVkUmVzb3VyY2UgdGhyb3Vn
aCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisgICAgICAgIFRoaXMgZW5zdXJlcyB0aGF0IHNwZWNp
ZmljIG9yaWdpbiBwcm9wZXJ0aWVzIGxpa2UgdW5pdmVyc2FsIGFjY2VzcyBhcmUgd2VsbCBwcmVz
ZXJ2ZWQuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlcXVlc3Qp
OiBTZXQgb3JpZ2luIHRvIHRoZSByZXF1ZXN0LgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Q2FjaGVk
UmVzb3VyY2UpOiBTZXR0aW5nIG9yaWdpbiBmcm9tIHRoZSByZXF1ZXN0LgorICAgICAgICBDb21w
dXRpbmcgQ09SUyBzdGF0ZSBiYXNlZCBvbiB0aGF0IG9yaWdpbi4KKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjpsb2FkKTogUmVtb3Zpbmcgb3JpZ2luIGNvbXB1dGF0aW9uLgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWRGcm9tKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Y29tcHV0ZU9yaWdpbik6IERlbGV0ZWQuCisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjp1cGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50UmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJlcGFyZUZldGNoKTogSW50
cm9kdWNlZCB0byBpbXBsZW1lbnQgc3RlcCAxIHRvIDcgb2YgaHR0cHM6Ly9mZXRjaC5zcGVjLndo
YXR3Zy5vcmcvI2ZldGNoaW5nLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEFzUG90
ZW50aWFsbHlDcm9zc09yaWdpbik6IFN0b3Jpbmcgb3JpZ2luLgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlUmVxdWVzdDo6c2V0T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlUmVxdWVzdDo6cmVsZWFzZU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6Om9yaWdpbik6CisKIDIwMTYtMDktMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTFNvdXJjZUVsZW1lbnQu
cHJvdG90eXBlLnNpemVzIC8gSFRNTFNvdXJjZUVsZW1lbnQucHJvdG90eXBlLnNyY3NldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApp
bmRleCBhNDhiYzc4MmQxZmI4ZjY3MWI5MzA1MTUzNzA0Y2FiOTEzN2NmZDA5Li5iMTE5NzNkYjVk
OWZlN2MxZmIyYjRmYWI5NmNlNjJkNGEwMDQyNjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMzcwLDYgKzM3MCw3IEBA
IHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBTZWN1cml0eUNoCiAgICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLnJlc291cmNlVGltaW5nRW5hYmxlZCgpKQogICAgICAgICAg
ICAgbmV3UmVxdWVzdC5zZXRJbml0aWF0b3IobV9vcHRpb25zLmluaXRpYXRvcik7CiAgICAgICAg
IG5ld1JlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldEFsbG93Q29va2llcyhtX29w
dGlvbnMuYWxsb3dDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAgICAg
ICAgbmV3UmVxdWVzdC5zZXRPcmlnaW4oJnNlY3VyaXR5T3JpZ2luKCkpOwogCiAgICAgICAgIEFT
U0VSVCghbV9yZXNvdXJjZSk7CiAgICAgICAgIC8vIFdlIGNyZWF0ZSBhbiBVUkwgaGVyZSBhcyB0
aGUgcmVxdWVzdCB3aWxsIGJlIG1vdmVkIGluIHJlcXVlc3RSYXdSZXNvdXJjZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggMzczZmRlNWQy
ZGNlYmZkOWJkMTc0NGJiYWY5ODk5NmIyNWFmMmRiMi4uODZkOGJiMTgxYmViYmJkNGI3NTU0Nzkx
NTZmZjZiZDkxODgzYjAxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCkBAIC0xMTksNiArMTE5LDcgQEAgQ2FjaGVkUmVzb3VyY2U6OkNhY2hl
ZFJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgU2Vz
c2kKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fbG9hZFByaW9yaXR5KGRl
ZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSh0eXBlKSkKICAgICAsIG1fcmVzcG9uc2VUaW1l
c3RhbXAoc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkpCisgICAgLCBtX29yaWdpbihy
ZXF1ZXN0LnJlbGVhc2VPcmlnaW4oKSkKICAgICAsIG1fbGFzdERlY29kZWRBY2Nlc3NUaW1lKDAp
CiAgICAgLCBtX2xvYWRGaW5pc2hUaW1lKDApCiAgICAgLCBtX2VuY29kZWRTaXplKDApCkBAIC0x
NDYsNiArMTQ3LDEzIEBAIENhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBUeXBlIHR5cGUsIFNlc3NpCiAjaWZuZGVmIE5ERUJVRwog
ICAgIGNhY2hlZFJlc291cmNlTGVha0NvdW50ZXIuaW5jcmVtZW50KCk7CiAjZW5kaWYKKyAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGhhdmUgYSBiZXR0ZXIgd2F5IG9mIGNoZWNraW5nIGZvciBOYXZp
Z2F0aW9uIGxvYWRzLCBtYXliZSBGZXRjaE1vZGU6Ok9wdGlvbnM6Ok5hdmlnYXRlLgorICAgIEFT
U0VSVChtX29yaWdpbiB8fCBtX3R5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSk7
CisKKyAgICBpZiAobV9vcHRpb25zLm1vZGUgIT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3Jp
Z2luICYmIG1fb3JpZ2luCisgICAgICAgICYmICEobV9yZXNvdXJjZVJlcXVlc3QudXJsKCkucHJv
dG9jb2xJc0RhdGEoKSAmJiBtX29wdGlvbnMuc2FtZU9yaWdpbkRhdGFVUkxGbGFnID09IFNhbWVP
cmlnaW5EYXRhVVJMRmxhZzo6U2V0KQorICAgICAgICAmJiAhbV9vcmlnaW4tPmNhblJlcXVlc3Qo
bV9yZXNvdXJjZVJlcXVlc3QudXJsKCkpKQorICAgICAgICBzZXRDcm9zc09yaWdpbigpOwogCiAg
ICAgaWYgKCFtX3Jlc291cmNlUmVxdWVzdC51cmwoKS5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtMjQyLDI0ICsyNTAsNiBAQCB2b2lkIENhY2hlZFJlc291cmNl
OjphZGRBZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGxvYWRl
cikKICAgICBhZGRBZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnNUb1JlcXVlc3QobV9yZXNvdXJjZVJl
cXVlc3QsIGxvYWRlciwgKnRoaXMpOwogfQogCi12b2lkIENhY2hlZFJlc291cmNlOjpjb21wdXRl
T3JpZ2luKENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIpCi17Ci0gICAgaWYgKHR5cGUoKSA9
PSBNYWluUmVzb3VyY2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVChsb2FkZXIuZG9j
dW1lbnQoKSk7Ci0gICAgaWYgKG1fcmVzb3VyY2VSZXF1ZXN0Lmhhc0hUVFBPcmlnaW4oKSkKLSAg
ICAgICAgbV9vcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX3Jlc291
cmNlUmVxdWVzdC5odHRwT3JpZ2luKCkpOwotICAgIGVsc2UKLSAgICAgICAgbV9vcmlnaW4gPSBs
b2FkZXIuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKLSAgICBBU1NFUlQobV9vcmlnaW4p
OwotCi0gICAgaWYgKCEobV9yZXNvdXJjZVJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0RhdGEoKSAm
JiBtX29wdGlvbnMuc2FtZU9yaWdpbkRhdGFVUkxGbGFnID09IFNhbWVPcmlnaW5EYXRhVVJMRmxh
Zzo6U2V0KSAmJiAhbV9vcmlnaW4tPmNhblJlcXVlc3QobV9yZXNvdXJjZVJlcXVlc3QudXJsKCkp
KQotICAgICAgICBzZXRDcm9zc09yaWdpbigpOwotCi0gICAgYWRkQWRkaXRpb25hbFJlcXVlc3RI
ZWFkZXJzKGxvYWRlcik7Ci19Ci0KIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVkUmVz
b3VyY2VMb2FkZXImIGNhY2hlZFJlc291cmNlTG9hZGVyKQogewogICAgIGlmICghY2FjaGVkUmVz
b3VyY2VMb2FkZXIuZnJhbWUoKSkgewpAQCAtMzIzLDcgKzMxMyw3IEBAIHZvaWQgQ2FjaGVkUmVz
b3VyY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGNhY2hlZFJlc291cmNlTG9hZGVyKQog
I2VuZGlmCiAgICAgbV9yZXNvdXJjZVJlcXVlc3Quc2V0UHJpb3JpdHkobG9hZFByaW9yaXR5KCkp
OwogCi0gICAgY29tcHV0ZU9yaWdpbihjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgYWRkQWRk
aXRpb25hbFJlcXVlc3RIZWFkZXJzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKIAogICAgIC8vIEZJ
WE1FOiBJdCdzIHVuZm9ydHVuYXRlIHRoYXQgdGhlIGNhY2hlIGxheWVyIGFuZCBiZWxvdyBnZXQg
dG8ga25vdyBhbnl0aGluZyBhYm91dCBmcmFnbWVudCBpZGVudGlmaWVycy4KICAgICAvLyBXZSBz
aG91bGQgbG9vayBpbnRvIHJlbW92aW5nIHRoZSBleHBlY3RhdGlvbiBvZiB0aGF0IGtub3dsZWRn
ZSBmcm9tIHRoZSBwbGF0Zm9ybSBuZXR3b3JrIHN0YWNrcy4KQEAgLTM0NCwxNCArMzM0LDEyIEBA
IHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGNhY2hlZFJl
c291cmNlTG9hZGVyKQogICAgIG1fc3RhdHVzID0gUGVuZGluZzsKIH0KIAotdm9pZCBDYWNoZWRS
ZXNvdXJjZTo6bG9hZEZyb20oY29uc3QgQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBDYWNoZWRS
ZXNvdXJjZUxvYWRlciYgY2FjaGVkUmVzb3VyY2VMb2FkZXIpCit2b2lkIENhY2hlZFJlc291cmNl
Ojpsb2FkRnJvbShjb25zdCBDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCiB7CiAgICAgQVNTRVJU
KHVybCgpID09IHJlc291cmNlLnVybCgpKTsKICAgICBBU1NFUlQodHlwZSgpID09IHJlc291cmNl
LnR5cGUoKSk7CiAgICAgQVNTRVJUKHJlc291cmNlLnN0YXR1cygpID09IFN0YXR1czo6Q2FjaGVk
KTsKIAotICAgIGNvbXB1dGVPcmlnaW4oY2FjaGVkUmVzb3VyY2VMb2FkZXIpOwotCiAgICAgaWYg
KGlzQ3Jvc3NPcmlnaW4oKSAmJiBtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6
OkNvcnMpIHsKICAgICAgICAgQVNTRVJUKG1fb3JpZ2luKTsKICAgICAgICAgU3RyaW5nIGVycm9y
TWVzc2FnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgK
aW5kZXggZGM1ZjlhMmZiZTMyYWI4ZDQwMDg0YjFkMWRkNmI1OGNmZDcwNWI3Yy4uMWE5NTU1ZTNl
OTgzY2U5NzJkOTE5MDYzZTI0NGM5M2E0OTk0MTE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTIxMSw3ICsyMTEsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0NsZWFuKCkgY29uc3Q7CiAgICAgUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRpbmcg
cmVzcG9uc2VUYWludGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VUYWludGluZzsgfQog
Ci0gICAgdm9pZCBsb2FkRnJvbShjb25zdCBDYWNoZWRSZXNvdXJjZSYsIENhY2hlZFJlc291cmNl
TG9hZGVyJik7CisgICAgdm9pZCBsb2FkRnJvbShjb25zdCBDYWNoZWRSZXNvdXJjZSYpOwogCiAg
ICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luLmdldCgp
OyB9CiAKQEAgLTMxNCw3ICszMTQsNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6Y2hyb25vOjptaWNy
b3NlY29uZHMgZnJlc2huZXNzTGlmZXRpbWUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGNvbnN0
OwogCiAgICAgdm9pZCBhZGRBZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnMoQ2FjaGVkUmVzb3VyY2VM
b2FkZXImKTsKLSAgICB2b2lkIGNvbXB1dGVPcmlnaW4oQ2FjaGVkUmVzb3VyY2VMb2FkZXImKTsK
ICAgICB2b2lkIGZhaWxCZWZvcmVTdGFydGluZygpOwogCiAgICAgSGFzaE1hcDxDYWNoZWRSZXNv
dXJjZUNsaWVudCosIHN0ZDo6dW5pcXVlX3B0cjxDYWxsYmFjaz4+IG1fY2xpZW50c0F3YWl0aW5n
Q2FsbGJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcAppbmRleCBhYzAyNzI1M2Q3NGVkZTM4YTA1NTdmMjM2NGRlMzkwYjgy
OTY1ODM5Li40NTQ3MjNiNzVkN2Y1MGY5OTc4MmMxNmUwMmM3NWJjMjkwNjZlNWIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTU4MSw3ICs1ODEsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJj
ZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnVwZGF0ZUNhY2hlZFJlc291cmNlVwogICAgIH0KIAog
ICAgIGF1dG8gcmVzb3VyY2VIYW5kbGUgPSBjcmVhdGVSZXNvdXJjZShyZXNvdXJjZS50eXBlKCks
IFdURk1vdmUocmVxdWVzdCksIHNlc3Npb25JRCgpKTsKLSAgICByZXNvdXJjZUhhbmRsZS0+bG9h
ZEZyb20ocmVzb3VyY2UsICp0aGlzKTsKKyAgICByZXNvdXJjZUhhbmRsZS0+bG9hZEZyb20ocmVz
b3VyY2UpOwogICAgIHJldHVybiByZXNvdXJjZUhhbmRsZTsKIH0KIApAQCAtNTk1LDYgKzU5NSwx
NCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbG9nTWVtb3J5Q2FjaGVSZXNvdXJjZVJlcXVlc3QoRnJh
bWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRlcwogICAgICAgICBmcmFtZS0+cGFnZSgpLT5kaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VSZXF1ZXN0S2V5KCksIGRlc2NyaXB0aW9uLCB2YWx1
ZSwgU2hvdWxkU2FtcGxlOjpZZXMpOwogfQogCit2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpw
cmVwYXJlRmV0Y2goQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQoreworICAgIGlmICghcmVxdWVzdC5vcmlnaW4oKSAmJiBkb2N1bWVudCgp
KQorICAgICAgICByZXF1ZXN0LnNldE9yaWdpbihkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
KTsKKyAgICAvLyBUaGVyZSBzaG91bGQgYmUgYW4gT3JpZ2luIGV4Y2VwdCBpbiBjYXNlIG9mIE5h
dmlnYXRpb24uCisgICAgQVNTRVJUKHJlcXVlc3Qub3JpZ2luKCkgfHwgdHlwZSA9PSBDYWNoZWRS
ZXNvdXJjZTo6VHlwZTo6TWFpblJlc291cmNlKTsKK30KKwogQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkK
IHsKICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkKQEAgLTYx
MCw2ICs2MTgsOCBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgIGlmICghdXJsLmlzVmFs
aWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyAgICBwcmVwYXJlRmV0Y2godHlwZSwg
cmVxdWVzdCk7CisKICAgICBpZiAoIWNhblJlcXVlc3QodHlwZSwgdXJsLCByZXF1ZXN0Lm9wdGlv
bnMoKSwgcmVxdWVzdC5mb3JQcmVsb2FkKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aAppbmRleCA1YWY3MWQyYWFhMmMzMzAzOWFlYzBlNmQ4ZmE3ODEyMTc4Yjc3NDc5Li5kNDlhODcx
MjdlZTBlYWY3YmViYTdiZmVhNGMzMjVjMmEzOGRiYTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApAQCAtMTQ5LDYgKzE0OSw3
IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ2FjaGVkUmVzb3VyY2VMb2FkZXIoRG9jdW1lbnRM
b2FkZXIqKTsKIAogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1
ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYm
KTsKKyAgICB2b2lkIHByZXBhcmVGZXRjaChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0Jik7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+
IHJldmFsaWRhdGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgQ2FjaGVkUmVzb3Vy
Y2UmKTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gbG9hZFJlc291
cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJik7CiAgICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlcXVlc3RQcmVsb2FkKENhY2hl
ZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4
IGRjNTRiZGYxMDQ1NjE3ZDNhOGNjNzQ5MTIxYzc0Zjk3OTE1ZmIyMTcuLjQ0YWU4NjQ0OTM2YWRh
ZTk4OGQwYWFjN2RmN2U1MDc5MTQ4NmFlYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCkBAIC05MSwxMyArOTEsMTYg
QEAgY29uc3QgQXRvbWljU3RyaW5nJiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5h
bWUoKSBjb25zdAogdm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEFzUG90ZW50aWFsbHlD
cm9zc09yaWdpbihjb25zdCBTdHJpbmcmIG1vZGUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAg
ICBBU1NFUlQobV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMpOwor
ICAgIEFTU0VSVChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKTsKKworICAgIG1fb3JpZ2luID0g
ZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKTsKKwogICAgIGlmIChtb2RlLmlzTnVsbCgpKQogICAg
ICAgICByZXR1cm47CiAgICAgbV9vcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNv
cnM7CiAgICAgbV9vcHRpb25zLmNyZWRlbnRpYWxzID0gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UobW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFs
czo6SW5jbHVkZSA6IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW47CiAgICAg
bV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMgPSBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShtb2RlLCAidXNlLWNyZWRlbnRpYWxzIikgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9O
b3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwogCi0gICAgQVNTRVJUKGRvY3VtZW50LnNlY3VyaXR5
T3JpZ2luKCkpOwogICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKG1fcmVzb3VyY2VS
ZXF1ZXN0LCAqZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSwgbV9vcHRpb25zLmFsbG93Q3JlZGVu
dGlhbHMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggODI3ZWJiYmU1ODY2NzRlYmJhNzY5OGI0OTc4M2FkM2Q4
ZmRmYzAyMC4uYjNlNDQ5NDdhNzVmZTIzMGM5NjcwMjc0MWNkNzM2MGU0Mjk0MzU3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlTG9hZFByaW9yaXR5LmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1
ZXN0LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKQEAgLTY0LDYgKzY1LDkg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2FjaGluZ1BvbGljeShDYWNoaW5nUG9saWN5IHBvbGlj
eSkgeyBtX29wdGlvbnMuY2FjaGluZ1BvbGljeSA9IHBvbGljeTsgfQogCiAgICAgdm9pZCBzZXRB
c1BvdGVudGlhbGx5Q3Jvc3NPcmlnaW4oY29uc3QgU3RyaW5nJiwgRG9jdW1lbnQmKTsKKyAgICB2
b2lkIHNldE9yaWdpbihSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgb3JpZ2luKSB7IEFTU0VSVCgh
bV9vcmlnaW4pOyBtX29yaWdpbiA9IFdURk1vdmUob3JpZ2luKTsgfQorICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gcmVsZWFzZU9yaWdpbigpIHsgcmV0dXJuIFdURk1vdmUobV9vcmlnaW4pOyB9
CisgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luLmdl
dCgpOyB9CiAKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0
OwpAQCAtNzQsNiArNzgsNyBAQCBwcml2YXRlOgogICAgIERlZmVyT3B0aW9uIG1fZGVmZXI7CiAg
ICAgUmVmUHRyPEVsZW1lbnQ+IG1faW5pdGlhdG9yRWxlbWVudDsKICAgICBBdG9taWNTdHJpbmcg
bV9pbml0aWF0b3JOYW1lOworICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTViZGYxYjA4NGY5YjU0OTk4MTg3
NTE0MThkZWU2MzhiOGY4ZjQ3Ny4uYmRlOTk4ZTNlODYyYjM5ZmRjYzQ3OWE5NDYzMzZjZjBmOGQ3
MzZhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA5LTIwICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qgc2hvdWxk
IHN0b3JlIGEgU2VjdXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2MjI1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGVzdCB0byBleHBlY3QgbG9hZCBldmVuIHRob3VnaCBD
T1JTIGNoZWNrcyBzaG91bGQgZmFpbCBhcyB0aGUgZG9jdW1lbnQgb3JpZ2luIGhhcyB1bml2ZXJz
YWwgYWNjZXNzLgorCisgICAgICAgICogaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3Nvcmln
aW4tbG9hZHMtZmFpbC1vcmlnaW4tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2NoZW1lLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3Nv
cmlnaW4tbG9hZHMtZmlsZS1zY2hlbWUuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZhaWwtb3JpZ2luLmh0bWwu
CisKIDIwMTYtMDktMTkgIERldmluIFJvdXNzbyAgPGRjcm91c3NvK3dlYmtpdEBnbWFpbC5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRvcHQgT2JqZWN0LmF3YWl0RXZlbnQgaW4gTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2NzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmFpbC1vcmlnaW4tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMt
ZmFpbC1vcmlnaW4tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
YjBiODMwYWEwMGFkNWQ4MTVjN2ViMjI3ODZlNTIxNGUzODJmNTVjLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9j
YWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZhaWwtb3JpZ2luLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gIGlzIG5v
dCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FH
RTogQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3Vy
Y2UgU2hhcmluZyBwb2xpY3kuCi1UaGlzIHRlc3QgZmFpbHMgaWYgdGhlIHNjcmlwdCBsb2FkcyBj
b3JyZWN0bHkuCi0KLVBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9j
YWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZhaWwtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYTZjY2ZhODk5YzA5ZDc5MzE1Nzdi
Y2JmMTU4YTNhNjdkZjE2ZTQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2lu
LWxvYWRzLWZhaWwtb3JpZ2luLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi08
Ym9keT4KLTxwPlRoaXMgdGVzdCBmYWlscyBpZiB0aGUgc2NyaXB0IGxvYWRzIGNvcnJlY3RseS48
L3A+Ci08cHJlPjwvcHJlPgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwotfQotCi1mdW5jdGlvbiBkb25lKG1zZykgewotICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
InByZSIpLmlubmVySFRNTCA9IG1zZzsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfQotCi12YXIgc2NyaXB0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Ci1zY3JpcHQuY3Jvc3NPcmlnaW4gPSAidXNlLWNyZWRl
bnRpYWxzIjsKLS8vIFdlIGFyZSBzZXJ2aW5nIHRoZSB0ZXN0IGZyb20gdGhlIGZpbGVzeXN0ZW0s
IHNvIGl0IHNob3VsZCBmYWlsIGFzIGF1dGhvcml6ZWQgb3JpZ2luIGlzIDEyNy4wLjAuMTo4MDAw
Lgotc2NyaXB0LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2Vz
L2NvcnMtc2NyaXB0LnBocD9jcmVkZW50aWFscz10cnVlIjsKLXNjcmlwdC5vbmxvYWQgPSBmdW5j
dGlvbigpIHsgZG9uZSgiRkFJTCIpOyB9Ci1zY3JpcHQub25lcnJvciA9IGZ1bmN0aW9uKCkgeyBk
b25lKCJQQVNTIik7fQotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOwotPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9z
c29yaWdpbi1sb2Fkcy1maWxlLXNjaGVtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1maWxlLXNjaGVtZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjA1YmJmMzI5NzJjZTVhODM3ZDI1N2ZhYTQyMWRkZGU0ZTdjYTRh
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvc2NyaXB0
LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2NoZW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQg
QEAKK0FMRVJUOiBzY3JpcHQgcmFuLgorVGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGUgc2NyaXB0IGxv
YWRzIGNvcnJlY3RseS4KKworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmlsZS1zY2hlbWUuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2No
ZW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU0MGRkMDQ1NWJhMjU4MWYzN2FhM2VlZmM4NjNjMDg1OGVh
ZTkwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvc2Ny
aXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2NoZW1lLmh0bWwKQEAgLTAsMCArMSwyNCBAQAor
PGJvZHk+Cis8cD5UaGlzIHRlc3QgcGFzc2VzIGlmIHRoZSBzY3JpcHQgbG9hZHMgY29ycmVjdGx5
LjwvcD4KKzxwcmU+PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7Cit9CisKK2Z1bmN0aW9uIGRvbmUobXNnKSB7CisgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigicHJlIikuaW5uZXJIVE1MID0gbXNnOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK3ZhciBzY3JpcHQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKK3NjcmlwdC5jcm9zc09yaWdpbiA9ICJ1c2UtY3Jl
ZGVudGlhbHMiOworLy8gV2UgYXJlIHNlcnZpbmcgdGhlIHRlc3QgZnJvbSB0aGUgZmlsZXN5c3Rl
bSBhbmQgZmlsZSBVUkxzIGFyZSBncmFudGVkIHVuaXZlcnNhbCBhY2Nlc3MuCisvLyBUaGlzIGJ5
cGFzc2VzIENPUlMgY2hlY2tzIGFuZCB3aWxsIGFsbG93IGFjY2VzcyB0byAxMjcuMC4wLjE6ODAw
MC4KK3NjcmlwdC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNl
cy9jb3JzLXNjcmlwdC5waHA/Y3JlZGVudGlhbHM9dHJ1ZSI7CitzY3JpcHQub25sb2FkID0gZnVu
Y3Rpb24oKSB7IGRvbmUoIlBBU1MiKTsgfQorc2NyaXB0Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsg
ZG9uZSgiRkFJTCIpO30KK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKzwvc2Ny
aXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289337</attachid>
            <date>2016-09-20 01:10:20 -0700</date>
            <delta_ts>2016-09-20 01:56:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162258-20160920100733.patch</filename>
            <type>text/plain</type>
            <size>16905</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M1OWE5NTIxZDQ5NjA0
NmE4MWFmZTE4YWZlYWUxNDhlNmRkYTgwYi4uNjZkOTkzZTExM2Q3NjRlODMzYTliZWU5MzM1M2I5
YjU3N2Q4ZDFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTA5LTIwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3Qgc2hvdWxkIHN0b3JlIGEgU2VjdXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjI1OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbG9jYWwvc2NyaXB0
LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2NoZW1lLmh0bWwKKworICAgICAgICBQYXNzaW5nIFNl
Y3VyaXR5T3JpZ2luIGZyb20gbG9hZGVyIGNsaWVudHMgdG8gQ2FjaGVkUmVzb3VyY2UgdGhyb3Vn
aCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisgICAgICAgIFRoaXMgZW5zdXJlcyB0aGF0IHNwZWNp
ZmljIG9yaWdpbiBwcm9wZXJ0aWVzIGxpa2UgdW5pdmVyc2FsIGFjY2VzcyBhcmUgd2VsbCBwcmVz
ZXJ2ZWQuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlcXVlc3Qp
OiBTZXQgb3JpZ2luIHRvIHRoZSByZXF1ZXN0LgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Q2FjaGVk
UmVzb3VyY2UpOiBTZXR0aW5nIG9yaWdpbiBmcm9tIHRoZSByZXF1ZXN0LgorICAgICAgICBDb21w
dXRpbmcgQ09SUyBzdGF0ZSBiYXNlZCBvbiB0aGF0IG9yaWdpbi4KKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjpsb2FkKTogUmVtb3Zpbmcgb3JpZ2luIGNvbXB1dGF0aW9uLgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWRGcm9tKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Y29tcHV0ZU9yaWdpbik6IERlbGV0ZWQuCisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjp1cGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50UmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJlcGFyZUZldGNoKTogSW50
cm9kdWNlZCB0byBpbXBsZW1lbnQgc3RlcCAxIHRvIDcgb2YgaHR0cHM6Ly9mZXRjaC5zcGVjLndo
YXR3Zy5vcmcvI2ZldGNoaW5nLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEFzUG90
ZW50aWFsbHlDcm9zc09yaWdpbik6IFN0b3Jpbmcgb3JpZ2luLgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlUmVxdWVzdDo6c2V0T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlUmVxdWVzdDo6cmVsZWFzZU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6Om9yaWdpbik6CisKIDIwMTYtMDktMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTFNvdXJjZUVsZW1lbnQu
cHJvdG90eXBlLnNpemVzIC8gSFRNTFNvdXJjZUVsZW1lbnQucHJvdG90eXBlLnNyY3NldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApp
bmRleCBhNDhiYzc4MmQxZmI4ZjY3MWI5MzA1MTUzNzA0Y2FiOTEzN2NmZDA5Li5iMTE5NzNkYjVk
OWZlN2MxZmIyYjRmYWI5NmNlNjJkNGEwMDQyNjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMzcwLDYgKzM3MCw3IEBA
IHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBTZWN1cml0eUNoCiAgICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLnJlc291cmNlVGltaW5nRW5hYmxlZCgpKQogICAgICAgICAg
ICAgbmV3UmVxdWVzdC5zZXRJbml0aWF0b3IobV9vcHRpb25zLmluaXRpYXRvcik7CiAgICAgICAg
IG5ld1JlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldEFsbG93Q29va2llcyhtX29w
dGlvbnMuYWxsb3dDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAgICAg
ICAgbmV3UmVxdWVzdC5zZXRPcmlnaW4oJnNlY3VyaXR5T3JpZ2luKCkpOwogCiAgICAgICAgIEFT
U0VSVCghbV9yZXNvdXJjZSk7CiAgICAgICAgIC8vIFdlIGNyZWF0ZSBhbiBVUkwgaGVyZSBhcyB0
aGUgcmVxdWVzdCB3aWxsIGJlIG1vdmVkIGluIHJlcXVlc3RSYXdSZXNvdXJjZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggMzczZmRlNWQy
ZGNlYmZkOWJkMTc0NGJiYWY5ODk5NmIyNWFmMmRiMi4uODZkOGJiMTgxYmViYmJkNGI3NTU0Nzkx
NTZmZjZiZDkxODgzYjAxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCkBAIC0xMTksNiArMTE5LDcgQEAgQ2FjaGVkUmVzb3VyY2U6OkNhY2hl
ZFJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgU2Vz
c2kKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fbG9hZFByaW9yaXR5KGRl
ZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSh0eXBlKSkKICAgICAsIG1fcmVzcG9uc2VUaW1l
c3RhbXAoc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkpCisgICAgLCBtX29yaWdpbihy
ZXF1ZXN0LnJlbGVhc2VPcmlnaW4oKSkKICAgICAsIG1fbGFzdERlY29kZWRBY2Nlc3NUaW1lKDAp
CiAgICAgLCBtX2xvYWRGaW5pc2hUaW1lKDApCiAgICAgLCBtX2VuY29kZWRTaXplKDApCkBAIC0x
NDYsNiArMTQ3LDEzIEBAIENhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBUeXBlIHR5cGUsIFNlc3NpCiAjaWZuZGVmIE5ERUJVRwog
ICAgIGNhY2hlZFJlc291cmNlTGVha0NvdW50ZXIuaW5jcmVtZW50KCk7CiAjZW5kaWYKKyAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGhhdmUgYSBiZXR0ZXIgd2F5IG9mIGNoZWNraW5nIGZvciBOYXZp
Z2F0aW9uIGxvYWRzLCBtYXliZSBGZXRjaE1vZGU6Ok9wdGlvbnM6Ok5hdmlnYXRlLgorICAgIEFT
U0VSVChtX29yaWdpbiB8fCBtX3R5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSk7
CisKKyAgICBpZiAobV9vcHRpb25zLm1vZGUgIT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3Jp
Z2luICYmIG1fb3JpZ2luCisgICAgICAgICYmICEobV9yZXNvdXJjZVJlcXVlc3QudXJsKCkucHJv
dG9jb2xJc0RhdGEoKSAmJiBtX29wdGlvbnMuc2FtZU9yaWdpbkRhdGFVUkxGbGFnID09IFNhbWVP
cmlnaW5EYXRhVVJMRmxhZzo6U2V0KQorICAgICAgICAmJiAhbV9vcmlnaW4tPmNhblJlcXVlc3Qo
bV9yZXNvdXJjZVJlcXVlc3QudXJsKCkpKQorICAgICAgICBzZXRDcm9zc09yaWdpbigpOwogCiAg
ICAgaWYgKCFtX3Jlc291cmNlUmVxdWVzdC51cmwoKS5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtMjQyLDI0ICsyNTAsNiBAQCB2b2lkIENhY2hlZFJlc291cmNl
OjphZGRBZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGxvYWRl
cikKICAgICBhZGRBZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnNUb1JlcXVlc3QobV9yZXNvdXJjZVJl
cXVlc3QsIGxvYWRlciwgKnRoaXMpOwogfQogCi12b2lkIENhY2hlZFJlc291cmNlOjpjb21wdXRl
T3JpZ2luKENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIpCi17Ci0gICAgaWYgKHR5cGUoKSA9
PSBNYWluUmVzb3VyY2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVChsb2FkZXIuZG9j
dW1lbnQoKSk7Ci0gICAgaWYgKG1fcmVzb3VyY2VSZXF1ZXN0Lmhhc0hUVFBPcmlnaW4oKSkKLSAg
ICAgICAgbV9vcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX3Jlc291
cmNlUmVxdWVzdC5odHRwT3JpZ2luKCkpOwotICAgIGVsc2UKLSAgICAgICAgbV9vcmlnaW4gPSBs
b2FkZXIuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKLSAgICBBU1NFUlQobV9vcmlnaW4p
OwotCi0gICAgaWYgKCEobV9yZXNvdXJjZVJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0RhdGEoKSAm
JiBtX29wdGlvbnMuc2FtZU9yaWdpbkRhdGFVUkxGbGFnID09IFNhbWVPcmlnaW5EYXRhVVJMRmxh
Zzo6U2V0KSAmJiAhbV9vcmlnaW4tPmNhblJlcXVlc3QobV9yZXNvdXJjZVJlcXVlc3QudXJsKCkp
KQotICAgICAgICBzZXRDcm9zc09yaWdpbigpOwotCi0gICAgYWRkQWRkaXRpb25hbFJlcXVlc3RI
ZWFkZXJzKGxvYWRlcik7Ci19Ci0KIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVkUmVz
b3VyY2VMb2FkZXImIGNhY2hlZFJlc291cmNlTG9hZGVyKQogewogICAgIGlmICghY2FjaGVkUmVz
b3VyY2VMb2FkZXIuZnJhbWUoKSkgewpAQCAtMzIzLDcgKzMxMyw3IEBAIHZvaWQgQ2FjaGVkUmVz
b3VyY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGNhY2hlZFJlc291cmNlTG9hZGVyKQog
I2VuZGlmCiAgICAgbV9yZXNvdXJjZVJlcXVlc3Quc2V0UHJpb3JpdHkobG9hZFByaW9yaXR5KCkp
OwogCi0gICAgY29tcHV0ZU9yaWdpbihjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgYWRkQWRk
aXRpb25hbFJlcXVlc3RIZWFkZXJzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKIAogICAgIC8vIEZJ
WE1FOiBJdCdzIHVuZm9ydHVuYXRlIHRoYXQgdGhlIGNhY2hlIGxheWVyIGFuZCBiZWxvdyBnZXQg
dG8ga25vdyBhbnl0aGluZyBhYm91dCBmcmFnbWVudCBpZGVudGlmaWVycy4KICAgICAvLyBXZSBz
aG91bGQgbG9vayBpbnRvIHJlbW92aW5nIHRoZSBleHBlY3RhdGlvbiBvZiB0aGF0IGtub3dsZWRn
ZSBmcm9tIHRoZSBwbGF0Zm9ybSBuZXR3b3JrIHN0YWNrcy4KQEAgLTM0NCwxNCArMzM0LDEyIEBA
IHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGNhY2hlZFJl
c291cmNlTG9hZGVyKQogICAgIG1fc3RhdHVzID0gUGVuZGluZzsKIH0KIAotdm9pZCBDYWNoZWRS
ZXNvdXJjZTo6bG9hZEZyb20oY29uc3QgQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBDYWNoZWRS
ZXNvdXJjZUxvYWRlciYgY2FjaGVkUmVzb3VyY2VMb2FkZXIpCit2b2lkIENhY2hlZFJlc291cmNl
Ojpsb2FkRnJvbShjb25zdCBDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCiB7CiAgICAgQVNTRVJU
KHVybCgpID09IHJlc291cmNlLnVybCgpKTsKICAgICBBU1NFUlQodHlwZSgpID09IHJlc291cmNl
LnR5cGUoKSk7CiAgICAgQVNTRVJUKHJlc291cmNlLnN0YXR1cygpID09IFN0YXR1czo6Q2FjaGVk
KTsKIAotICAgIGNvbXB1dGVPcmlnaW4oY2FjaGVkUmVzb3VyY2VMb2FkZXIpOwotCiAgICAgaWYg
KGlzQ3Jvc3NPcmlnaW4oKSAmJiBtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6
OkNvcnMpIHsKICAgICAgICAgQVNTRVJUKG1fb3JpZ2luKTsKICAgICAgICAgU3RyaW5nIGVycm9y
TWVzc2FnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgK
aW5kZXggZGM1ZjlhMmZiZTMyYWI4ZDQwMDg0YjFkMWRkNmI1OGNmZDcwNWI3Yy4uMWE5NTU1ZTNl
OTgzY2U5NzJkOTE5MDYzZTI0NGM5M2E0OTk0MTE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTIxMSw3ICsyMTEsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0NsZWFuKCkgY29uc3Q7CiAgICAgUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRpbmcg
cmVzcG9uc2VUYWludGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VUYWludGluZzsgfQog
Ci0gICAgdm9pZCBsb2FkRnJvbShjb25zdCBDYWNoZWRSZXNvdXJjZSYsIENhY2hlZFJlc291cmNl
TG9hZGVyJik7CisgICAgdm9pZCBsb2FkRnJvbShjb25zdCBDYWNoZWRSZXNvdXJjZSYpOwogCiAg
ICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luLmdldCgp
OyB9CiAKQEAgLTMxNCw3ICszMTQsNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6Y2hyb25vOjptaWNy
b3NlY29uZHMgZnJlc2huZXNzTGlmZXRpbWUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGNvbnN0
OwogCiAgICAgdm9pZCBhZGRBZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnMoQ2FjaGVkUmVzb3VyY2VM
b2FkZXImKTsKLSAgICB2b2lkIGNvbXB1dGVPcmlnaW4oQ2FjaGVkUmVzb3VyY2VMb2FkZXImKTsK
ICAgICB2b2lkIGZhaWxCZWZvcmVTdGFydGluZygpOwogCiAgICAgSGFzaE1hcDxDYWNoZWRSZXNv
dXJjZUNsaWVudCosIHN0ZDo6dW5pcXVlX3B0cjxDYWxsYmFjaz4+IG1fY2xpZW50c0F3YWl0aW5n
Q2FsbGJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcAppbmRleCBhYzAyNzI1M2Q3NGVkZTM4YTA1NTdmMjM2NGRlMzkwYjgy
OTY1ODM5Li5iNGM5ZWIwNzVmMWQ5OWExOTI2YWEwZWIyZjQ0NDg5ZThkNzI4YmM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTU4MSw3ICs1ODEsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJj
ZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnVwZGF0ZUNhY2hlZFJlc291cmNlVwogICAgIH0KIAog
ICAgIGF1dG8gcmVzb3VyY2VIYW5kbGUgPSBjcmVhdGVSZXNvdXJjZShyZXNvdXJjZS50eXBlKCks
IFdURk1vdmUocmVxdWVzdCksIHNlc3Npb25JRCgpKTsKLSAgICByZXNvdXJjZUhhbmRsZS0+bG9h
ZEZyb20ocmVzb3VyY2UsICp0aGlzKTsKKyAgICByZXNvdXJjZUhhbmRsZS0+bG9hZEZyb20ocmVz
b3VyY2UpOwogICAgIHJldHVybiByZXNvdXJjZUhhbmRsZTsKIH0KIApAQCAtNTk1LDYgKzU5NSwx
NiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbG9nTWVtb3J5Q2FjaGVSZXNvdXJjZVJlcXVlc3QoRnJh
bWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRlcwogICAgICAgICBmcmFtZS0+cGFnZSgpLT5kaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VSZXF1ZXN0S2V5KCksIGRlc2NyaXB0aW9uLCB2YWx1
ZSwgU2hvdWxkU2FtcGxlOjpZZXMpOwogfQogCit2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpw
cmVwYXJlRmV0Y2goQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQoreworICAgIEFTU0VSVF9VTlVTRUQodHlwZSk7CisKKyAgICBpZiAoIXJl
cXVlc3Qub3JpZ2luKCkgJiYgZG9jdW1lbnQoKSkKKyAgICAgICAgcmVxdWVzdC5zZXRPcmlnaW4o
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgLy8gVGhlcmUgc2hvdWxkIGJlIGFu
IE9yaWdpbiBleGNlcHQgaW4gY2FzZSBvZiBOYXZpZ2F0aW9uLgorICAgIEFTU0VSVChyZXF1ZXN0
Lm9yaWdpbigpIHx8IHR5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Ok1haW5SZXNvdXJjZSk7
Cit9CisKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hl
ZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVu
dCA9IHRoaXMtPmRvY3VtZW50KCkpCkBAIC02MTAsNiArNjIwLDggQEAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGUKICAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCisgICAgcHJlcGFyZUZldGNoKHR5cGUsIHJlcXVlc3QpOworCiAgICAgaWYgKCFjYW5SZXF1
ZXN0KHR5cGUsIHVybCwgcmVxdWVzdC5vcHRpb25zKCksIHJlcXVlc3QuZm9yUHJlbG9hZCgpKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKaW5kZXggNWFmNzFkMmFhYTJjMzMwMzlhZWMw
ZTZkOGZhNzgxMjE3OGI3NzQ3OS4uZDQ5YTg3MTI3ZWUwZWFmN2JlYmE3YmZlYTRjMzI1YzJhMzhk
YmE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmgKQEAgLTE0OSw2ICsxNDksNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IENh
Y2hlZFJlc291cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKik7CiAKICAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpU
eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJik7CisgICAgdm9pZCBwcmVwYXJlRmV0Y2goQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYpOwogICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXZhbGlkYXRlUmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0JiYsIENhY2hlZFJlc291cmNlJik7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkUmVzb3VyY2U+IGxvYWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0JiYpOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJl
c291cmNlPiByZXF1ZXN0UHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAppbmRleCBkYzU0YmRmMTA0NTYxN2QzYThjYzc0OTEyMWM3
NGY5NzkxNWZiMjE3Li40NGFlODY0NDkzNmFkYWU5ODhkMGFhYzdkZjdlNTA3OTE0ODZhZWJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmNwcApAQCAtOTEsMTMgKzkxLDE2IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JOYW1lKCkgY29uc3QKIHZvaWQgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0OjpzZXRBc1BvdGVudGlhbGx5Q3Jvc3NPcmlnaW4oY29uc3QgU3RyaW5nJiBtb2Rl
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgQVNTRVJUKG1fb3B0aW9ucy5tb2RlID09IEZl
dGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQuc2VjdXJpdHlP
cmlnaW4oKSk7CisKKyAgICBtX29yaWdpbiA9IGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCk7CisK
ICAgICBpZiAobW9kZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwogICAgIG1fb3B0aW9ucy5t
b2RlID0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzOwogICAgIG1fb3B0aW9ucy5jcmVkZW50aWFs
cyA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1vZGUsICJ1c2UtY3JlZGVudGlhbHMi
KSA/IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGUgOiBGZXRjaE9wdGlvbnM6OkNy
ZWRlbnRpYWxzOjpTYW1lT3JpZ2luOwogICAgIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID0g
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8g
QWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKIAot
ICAgIEFTU0VSVChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKTsKICAgICB1cGRhdGVSZXF1ZXN0
Rm9yQWNjZXNzQ29udHJvbChtX3Jlc291cmNlUmVxdWVzdCwgKmRvY3VtZW50LnNlY3VyaXR5T3Jp
Z2luKCksIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCmluZGV4IDgyN2Vi
YmJlNTg2Njc0ZWJiYTc2OThiNDk3ODNhZDNkOGZkZmMwMjAuLmIzZTQ0OTQ3YTc1ZmUyMzBjOTY3
MDI3NDFjZDczNjBlNDI5NDM1NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9u
cy5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21p
Y1N0cmluZy5oPgogCkBAIC02NCw2ICs2NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENhY2hp
bmdQb2xpY3koQ2FjaGluZ1BvbGljeSBwb2xpY3kpIHsgbV9vcHRpb25zLmNhY2hpbmdQb2xpY3kg
PSBwb2xpY3k7IH0KIAogICAgIHZvaWQgc2V0QXNQb3RlbnRpYWxseUNyb3NzT3JpZ2luKGNvbnN0
IFN0cmluZyYsIERvY3VtZW50Jik7CisgICAgdm9pZCBzZXRPcmlnaW4oUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiYmIG9yaWdpbikgeyBBU1NFUlQoIW1fb3JpZ2luKTsgbV9vcmlnaW4gPSBXVEZNb3Zl
KG9yaWdpbik7IH0KKyAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHJlbGVhc2VPcmlnaW4oKSB7
IHJldHVybiBXVEZNb3ZlKG1fb3JpZ2luKTsgfQorICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4o
KSBjb25zdCB7IHJldHVybiBtX29yaWdpbi5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIFJlc291
cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKQEAgLTc0LDYgKzc4LDcgQEAgcHJpdmF0ZToK
ICAgICBEZWZlck9wdGlvbiBtX2RlZmVyOwogICAgIFJlZlB0cjxFbGVtZW50PiBtX2luaXRpYXRv
ckVsZW1lbnQ7CiAgICAgQXRvbWljU3RyaW5nIG1faW5pdGlhdG9yTmFtZTsKKyAgICBSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IG1fb3JpZ2luOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGE1YmRmMWIwODRmOWI1NDk5ODE4NzUxNDE4ZGVlNjM4YjhmOGY0NzcuLmJkZTk5OGUz
ZTg2MmIzOWZkY2M0NzlhOTQ2MzM2Y2YwZjhkNzM2YTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxNi0wOS0yMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHNob3VsZCBzdG9yZSBhIFNlY3VyaXR5T3JpZ2luCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIyNTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHRlc3Qg
dG8gZXhwZWN0IGxvYWQgZXZlbiB0aG91Z2ggQ09SUyBjaGVja3Mgc2hvdWxkIGZhaWwgYXMgdGhl
IGRvY3VtZW50IG9yaWdpbiBoYXMgdW5pdmVyc2FsIGFjY2Vzcy4KKworICAgICAgICAqIGh0dHAv
dGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZhaWwtb3JpZ2luLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29y
aWdpbi1sb2Fkcy1maWxlLXNjaGVtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2NoZW1lLmh0bWw6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29y
aWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi5odG1sLgorCiAyMDE2LTA5LTE5ICBEZXZpbiBSb3Vzc28g
IDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFk
b3B0IE9iamVjdC5hd2FpdEV2ZW50IGluIExheW91dFRlc3RzL2luc3BlY3Rvci9jc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxv
YWRzLWZhaWwtb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9j
YWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZhaWwtb3JpZ2luLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmIwYjgzMGFhMDBhZDVkODE1YzdlYjIyNzg2ZTUy
MTRlMzgyZjU1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1m
YWlsLW9yaWdpbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLUNP
TlNPTEUgTUVTU0FHRTogT3JpZ2luICBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1B
bGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IENyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBk
ZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LgotVGhpcyB0ZXN0
IGZhaWxzIGlmIHRoZSBzY3JpcHQgbG9hZHMgY29ycmVjdGx5LgotCi1QQVNTCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1m
YWlsLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jv
c3NvcmlnaW4tbG9hZHMtZmFpbC1vcmlnaW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZmE2Y2NmYTg5OWMwOWQ3OTMxNTc3YmNiZjE1OGEzYTY3ZGYxNmU0NC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPGJvZHk+Ci08cD5UaGlzIHRlc3QgZmFpbHMgaWYg
dGhlIHNjcmlwdCBsb2FkcyBjb3JyZWN0bHkuPC9wPgotPHByZT48L3ByZT4KLTxzY3JpcHQ+Ci1p
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotZnVuY3Rpb24gZG9uZShtc2cpIHsK
LSAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJwcmUiKS5pbm5lckhUTUwgPSBtc2c7Ci0gICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
LX0KLQotdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwotc2Ny
aXB0LmNyb3NzT3JpZ2luID0gInVzZS1jcmVkZW50aWFscyI7Ci0vLyBXZSBhcmUgc2VydmluZyB0
aGUgdGVzdCBmcm9tIHRoZSBmaWxlc3lzdGVtLCBzbyBpdCBzaG91bGQgZmFpbCBhcyBhdXRob3Jp
emVkIG9yaWdpbiBpcyAxMjcuMC4wLjE6ODAwMC4KLXNjcmlwdC5zcmMgPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jb3JzLXNjcmlwdC5waHA/Y3JlZGVudGlhbHM9
dHJ1ZSI7Ci1zY3JpcHQub25sb2FkID0gZnVuY3Rpb24oKSB7IGRvbmUoIkZBSUwiKTsgfQotc2Ny
aXB0Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsgZG9uZSgiUEFTUyIpO30KLWRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoc2NyaXB0KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmlsZS1zY2hlbWUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3Nvcmln
aW4tbG9hZHMtZmlsZS1zY2hlbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwNWJiZjMyOTcy
Y2U1YTgzN2QyNTdmYWE0MjFkZGRlNGU3Y2E0YTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1maWxlLXNjaGVt
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitBTEVSVDogc2NyaXB0IHJhbi4KK1RoaXMg
dGVzdCBwYXNzZXMgaWYgdGhlIHNjcmlwdCBsb2FkcyBjb3JyZWN0bHkuCisKK1BBU1MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxv
YWRzLWZpbGUtc2NoZW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3Njcmlw
dC1jcm9zc29yaWdpbi1sb2Fkcy1maWxlLXNjaGVtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlNDBkZDA0
NTViYTI1ODFmMzdhYTNlZWZjODYzYzA4NThlYWU5MDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1maWxlLXNj
aGVtZS5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzxib2R5PgorPHA+VGhpcyB0ZXN0IHBhc3NlcyBp
ZiB0aGUgc2NyaXB0IGxvYWRzIGNvcnJlY3RseS48L3A+Cis8cHJlPjwvcHJlPgorPHNjcmlwdD4K
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBkb25lKG1zZykg
eworICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInByZSIpLmlubmVySFRNTCA9IG1zZzsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworfQorCit2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Citz
Y3JpcHQuY3Jvc3NPcmlnaW4gPSAidXNlLWNyZWRlbnRpYWxzIjsKKy8vIFdlIGFyZSBzZXJ2aW5n
IHRoZSB0ZXN0IGZyb20gdGhlIGZpbGVzeXN0ZW0gYW5kIGZpbGUgVVJMcyBhcmUgZ3JhbnRlZCB1
bml2ZXJzYWwgYWNjZXNzLgorLy8gVGhpcyBieXBhc3NlcyBDT1JTIGNoZWNrcyBhbmQgd2lsbCBh
bGxvdyBhY2Nlc3MgdG8gMTI3LjAuMC4xOjgwMDAuCitzY3JpcHQuc3JjID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY29ycy1zY3JpcHQucGhwP2NyZWRlbnRpYWxz
PXRydWUiOworc2NyaXB0Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeyBkb25lKCJQQVNTIik7IH0KK3Nj
cmlwdC5vbmVycm9yID0gZnVuY3Rpb24oKSB7IGRvbmUoIkZBSUwiKTt9Citkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKHNjcmlwdCk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289338</attachid>
            <date>2016-09-20 01:56:18 -0700</date>
            <delta_ts>2016-09-21 07:36:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162258-20160920105331.patch</filename>
            <type>text/plain</type>
            <size>16881</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M1OWE5NTIxZDQ5NjA0
NmE4MWFmZTE4YWZlYWUxNDhlNmRkYTgwYi4uNjZkOTkzZTExM2Q3NjRlODMzYTliZWU5MzM1M2I5
YjU3N2Q4ZDFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTA5LTIwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3Qgc2hvdWxkIHN0b3JlIGEgU2VjdXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjI1OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbG9jYWwvc2NyaXB0
LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2NoZW1lLmh0bWwKKworICAgICAgICBQYXNzaW5nIFNl
Y3VyaXR5T3JpZ2luIGZyb20gbG9hZGVyIGNsaWVudHMgdG8gQ2FjaGVkUmVzb3VyY2UgdGhyb3Vn
aCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisgICAgICAgIFRoaXMgZW5zdXJlcyB0aGF0IHNwZWNp
ZmljIG9yaWdpbiBwcm9wZXJ0aWVzIGxpa2UgdW5pdmVyc2FsIGFjY2VzcyBhcmUgd2VsbCBwcmVz
ZXJ2ZWQuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlcXVlc3Qp
OiBTZXQgb3JpZ2luIHRvIHRoZSByZXF1ZXN0LgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Q2FjaGVk
UmVzb3VyY2UpOiBTZXR0aW5nIG9yaWdpbiBmcm9tIHRoZSByZXF1ZXN0LgorICAgICAgICBDb21w
dXRpbmcgQ09SUyBzdGF0ZSBiYXNlZCBvbiB0aGF0IG9yaWdpbi4KKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjpsb2FkKTogUmVtb3Zpbmcgb3JpZ2luIGNvbXB1dGF0aW9uLgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWRGcm9tKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Y29tcHV0ZU9yaWdpbik6IERlbGV0ZWQuCisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjp1cGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50UmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJlcGFyZUZldGNoKTogSW50
cm9kdWNlZCB0byBpbXBsZW1lbnQgc3RlcCAxIHRvIDcgb2YgaHR0cHM6Ly9mZXRjaC5zcGVjLndo
YXR3Zy5vcmcvI2ZldGNoaW5nLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEFzUG90
ZW50aWFsbHlDcm9zc09yaWdpbik6IFN0b3Jpbmcgb3JpZ2luLgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlUmVxdWVzdDo6c2V0T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlUmVxdWVzdDo6cmVsZWFzZU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6Om9yaWdpbik6CisKIDIwMTYtMDktMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTFNvdXJjZUVsZW1lbnQu
cHJvdG90eXBlLnNpemVzIC8gSFRNTFNvdXJjZUVsZW1lbnQucHJvdG90eXBlLnNyY3NldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApp
bmRleCBhNDhiYzc4MmQxZmI4ZjY3MWI5MzA1MTUzNzA0Y2FiOTEzN2NmZDA5Li5iMTE5NzNkYjVk
OWZlN2MxZmIyYjRmYWI5NmNlNjJkNGEwMDQyNjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMzcwLDYgKzM3MCw3IEBA
IHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBTZWN1cml0eUNoCiAgICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLnJlc291cmNlVGltaW5nRW5hYmxlZCgpKQogICAgICAgICAg
ICAgbmV3UmVxdWVzdC5zZXRJbml0aWF0b3IobV9vcHRpb25zLmluaXRpYXRvcik7CiAgICAgICAg
IG5ld1JlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldEFsbG93Q29va2llcyhtX29w
dGlvbnMuYWxsb3dDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAgICAg
ICAgbmV3UmVxdWVzdC5zZXRPcmlnaW4oJnNlY3VyaXR5T3JpZ2luKCkpOwogCiAgICAgICAgIEFT
U0VSVCghbV9yZXNvdXJjZSk7CiAgICAgICAgIC8vIFdlIGNyZWF0ZSBhbiBVUkwgaGVyZSBhcyB0
aGUgcmVxdWVzdCB3aWxsIGJlIG1vdmVkIGluIHJlcXVlc3RSYXdSZXNvdXJjZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggMzczZmRlNWQy
ZGNlYmZkOWJkMTc0NGJiYWY5ODk5NmIyNWFmMmRiMi4uODZkOGJiMTgxYmViYmJkNGI3NTU0Nzkx
NTZmZjZiZDkxODgzYjAxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCkBAIC0xMTksNiArMTE5LDcgQEAgQ2FjaGVkUmVzb3VyY2U6OkNhY2hl
ZFJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgU2Vz
c2kKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fbG9hZFByaW9yaXR5KGRl
ZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSh0eXBlKSkKICAgICAsIG1fcmVzcG9uc2VUaW1l
c3RhbXAoc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkpCisgICAgLCBtX29yaWdpbihy
ZXF1ZXN0LnJlbGVhc2VPcmlnaW4oKSkKICAgICAsIG1fbGFzdERlY29kZWRBY2Nlc3NUaW1lKDAp
CiAgICAgLCBtX2xvYWRGaW5pc2hUaW1lKDApCiAgICAgLCBtX2VuY29kZWRTaXplKDApCkBAIC0x
NDYsNiArMTQ3LDEzIEBAIENhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBUeXBlIHR5cGUsIFNlc3NpCiAjaWZuZGVmIE5ERUJVRwog
ICAgIGNhY2hlZFJlc291cmNlTGVha0NvdW50ZXIuaW5jcmVtZW50KCk7CiAjZW5kaWYKKyAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGhhdmUgYSBiZXR0ZXIgd2F5IG9mIGNoZWNraW5nIGZvciBOYXZp
Z2F0aW9uIGxvYWRzLCBtYXliZSBGZXRjaE1vZGU6Ok9wdGlvbnM6Ok5hdmlnYXRlLgorICAgIEFT
U0VSVChtX29yaWdpbiB8fCBtX3R5cGUgPT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSk7
CisKKyAgICBpZiAobV9vcHRpb25zLm1vZGUgIT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3Jp
Z2luICYmIG1fb3JpZ2luCisgICAgICAgICYmICEobV9yZXNvdXJjZVJlcXVlc3QudXJsKCkucHJv
dG9jb2xJc0RhdGEoKSAmJiBtX29wdGlvbnMuc2FtZU9yaWdpbkRhdGFVUkxGbGFnID09IFNhbWVP
cmlnaW5EYXRhVVJMRmxhZzo6U2V0KQorICAgICAgICAmJiAhbV9vcmlnaW4tPmNhblJlcXVlc3Qo
bV9yZXNvdXJjZVJlcXVlc3QudXJsKCkpKQorICAgICAgICBzZXRDcm9zc09yaWdpbigpOwogCiAg
ICAgaWYgKCFtX3Jlc291cmNlUmVxdWVzdC51cmwoKS5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtMjQyLDI0ICsyNTAsNiBAQCB2b2lkIENhY2hlZFJlc291cmNl
OjphZGRBZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGxvYWRl
cikKICAgICBhZGRBZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnNUb1JlcXVlc3QobV9yZXNvdXJjZVJl
cXVlc3QsIGxvYWRlciwgKnRoaXMpOwogfQogCi12b2lkIENhY2hlZFJlc291cmNlOjpjb21wdXRl
T3JpZ2luKENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIpCi17Ci0gICAgaWYgKHR5cGUoKSA9
PSBNYWluUmVzb3VyY2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVChsb2FkZXIuZG9j
dW1lbnQoKSk7Ci0gICAgaWYgKG1fcmVzb3VyY2VSZXF1ZXN0Lmhhc0hUVFBPcmlnaW4oKSkKLSAg
ICAgICAgbV9vcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX3Jlc291
cmNlUmVxdWVzdC5odHRwT3JpZ2luKCkpOwotICAgIGVsc2UKLSAgICAgICAgbV9vcmlnaW4gPSBs
b2FkZXIuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKLSAgICBBU1NFUlQobV9vcmlnaW4p
OwotCi0gICAgaWYgKCEobV9yZXNvdXJjZVJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0RhdGEoKSAm
JiBtX29wdGlvbnMuc2FtZU9yaWdpbkRhdGFVUkxGbGFnID09IFNhbWVPcmlnaW5EYXRhVVJMRmxh
Zzo6U2V0KSAmJiAhbV9vcmlnaW4tPmNhblJlcXVlc3QobV9yZXNvdXJjZVJlcXVlc3QudXJsKCkp
KQotICAgICAgICBzZXRDcm9zc09yaWdpbigpOwotCi0gICAgYWRkQWRkaXRpb25hbFJlcXVlc3RI
ZWFkZXJzKGxvYWRlcik7Ci19Ci0KIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVkUmVz
b3VyY2VMb2FkZXImIGNhY2hlZFJlc291cmNlTG9hZGVyKQogewogICAgIGlmICghY2FjaGVkUmVz
b3VyY2VMb2FkZXIuZnJhbWUoKSkgewpAQCAtMzIzLDcgKzMxMyw3IEBAIHZvaWQgQ2FjaGVkUmVz
b3VyY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGNhY2hlZFJlc291cmNlTG9hZGVyKQog
I2VuZGlmCiAgICAgbV9yZXNvdXJjZVJlcXVlc3Quc2V0UHJpb3JpdHkobG9hZFByaW9yaXR5KCkp
OwogCi0gICAgY29tcHV0ZU9yaWdpbihjYWNoZWRSZXNvdXJjZUxvYWRlcik7CisgICAgYWRkQWRk
aXRpb25hbFJlcXVlc3RIZWFkZXJzKGNhY2hlZFJlc291cmNlTG9hZGVyKTsKIAogICAgIC8vIEZJ
WE1FOiBJdCdzIHVuZm9ydHVuYXRlIHRoYXQgdGhlIGNhY2hlIGxheWVyIGFuZCBiZWxvdyBnZXQg
dG8ga25vdyBhbnl0aGluZyBhYm91dCBmcmFnbWVudCBpZGVudGlmaWVycy4KICAgICAvLyBXZSBz
aG91bGQgbG9vayBpbnRvIHJlbW92aW5nIHRoZSBleHBlY3RhdGlvbiBvZiB0aGF0IGtub3dsZWRn
ZSBmcm9tIHRoZSBwbGF0Zm9ybSBuZXR3b3JrIHN0YWNrcy4KQEAgLTM0NCwxNCArMzM0LDEyIEBA
IHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGNhY2hlZFJl
c291cmNlTG9hZGVyKQogICAgIG1fc3RhdHVzID0gUGVuZGluZzsKIH0KIAotdm9pZCBDYWNoZWRS
ZXNvdXJjZTo6bG9hZEZyb20oY29uc3QgQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBDYWNoZWRS
ZXNvdXJjZUxvYWRlciYgY2FjaGVkUmVzb3VyY2VMb2FkZXIpCit2b2lkIENhY2hlZFJlc291cmNl
Ojpsb2FkRnJvbShjb25zdCBDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCiB7CiAgICAgQVNTRVJU
KHVybCgpID09IHJlc291cmNlLnVybCgpKTsKICAgICBBU1NFUlQodHlwZSgpID09IHJlc291cmNl
LnR5cGUoKSk7CiAgICAgQVNTRVJUKHJlc291cmNlLnN0YXR1cygpID09IFN0YXR1czo6Q2FjaGVk
KTsKIAotICAgIGNvbXB1dGVPcmlnaW4oY2FjaGVkUmVzb3VyY2VMb2FkZXIpOwotCiAgICAgaWYg
KGlzQ3Jvc3NPcmlnaW4oKSAmJiBtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6
OkNvcnMpIHsKICAgICAgICAgQVNTRVJUKG1fb3JpZ2luKTsKICAgICAgICAgU3RyaW5nIGVycm9y
TWVzc2FnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgK
aW5kZXggZGM1ZjlhMmZiZTMyYWI4ZDQwMDg0YjFkMWRkNmI1OGNmZDcwNWI3Yy4uMWE5NTU1ZTNl
OTgzY2U5NzJkOTE5MDYzZTI0NGM5M2E0OTk0MTE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTIxMSw3ICsyMTEsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0NsZWFuKCkgY29uc3Q7CiAgICAgUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRpbmcg
cmVzcG9uc2VUYWludGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VUYWludGluZzsgfQog
Ci0gICAgdm9pZCBsb2FkRnJvbShjb25zdCBDYWNoZWRSZXNvdXJjZSYsIENhY2hlZFJlc291cmNl
TG9hZGVyJik7CisgICAgdm9pZCBsb2FkRnJvbShjb25zdCBDYWNoZWRSZXNvdXJjZSYpOwogCiAg
ICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luLmdldCgp
OyB9CiAKQEAgLTMxNCw3ICszMTQsNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6Y2hyb25vOjptaWNy
b3NlY29uZHMgZnJlc2huZXNzTGlmZXRpbWUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGNvbnN0
OwogCiAgICAgdm9pZCBhZGRBZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnMoQ2FjaGVkUmVzb3VyY2VM
b2FkZXImKTsKLSAgICB2b2lkIGNvbXB1dGVPcmlnaW4oQ2FjaGVkUmVzb3VyY2VMb2FkZXImKTsK
ICAgICB2b2lkIGZhaWxCZWZvcmVTdGFydGluZygpOwogCiAgICAgSGFzaE1hcDxDYWNoZWRSZXNv
dXJjZUNsaWVudCosIHN0ZDo6dW5pcXVlX3B0cjxDYWxsYmFjaz4+IG1fY2xpZW50c0F3YWl0aW5n
Q2FsbGJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcAppbmRleCBhYzAyNzI1M2Q3NGVkZTM4YTA1NTdmMjM2NGRlMzkwYjgy
OTY1ODM5Li41YTJhOGM5YWQwNzI2Yjg4NzIyY2RlMzYyZTZjMmVjNWFiZDFiYzlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTU4MSw3ICs1ODEsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJj
ZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnVwZGF0ZUNhY2hlZFJlc291cmNlVwogICAgIH0KIAog
ICAgIGF1dG8gcmVzb3VyY2VIYW5kbGUgPSBjcmVhdGVSZXNvdXJjZShyZXNvdXJjZS50eXBlKCks
IFdURk1vdmUocmVxdWVzdCksIHNlc3Npb25JRCgpKTsKLSAgICByZXNvdXJjZUhhbmRsZS0+bG9h
ZEZyb20ocmVzb3VyY2UsICp0aGlzKTsKKyAgICByZXNvdXJjZUhhbmRsZS0+bG9hZEZyb20ocmVz
b3VyY2UpOwogICAgIHJldHVybiByZXNvdXJjZUhhbmRsZTsKIH0KIApAQCAtNTk1LDYgKzU5NSwx
NiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbG9nTWVtb3J5Q2FjaGVSZXNvdXJjZVJlcXVlc3QoRnJh
bWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRlcwogICAgICAgICBmcmFtZS0+cGFnZSgpLT5kaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VSZXF1ZXN0S2V5KCksIGRlc2NyaXB0aW9uLCB2YWx1
ZSwgU2hvdWxkU2FtcGxlOjpZZXMpOwogfQogCit2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpw
cmVwYXJlRmV0Y2goQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKK3sKKyAgICAvLyBJbXBsZW1lbnRpbmcgc3RlcCAxIHRvIDcgb2YgaHR0cHM6Ly9m
ZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2ZldGNoaW5nCisKKyAgICBpZiAoIXJlcXVlc3Qub3JpZ2lu
KCkgJiYgZG9jdW1lbnQoKSkKKyAgICAgICAgcmVxdWVzdC5zZXRPcmlnaW4oZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKSk7CisKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGFsbCBpbml0aWFs
IHN0ZXBzIG9mIGZldGNoIChzZWUgYnVnIDE2MjE1MSkuCit9CisKIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNl
KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QpCiB7CiAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCkBA
IC02MTAsNiArNjIwLDggQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICBpZiAoIXVybC5p
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCisgICAgcHJlcGFyZUZldGNoKHR5
cGUsIHJlcXVlc3QpOworCiAgICAgaWYgKCFjYW5SZXF1ZXN0KHR5cGUsIHVybCwgcmVxdWVzdC5v
cHRpb25zKCksIHJlcXVlc3QuZm9yUHJlbG9hZCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmgKaW5kZXggNWFmNzFkMmFhYTJjMzMwMzlhZWMwZTZkOGZhNzgxMjE3OGI3NzQ3OS4uZDQ5
YTg3MTI3ZWUwZWFmN2JlYmE3YmZlYTRjMzI1YzJhMzhkYmE1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKQEAgLTE0OSw2ICsx
NDksNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IENhY2hlZFJlc291cmNlTG9hZGVyKERvY3Vt
ZW50TG9hZGVyKik7CiAKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4g
cmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmJik7CisgICAgdm9pZCBwcmVwYXJlRmV0Y2goQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENhY2hl
ZFJlc291cmNlUmVxdWVzdCYpOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291
cmNlPiByZXZhbGlkYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIENhY2hlZFJl
c291cmNlJik7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IGxvYWRS
ZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOwog
ICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0UHJlbG9hZChD
YWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApp
bmRleCBkYzU0YmRmMTA0NTYxN2QzYThjYzc0OTEyMWM3NGY5NzkxNWZiMjE3Li40NGFlODY0NDkz
NmFkYWU5ODhkMGFhYzdkZjdlNTA3OTE0ODZhZWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApAQCAtOTEsMTMgKzkx
LDE2IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0
b3JOYW1lKCkgY29uc3QKIHZvaWQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRBc1BvdGVudGlh
bGx5Q3Jvc3NPcmlnaW4oY29uc3QgU3RyaW5nJiBtb2RlLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7
CiAgICAgQVNTRVJUKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Tm9Db3Jz
KTsKKyAgICBBU1NFUlQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSk7CisKKyAgICBtX29yaWdp
biA9IGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCk7CisKICAgICBpZiAobW9kZS5pc051bGwoKSkK
ICAgICAgICAgcmV0dXJuOwogICAgIG1fb3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2Rl
OjpDb3JzOwogICAgIG1fb3B0aW9ucy5jcmVkZW50aWFscyA9IGVxdWFsTGV0dGVyc0lnbm9yaW5n
QVNDSUlDYXNlKG1vZGUsICJ1c2UtY3JlZGVudGlhbHMiKSA/IEZldGNoT3B0aW9uczo6Q3JlZGVu
dGlhbHM6OkluY2x1ZGUgOiBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luOwog
ICAgIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID0gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UobW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6
IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKIAotICAgIEFTU0VSVChkb2N1bWVudC5zZWN1
cml0eU9yaWdpbigpKTsKICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChtX3Jlc291
cmNlUmVxdWVzdCwgKmRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIG1fb3B0aW9ucy5hbGxvd0Ny
ZWRlbnRpYWxzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5oCmluZGV4IDgyN2ViYmJlNTg2Njc0ZWJiYTc2OThiNDk3ODNh
ZDNkOGZkZmMwMjAuLmIzZTQ0OTQ3YTc1ZmUyMzBjOTY3MDI3NDFjZDczNjBlNDI5NDM1NzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5o
IgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVxdWVzdC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCkBAIC02NCw2ICs2
NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENhY2hpbmdQb2xpY3koQ2FjaGluZ1BvbGljeSBw
b2xpY3kpIHsgbV9vcHRpb25zLmNhY2hpbmdQb2xpY3kgPSBwb2xpY3k7IH0KIAogICAgIHZvaWQg
c2V0QXNQb3RlbnRpYWxseUNyb3NzT3JpZ2luKGNvbnN0IFN0cmluZyYsIERvY3VtZW50Jik7Cisg
ICAgdm9pZCBzZXRPcmlnaW4oUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIG9yaWdpbikgeyBBU1NF
UlQoIW1fb3JpZ2luKTsgbV9vcmlnaW4gPSBXVEZNb3ZlKG9yaWdpbik7IH0KKyAgICBSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IHJlbGVhc2VPcmlnaW4oKSB7IHJldHVybiBXVEZNb3ZlKG1fb3JpZ2lu
KTsgfQorICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdp
bi5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVx
dWVzdDsKQEAgLTc0LDYgKzc4LDcgQEAgcHJpdmF0ZToKICAgICBEZWZlck9wdGlvbiBtX2RlZmVy
OwogICAgIFJlZlB0cjxFbGVtZW50PiBtX2luaXRpYXRvckVsZW1lbnQ7CiAgICAgQXRvbWljU3Ry
aW5nIG1faW5pdGlhdG9yTmFtZTsKKyAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fb3JpZ2lu
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE1YmRmMWIwODRmOWI1NDk5
ODE4NzUxNDE4ZGVlNjM4YjhmOGY0NzcuLmJkZTk5OGUzZTg2MmIzOWZkY2M0NzlhOTQ2MzM2Y2Yw
ZjhkNzM2YTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wOS0yMCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHNo
b3VsZCBzdG9yZSBhIFNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIyNTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHRlc3QgdG8gZXhwZWN0IGxvYWQgZXZlbiB0aG91
Z2ggQ09SUyBjaGVja3Mgc2hvdWxkIGZhaWwgYXMgdGhlIGRvY3VtZW50IG9yaWdpbiBoYXMgdW5p
dmVyc2FsIGFjY2Vzcy4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nz
b3JpZ2luLWxvYWRzLWZhaWwtb3JpZ2luLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1maWxlLXNjaGVtZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbG9jYWwvc2NyaXB0LWNy
b3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2NoZW1lLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi5o
dG1sLgorCiAyMDE2LTA5LTE5ICBEZXZpbiBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkb3B0IE9iamVjdC5hd2FpdEV2ZW50IGlu
IExheW91dFRlc3RzL2luc3BlY3Rvci9jc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZhaWwtb3JpZ2luLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxv
YWRzLWZhaWwtb3JpZ2luLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZmIwYjgzMGFhMDBhZDVkODE1YzdlYjIyNzg2ZTUyMTRlMzgyZjU1Yy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogT3JpZ2luICBp
cyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1F
U1NBR0U6IENyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJl
c291cmNlIFNoYXJpbmcgcG9saWN5LgotVGhpcyB0ZXN0IGZhaWxzIGlmIHRoZSBzY3JpcHQgbG9h
ZHMgY29ycmVjdGx5LgotCi1QQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmFpbC1vcmln
aW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmE2Y2NmYTg5OWMwOWQ3OTMx
NTc3YmNiZjE1OGEzYTY3ZGYxNmU0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29y
aWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBA
QAotPGJvZHk+Ci08cD5UaGlzIHRlc3QgZmFpbHMgaWYgdGhlIHNjcmlwdCBsb2FkcyBjb3JyZWN0
bHkuPC9wPgotPHByZT48L3ByZT4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
LSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKLX0KLQotZnVuY3Rpb24gZG9uZShtc2cpIHsKLSAgICBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCJwcmUiKS5pbm5lckhUTUwgPSBtc2c7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0KLQotdmFyIHNjcmlwdCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwotc2NyaXB0LmNyb3NzT3JpZ2luID0gInVzZS1j
cmVkZW50aWFscyI7Ci0vLyBXZSBhcmUgc2VydmluZyB0aGUgdGVzdCBmcm9tIHRoZSBmaWxlc3lz
dGVtLCBzbyBpdCBzaG91bGQgZmFpbCBhcyBhdXRob3JpemVkIG9yaWdpbiBpcyAxMjcuMC4wLjE6
ODAwMC4KLXNjcmlwdC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291
cmNlcy9jb3JzLXNjcmlwdC5waHA/Y3JlZGVudGlhbHM9dHJ1ZSI7Ci1zY3JpcHQub25sb2FkID0g
ZnVuY3Rpb24oKSB7IGRvbmUoIkZBSUwiKTsgfQotc2NyaXB0Lm9uZXJyb3IgPSBmdW5jdGlvbigp
IHsgZG9uZSgiUEFTUyIpO30KLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKLTwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQt
Y3Jvc3NvcmlnaW4tbG9hZHMtZmlsZS1zY2hlbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmlsZS1zY2hlbWUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwNWJiZjMyOTcyY2U1YTgzN2QyNTdmYWE0MjFkZGRlNGU3
Y2E0YTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3Nj
cmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1maWxlLXNjaGVtZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACitBTEVSVDogc2NyaXB0IHJhbi4KK1RoaXMgdGVzdCBwYXNzZXMgaWYgdGhlIHNjcmlw
dCBsb2FkcyBjb3JyZWN0bHkuCisKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2NoZW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1maWxl
LXNjaGVtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlNDBkZDA0NTViYTI1ODFmMzdhYTNlZWZjODYzYzA4
NThlYWU5MDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2Fs
L3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1maWxlLXNjaGVtZS5odG1sCkBAIC0wLDAgKzEsMjQg
QEAKKzxib2R5PgorPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGUgc2NyaXB0IGxvYWRzIGNvcnJl
Y3RseS48L3A+Cis8cHJlPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworfQorCitmdW5jdGlvbiBkb25lKG1zZykgeworICAgIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoInByZSIpLmlubmVySFRNTCA9IG1zZzsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCit2YXIgc2NyaXB0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CitzY3JpcHQuY3Jvc3NPcmlnaW4gPSAidXNl
LWNyZWRlbnRpYWxzIjsKKy8vIFdlIGFyZSBzZXJ2aW5nIHRoZSB0ZXN0IGZyb20gdGhlIGZpbGVz
eXN0ZW0gYW5kIGZpbGUgVVJMcyBhcmUgZ3JhbnRlZCB1bml2ZXJzYWwgYWNjZXNzLgorLy8gVGhp
cyBieXBhc3NlcyBDT1JTIGNoZWNrcyBhbmQgd2lsbCBhbGxvdyBhY2Nlc3MgdG8gMTI3LjAuMC4x
OjgwMDAuCitzY3JpcHQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNv
dXJjZXMvY29ycy1zY3JpcHQucGhwP2NyZWRlbnRpYWxzPXRydWUiOworc2NyaXB0Lm9ubG9hZCA9
IGZ1bmN0aW9uKCkgeyBkb25lKCJQQVNTIik7IH0KK3NjcmlwdC5vbmVycm9yID0gZnVuY3Rpb24o
KSB7IGRvbmUoIkZBSUwiKTt9Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7Cis8
L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289451</attachid>
            <date>2016-09-21 07:36:11 -0700</date>
            <delta_ts>2016-09-22 01:59:27 -0700</delta_ts>
            <desc>Rebasing after bug 162260</desc>
            <filename>bug-162258-20160921163322.patch</filename>
            <type>text/plain</type>
            <size>15433</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRlMDY2YTg4NDE2N2M3
OGZiMDRiOTZiYTVkYWUwZmJjYmU1NGU2Mi4uOGI1MmVhMGI2NWRmNjJjY2IxMzU3NjA5NmQwOTlj
MzEwYTY0ODFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDE2LTA5LTIxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3Qgc2hvdWxkIHN0b3JlIGEgU2VjdXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjI1OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbG9jYWwvc2NyaXB0
LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2NoZW1lLmh0bWwKKworICAgICAgICBQYXNzaW5nIFNl
Y3VyaXR5T3JpZ2luIGZyb20gbG9hZGVyIGNsaWVudHMgdG8gQ2FjaGVkUmVzb3VyY2UgdGhyb3Vn
aCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuCisgICAgICAgIFRoaXMgZW5zdXJlcyB0aGF0IHNwZWNp
ZmljIG9yaWdpbiBwcm9wZXJ0aWVzIGxpa2UgdW5pdmVyc2FsIGFjY2VzcyBhcmUgd2VsbCBwcmVz
ZXJ2ZWQuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlcXVlc3Qp
OiBTZXQgb3JpZ2luIHRvIHRoZSByZXF1ZXN0LgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Q2FjaGVk
UmVzb3VyY2UpOiBTZXR0aW5nIG9yaWdpbiBmcm9tIHRoZSByZXF1ZXN0LgorICAgICAgICBDb21w
dXRpbmcgQ09SUyBzdGF0ZSBiYXNlZCBvbiB0aGF0IG9yaWdpbi4KKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlOjpsb2FkKTogUmVtb3Zpbmcgb3JpZ2luIGNvbXB1dGF0aW9uLgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmxvYWRGcm9tKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Y29tcHV0ZU9yaWdpbik6IERlbGV0ZWQuCisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjp1cGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50UmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJlcGFyZUZldGNoKTogSW50
cm9kdWNlZCB0byBpbXBsZW1lbnQgc3RlcCAxIHRvIDcgb2YgaHR0cHM6Ly9mZXRjaC5zcGVjLndo
YXR3Zy5vcmcvI2ZldGNoaW5nLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEFzUG90
ZW50aWFsbHlDcm9zc09yaWdpbik6IFN0b3Jpbmcgb3JpZ2luLgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlUmVxdWVzdDo6c2V0T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlUmVxdWVzdDo6cmVsZWFzZU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6Om9yaWdpbik6CisKKzIwMTYtMDktMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCiAgICAgICAgIFtGZXRjaF0gQWxpZ24gQWNjZXB0IGhlYWRlciBkZWZh
dWx0IHZhbHVlcyB3aXRoIGZldGNoIHNwZWMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MjI2MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4IGQ0MjUxYzNhNGI0NTE0OGFlZDY2
Zjc1ZjMyM2JjNzdhMTBkNjgwZjQuLmM4YzE1YjA5OWZiNzMxYjExYmVmOWFmZTY2MGJhMDdjNzMy
N2UwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwCkBAIC0zNzEsNiArMzcxLDcgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVM
b2FkZXI6OmxvYWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNlY3VyaXR5Q2gK
ICAgICAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucmVz
b3VyY2VUaW1pbmdFbmFibGVkKCkpCiAgICAgICAgICAgICBuZXdSZXF1ZXN0LnNldEluaXRpYXRv
cihtX29wdGlvbnMuaW5pdGlhdG9yKTsKICAgICAgICAgbmV3UmVxdWVzdC5tdXRhYmxlUmVzb3Vy
Y2VSZXF1ZXN0KCkuc2V0QWxsb3dDb29raWVzKG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID09
IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOworICAgICAgICBuZXdSZXF1ZXN0LnNldE9yaWdpbigm
c2VjdXJpdHlPcmlnaW4oKSk7CiAKICAgICAgICAgQVNTRVJUKCFtX3Jlc291cmNlKTsKICAgICAg
ICAgLy8gV2UgY3JlYXRlIGFuIFVSTCBoZXJlIGFzIHRoZSByZXF1ZXN0IHdpbGwgYmUgbW92ZWQg
aW4gcmVxdWVzdFJhd1Jlc291cmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmNwcAppbmRleCAwMmFjMzQyMzgzZmFjODM5ODM2NDQyMTcxOWNjYjcwNTIz
OWEzNGI5Li5kNTY2ZjAwNzZkYTEzZjcxNWFmZjg0OTE1MmU5NGE2MGVkNTJlNzBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTEyMSw2
ICsxMjEsNyBAQCBDYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaQogICAgICwgbV9zZXNzaW9uSUQoc2Vz
c2lvbklEKQogICAgICwgbV9sb2FkUHJpb3JpdHkoZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VU
eXBlKHR5cGUpKQogICAgICwgbV9yZXNwb25zZVRpbWVzdGFtcChzdGQ6OmNocm9ubzo6c3lzdGVt
X2Nsb2NrOjpub3coKSkKKyAgICAsIG1fb3JpZ2luKHJlcXVlc3QucmVsZWFzZU9yaWdpbigpKQog
ICAgICwgbV9sYXN0RGVjb2RlZEFjY2Vzc1RpbWUoMCkKICAgICAsIG1fbG9hZEZpbmlzaFRpbWUo
MCkKICAgICAsIG1fZW5jb2RlZFNpemUoMCkKQEAgLTE0OCw2ICsxNDksMTMgQEAgQ2FjaGVkUmVz
b3VyY2U6OkNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5
cGUgdHlwZSwgU2Vzc2kKICNpZm5kZWYgTkRFQlVHCiAgICAgY2FjaGVkUmVzb3VyY2VMZWFrQ291
bnRlci5pbmNyZW1lbnQoKTsKICNlbmRpZgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaGF2ZSBh
IGJldHRlciB3YXkgb2YgY2hlY2tpbmcgZm9yIE5hdmlnYXRpb24gbG9hZHMsIG1heWJlIEZldGNo
TW9kZTo6T3B0aW9uczo6TmF2aWdhdGUuCisgICAgQVNTRVJUKG1fb3JpZ2luIHx8IG1fdHlwZSA9
PSBDYWNoZWRSZXNvdXJjZTo6TWFpblJlc291cmNlKTsKKworICAgIGlmIChtX29wdGlvbnMubW9k
ZSAhPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW4gJiYgbV9vcmlnaW4KKyAgICAgICAg
JiYgIShtX3Jlc291cmNlUmVxdWVzdC51cmwoKS5wcm90b2NvbElzRGF0YSgpICYmIG1fb3B0aW9u
cy5zYW1lT3JpZ2luRGF0YVVSTEZsYWcgPT0gU2FtZU9yaWdpbkRhdGFVUkxGbGFnOjpTZXQpCisg
ICAgICAgICYmICFtX29yaWdpbi0+Y2FuUmVxdWVzdChtX3Jlc291cmNlUmVxdWVzdC51cmwoKSkp
CisgICAgICAgIHNldENyb3NzT3JpZ2luKCk7CiAKICAgICBpZiAoIW1fcmVzb3VyY2VSZXF1ZXN0
LnVybCgpLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQogICAgICAgICByZXR1cm47CkBAIC0yNDQs
MjQgKzI1Miw2IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmFkZEFkZGl0aW9uYWxSZXF1ZXN0SGVh
ZGVycyhDYWNoZWRSZXNvdXJjZUxvYWRlciYgbG9hZGVyKQogICAgIGFkZEFkZGl0aW9uYWxSZXF1
ZXN0SGVhZGVyc1RvUmVxdWVzdChtX3Jlc291cmNlUmVxdWVzdCwgbG9hZGVyLCAqdGhpcyk7CiB9
CiAKLXZvaWQgQ2FjaGVkUmVzb3VyY2U6OmNvbXB1dGVPcmlnaW4oQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXImIGxvYWRlcikKLXsKLSAgICBpZiAodHlwZSgpID09IE1haW5SZXNvdXJjZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgQVNTRVJUKGxvYWRlci5kb2N1bWVudCgpKTsKLSAgICBpZiAobV9yZXNv
dXJjZVJlcXVlc3QuaGFzSFRUUE9yaWdpbigpKQotICAgICAgICBtX29yaWdpbiA9IFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG1fcmVzb3VyY2VSZXF1ZXN0Lmh0dHBPcmlnaW4oKSk7
Ci0gICAgZWxzZQotICAgICAgICBtX29yaWdpbiA9IGxvYWRlci5kb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpOwotICAgIEFTU0VSVChtX29yaWdpbik7Ci0KLSAgICBpZiAoIShtX3Jlc291cmNl
UmVxdWVzdC51cmwoKS5wcm90b2NvbElzRGF0YSgpICYmIG1fb3B0aW9ucy5zYW1lT3JpZ2luRGF0
YVVSTEZsYWcgPT0gU2FtZU9yaWdpbkRhdGFVUkxGbGFnOjpTZXQpICYmICFtX29yaWdpbi0+Y2Fu
UmVxdWVzdChtX3Jlc291cmNlUmVxdWVzdC51cmwoKSkpCi0gICAgICAgIHNldENyb3NzT3JpZ2lu
KCk7Ci0KLSAgICBhZGRBZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnMobG9hZGVyKTsKLX0KLQogdm9p
ZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciYgY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIpCiB7CiAgICAgaWYgKCFjYWNoZWRSZXNvdXJjZUxvYWRlci5mcmFtZSgpKSB7CkBA
IC0zMzAsNyArMzIwLDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJj
ZUxvYWRlciYgY2FjaGVkUmVzb3VyY2VMb2FkZXIpCiAjZW5kaWYKICAgICBtX3Jlc291cmNlUmVx
dWVzdC5zZXRQcmlvcml0eShsb2FkUHJpb3JpdHkoKSk7CiAKLSAgICBjb21wdXRlT3JpZ2luKGNh
Y2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICBhZGRBZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnMoY2Fj
aGVkUmVzb3VyY2VMb2FkZXIpOwogCiAgICAgLy8gRklYTUU6IEl0J3MgdW5mb3J0dW5hdGUgdGhh
dCB0aGUgY2FjaGUgbGF5ZXIgYW5kIGJlbG93IGdldCB0byBrbm93IGFueXRoaW5nIGFib3V0IGZy
YWdtZW50IGlkZW50aWZpZXJzLgogICAgIC8vIFdlIHNob3VsZCBsb29rIGludG8gcmVtb3Zpbmcg
dGhlIGV4cGVjdGF0aW9uIG9mIHRoYXQga25vd2xlZGdlIGZyb20gdGhlIHBsYXRmb3JtIG5ldHdv
cmsgc3RhY2tzLgpAQCAtMzUyLDE0ICszNDIsMTIgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9h
ZChDYWNoZWRSZXNvdXJjZUxvYWRlciYgY2FjaGVkUmVzb3VyY2VMb2FkZXIpCiAgICAgbV9zdGF0
dXMgPSBQZW5kaW5nOwogfQogCi12b2lkIENhY2hlZFJlc291cmNlOjpsb2FkRnJvbShjb25zdCBD
YWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNv
dXJjZUxvYWRlcikKK3ZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWRGcm9tKGNvbnN0IENhY2hlZFJl
c291cmNlJiByZXNvdXJjZSkKIHsKICAgICBBU1NFUlQodXJsKCkgPT0gcmVzb3VyY2UudXJsKCkp
OwogICAgIEFTU0VSVCh0eXBlKCkgPT0gcmVzb3VyY2UudHlwZSgpKTsKICAgICBBU1NFUlQocmVz
b3VyY2Uuc3RhdHVzKCkgPT0gU3RhdHVzOjpDYWNoZWQpOwogCi0gICAgY29tcHV0ZU9yaWdpbihj
YWNoZWRSZXNvdXJjZUxvYWRlcik7Ci0KICAgICBpZiAoaXNDcm9zc09yaWdpbigpICYmIG1fb3B0
aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycykgewogICAgICAgICBBU1NFUlQo
bV9vcmlnaW4pOwogICAgICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCA0NWU5MjFmMjdjY2YxNDI2OGRj
N2M2MDIzY2Q2YmMyZDQ2NzE2M2M3Li5iYTQ1MTIzYTdmNTY2NmE3NThiNzM2ZTM0OGQ4YzExNGU5
M2QzZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
aApAQCAtMjExLDcgKzIxMSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ2xlYW4oKSBjb25zdDsK
ICAgICBSZXNvdXJjZVJlc3BvbnNlOjpUYWludGluZyByZXNwb25zZVRhaW50aW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9yZXNwb25zZVRhaW50aW5nOyB9CiAKLSAgICB2b2lkIGxvYWRGcm9tKGNvbnN0
IENhY2hlZFJlc291cmNlJiwgQ2FjaGVkUmVzb3VyY2VMb2FkZXImKTsKKyAgICB2b2lkIGxvYWRG
cm9tKGNvbnN0IENhY2hlZFJlc291cmNlJik7CiAKICAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2lu
KCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW4uZ2V0KCk7IH0KIApAQCAtMzA5LDcgKzMwOSw2IEBA
IHByaXZhdGU6CiAgICAgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyBmcmVzaG5lc3NMaWZldGlt
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgY29uc3Q7CiAKICAgICB2b2lkIGFkZEFkZGl0aW9u
YWxSZXF1ZXN0SGVhZGVycyhDYWNoZWRSZXNvdXJjZUxvYWRlciYpOwotICAgIHZvaWQgY29tcHV0
ZU9yaWdpbihDYWNoZWRSZXNvdXJjZUxvYWRlciYpOwogICAgIHZvaWQgZmFpbEJlZm9yZVN0YXJ0
aW5nKCk7CiAKICAgICBIYXNoTWFwPENhY2hlZFJlc291cmNlQ2xpZW50Kiwgc3RkOjp1bmlxdWVf
cHRyPENhbGxiYWNrPj4gbV9jbGllbnRzQXdhaXRpbmdDYWxsYmFjazsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDAx
N2E2MTg0OTdjMDFlOTk0NzgwNjAyODNiZWU1NDU4ZDFlNGIyMjYuLmVhMWNiNWI0MmExOWM5ZDE4
M2MyNTQzZTNiZGU2ZTc5NmIwYjI0MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNTU2LDcgKzU1Niw3IEBAIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
dXBkYXRlQ2FjaGVkUmVzb3VyY2VXCiAgICAgfQogCiAgICAgYXV0byByZXNvdXJjZUhhbmRsZSA9
IGNyZWF0ZVJlc291cmNlKHJlc291cmNlLnR5cGUoKSwgV1RGTW92ZShyZXF1ZXN0KSwgc2Vzc2lv
bklEKCkpOwotICAgIHJlc291cmNlSGFuZGxlLT5sb2FkRnJvbShyZXNvdXJjZSwgKnRoaXMpOwor
ICAgIHJlc291cmNlSGFuZGxlLT5sb2FkRnJvbShyZXNvdXJjZSk7CiAgICAgcmV0dXJuIHJlc291
cmNlSGFuZGxlOwogfQogCkBAIC01OTUsNiArNTk1LDkgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cHJlcGFyZUZldGNoKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291
cmMKIHsKICAgICAvLyBJbXBsZW1lbnRpbmcgc3RlcCAxIHRvIDcgb2YgaHR0cHM6Ly9mZXRjaC5z
cGVjLndoYXR3Zy5vcmcvI2ZldGNoaW5nCiAKKyAgICBpZiAoIXJlcXVlc3Qub3JpZ2luKCkgJiYg
ZG9jdW1lbnQoKSkKKyAgICAgICAgcmVxdWVzdC5zZXRPcmlnaW4oZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKSk7CisKICAgICBpZiAoIXJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuaGFzSFRU
UEhlYWRlcihIVFRQSGVhZGVyTmFtZTo6QWNjZXB0KSkKICAgICAgICAgcmVxdWVzdC5tdXRhYmxl
UmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nl
cHQsIGFjY2VwdEhlYWRlclZhbHVlRnJvbVR5cGUodHlwZSkpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4IGI4
NjczMmEwZWVmMDg3NmQwYmNmZTYxZDYxOGI1NDBlNTU5ZDdjNGMuLjFjM2VlNmYyN2I1OTljOWY4
YzNjMDhiN2RlZTAwY2I0NzQzZGQxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCkBAIC03OSwxMyArNzksMTYgQEAg
Y29uc3QgQXRvbWljU3RyaW5nJiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUo
KSBjb25zdAogdm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEFzUG90ZW50aWFsbHlDcm9z
c09yaWdpbihjb25zdCBTdHJpbmcmIG1vZGUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBB
U1NFUlQobV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMpOworICAg
IEFTU0VSVChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKTsKKworICAgIG1fb3JpZ2luID0gZG9j
dW1lbnQuc2VjdXJpdHlPcmlnaW4oKTsKKwogICAgIGlmIChtb2RlLmlzTnVsbCgpKQogICAgICAg
ICByZXR1cm47CiAgICAgbV9vcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnM7
CiAgICAgbV9vcHRpb25zLmNyZWRlbnRpYWxzID0gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UobW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6
SW5jbHVkZSA6IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW47CiAgICAgbV9v
cHRpb25zLmFsbG93Q3JlZGVudGlhbHMgPSBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSht
b2RlLCAidXNlLWNyZWRlbnRpYWxzIikgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RB
bGxvd1N0b3JlZENyZWRlbnRpYWxzOwogCi0gICAgQVNTRVJUKGRvY3VtZW50LnNlY3VyaXR5T3Jp
Z2luKCkpOwogICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKG1fcmVzb3VyY2VSZXF1
ZXN0LCAqZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSwgbV9vcHRpb25zLmFsbG93Q3JlZGVudGlh
bHMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmgKaW5kZXggYTFkODBlZWE1NzdkY2Y5YmUyZTIyZDE2NDgwYTAyNjdiNTcy
NmFkYy4uZDI3YjVlMzkxNWQ5NjI4M2JhNTg1YWVhNTdmN2U3MDMxMjgzYTVjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlTG9hZFByaW9yaXR5LmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0
LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKQEAgLTYyLDYgKzYzLDkgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0Q2FjaGluZ1BvbGljeShDYWNoaW5nUG9saWN5IHBvbGljeSkg
eyBtX29wdGlvbnMuY2FjaGluZ1BvbGljeSA9IHBvbGljeTsgfQogCiAgICAgdm9pZCBzZXRBc1Bv
dGVudGlhbGx5Q3Jvc3NPcmlnaW4oY29uc3QgU3RyaW5nJiwgRG9jdW1lbnQmKTsKKyAgICB2b2lk
IHNldE9yaWdpbihSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgb3JpZ2luKSB7IEFTU0VSVCghbV9v
cmlnaW4pOyBtX29yaWdpbiA9IFdURk1vdmUob3JpZ2luKTsgfQorICAgIFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4gcmVsZWFzZU9yaWdpbigpIHsgcmV0dXJuIFdURk1vdmUobV9vcmlnaW4pOyB9Cisg
ICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luLmdldCgp
OyB9CiAKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwpA
QCAtNzIsNiArNzYsNyBAQCBwcml2YXRlOgogICAgIERlZmVyT3B0aW9uIG1fZGVmZXI7CiAgICAg
UmVmUHRyPEVsZW1lbnQ+IG1faW5pdGlhdG9yRWxlbWVudDsKICAgICBBdG9taWNTdHJpbmcgbV9p
bml0aWF0b3JOYW1lOworICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzgzNDZhNzI1NWNmOWNkMTAwN2ZiMDNk
MWY5YzZiNzY4YmMxNzcxMi4uMjE5ZWE2NDE3YzhmNTU4Y2Y0ZWFkYWU3ODk3YmVlOGU2YmMzYjg3
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDE2LTA5LTIxICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qgc2hvdWxkIHN0
b3JlIGEgU2VjdXJpdHlPcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MjI1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVwZGF0ZWQgdGVzdCB0byBleHBlY3QgbG9hZCBldmVuIHRob3VnaCBDT1JT
IGNoZWNrcyBzaG91bGQgZmFpbCBhcyB0aGUgZG9jdW1lbnQgb3JpZ2luIGhhcyB1bml2ZXJzYWwg
YWNjZXNzLgorCisgICAgICAgICogaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4t
bG9hZHMtZmFpbC1vcmlnaW4tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2NoZW1lLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3Nvcmln
aW4tbG9hZHMtZmlsZS1zY2hlbWUuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZhaWwtb3JpZ2luLmh0bWwuCisK
KzIwMTYtMDktMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCiAgICAgICAg
IFtGZXRjaF0gQWxpZ24gQWNjZXB0IGhlYWRlciBkZWZhdWx0IHZhbHVlcyB3aXRoIGZldGNoIHNw
ZWMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjI2
MAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9z
c29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9zc29yaWdpbi1sb2Fkcy1mYWlsLW9yaWdpbi1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiMGI4MzBhYTAwYWQ1ZDgxNWM3
ZWIyMjc4NmU1MjE0ZTM4MmY1NWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3Nvcmln
aW4tbG9hZHMtZmFpbC1vcmlnaW4tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSAr
MCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNz
LUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBDcm9zcy1vcmlnaW4gc2Ny
aXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4K
LVRoaXMgdGVzdCBmYWlscyBpZiB0aGUgc2NyaXB0IGxvYWRzIGNvcnJlY3RseS4KLQotUEFTUwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3Nvcmln
aW4tbG9hZHMtZmFpbC1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwv
c2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZhaWwtb3JpZ2luLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZhNmNjZmE4OTljMDlkNzkzMTU3N2JjYmYxNThhM2E2N2RmMTZlNDQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmFpbC1vcmlnaW4u
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLTxib2R5PgotPHA+VGhpcyB0ZXN0
IGZhaWxzIGlmIHRoZSBzY3JpcHQgbG9hZHMgY29ycmVjdGx5LjwvcD4KLTxwcmU+PC9wcmU+Ci08
c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci19Ci0KLWZ1bmN0aW9uIGRv
bmUobXNnKSB7Ci0gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigicHJlIikuaW5uZXJIVE1MID0g
bXNnOwotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Ci19Ci0KLXZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3Jp
cHQiKTsKLXNjcmlwdC5jcm9zc09yaWdpbiA9ICJ1c2UtY3JlZGVudGlhbHMiOwotLy8gV2UgYXJl
IHNlcnZpbmcgdGhlIHRlc3QgZnJvbSB0aGUgZmlsZXN5c3RlbSwgc28gaXQgc2hvdWxkIGZhaWwg
YXMgYXV0aG9yaXplZCBvcmlnaW4gaXMgMTI3LjAuMC4xOjgwMDAuCi1zY3JpcHQuc3JjID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY29ycy1zY3JpcHQucGhwP2Ny
ZWRlbnRpYWxzPXRydWUiOwotc2NyaXB0Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeyBkb25lKCJGQUlM
Iik7IH0KLXNjcmlwdC5vbmVycm9yID0gZnVuY3Rpb24oKSB7IGRvbmUoIlBBU1MiKTt9Ci1kb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvc2NyaXB0LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUt
c2NoZW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvc2NyaXB0
LWNyb3Nzb3JpZ2luLWxvYWRzLWZpbGUtc2NoZW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
MDViYmYzMjk3MmNlNWE4MzdkMjU3ZmFhNDIxZGRkZTRlN2NhNGE3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMt
ZmlsZS1zY2hlbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorQUxFUlQ6IHNjcmlwdCBy
YW4uCitUaGlzIHRlc3QgcGFzc2VzIGlmIHRoZSBzY3JpcHQgbG9hZHMgY29ycmVjdGx5LgorCitQ
QVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL3NjcmlwdC1jcm9z
c29yaWdpbi1sb2Fkcy1maWxlLXNjaGVtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9s
b2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9hZHMtZmlsZS1zY2hlbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ZTQwZGQwNDU1YmEyNTgxZjM3YWEzZWVmYzg2M2MwODU4ZWFlOTAxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9zY3JpcHQtY3Jvc3NvcmlnaW4tbG9h
ZHMtZmlsZS1zY2hlbWUuaHRtbApAQCAtMCwwICsxLDI0IEBACis8Ym9keT4KKzxwPlRoaXMgdGVz
dCBwYXNzZXMgaWYgdGhlIHNjcmlwdCBsb2FkcyBjb3JyZWN0bHkuPC9wPgorPHByZT48L3ByZT4K
KzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24g
ZG9uZShtc2cpIHsKKyAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJwcmUiKS5pbm5lckhUTUwg
PSBtc2c7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKK30KKwordmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNj
cmlwdCIpOworc2NyaXB0LmNyb3NzT3JpZ2luID0gInVzZS1jcmVkZW50aWFscyI7CisvLyBXZSBh
cmUgc2VydmluZyB0aGUgdGVzdCBmcm9tIHRoZSBmaWxlc3lzdGVtIGFuZCBmaWxlIFVSTHMgYXJl
IGdyYW50ZWQgdW5pdmVyc2FsIGFjY2Vzcy4KKy8vIFRoaXMgYnlwYXNzZXMgQ09SUyBjaGVja3Mg
YW5kIHdpbGwgYWxsb3cgYWNjZXNzIHRvIDEyNy4wLjAuMTo4MDAwLgorc2NyaXB0LnNyYyA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2NvcnMtc2NyaXB0LnBocD9j
cmVkZW50aWFscz10cnVlIjsKK3NjcmlwdC5vbmxvYWQgPSBmdW5jdGlvbigpIHsgZG9uZSgiUEFT
UyIpOyB9CitzY3JpcHQub25lcnJvciA9IGZ1bmN0aW9uKCkgeyBkb25lKCJGQUlMIik7fQorZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>