<?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>129166</bug_id>
          
          <creation_ts>2014-02-21 13:32:32 -0800</creation_ts>
          <short_desc>[EME] Add a CDMSession for MediaPlayerPrivateMediaSourceAVFObjC</short_desc>
          <delta_ts>2014-02-21 22:12:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>983324</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-02-21 13:32:32 -0800</bug_when>
    <thetext>[EME] Add a CDMSession for MediaPlayerPrivateMediaSourceAVFObjC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983339</commentid>
    <comment_count>1</comment_count>
      <attachid>224901</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-02-21 13:54:22 -0800</bug_when>
    <thetext>Created attachment 224901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983437</commentid>
    <comment_count>2</comment_count>
      <attachid>224925</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-02-21 16:23:46 -0800</bug_when>
    <thetext>Created attachment 224925
Patch

Rebaselined</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983443</commentid>
    <comment_count>3</comment_count>
      <attachid>224925</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-02-21 16:51:12 -0800</bug_when>
    <thetext>Comment on attachment 224925
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:67
&gt; +    UNUSED_PARAM(errorCode);
&gt; +    UNUSED_PARAM(systemCode);

Maybe you should set these out params to 0?

&gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:110
&gt; +    LOG(Media, &quot;CDMSessionMediaSourceAVFObjC::update(%p) - key data&quot;, this);
&gt; +    RetainPtr&lt;NSData&gt; keyData = adoptNS([[NSData alloc] initWithBytes:key-&gt;data() length:key-&gt;length()]);
&gt; +    [m_parent-&gt;parser() processContentKeyResponseData:keyData.get() forTrackID:m_parent-&gt;protectedTrackID()];
&gt; +    return true;

Ditto about errorCode and systemCode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983493</commentid>
    <comment_count>4</comment_count>
      <attachid>224942</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-02-21 20:19:02 -0800</bug_when>
    <thetext>Created attachment 224942
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983498</commentid>
    <comment_count>5</comment_count>
      <attachid>224944</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-02-21 21:03:03 -0800</bug_when>
    <thetext>Created attachment 224944
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983506</commentid>
    <comment_count>6</comment_count>
      <attachid>224945</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-02-21 21:34:07 -0800</bug_when>
    <thetext>Created attachment 224945
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983511</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-02-21 22:12:57 -0800</bug_when>
    <thetext>Committed r164529: &lt;http://trac.webkit.org/changeset/164529&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224901</attachid>
            <date>2014-02-21 13:54:22 -0800</date>
            <delta_ts>2014-02-21 16:23:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129166-20140221135422.patch</filename>
            <type>text/plain</type>
            <size>28566</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0MzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRmZGM0ZGZhZDIyZGUy
NTllNTY1YWJmMGJkYzcwNjdiMDE3ZjdmNi4uMGM3NzE5ZjhkMzE0OGRlMjFjYjFjMDE4YTlmMDdm
YjZhNzIwNDc0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ4IEBACiAyMDE0LTAyLTIxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFtFTUVdIEFkZCBhIENETVNl
c3Npb24gZm9yIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTY2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IENETVNlc3Np
b24sIGNlcmF0ZWQgYnkgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDIGFsbG93
aW5nCisgICAgICAgIG1lZGlhLXNvdXJjZS1iYWNrZWQgbWVkaWEgZWxlbWVudHMgdG8gcGxheSBw
cm90ZWN0ZWQgY29udGVudC4KKworICAgICAgICBBZGQgYSBuZXcgQ0RNU2Vzc2lvbk1lZGlhU291
cmNlQVZGT2JqQyBjbGFzczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6fkNETVNlc3Npb25NZWRpYVNv
dXJjZUFWRk9iakMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6Q0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
OjpnZW5lcmF0ZUtleVJlcXVlc3QpOiBEbyBub3QgYWN0dWFsbHkgZ2VuZXJhdGUgYQorICAgICAg
ICAgICAga2V5IHJlcXVlc3QgdW50aWwgdGhlIGNlcnRpZmljYXRlIGRhdGEgaGFzIGJlZW4gYWRk
ZWQgdmlhIHVwZGF0ZSgpOworICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQzo6cmVsZWFzZUtleXMpOiBOby1vcC4KKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZSk6IElmIG5vIGNlcnRpZmljYXRlIGRhdGEgaGFz
IHlldCBiZWVuCisgICAgICAgICAgICBhZGRlZCwgYXNzdW1lIHRoZSBpbmNvbWluZyBtZXNzYWdl
IGNvbnRhaW5zIGl0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKTogQWRkIHN1cHBvcnRzS2V5
U3lzdGVtLgorICAgICAgICAoV2ViQ29yZTo6a2V5U3lzdGVtSXNTdXBwb3J0ZWQpOiBVc2UgImNv
bS5hcHBsZS5mcHMuMl8wIiB0byBkaXN0aW5ndWlzaCBmcm9tIHRoZSBub3QtbWVkaWEtc291cmNl
IHNjaGVtZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6c3VwcG9ydHNUeXBlKTogQ2hlY2sgdGhlIGtleVN5c3RlbSB0eXBlLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0
c0tleVN5c3RlbSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGVTZXNzaW9uKTogQWRkZWQsIHBhc3MgdGhyb3VnaCB0
byBNZWRpYVNvdXJjZVByaXZhdGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpjcmVhdGVT
ZXNzaW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZP
YmpDOjpzb3VyY2VCdWZmZXJLZXlOZWVkZWQpOiBQYXNzIHRocm91Z2ggdG8gTWVkaWFQbGF5ZXIu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKC1bV2Vi
QVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToKKyAgICAgICAg
ICAgIEFkZGVkLCBwYXNzIHRocm91Z2ggdG8gU291cmNlQnVmZmVyUHJpdmF0ZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRCk6
IFJlbWVtYmVyCisgICAgICAgICAgICB3aGljaCB0cmFjayBpcyByZXF1ZXN0aW5nIHRoZSBrZXks
IGFuZCBwYXNzIHRoZSByZXF1ZXN0IHRvIE1lZGlhU291cmNlUHJpdmF0ZS4KKworICAgICAgICBB
ZGQgbmV3IGZpbGVzIHRvIHRoZSBwcm9qZWN0LgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKworMjAxNC0wMi0yMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KKwogICAgICAgICBNYWtlIGEgZ2VuZXJpYyBDRE1Qcml2YXRlTWVkaWFQbGF5ZXIg
YW5kIG1vdmUgaXRzIENETVNlc3Npb24gaW50byBwbGF0Zm9ybS8uCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkxNjQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDA1YjQ1NmE3MzM0
Zjk0MTgxYzdmNjQxZDA3MjBkNWEwODNhMjc0YzQuLjc2MDhkNDU5YWVlYWNjODljYzg5ZGMzMjU5
Yjc4ODY3MzYxYTczMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTU1MzUsNiArNTUzNSw3IEBACiAJCUNEREMxRTdBMThBOTUy
RjMwMDI3QTlENCAvKiBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEREMxRTc5MThBOTUyRjMwMDI3QTlENCAv
KiBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCAqLzsgfTsKIAkJQ0RERDU3MTUxOEI1N0E4MjAw
QTk0RkNCIC8qIENETVNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEREUwMkU5MThCM0RGQzcwMENGN0ZGMSAvKiBDRE1TZXNzaW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RERTAyRUQx
OEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RERTAyRUIxOEIzRUQ2RDAw
Q0Y3RkYxIC8qIENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tICovOyB9OworCQlDRERFMDJG
MDE4QjU2NTEzMDBDRjdGRjEgLyogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEREUwMkVGMThCNTY1
MTIwMENGN0ZGMSAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tICovOyB9OwogCQlD
REUzQTg1NDE3RjVGQ0U2MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVBVkYuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERTNBODUyMTdGNUZDRTYw
MEM1QkUyMCAvKiBBdWRpb1RyYWNrUHJpdmF0ZUFWRi5oICovOyB9OwogCQlDREUzQTg1NzE3RjYw
MjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFM0E4NTUxN0Y2MDIwNDAwQzVCRTIw
IC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbSAqLzsgfTsKIAkJQ0RFM0E4NTgxN0Y2MDIw
NDAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFM0E4NTYxN0Y2MDIwNDAwQzVCRTIwIC8q
IEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5oICovOyB9OwpAQCAtMTI3OTcsNiArMTI3OTgsOCBA
QAogCQlDRERFMDJFOTE4QjNERkM3MDBDRjdGRjEgLyogQ0RNU2Vzc2lvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDRE1TZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEREUwMkVB
MThCM0VENkQwMENGN0ZGMSAvKiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oOyBw
YXRoID0gb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRERFMDJFQjE4QjNFRDZEMDBDRjdGRjEgLyogQ0RNU2Vzc2lvbkFWRm91
bmRhdGlvbk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBD
RE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbTsgcGF0aCA9IG9iamMvQ0RNU2Vzc2lvbkFWRm91
bmRhdGlvbk9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEREUwMkVFMThC
NTY0RkEwMENGN0ZGMSAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaDsgcGF0aCA9IG9iamMvQ0RNU2Vz
c2lvbk1lZGlhU291cmNlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
RERFMDJFRjE4QjU2NTEyMDBDRjdGRjEgLyogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENETVNlc3Npb25NZWRp
YVNvdXJjZUFWRk9iakMubW07IHBhdGggPSBvYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9i
akMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERTNBODUyMTdGNUZDRTYwMEM1
QkUyMCAvKiBBdWRpb1RyYWNrUHJpdmF0ZUFWRi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBdWRpb1RyYWNrUHJpdmF0ZUFWRi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDREUzQTg1NTE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpD
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQXVkaW9UcmFja1By
aXZhdGVBVkZPYmpDLm1tOyBwYXRoID0gb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERTNBODU2MTdGNjAyMDQwMEM1QkUyMCAv
KiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmg7IHBhdGggPSBvYmpjL0F1ZGlvVHJhY2tQ
cml2YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA5ODYsNiAr
MjA5ODksOCBAQAogCQkJCUNEMzM2RjVGMTdGOUY2NDcwMERERENEMCAvKiBBVlRyYWNrUHJpdmF0
ZUFWRk9iakNJbXBsLm1tICovLAogCQkJCUNEREUwMkVBMThCM0VENkQwMENGN0ZGMSAvKiBDRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oICovLAogCQkJCUNEREUwMkVCMThCM0VENkQwMENGN0ZG
MSAvKiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbSAqLywKKwkJCQlDRERFMDJFRTE4QjU2
NEZBMDBDRjdGRjEgLyogQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oICovLAorCQkJCUNE
REUwMkVGMThCNTY1MTIwMENGN0ZGMSAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1t
ICovLAogCQkJCTA3QUE2QjY5MTY2RDAxOTUwMEQ0NTY3MSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlQVZGT2JqQy5oICovLAogCQkJCTA3QUE2QjZBMTY2RDAxOTUwMEQ0NTY3MSAvKiBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5tbSAqLywKIAkJCQkwNzM2N0RERDE3MkNBNjdGMDBEODYx
QjkgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMuaCAqLywKQEAgLTI4OTgz
LDYgKzI4OTg4LDcgQEAKIAkJCQk1MTFFRjJDNjE3RjBGRDM1MDBFNEZBMTYgLyogSlNJREJLZXlS
YW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QjlENDEwNDJEMzJGMDAwOUQ0NDcgLyog
V2ViR0xPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFENzE5RDgxODExMDZFMDAwMTZE
QzUxIC8qIElEQkluZGV4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEREUwMkYwMThCNTY1MTMw
MENGN0ZGMSAvKiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDlDN0I5RDYxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMUHJvZ3JhbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0OUM3QjlEOTEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xSZW5kZXJidWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlDN0I5REYxMDQyRDMyRjAwMDlENDQ3IC8qIFdl
YkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25N
ZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jYzY1ODhkNGM2NzgxM2M1MWExZGM1ZmEwMGM2MTBhMjE0ZmQ2ZmVkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakNfaAorI2RlZmluZSBDRE1T
ZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDX2gKKworI2luY2x1ZGUgIkNETVNlc3Npb24uaCIKKyNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwor
I2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTA5MAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOworCitjbGFzcyBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
IDogcHVibGljIENETVNlc3Npb24geworcHVibGljOgorICAgIENETVNlc3Npb25NZWRpYVNvdXJj
ZUFWRk9iakMoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIHBhcmVudCk7CisgICAgdmlydHVh
bCB+Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQygpIHsgfQorCisgICAgdmlydHVhbCB2b2lk
IHNldENsaWVudChDRE1TZXNzaW9uQ2xpZW50KiBjbGllbnQpIG92ZXJyaWRlIHsgbV9jbGllbnQg
PSBjbGllbnQ7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9zZXNzaW9uSWQ7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVp
bnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9y
dCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVsZWFzZUtleXMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgdXBk
YXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25l
ZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsK
KworcHJvdGVjdGVkOgorICAgIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKiBtX3BhcmVudDsK
KyAgICBDRE1TZXNzaW9uQ2xpZW50KiBtX2NsaWVudDsKKyAgICBSZWZQdHI8VWludDhBcnJheT4g
bV9pbml0RGF0YTsKKyAgICBSZWZQdHI8VWludDhBcnJheT4gbV9jZXJ0aWZpY2F0ZTsKKyAgICBT
dHJpbmcgbV9zZXNzaW9uSWQ7Cit9OworCit9CisKKyNlbmRpZgorCisjZW5kaWYgLy8gQ0RNU2Vz
c2lvbk1lZGlhU291cmNlQVZGT2JqQ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNWFjNGQ2Nzhh
ZTkxYmEyYzA4NzBhOTY0ZWJiNzU3Njk1YjA4YWRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1l
ZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIgor
CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDkwCisKKyNpbXBvcnQgIkNETS5oIgorI2ltcG9ydCAiQ0RNU2Vzc2lv
bi5oIgorI2ltcG9ydCAiRXhjZXB0aW9uQ29kZS5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgorI2lt
cG9ydCAiTWVkaWFQbGF5ZXIuaCIKKyNpbXBvcnQgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
LmgiCisjaW1wb3J0ICJTb2Z0TGlua2luZy5oIgorI2ltcG9ydCAiVVVJRC5oIgorI2ltcG9ydCA8
Q29yZU1lZGlhL0NNQmFzZS5oPgorI2ltcG9ydCA8b2JqYy9vYmpjLXJ1bnRpbWUuaD4KKworU09G
VF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRpb24pCitTT0ZUX0xJTktfQ0xBU1Mo
QVZGb3VuZGF0aW9uLCBBVlN0cmVhbURhdGFQYXJzZXIpOworI2RlZmluZSBBVkFzc2V0UmVzb3Vy
Y2VMb2FkaW5nUmVxdWVzdCBnZXRBVlN0cmVhbURhdGFQYXJzZXIoKQorCitAaW50ZXJmYWNlIEFW
U3RyZWFtRGF0YVBhcnNlciA6IE5TT2JqZWN0CistICh2b2lkKXByb2Nlc3NDb250ZW50S2V5UmVz
cG9uc2VEYXRhOihOU0RhdGEgKiljb250ZW50S2V5UmVzcG9uc2VEYXRhIGZvclRyYWNrSUQ6KENN
UGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJRDsKKy0gKHZvaWQpcHJvY2Vzc0NvbnRlbnRLZXlSZXNw
b25zZUVycm9yOihOU0Vycm9yICopZXJyb3IgZm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJ
RCl0cmFja0lEOworLSAodm9pZClyZW5ld0V4cGlyaW5nQ29udGVudEtleVJlc3BvbnNlRGF0YUZv
clRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJRDsKKy0gKE5TRGF0YSAqKXN0cmVh
bWluZ0NvbnRlbnRLZXlSZXF1ZXN0RGF0YUZvckFwcDooTlNEYXRhICopYXBwSWRlbnRpZmllciBj
b250ZW50SWRlbnRpZmllcjooTlNEYXRhICopY29udGVudElkZW50aWZpZXIgdHJhY2tJRDooQ01Q
ZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEIG9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKW9wdGlvbnMg
ZXJyb3I6KE5TRXJyb3IgKiopb3V0RXJyb3I7CitAZW5kCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZG
T2JqQyhTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyogcGFyZW50KQorICAgIDogbV9wYXJlbnQo
cGFyZW50KQorICAgICwgbV9jbGllbnQobnVsbHB0cikKKyAgICAsIG1fc2Vzc2lvbklkKGNyZWF0
ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkKK3sKK30KKworUGFzc1JlZlB0cjxVaW50OEFycmF5PiBD
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRpb25V
UkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUp
Cit7CisgICAgVU5VU0VEX1BBUkFNKG1pbWVUeXBlKTsKKyAgICBVTlVTRURfUEFSQU0oZGVzdGlu
YXRpb25VUkwpOworICAgIFVOVVNFRF9QQVJBTShlcnJvckNvZGUpOworICAgIFVOVVNFRF9QQVJB
TShzeXN0ZW1Db2RlKTsKKyAgICBBU1NFUlQoaW5pdERhdGEpOworCisgICAgTE9HKE1lZGlhLCAi
Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6Z2VuZXJhdGVLZXlSZXF1ZXN0KCVwKSIsIHRo
aXMpOworCisgICAgbV9pbml0RGF0YSA9IGluaXREYXRhOworICAgIFN0cmluZyBjZXJ0aWZpY2F0
ZVN0cmluZyhBU0NJSUxpdGVyYWwoImNlcnRpZmljYXRlIikpOworICAgIHJldHVybiBVaW50OEFy
cmF5OjpjcmVhdGUoKHVpbnQ4X3QqKWNlcnRpZmljYXRlU3RyaW5nLmdldENoYXJhY3RlcnNXaXRo
VXBjb252ZXJ0PFVDaGFyPigpLCBjZXJ0aWZpY2F0ZVN0cmluZy5sZW5ndGgoKSAqIHNpemVvZihV
Q2hhcikpOworfQorCit2b2lkIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnJlbGVhc2VL
ZXlzKCkKK3sKKyAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpy
ZWxlYXNlS2V5cyglcCkiLCB0aGlzKTsKK30KKworYm9vbCBDRE1TZXNzaW9uTWVkaWFTb3VyY2VB
VkZPYmpDOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRN
ZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1D
b2RlKQoreworICAgIGlmICghbV9jZXJ0aWZpY2F0ZSkgeworICAgICAgICBMT0coTWVkaWEsICJD
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGUoJXApIC0gY2VydGlmaWNhdGUgZGF0
YSIsIHRoaXMpOworCisgICAgICAgIG1fY2VydGlmaWNhdGUgPSBrZXk7CisKKyAgICAgICAgUmV0
YWluUHRyPE5TRGF0YT4gY2VydGlmaWNhdGVEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10g
aW5pdFdpdGhCeXRlczptX2NlcnRpZmljYXRlLT5kYXRhKCkgbGVuZ3RoOm1fY2VydGlmaWNhdGUt
Pmxlbmd0aCgpXSk7CisgICAgICAgIFJldGFpblB0cjxOU0RhdGE+IGluaXREYXRhID0gYWRvcHRO
UyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczptX2luaXREYXRhLT5kYXRhKCkgbGVuZ3Ro
Om1faW5pdERhdGEtPmxlbmd0aCgpXSk7CisKKyAgICAgICAgTlNFcnJvciogZXJyb3IgPSBuaWw7
CisgICAgICAgIFJldGFpblB0cjxOU0RhdGE+IHJlcXVlc3QgPSBhZG9wdE5TKFttX3BhcmVudC0+
cGFyc2VyKCkgc3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRhRm9yQXBwOmNlcnRpZmljYXRl
RGF0YS5nZXQoKSBjb250ZW50SWRlbnRpZmllcjppbml0RGF0YS5nZXQoKSB0cmFja0lEOm1fcGFy
ZW50LT5wcm90ZWN0ZWRUcmFja0lEKCkgb3B0aW9uczpuaWwgZXJyb3I6JmVycm9yXSk7CisKKyAg
ICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uTWVk
aWFTb3VyY2VBVkZPYmpDOjp1cGRhdGUoJXApIC0gZXJyb3I6JUAiLCB0aGlzLCBbZXJyb3IgZGVz
Y3JpcHRpb25dKTsKKyAgICAgICAgICAgIGVycm9yQ29kZSA9IE1lZGlhUGxheWVyOjpJbnZhbGlk
UGxheWVyU3RhdGU7CisgICAgICAgICAgICBzeXN0ZW1Db2RlID0gW2Vycm9yIGNvZGVdOworICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgbmV4dE1lc3NhZ2Ug
PSBVaW50OEFycmF5OjpjcmVhdGUoW3JlcXVlc3QgbGVuZ3RoXSk7CisgICAgICAgIFtyZXF1ZXN0
IGdldEJ5dGVzOm5leHRNZXNzYWdlLT5kYXRhKCkgbGVuZ3RoOm5leHRNZXNzYWdlLT5sZW5ndGgo
KV07CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBMT0coTWVkaWEsICJDRE1T
ZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGUoJXApIC0ga2V5IGRhdGEiLCB0aGlzKTsK
KyAgICBSZXRhaW5QdHI8TlNEYXRhPiBrZXlEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10g
aW5pdFdpdGhCeXRlczprZXktPmRhdGEoKSBsZW5ndGg6a2V5LT5sZW5ndGgoKV0pOworICAgIFtt
X3BhcmVudC0+cGFyc2VyKCkgcHJvY2Vzc0NvbnRlbnRLZXlSZXNwb25zZURhdGE6a2V5RGF0YS5n
ZXQoKSBmb3JUcmFja0lEOm1fcGFyZW50LT5wcm90ZWN0ZWRUcmFja0lEKCldOworICAgIHJldHVy
biB0cnVlOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCA3
M2Q0YjVhY2ZiZTExYWQ5MmRkNmY1NGMxMTgwYTUzNDc0NmQ3MzE3Li5mNDA5MmQ0OWJjODk5ZWNh
OTk2YmM1MjdkZWY4NzA3ZTk2ZGY4ZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAt
NzMsNiArNzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaXplQ2hhbmdlZCgpOwogCiAjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDRE1T
ZXNzaW9uPiBjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQga2V5TmVlZGVk
KFVpbnQ4QXJyYXkqKTsKICNlbmRpZgogCkBAIC0xNTksNiArMTYwLDcgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRl
ZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0
ZXJzJik7CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBr
ZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogCiAgICAgZnJpZW5kIGNsYXNzIE1l
ZGlhU291cmNlUHJpdmF0ZUFWRk9iakM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRl
eCBhYzRhNjllMzRiMjdkZWFjYmM1M2Q5Y2NkMTM5NzdhNzk2MGI5ZTdhLi5mZGUwZTk0YzY1Mzdj
NWQ2MWZmN2MyYzY3MWMzZTFiNzM0YzZkMTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZG
T1VOREFUSU9OKQogCisjaW1wb3J0ICJDRE1TZXNzaW9uLmgiCiAjaW1wb3J0ICJNZWRpYVNvdXJj
ZVByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCIK
ICNpbXBvcnQgIk1lZGlhVGltZU1hYy5oIgpAQCAtMTY1LDcgKzE2Niw3IEBAIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6fk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQygpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVn
aXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAg
aWYgKGlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRl
ZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAsIDApOworICAgICAgICByZWdpc3RyYXIoY3Jl
YXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tl
eVN5c3RlbSk7CiB9CiAKIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmNyZWF0ZShNZWRpYVBsYXllciog
cGxheWVyKQpAQCAtMjA0LDggKzIwNSwyMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eQogICAg
IHR5cGVzID0gbWltZVR5cGVDYWNoZSgpOwogfQogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QV9WMikKK3N0YXRpYyBib29sIGtleVN5c3RlbUlzU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYga2V5
U3lzdGVtKQoreworICAgIHJldHVybiBlcXVhbElnbm9yaW5nQ2FzZShrZXlTeXN0ZW0sICJjb20u
YXBwbGUuZnBzLjJfMCIpOworfQorI2VuZGlmCisKIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c1R5cGUoY29uc3Qg
TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKKyNpZiBFTkFCTEUo
RU5DUllQVEVEX01FRElBX1YyKQorICAgIGlmICghcGFyYW1ldGVycy5rZXlTeXN0ZW0uaXNFbXB0
eSgpICYmICFrZXlTeXN0ZW1Jc1N1cHBvcnRlZChwYXJhbWV0ZXJzLmtleVN5c3RlbSkpCisgICAg
ICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOworI2VuZGlmCisKICAg
ICAvLyBUaGlzIGVuZ2luZSBkb2VzIG5vdCBzdXBwb3J0IG5vbi1tZWRpYS1zb3VyY2Ugc291cmNl
cy4KICAgICBpZiAoIXBhcmFtZXRlcnMuaXNNZWRpYVNvdXJjZSkKICAgICAgICAgcmV0dXJuIE1l
ZGlhUGxheWVyOjpJc05vdFN1cHBvcnRlZDsKQEAgLTIyMiw2ICsyMzUsMjIgQEAgTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1
cHBvcnRzVHlwZShjb24KICAgICByZXR1cm4gW2dldEFWVVJMQXNzZXRDbGFzcygpIGlzUGxheWFi
bGVFeHRlbmRlZE1JTUVUeXBlOnR5cGVTdHJpbmddID8gTWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVk
IDogTWVkaWFQbGF5ZXI6Ok1heUJlU3VwcG9ydGVkOzsKIH0KIAorYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQoreworI2lmIEVOQUJMRShFTkNSWVBU
RURfTUVESUFfVjIpCisgICAgaWYgKCFrZXlTeXN0ZW0uaXNFbXB0eSgpKSB7CisgICAgICAgIGlm
ICgha2V5U3lzdGVtSXNTdXBwb3J0ZWQoa2V5U3lzdGVtKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgICBpZiAoIW1pbWVUeXBlLmlzRW1wdHkoKSAmJiAhbWltZVR5cGVDYWNo
ZSgpLmNvbnRhaW5zKG1pbWVUeXBlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
ICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
IE92ZXJyaWRlcwogCkBAIC01MzUsNiArNTY0LDE0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpzaXplQ2hhbmdlZCgpCiB9CiAKICNpZiBFTkFCTEUoRU5DUllQ
VEVEX01FRElBX1YyKQorc3RkOjp1bmlxdWVfcHRyPENETVNlc3Npb24+IE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSkKK3sKKyAgICBpZiAoIW1fbWVkaWFTb3VyY2VQcml2YXRlKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIHJldHVybiBtX21lZGlhU291cmNlUHJpdmF0ZS0+Y3JlYXRlU2Vzc2lv
bihrZXlTeXN0ZW0pOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6a2V5TmVlZGVkKFVpbnQ4QXJyYXkqIGluaXREYXRhKQogewogICAgIG1fcGxheWVyLT5r
ZXlOZWVkZWQoaW5pdERhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFT
b3VyY2VQcml2YXRlQVZGT2JqQy5oCmluZGV4IDY2ZDhiMDcwYmY3NTcwNDFkMWZmYzVkMzkxMmM0
MjMxYTBjOTM0YmMuLjgyNTRlYTZiZDQzOWU4N2U0MTJjYjc3Yjc5OTlhMWMwMDQ5Yjk4NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpD
LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZG
T1VOREFUSU9OKQogCiAjaW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRlLmgiCisjaW5jbHVkZSA8
d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpAQCAtNDIsNiArNDMsNyBAQCB0eXBl
ZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZmZXJSZWY7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ0RNU2Vzc2lvbjsKIGNsYXNzIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzsKIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOwogY2xhc3MgVGltZVJhbmdlczsKQEAgLTY4LDExICs3MCwxNiBAQCBwdWJsaWM6CiAgICAg
TWVkaWFUaW1lIHNlZWtUb1RpbWUoTWVkaWFUaW1lLCBNZWRpYVRpbWUgbmVnYXRpdmVUaHJlc2hv
bGQsIE1lZGlhVGltZSBwb3NpdGl2ZVRocmVzaG9sZCk7CiAgICAgSW50U2l6ZSBuYXR1cmFsU2l6
ZSgpIGNvbnN0OwogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmKTsKKyNlbmRp
ZgorCiBwcml2YXRlOgogICAgIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMoTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKik7CiAKICAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRDaGFuZ2VBY3RpdmVTdGF0ZShTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyosIGJvb2wg
YWN0aXZlKTsKICAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6
YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKik7CisgICAgdm9pZCBzb3Vy
Y2VCdWZmZXJLZXlOZWVkZWQoU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqLCBVaW50OEFycmF5
Kik7CiAgICAgdm9pZCBtb25pdG9yU291cmNlQnVmZmVycygpOwogICAgIHZvaWQgcmVtb3ZlU291
cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlclByaXZhdGUqKTsKIApAQCAtODIsNiArODksNyBAQCBwcml2
YXRlOgogICAgIGRvdWJsZSBtX2R1cmF0aW9uOwogICAgIFZlY3RvcjxSZWZQdHI8U291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM+PiBtX3NvdXJjZUJ1ZmZlcnM7CiAgICAgVmVjdG9yPFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDKj4gbV9hY3RpdmVTb3VyY2VCdWZmZXJzOworICAgIERlcXVlPFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKj4gbV9zb3VyY2VCdWZmZXJzTmVlZGluZ1Nlc3Npb25z
OwogICAgIGJvb2wgbV9pc0VuZGVkOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZG
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggNTNmYWM3YjdiYTYxNGIxOTQ3
NWNiYzFjMDM3OTM3NWVmZWFkNDI5OS4uZDYxNTk4NzlkZGU2NmVkMzNmOGM3MGY0OTk1NGYzNTNk
NjBhN2JhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVBy
aXZhdGVBVkZPYmpDLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCisjaW1wb3J0ICJDRE1TZXNzaW9uTWVkaWFTb3Vy
Y2VBVkZPYmpDLmgiCiAjaW1wb3J0ICJDb250ZW50VHlwZS5oIgogI2ltcG9ydCAiRXhjZXB0aW9u
Q29kZVBsYWNlaG9sZGVyLmgiCiAjaW1wb3J0ICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaCIKQEAgLTEzNyw2ICsxMzgsMjEgQEAgdm9pZCBNZWRpYVNvdXJjZVByaXZhdGVB
VkZPYmpDOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUoU291cmNlQnUK
ICAgICB9CiB9CiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQorc3RkOjp1bmlxdWVf
cHRyPENETVNlc3Npb24+IE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM6OmNyZWF0ZVNlc3Npb24o
Y29uc3QgU3RyaW5nJikKK3sKKyAgICBpZiAobV9zb3VyY2VCdWZmZXJzTmVlZGluZ1Nlc3Npb25z
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQz4obV9zb3VyY2VCdWZmZXJzTmVl
ZGluZ1Nlc3Npb25zLnRha2VGaXJzdCgpKTsKK30KKyNlbmRpZgorCit2b2lkIE1lZGlhU291cmNl
UHJpdmF0ZUFWRk9iakM6OnNvdXJjZUJ1ZmZlcktleU5lZWRlZChTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyogYnVmZmVyLCBVaW50OEFycmF5KiBpbml0RGF0YSkKK3sKKyAgICBtX3NvdXJjZUJ1
ZmZlcnNOZWVkaW5nU2Vzc2lvbnMuYXBwZW5kKGJ1ZmZlcik7CisgICAgcGxheWVyKCktPmtleU5l
ZWRlZChpbml0RGF0YSk7Cit9CisKIHN0YXRpYyBib29sIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9i
akNIYXNBdWRpbyhQYXNzUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBwcnBTb3Vy
Y2VCdWZmZXIpCiB7CiAgICAgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBzb3Vy
Y2VCdWZmZXIgPSBwcnBTb3VyY2VCdWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRleCA2OGJhMmNjYTc3ZGQxNjVjYmRm
Y2E2ZjEyMThiMmM0NjhhZjVjZWVmLi43M2Y5YWIwZTQzZjMxMDY3MDQ3N2ZjMDgyZTBlODY4ZjAy
YjdjM2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLmgKQEAgLTQyLDYgKzQyLDcgQEAgT0JKQ19DTEFTUyBBVkFzc2V0OwogT0JK
Q19DTEFTUyBBVlN0cmVhbURhdGFQYXJzZXI7CiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlcjsKIE9CSkNfQ0xBU1MgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7CitPQkpD
X0NMQVNTIE5TRGF0YTsKIE9CSkNfQ0xBU1MgTlNFcnJvcjsKIE9CSkNfQ0xBU1MgTlNPYmplY3Q7
CiB0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZmZXJSZWY7
CkBAIC02OCw2ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZhaWxUb1BhcnNlU3RyZWFt
RGF0YVdpdGhFcnJvcihOU0Vycm9yKik7CiAgICAgdm9pZCBkaWRQcm92aWRlTWVkaWFEYXRhRm9y
VHJhY2tJRChpbnQgdHJhY2tJRCwgQ01TYW1wbGVCdWZmZXJSZWYsIGNvbnN0IFN0cmluZyYgbWVk
aWFUeXBlLCB1bnNpZ25lZCBmbGFncyk7CiAgICAgdm9pZCBkaWRSZWFjaEVuZE9mVHJhY2tXaXRo
VHJhY2tJRChpbnQgdHJhY2tJRCwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpOworICAgIHZvaWQg
ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRChO
U0RhdGEqLCBpbnQgdHJhY2tJRCk7CiAKICAgICBib29sIHByb2Nlc3NDb2RlZEZyYW1lKGludCB0
cmFja0lELCBDTVNhbXBsZUJ1ZmZlclJlZiwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpOwogCkBA
IC04MSw2ICs4Myw5IEBAIHB1YmxpYzoKICAgICBNZWRpYVRpbWUgZmFzdFNlZWtUaW1lRm9yTWVk
aWFUaW1lKE1lZGlhVGltZSwgTWVkaWFUaW1lIG5lZ2F0aXZlVGhyZXNob2xkLCBNZWRpYVRpbWUg
cG9zaXRpdmVUaHJlc2hvbGQpOwogICAgIEludFNpemUgbmF0dXJhbFNpemUoKTsKIAorICAgIGlu
dCBwcm90ZWN0ZWRUcmFja0lEKCkgY29uc3QgeyByZXR1cm4gbV9wcm90ZWN0ZWRUcmFja0lEOyB9
CisgICAgQVZTdHJlYW1EYXRhUGFyc2VyKiBwYXJzZXIoKSBjb25zdCB7IHJldHVybiBtX3BhcnNl
ci5nZXQoKTsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMqKTsKIApAQCAtMTE5LDYgKzEyNCw3IEBA
IHByaXZhdGU6CiAKICAgICBib29sIG1fcGFyc2luZ1N1Y2NlZWRlZDsKICAgICBpbnQgbV9lbmFi
bGVkVmlkZW9UcmFja0lEOworICAgIGludCBtX3Byb3RlY3RlZFRyYWNrSUQ7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Lm1tCmluZGV4IDkzNDY4NWVlYjJhODYyODEyMTE5NmVlYTc2MzdmY2RiN2MwNDQ0NWIuLjQ5NzNh
NDMwZTVkMTY4YjdmNDU3NjFjMjkwY2YyNDdkODA1NDc4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC0xMTUsNiAr
MTE1LDEwIEBAIFNPRlRfTElOSyhDb3JlTWVkaWEsIENNU2V0QXR0YWNobWVudCwgdm9pZCwgKENN
QXR0YWNobWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3RyCiAtICh2b2lkKWFwcGVuZFN0cmVhbURh
dGE6KE5TRGF0YSAqKWRhdGE7CiAtICh2b2lkKXNldFNob3VsZFByb3ZpZGVNZWRpYURhdGE6KEJP
T0wpc2hvdWxkUHJvdmlkZU1lZGlhRGF0YSBmb3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lE
KXRyYWNrSUQ7CiAtIChCT09MKXNob3VsZFByb3ZpZGVNZWRpYURhdGFGb3JUcmFja0lEOihDTVBl
cnNpc3RlbnRUcmFja0lEKXRyYWNrSUQ7CistICh2b2lkKXByb2Nlc3NDb250ZW50S2V5UmVzcG9u
c2VEYXRhOihOU0RhdGEgKiljb250ZW50S2V5UmVzcG9uc2VEYXRhIGZvclRyYWNrSUQ6KENNUGVy
c2lzdGVudFRyYWNrSUQpdHJhY2tJRDsKKy0gKHZvaWQpcHJvY2Vzc0NvbnRlbnRLZXlSZXNwb25z
ZUVycm9yOihOU0Vycm9yICopZXJyb3IgZm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0
cmFja0lEOworLSAodm9pZClyZW5ld0V4cGlyaW5nQ29udGVudEtleVJlc3BvbnNlRGF0YUZvclRy
YWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJRDsKKy0gKE5TRGF0YSAqKXN0cmVhbWlu
Z0NvbnRlbnRLZXlSZXF1ZXN0RGF0YUZvckFwcDooTlNEYXRhICopYXBwSWRlbnRpZmllciBjb250
ZW50SWRlbnRpZmllcjooTlNEYXRhICopY29udGVudElkZW50aWZpZXIgdHJhY2tJRDooQ01QZXJz
aXN0ZW50VHJhY2tJRCl0cmFja0lEIG9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKW9wdGlvbnMgZXJy
b3I6KE5TRXJyb3IgKiopb3V0RXJyb3I7CiBAZW5kCiAKICNwcmFnbWEgbWFyayAtCkBAIC0yMTgs
NiArMjIyLDE1IEBAIFNPRlRfTElOSyhDb3JlTWVkaWEsIENNU2V0QXR0YWNobWVudCwgdm9pZCwg
KENNQXR0YWNobWVudEJlYXJlclJlZiB0YXJnZXQsIENGU3RyCiAgICAgQVNTRVJUKHN0cmVhbURh
dGFQYXJzZXIgPT0gX3BhcnNlcik7CiAgICAgX3BhcmVudC0+ZGlkUmVhY2hFbmRPZlRyYWNrV2l0
aFRyYWNrSUQodHJhY2tJRCwgbWVkaWFUeXBlKTsKIH0KKworLSAodm9pZClzdHJlYW1EYXRhUGFy
c2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFByb3ZpZGVDb250
ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YTooTlNEYXRhICopaW5pdERhdGEgZm9yVHJh
Y2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lECit7CisjaWYgQVNTRVJUX0RJU0FCTEVE
CisgICAgVU5VU0VEX1BBUkFNKHN0cmVhbURhdGFQYXJzZXIpOworI2VuZGlmCisgICAgQVNTRVJU
KHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CisgICAgX3BhcmVudC0+ZGlkUHJvdmlkZUNv
bnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRChpbml0RGF0YSwgdHJh
Y2tJRCk7Cit9CiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMyNyw2ICszNDAsNyBA
QCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMo
TWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQwogICAgICwgbV9jbGllbnQoMCkKICAgICAsIG1fcGFy
c2luZ1N1Y2NlZWRlZCh0cnVlKQogICAgICwgbV9lbmFibGVkVmlkZW9UcmFja0lEKC0xKQorICAg
ICwgbV9wcm90ZWN0ZWRUcmFja0lEKC0xKQogewogfQogCkBAIC00MTIsNiArNDI2LDE4IEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFJlYWNoRW5kT2ZUcmFja1dpdGhUcmFj
a0lEKGludCB0cmFja0lELCBjb25zCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5p
dGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRChOU0RhdGEqIGluaXREYXRhLCBpbnQgdHJhY2tJRCkK
K3sKKyAgICBVTlVTRURfUEFSQU0odHJhY2tJRCk7CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QV9WMikKKyAgICBMT0coTWVkaWEsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJv
dmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRCglcCkgLSB0
cmFjazolZCIsIHRoaXMsIHRyYWNrSUQpOworICAgIG1fcHJvdGVjdGVkVHJhY2tJRCA9IHRyYWNr
SUQ7CisgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IGluaXREYXRhQXJyYXkgPSBVaW50OEFycmF5Ojpj
cmVhdGUoW2luaXREYXRhIGxlbmd0aF0pOworICAgIFtpbml0RGF0YSBnZXRCeXRlczppbml0RGF0
YUFycmF5LT5kYXRhKCkgbGVuZ3RoOmluaXREYXRhQXJyYXktPmxlbmd0aCgpXTsKKyAgICBtX21l
ZGlhU291cmNlLT5zb3VyY2VCdWZmZXJLZXlOZWVkZWQodGhpcywgaW5pdERhdGFBcnJheS5nZXQo
KSk7CisjZW5kaWYKK30KKwogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0Q2xp
ZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqIGNsaWVudCkKIHsKICAgICBtX2NsaWVudCA9
IGNsaWVudDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224925</attachid>
            <date>2014-02-21 16:23:46 -0800</date>
            <delta_ts>2014-02-21 16:51:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129166-20140221162346.patch</filename>
            <type>text/plain</type>
            <size>28481</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFjYjY1ZWJlYTYzMTBj
YmQyMzk1NDc2MGFmYjI1NDU2ZjM3MmY1Zi4uMWJlMjQ0OTdiMWU3MjkzNWVkMDZiNWYxMDc2OWM4
YjRkMGM3ZDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE0LTAyLTIxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtFTUVdIEFkZCBhIENETVNl
c3Npb24gZm9yIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTY2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IENETVNlc3Np
b24sIGNlcmF0ZWQgYnkgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDIGFsbG93
aW5nCisgICAgICAgIG1lZGlhLXNvdXJjZS1iYWNrZWQgbWVkaWEgZWxlbWVudHMgdG8gcGxheSBw
cm90ZWN0ZWQgY29udGVudC4KKworICAgICAgICBBZGQgYSBuZXcgQ0RNU2Vzc2lvbk1lZGlhU291
cmNlQVZGT2JqQyBjbGFzczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6fkNETVNlc3Npb25NZWRpYVNv
dXJjZUFWRk9iakMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6Q0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
OjpnZW5lcmF0ZUtleVJlcXVlc3QpOiBEbyBub3QgYWN0dWFsbHkgZ2VuZXJhdGUgYQorICAgICAg
ICAgICAga2V5IHJlcXVlc3QgdW50aWwgdGhlIGNlcnRpZmljYXRlIGRhdGEgaGFzIGJlZW4gYWRk
ZWQgdmlhIHVwZGF0ZSgpOworICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQzo6cmVsZWFzZUtleXMpOiBOby1vcC4KKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZSk6IElmIG5vIGNlcnRpZmljYXRlIGRhdGEgaGFz
IHlldCBiZWVuCisgICAgICAgICAgICBhZGRlZCwgYXNzdW1lIHRoZSBpbmNvbWluZyBtZXNzYWdl
IGNvbnRhaW5zIGl0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKTogQWRkIHN1cHBvcnRzS2V5
U3lzdGVtLgorICAgICAgICAoV2ViQ29yZTo6a2V5U3lzdGVtSXNTdXBwb3J0ZWQpOiBVc2UgImNv
bS5hcHBsZS5mcHMuMl8wIiB0byBkaXN0aW5ndWlzaCBmcm9tIHRoZSBub3QtbWVkaWEtc291cmNl
IHNjaGVtZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6c3VwcG9ydHNUeXBlKTogQ2hlY2sgdGhlIGtleVN5c3RlbSB0eXBlLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0
c0tleVN5c3RlbSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGVTZXNzaW9uKTogQWRkZWQsIHBhc3MgdGhyb3VnaCB0
byBNZWRpYVNvdXJjZVByaXZhdGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpjcmVhdGVT
ZXNzaW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZP
YmpDOjpzb3VyY2VCdWZmZXJLZXlOZWVkZWQpOiBQYXNzIHRocm91Z2ggdG8gTWVkaWFQbGF5ZXIu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKC1bV2Vi
QVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToKKyAgICAgICAg
ICAgIEFkZGVkLCBwYXNzIHRocm91Z2ggdG8gU291cmNlQnVmZmVyUHJpdmF0ZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRCk6
IFJlbWVtYmVyCisgICAgICAgICAgICB3aGljaCB0cmFjayBpcyByZXF1ZXN0aW5nIHRoZSBrZXks
IGFuZCBwYXNzIHRoZSByZXF1ZXN0IHRvIE1lZGlhU291cmNlUHJpdmF0ZS4KKworICAgICAgICBB
ZGQgbmV3IGZpbGVzIHRvIHRoZSBwcm9qZWN0LgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKwogMjAxNC0wMS0yOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTWVkaWFDb250cm9sc10gRml4IGVycm9ycyBwb2ludGVkIG91
dCBieSBKU0hpbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZTQyNGJlMDJmMTY3MDQ0MjJhMTQzYWE0NTNjMTRiMTZmMzZlMGRj
Ni4uMmY4YTZlZGFmOTg5ZmNmNGMwNjAyNTIxYjA3OGQzMjdmOThjNzBiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU0MSw2
ICs1NTQxLDcgQEAKIAkJQ0REQzFFN0ExOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJp
dmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0REQzFFNzkxOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5o
ICovOyB9OwogCQlDRERENTcxNTE4QjU3QTgyMDBBOTRGQ0IgLyogQ0RNU2Vzc2lvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RERTAyRTkxOEIzREZD
NzAwQ0Y3RkYxIC8qIENETVNlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlDRERFMDJFRDE4QjNFRDZEMDBDRjdGRjEgLyogQ0RNU2Vzc2lv
bkFWRm91bmRhdGlvbk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRERFMDJFQjE4QjNFRDZEMDBDRjdGRjEgLyogQ0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakMubW0gKi87IH07CisJCUNEREUwMkYwMThCNTY1MTMwMENGN0ZGMSAvKiBDRE1TZXNz
aW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RERTAyRUYxOEI1NjUxMjAwQ0Y3RkYxIC8qIENETVNlc3Npb25NZWRp
YVNvdXJjZUFWRk9iakMubW0gKi87IH07CiAJCUNERTNBODU0MTdGNUZDRTYwMEM1QkUyMCAvKiBB
dWRpb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RFM0E4NTIxN0Y1RkNFNjAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRl
QVZGLmggKi87IH07CiAJCUNERTNBODU3MTdGNjAyMDQwMEM1QkUyMCAvKiBBdWRpb1RyYWNrUHJp
dmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREUzQTg1NTE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpD
Lm1tICovOyB9OwogCQlDREUzQTg1ODE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREUzQTg1NjE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmgg
Ki87IH07CkBAIC0xMjgwOSw2ICsxMjgxMCw4IEBACiAJCUNEREUwMkU5MThCM0RGQzcwMENGN0ZG
MSAvKiBDRE1TZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENETVNlc3Npb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RERTAyRUExOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Np
b25BVkZvdW5kYXRpb25PYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmg7IHBhdGggPSBvYmpjL0NETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEREUwMkVCMThCM0VE
NkQwMENGN0ZGMSAvKiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1t
OyBwYXRoID0gb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0RERTAyRUUxOEI1NjRGQTAwQ0Y3RkYxIC8qIENETVNlc3Npb25N
ZWRpYVNvdXJjZUFWRk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQy5oOyBwYXRoID0gb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEREUwMkVGMThCNTY1MTIwMENGN0ZGMSAvKiBD
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbTsgcGF0aCA9IG9i
amMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RFM0E4NTIxN0Y1RkNFNjAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZG
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlQVZG
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERTNBODU1MTdGNjAyMDQwMEM1QkUy
MCAvKiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW07IHBhdGggPSBvYmpj
L0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RFM0E4NTYxN0Y2MDIwNDAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9i
akMuaDsgcGF0aCA9IG9iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMTAxMiw2ICsyMTAxNSw4IEBACiAJCQkJQ0QzMzZGNUYxN0Y5
RjY0NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0gKi8sCiAJCQkJQ0RE
RTAyRUExOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmggKi8s
CiAJCQkJQ0RERTAyRUIxOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Npb25BVkZvdW5kYXRpb25P
YmpDLm1tICovLAorCQkJCUNEREUwMkVFMThCNTY0RkEwMENGN0ZGMSAvKiBDRE1TZXNzaW9uTWVk
aWFTb3VyY2VBVkZPYmpDLmggKi8sCisJCQkJQ0RERTAyRUYxOEI1NjUxMjAwQ0Y3RkYxIC8qIENE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gKi8sCiAJCQkJMDdBQTZCNjkxNjZEMDE5NTAw
RDQ1NjcxIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDLmggKi8sCiAJCQkJMDdBQTZC
NkExNjZEMDE5NTAwRDQ1NjcxIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDLm1tICov
LAogCQkJCTA3MzY3REREMTcyQ0E2N0YwMEQ4NjFCOSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
TGVnYWN5QVZGT2JqQy5oICovLApAQCAtMjkwMTUsNiArMjkwMjAsNyBAQAogCQkJCTUxMUVGMkM2
MTdGMEZEMzUwMEU0RkExNiAvKiBKU0lEQktleVJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ5QzdCOUQ0MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9iamVjdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MUQ3MTlEODE4MTEwNkUwMDAxNkRDNTEgLyogSURCSW5kZXguY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0RERTAyRjAxOEI1NjUxMzAwQ0Y3RkYxIC8qIENETVNlc3Npb25NZWRpYVNv
dXJjZUFWRk9iakMubW0gaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QjlENjEwNDJEMzJGMDAwOUQ0
NDcgLyogV2ViR0xQcm9ncmFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUQ5MTA0MkQz
MkYwMDA5RDQ0NyAvKiBXZWJHTFJlbmRlcmJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
OUM3QjlERjEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1l
ZGlhU291cmNlQVZGT2JqQy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjNjU4OGQ0YzY3ODEzYzUxYTFkYzVmYTAw
YzYxMGEyMTRmZDZmZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQ19oCisjZGVmaW5lIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakNfaAor
CisjaW5jbHVkZSAiQ0RNU2Vzc2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9W
MikgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM7CisKK2NsYXNz
IENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMgOiBwdWJsaWMgQ0RNU2Vzc2lvbiB7CitwdWJs
aWM6CisgICAgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyhTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyogcGFyZW50KTsKKyAgICB2aXJ0dWFsIH5DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENETVNlc3Npb25DbGllbnQq
IGNsaWVudCkgb3ZlcnJpZGUgeyBtX2NsaWVudCA9IGNsaWVudDsgfQorICAgIHZpcnR1YWwgY29u
c3QgU3RyaW5nJiBzZXNzaW9uSWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nlc3Npb25J
ZDsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVl
c3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYg
ZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcm
IHN5c3RlbUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlS2V5cygpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJheSosIFJlZlB0cjxVaW50
OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVk
IGxvbmcmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOworCitwcm90ZWN0ZWQ6CisgICAgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMqIG1fcGFyZW50OworICAgIENETVNlc3Npb25DbGllbnQqIG1fY2xp
ZW50OworICAgIFJlZlB0cjxVaW50OEFycmF5PiBtX2luaXREYXRhOworICAgIFJlZlB0cjxVaW50
OEFycmF5PiBtX2NlcnRpZmljYXRlOworICAgIFN0cmluZyBtX3Nlc3Npb25JZDsKK307CisKK30K
KworI2VuZGlmCisKKyNlbmRpZiAvLyBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM1YWM0ZDY3OGFlOTFiYTJjMDg3MGE5NjRlYmI3NTc2OTViMDhh
ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0wLDAg
KzEsMTE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJDRE1T
ZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgiCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
X1YyKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKworI2ltcG9y
dCAiQ0RNLmgiCisjaW1wb3J0ICJDRE1TZXNzaW9uLmgiCisjaW1wb3J0ICJFeGNlcHRpb25Db2Rl
LmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJNZWRpYVBsYXllci5oIgorI2ltcG9y
dCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCIKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgi
CisjaW1wb3J0ICJVVUlELmgiCisjaW1wb3J0IDxDb3JlTWVkaWEvQ01CYXNlLmg+CisjaW1wb3J0
IDxvYmpjL29iamMtcnVudGltZS5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFW
Rm91bmRhdGlvbikKK1NPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWU3RyZWFtRGF0YVBh
cnNlcik7CisjZGVmaW5lIEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0IGdldEFWU3RyZWFt
RGF0YVBhcnNlcigpCisKK0BpbnRlcmZhY2UgQVZTdHJlYW1EYXRhUGFyc2VyIDogTlNPYmplY3QK
Ky0gKHZvaWQpcHJvY2Vzc0NvbnRlbnRLZXlSZXNwb25zZURhdGE6KE5TRGF0YSAqKWNvbnRlbnRL
ZXlSZXNwb25zZURhdGEgZm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEOwor
LSAodm9pZClwcm9jZXNzQ29udGVudEtleVJlc3BvbnNlRXJyb3I6KE5TRXJyb3IgKillcnJvciBm
b3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQ7CistICh2b2lkKXJlbmV3RXhw
aXJpbmdDb250ZW50S2V5UmVzcG9uc2VEYXRhRm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJ
RCl0cmFja0lEOworLSAoTlNEYXRhICopc3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRhRm9y
QXBwOihOU0RhdGEgKilhcHBJZGVudGlmaWVyIGNvbnRlbnRJZGVudGlmaWVyOihOU0RhdGEgKilj
b250ZW50SWRlbnRpZmllciB0cmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQgb3B0
aW9uczooTlNEaWN0aW9uYXJ5ICopb3B0aW9ucyBlcnJvcjooTlNFcnJvciAqKilvdXRFcnJvcjsK
K0BlbmQKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDKiBwYXJlbnQpCisgICAgOiBtX3BhcmVudChwYXJlbnQpCisgICAgLCBtX2NsaWVudChudWxs
cHRyKQorICAgICwgbV9zZXNzaW9uSWQoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKQorewor
fQorCitQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6
OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBp
bml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29k
ZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKK3sKKyAgICBVTlVTRURfUEFSQU0obWltZVR5
cGUpOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvblVSTCk7CisgICAgVU5VU0VEX1BBUkFN
KGVycm9yQ29kZSk7CisgICAgVU5VU0VEX1BBUkFNKHN5c3RlbUNvZGUpOworICAgIEFTU0VSVChp
bml0RGF0YSk7CisKKyAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
OjpnZW5lcmF0ZUtleVJlcXVlc3QoJXApIiwgdGhpcyk7CisKKyAgICBtX2luaXREYXRhID0gaW5p
dERhdGE7CisgICAgU3RyaW5nIGNlcnRpZmljYXRlU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiY2VydGlm
aWNhdGUiKSk7CisgICAgcmV0dXJuIFVpbnQ4QXJyYXk6OmNyZWF0ZSgodWludDhfdCopY2VydGlm
aWNhdGVTdHJpbmcuZ2V0Q2hhcmFjdGVyc1dpdGhVcGNvbnZlcnQ8VUNoYXI+KCksIGNlcnRpZmlj
YXRlU3RyaW5nLmxlbmd0aCgpICogc2l6ZW9mKFVDaGFyKSk7Cit9CisKK3ZvaWQgQ0RNU2Vzc2lv
bk1lZGlhU291cmNlQVZGT2JqQzo6cmVsZWFzZUtleXMoKQoreworICAgIExPRyhNZWRpYSwgIkNE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnJlbGVhc2VLZXlzKCVwKSIsIHRoaXMpOworfQor
Citib29sIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZShVaW50OEFycmF5KiBr
ZXksIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJv
ckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpCit7CisgICAgaWYgKCFtX2NlcnRpZmlj
YXRlKSB7CisgICAgICAgIExPRyhNZWRpYSwgIkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6
OnVwZGF0ZSglcCkgLSBjZXJ0aWZpY2F0ZSBkYXRhIiwgdGhpcyk7CisKKyAgICAgICAgbV9jZXJ0
aWZpY2F0ZSA9IGtleTsKKworICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBjZXJ0aWZpY2F0ZURh
dGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOm1fY2VydGlmaWNhdGUt
PmRhdGEoKSBsZW5ndGg6bV9jZXJ0aWZpY2F0ZS0+bGVuZ3RoKCldKTsKKyAgICAgICAgUmV0YWlu
UHRyPE5TRGF0YT4gaW5pdERhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5
dGVzOm1faW5pdERhdGEtPmRhdGEoKSBsZW5ndGg6bV9pbml0RGF0YS0+bGVuZ3RoKCldKTsKKwor
ICAgICAgICBOU0Vycm9yKiBlcnJvciA9IG5pbDsKKyAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4g
cmVxdWVzdCA9IGFkb3B0TlMoW21fcGFyZW50LT5wYXJzZXIoKSBzdHJlYW1pbmdDb250ZW50S2V5
UmVxdWVzdERhdGFGb3JBcHA6Y2VydGlmaWNhdGVEYXRhLmdldCgpIGNvbnRlbnRJZGVudGlmaWVy
OmluaXREYXRhLmdldCgpIHRyYWNrSUQ6bV9wYXJlbnQtPnByb3RlY3RlZFRyYWNrSUQoKSBvcHRp
b25zOm5pbCBlcnJvcjomZXJyb3JdKTsKKworICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAg
ICAgIExPRyhNZWRpYSwgIkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZSglcCkg
LSBlcnJvcjolQCIsIHRoaXMsIFtlcnJvciBkZXNjcmlwdGlvbl0pOworICAgICAgICAgICAgZXJy
b3JDb2RlID0gTWVkaWFQbGF5ZXI6OkludmFsaWRQbGF5ZXJTdGF0ZTsKKyAgICAgICAgICAgIHN5
c3RlbUNvZGUgPSBbZXJyb3IgY29kZV07CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH0KKworICAgICAgICBuZXh0TWVzc2FnZSA9IFVpbnQ4QXJyYXk6OmNyZWF0ZShbcmVxdWVz
dCBsZW5ndGhdKTsKKyAgICAgICAgW3JlcXVlc3QgZ2V0Qnl0ZXM6bmV4dE1lc3NhZ2UtPmRhdGEo
KSBsZW5ndGg6bmV4dE1lc3NhZ2UtPmxlbmd0aCgpXTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKworICAgIExPRyhNZWRpYSwgIkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnVw
ZGF0ZSglcCkgLSBrZXkgZGF0YSIsIHRoaXMpOworICAgIFJldGFpblB0cjxOU0RhdGE+IGtleURh
dGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOmtleS0+ZGF0YSgpIGxl
bmd0aDprZXktPmxlbmd0aCgpXSk7CisgICAgW21fcGFyZW50LT5wYXJzZXIoKSBwcm9jZXNzQ29u
dGVudEtleVJlc3BvbnNlRGF0YTprZXlEYXRhLmdldCgpIGZvclRyYWNrSUQ6bV9wYXJlbnQtPnBy
b3RlY3RlZFRyYWNrSUQoKV07CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IGJjOTJlZmMwYTRmZjg0MWY3MjYyNTUxODAzMWZm
OWI4ZmQzYzFmNDAuLjc0ZTdiNTQwOTBmZTJiZmQ0NGY3MWFhODM5ZWFlOGM1MDdhNjdhZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC03Myw2ICs3Myw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNpemVDaGFuZ2VkKCk7CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQorICAg
IHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPENETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3Qg
U3RyaW5nJik7CiAgICAgdm9pZCBrZXlOZWVkZWQoVWludDhBcnJheSopOwogI2VuZGlmCiAKQEAg
LTE1OSw2ICsxNjAsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7
CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBl
cyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNv
bnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKKyAgICBzdGF0aWMgYm9vbCBzdXBw
b3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSk7CiAKICAgICBmcmllbmQgY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQzsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDIwNDgxMzA3MzUzNWY4NzhkMDY3OTRiMTQx
MGIzZTAyNDkzYzk1ZTUuLjUxYThlYjZhM2MxYmM4ZTNiOWIyNmE5ZjFhYjFiZTVjNzNmODM2OWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbXBvcnQgIkNETVNl
c3Npb24uaCIKICNpbXBvcnQgIk1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQg
Ik1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oIgogI2ltcG9ydCAiTWVkaWFUaW1lTWFjLmgiCkBA
IC0xNjUsNyArMTY2LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp+
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKCkKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKE1lZGlhRW5naW5l
UmVnaXN0cmFyIHJlZ2lzdHJhcikKIHsKICAgICBpZiAoaXNBdmFpbGFibGUoKSkKLSAgICAgICAg
cmVnaXN0cmFyKGNyZWF0ZSwgZ2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgMCwgMCwg
MCwgMCk7CisgICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBw
b3J0c1R5cGUsIDAsIDAsIDAsIHN1cHBvcnRzS2V5U3lzdGVtKTsKIH0KIAogUGFzc093blB0cjxN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6Y3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCkBAIC0yMDQsOCArMjA1LDIwIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpnZXRTdXBwb3J0ZWRU
eXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5CiAgICAgdHlwZXMgPSBtaW1lVHlwZUNhY2hlKCk7CiB9
CiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQorc3RhdGljIGJvb2wga2V5U3lzdGVt
SXNTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCit7CisgICAgcmV0dXJuIGVxdWFs
SWdub3JpbmdDYXNlKGtleVN5c3RlbSwgImNvbS5hcHBsZS5mcHMuMl8wIik7Cit9CisjZW5kaWYK
KwogTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OnN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQogeworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCisgICAgaWYg
KCFwYXJhbWV0ZXJzLmtleVN5c3RlbS5pc0VtcHR5KCkgJiYgIWtleVN5c3RlbUlzU3VwcG9ydGVk
KHBhcmFtZXRlcnMua2V5U3lzdGVtKSkKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6
SXNOb3RTdXBwb3J0ZWQ7CisjZW5kaWYKKwogICAgIC8vIFRoaXMgZW5naW5lIGRvZXMgbm90IHN1
cHBvcnQgbm9uLW1lZGlhLXNvdXJjZSBzb3VyY2VzLgogICAgIGlmICghcGFyYW1ldGVycy5pc01l
ZGlhU291cmNlKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OklzTm90U3VwcG9ydGVkOwpA
QCAtMjIyLDYgKzIzNSwyMiBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbgogICAgIHJldHVybiBb
Z2V0QVZVUkxBc3NldENsYXNzKCkgaXNQbGF5YWJsZUV4dGVuZGVkTUlNRVR5cGU6dHlwZVN0cmlu
Z10gPyBNZWRpYVBsYXllcjo6SXNTdXBwb3J0ZWQgOiBNZWRpYVBsYXllcjo6TWF5QmVTdXBwb3J0
ZWQ7OwogfQogCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3Vw
cG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUpCit7CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKKyAgICBpZiAoIWtleVN5
c3RlbS5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKCFrZXlTeXN0ZW1Jc1N1cHBvcnRlZChrZXlT
eXN0ZW0pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmICghbWltZVR5
cGUuaXNFbXB0eSgpICYmICFtaW1lVHlwZUNhY2hlKCkuY29udGFpbnMobWltZVR5cGUpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNl
bmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKwogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFy
ayBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgT3ZlcnJpZGVzCiAKQEAgLTUzNSw2ICs1NjQs
MTQgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNpemVDaGFu
Z2VkKCkKIH0KIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCitzdGQ6OnVuaXF1ZV9w
dHI8Q0RNU2Vzc2lvbj4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVh
dGVTZXNzaW9uKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIGlmICghbV9tZWRpYVNv
dXJjZVByaXZhdGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIG1fbWVk
aWFTb3VyY2VQcml2YXRlLT5jcmVhdGVTZXNzaW9uKGtleVN5c3RlbSk7Cit9CisKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjprZXlOZWVkZWQoVWludDhBcnJheSog
aW5pdERhdGEpCiB7CiAgICAgbV9wbGF5ZXItPmtleU5lZWRlZChpbml0RGF0YSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgKaW5kZXgg
NjZkOGIwNzBiZjc1NzA0MWQxZmZjNWQzOTEyYzQyMzFhMGM5MzRiYy4uODI1NGVhNmJkNDM5ZTg3
ZTQxMmNiNzdiNzk5OWExYzAwNDliOTg1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2Jq
Qy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMuaApAQCAtMjksNiArMjksNyBAQAogI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZPVU5EQVRJT04pCiAKICNpbmNsdWRlICJNZWRp
YVNvdXJjZVByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CkBAIC00Miw2ICs0Myw3IEBAIHR5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVm
ZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBD
RE1TZXNzaW9uOwogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOwog
Y2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM7CiBjbGFzcyBUaW1lUmFuZ2VzOwpAQCAt
NjgsMTEgKzcwLDE2IEBAIHB1YmxpYzoKICAgICBNZWRpYVRpbWUgc2Vla1RvVGltZShNZWRpYVRp
bWUsIE1lZGlhVGltZSBuZWdhdGl2ZVRocmVzaG9sZCwgTWVkaWFUaW1lIHBvc2l0aXZlVGhyZXNo
b2xkKTsKICAgICBJbnRTaXplIG5hdHVyYWxTaXplKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoRU5D
UllQVEVEX01FRElBX1YyKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBjcmVhdGVT
ZXNzaW9uKGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgTWVkaWFTb3Vy
Y2VQcml2YXRlQVZGT2JqQyhNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMqKTsK
IAogICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZENoYW5nZUFjdGl2ZVN0YXRlKFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDKiwgYm9vbCBhY3RpdmUpOwogICAgIHZvaWQgc291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMqKTsKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlcktleU5lZWRlZChTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQyosIFVpbnQ4QXJyYXkqKTsKICAgICB2b2lkIG1vbml0b3JTb3VyY2VC
dWZmZXJzKCk7CiAgICAgdm9pZCByZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyUHJpdmF0
ZSopOwogCkBAIC04Miw2ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1fZHVyYXRpb247
CiAgICAgVmVjdG9yPFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4+IG1fc291cmNl
QnVmZmVyczsKICAgICBWZWN0b3I8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqPiBtX2FjdGl2
ZVNvdXJjZUJ1ZmZlcnM7CisgICAgRGVxdWU8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqPiBt
X3NvdXJjZUJ1ZmZlcnNOZWVkaW5nU2Vzc2lvbnM7CiAgICAgYm9vbCBtX2lzRW5kZWQ7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2Jq
Qy5tbQppbmRleCA1M2ZhYzdiN2JhNjE0YjE5NDc1Y2JjMWMwMzc5Mzc1ZWZlYWQ0Mjk5Li5kNjE1
OTg3OWRkZTY2ZWQzM2Y4YzcwZjQ5OTU0ZjM1M2Q2MGE3YmFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVBy
aXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0KQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZPVU5EQVRJT04pCiAK
KyNpbXBvcnQgIkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaCIKICNpbXBvcnQgIkNvbnRl
bnRUeXBlLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbXBvcnQg
Ik1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIgpAQCAtMTM3LDYgKzEzOCwy
MSBAQCB2b2lkIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM6OnNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRDaGFuZ2VBY3RpdmVTdGF0ZShTb3VyY2VCdQogICAgIH0KIH0KIAorI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUFfVjIpCitzdGQ6OnVuaXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gTWVkaWFTb3VyY2VQ
cml2YXRlQVZGT2JqQzo6Y3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmKQoreworICAgIGlmICht
X3NvdXJjZUJ1ZmZlcnNOZWVkaW5nU2Vzc2lvbnMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDRE1TZXNzaW9uTWVkaWFTb3Vy
Y2VBVkZPYmpDPihtX3NvdXJjZUJ1ZmZlcnNOZWVkaW5nU2Vzc2lvbnMudGFrZUZpcnN0KCkpOwor
fQorI2VuZGlmCisKK3ZvaWQgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQzo6c291cmNlQnVmZmVy
S2V5TmVlZGVkKFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKiBidWZmZXIsIFVpbnQ4QXJyYXkq
IGluaXREYXRhKQoreworICAgIG1fc291cmNlQnVmZmVyc05lZWRpbmdTZXNzaW9ucy5hcHBlbmQo
YnVmZmVyKTsKKyAgICBwbGF5ZXIoKS0+a2V5TmVlZGVkKGluaXREYXRhKTsKK30KKwogc3RhdGlj
IGJvb2wgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQ0hhc0F1ZGlvKFBhc3NSZWZQdHI8U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM+IHBycFNvdXJjZUJ1ZmZlcikKIHsKICAgICBSZWZQdHI8U291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHNvdXJjZUJ1ZmZlciA9IHBycFNvdXJjZUJ1ZmZlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5oCmluZGV4IDY4YmEyY2NhNzdkZDE2NWNiZGZjYTZmMTIxOGIyYzQ2OGFmNWNlZWYuLjczZjlh
YjBlNDNmMzEwNjcwNDc3ZmMwODJlMGU4NjhmMDJiN2MzZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaApAQCAtNDIsNiArNDIs
NyBAQCBPQkpDX0NMQVNTIEFWQXNzZXQ7CiBPQkpDX0NMQVNTIEFWU3RyZWFtRGF0YVBhcnNlcjsK
IE9CSkNfQ0xBU1MgQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyOwogT0JKQ19DTEFTUyBBVlNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllcjsKK09CSkNfQ0xBU1MgTlNEYXRhOwogT0JKQ19DTEFTUyBO
U0Vycm9yOwogT0JKQ19DTEFTUyBOU09iamVjdDsKIHR5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2Ft
cGxlQnVmZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsKQEAgLTY4LDYgKzY5LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlkRmFpbFRvUGFyc2VTdHJlYW1EYXRhV2l0aEVycm9yKE5TRXJyb3IqKTsKICAg
ICB2b2lkIGRpZFByb3ZpZGVNZWRpYURhdGFGb3JUcmFja0lEKGludCB0cmFja0lELCBDTVNhbXBs
ZUJ1ZmZlclJlZiwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUsIHVuc2lnbmVkIGZsYWdzKTsKICAg
ICB2b2lkIGRpZFJlYWNoRW5kT2ZUcmFja1dpdGhUcmFja0lEKGludCB0cmFja0lELCBjb25zdCBT
dHJpbmcmIG1lZGlhVHlwZSk7CisgICAgdm9pZCBkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJ
bml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKE5TRGF0YSosIGludCB0cmFja0lEKTsKIAogICAg
IGJvb2wgcHJvY2Vzc0NvZGVkRnJhbWUoaW50IHRyYWNrSUQsIENNU2FtcGxlQnVmZmVyUmVmLCBj
b25zdCBTdHJpbmcmIG1lZGlhVHlwZSk7CiAKQEAgLTgxLDYgKzgzLDkgQEAgcHVibGljOgogICAg
IE1lZGlhVGltZSBmYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoTWVkaWFUaW1lLCBNZWRpYVRpbWUg
bmVnYXRpdmVUaHJlc2hvbGQsIE1lZGlhVGltZSBwb3NpdGl2ZVRocmVzaG9sZCk7CiAgICAgSW50
U2l6ZSBuYXR1cmFsU2l6ZSgpOwogCisgICAgaW50IHByb3RlY3RlZFRyYWNrSUQoKSBjb25zdCB7
IHJldHVybiBtX3Byb3RlY3RlZFRyYWNrSUQ7IH0KKyAgICBBVlN0cmVhbURhdGFQYXJzZXIqIHBh
cnNlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGFyc2VyLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZG
T2JqQyopOwogCkBAIC0xMTksNiArMTI0LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9wYXJz
aW5nU3VjY2VlZGVkOwogICAgIGludCBtX2VuYWJsZWRWaWRlb1RyYWNrSUQ7CisgICAgaW50IG1f
cHJvdGVjdGVkVHJhY2tJRDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggOTM0Njg1ZWViMmE4NjI4MTIx
MTk2ZWVhNzYzN2ZjZGI3YzA0NDQ1Yi4uNDk3M2E0MzBlNWQxNjhiN2Y0NTc2MWMyOTBjZjI0N2Q4
MDU0NzhiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMubW0KQEAgLTExNSw2ICsxMTUsMTAgQEAgU09GVF9MSU5LKENvcmVNZWRp
YSwgQ01TZXRBdHRhY2htZW50LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdldCwg
Q0ZTdHIKIC0gKHZvaWQpYXBwZW5kU3RyZWFtRGF0YTooTlNEYXRhICopZGF0YTsKIC0gKHZvaWQp
c2V0U2hvdWxkUHJvdmlkZU1lZGlhRGF0YTooQk9PTClzaG91bGRQcm92aWRlTWVkaWFEYXRhIGZv
clRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJRDsKIC0gKEJPT0wpc2hvdWxkUHJv
dmlkZU1lZGlhRGF0YUZvclRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJRDsKKy0g
KHZvaWQpcHJvY2Vzc0NvbnRlbnRLZXlSZXNwb25zZURhdGE6KE5TRGF0YSAqKWNvbnRlbnRLZXlS
ZXNwb25zZURhdGEgZm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEOworLSAo
dm9pZClwcm9jZXNzQ29udGVudEtleVJlc3BvbnNlRXJyb3I6KE5TRXJyb3IgKillcnJvciBmb3JU
cmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQ7CistICh2b2lkKXJlbmV3RXhwaXJp
bmdDb250ZW50S2V5UmVzcG9uc2VEYXRhRm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0
cmFja0lEOworLSAoTlNEYXRhICopc3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRhRm9yQXBw
OihOU0RhdGEgKilhcHBJZGVudGlmaWVyIGNvbnRlbnRJZGVudGlmaWVyOihOU0RhdGEgKiljb250
ZW50SWRlbnRpZmllciB0cmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQgb3B0aW9u
czooTlNEaWN0aW9uYXJ5ICopb3B0aW9ucyBlcnJvcjooTlNFcnJvciAqKilvdXRFcnJvcjsKIEBl
bmQKIAogI3ByYWdtYSBtYXJrIC0KQEAgLTIxOCw2ICsyMjIsMTUgQEAgU09GVF9MSU5LKENvcmVN
ZWRpYSwgQ01TZXRBdHRhY2htZW50LCB2b2lkLCAoQ01BdHRhY2htZW50QmVhcmVyUmVmIHRhcmdl
dCwgQ0ZTdHIKICAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKICAgICBf
cGFyZW50LT5kaWRSZWFjaEVuZE9mVHJhY2tXaXRoVHJhY2tJRCh0cmFja0lELCBtZWRpYVR5cGUp
OwogfQorCistICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0
cmVhbURhdGFQYXJzZXIgZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25E
YXRhOihOU0RhdGEgKilpbml0RGF0YSBmb3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRy
YWNrSUQKK3sKKyNpZiBBU1NFUlRfRElTQUJMRUQKKyAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0
YVBhcnNlcik7CisjZW5kaWYKKyAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2Vy
KTsKKyAgICBfcGFyZW50LT5kaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlv
bkRhdGFGb3JUcmFja0lEKGluaXREYXRhLCB0cmFja0lEKTsKK30KIEBlbmQKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMzI3LDYgKzM0MCw3IEBAIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDCiAg
ICAgLCBtX2NsaWVudCgwKQogICAgICwgbV9wYXJzaW5nU3VjY2VlZGVkKHRydWUpCiAgICAgLCBt
X2VuYWJsZWRWaWRlb1RyYWNrSUQoLTEpCisgICAgLCBtX3Byb3RlY3RlZFRyYWNrSUQoLTEpCiB7
CiB9CiAKQEAgLTQxMiw2ICs0MjYsMTggQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6ZGlkUmVhY2hFbmRPZlRyYWNrV2l0aFRyYWNrSUQoaW50IHRyYWNrSUQsIGNvbnMKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpk
aWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKE5T
RGF0YSogaW5pdERhdGEsIGludCB0cmFja0lEKQoreworICAgIFVOVVNFRF9QQVJBTSh0cmFja0lE
KTsKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQorICAgIExPRyhNZWRpYSwgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFs
aXphdGlvbkRhdGFGb3JUcmFja0lEKCVwKSAtIHRyYWNrOiVkIiwgdGhpcywgdHJhY2tJRCk7Cisg
ICAgbV9wcm90ZWN0ZWRUcmFja0lEID0gdHJhY2tJRDsKKyAgICBSZWZQdHI8VWludDhBcnJheT4g
aW5pdERhdGFBcnJheSA9IFVpbnQ4QXJyYXk6OmNyZWF0ZShbaW5pdERhdGEgbGVuZ3RoXSk7Cisg
ICAgW2luaXREYXRhIGdldEJ5dGVzOmluaXREYXRhQXJyYXktPmRhdGEoKSBsZW5ndGg6aW5pdERh
dGFBcnJheS0+bGVuZ3RoKCldOworICAgIG1fbWVkaWFTb3VyY2UtPnNvdXJjZUJ1ZmZlcktleU5l
ZWRlZCh0aGlzLCBpbml0RGF0YUFycmF5LmdldCgpKTsKKyNlbmRpZgorfQorCiB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVu
dCogY2xpZW50KQogewogICAgIG1fY2xpZW50ID0gY2xpZW50Owo=
</data>
<flag name="review"
          id="249044"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224942</attachid>
            <date>2014-02-21 20:19:02 -0800</date>
            <delta_ts>2014-02-21 21:02:52 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-129166-20140221201901.patch</filename>
            <type>text/plain</type>
            <size>28696</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFjYjY1ZWJlYTYzMTBj
YmQyMzk1NDc2MGFmYjI1NDU2ZjM3MmY1Zi4uMWJlMjQ0OTdiMWU3MjkzNWVkMDZiNWYxMDc2OWM4
YjRkMGM3ZDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE0LTAyLTIxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtFTUVdIEFkZCBhIENETVNl
c3Npb24gZm9yIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTY2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IENETVNlc3Np
b24sIGNlcmF0ZWQgYnkgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDIGFsbG93
aW5nCisgICAgICAgIG1lZGlhLXNvdXJjZS1iYWNrZWQgbWVkaWEgZWxlbWVudHMgdG8gcGxheSBw
cm90ZWN0ZWQgY29udGVudC4KKworICAgICAgICBBZGQgYSBuZXcgQ0RNU2Vzc2lvbk1lZGlhU291
cmNlQVZGT2JqQyBjbGFzczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6fkNETVNlc3Npb25NZWRpYVNv
dXJjZUFWRk9iakMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6Q0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
OjpnZW5lcmF0ZUtleVJlcXVlc3QpOiBEbyBub3QgYWN0dWFsbHkgZ2VuZXJhdGUgYQorICAgICAg
ICAgICAga2V5IHJlcXVlc3QgdW50aWwgdGhlIGNlcnRpZmljYXRlIGRhdGEgaGFzIGJlZW4gYWRk
ZWQgdmlhIHVwZGF0ZSgpOworICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQzo6cmVsZWFzZUtleXMpOiBOby1vcC4KKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZSk6IElmIG5vIGNlcnRpZmljYXRlIGRhdGEgaGFz
IHlldCBiZWVuCisgICAgICAgICAgICBhZGRlZCwgYXNzdW1lIHRoZSBpbmNvbWluZyBtZXNzYWdl
IGNvbnRhaW5zIGl0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKTogQWRkIHN1cHBvcnRzS2V5
U3lzdGVtLgorICAgICAgICAoV2ViQ29yZTo6a2V5U3lzdGVtSXNTdXBwb3J0ZWQpOiBVc2UgImNv
bS5hcHBsZS5mcHMuMl8wIiB0byBkaXN0aW5ndWlzaCBmcm9tIHRoZSBub3QtbWVkaWEtc291cmNl
IHNjaGVtZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6c3VwcG9ydHNUeXBlKTogQ2hlY2sgdGhlIGtleVN5c3RlbSB0eXBlLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0
c0tleVN5c3RlbSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGVTZXNzaW9uKTogQWRkZWQsIHBhc3MgdGhyb3VnaCB0
byBNZWRpYVNvdXJjZVByaXZhdGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpjcmVhdGVT
ZXNzaW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZP
YmpDOjpzb3VyY2VCdWZmZXJLZXlOZWVkZWQpOiBQYXNzIHRocm91Z2ggdG8gTWVkaWFQbGF5ZXIu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKC1bV2Vi
QVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToKKyAgICAgICAg
ICAgIEFkZGVkLCBwYXNzIHRocm91Z2ggdG8gU291cmNlQnVmZmVyUHJpdmF0ZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRCk6
IFJlbWVtYmVyCisgICAgICAgICAgICB3aGljaCB0cmFjayBpcyByZXF1ZXN0aW5nIHRoZSBrZXks
IGFuZCBwYXNzIHRoZSByZXF1ZXN0IHRvIE1lZGlhU291cmNlUHJpdmF0ZS4KKworICAgICAgICBB
ZGQgbmV3IGZpbGVzIHRvIHRoZSBwcm9qZWN0LgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKwogMjAxNC0wMS0yOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTWVkaWFDb250cm9sc10gRml4IGVycm9ycyBwb2ludGVkIG91
dCBieSBKU0hpbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZTQyNGJlMDJmMTY3MDQ0MjJhMTQzYWE0NTNjMTRiMTZmMzZlMGRj
Ni4uMmY4YTZlZGFmOTg5ZmNmNGMwNjAyNTIxYjA3OGQzMjdmOThjNzBiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU0MSw2
ICs1NTQxLDcgQEAKIAkJQ0REQzFFN0ExOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJp
dmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0REQzFFNzkxOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5o
ICovOyB9OwogCQlDRERENTcxNTE4QjU3QTgyMDBBOTRGQ0IgLyogQ0RNU2Vzc2lvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RERTAyRTkxOEIzREZD
NzAwQ0Y3RkYxIC8qIENETVNlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlDRERFMDJFRDE4QjNFRDZEMDBDRjdGRjEgLyogQ0RNU2Vzc2lv
bkFWRm91bmRhdGlvbk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRERFMDJFQjE4QjNFRDZEMDBDRjdGRjEgLyogQ0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakMubW0gKi87IH07CisJCUNEREUwMkYwMThCNTY1MTMwMENGN0ZGMSAvKiBDRE1TZXNz
aW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RERTAyRUYxOEI1NjUxMjAwQ0Y3RkYxIC8qIENETVNlc3Npb25NZWRp
YVNvdXJjZUFWRk9iakMubW0gKi87IH07CiAJCUNERTNBODU0MTdGNUZDRTYwMEM1QkUyMCAvKiBB
dWRpb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RFM0E4NTIxN0Y1RkNFNjAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRl
QVZGLmggKi87IH07CiAJCUNERTNBODU3MTdGNjAyMDQwMEM1QkUyMCAvKiBBdWRpb1RyYWNrUHJp
dmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREUzQTg1NTE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpD
Lm1tICovOyB9OwogCQlDREUzQTg1ODE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREUzQTg1NjE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmgg
Ki87IH07CkBAIC0xMjgwOSw2ICsxMjgxMCw4IEBACiAJCUNEREUwMkU5MThCM0RGQzcwMENGN0ZG
MSAvKiBDRE1TZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENETVNlc3Npb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RERTAyRUExOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Np
b25BVkZvdW5kYXRpb25PYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmg7IHBhdGggPSBvYmpjL0NETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEREUwMkVCMThCM0VE
NkQwMENGN0ZGMSAvKiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1t
OyBwYXRoID0gb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0RERTAyRUUxOEI1NjRGQTAwQ0Y3RkYxIC8qIENETVNlc3Npb25N
ZWRpYVNvdXJjZUFWRk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQy5oOyBwYXRoID0gb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEREUwMkVGMThCNTY1MTIwMENGN0ZGMSAvKiBD
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbTsgcGF0aCA9IG9i
amMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RFM0E4NTIxN0Y1RkNFNjAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZG
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlQVZG
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERTNBODU1MTdGNjAyMDQwMEM1QkUy
MCAvKiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW07IHBhdGggPSBvYmpj
L0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RFM0E4NTYxN0Y2MDIwNDAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9i
akMuaDsgcGF0aCA9IG9iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMTAxMiw2ICsyMTAxNSw4IEBACiAJCQkJQ0QzMzZGNUYxN0Y5
RjY0NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0gKi8sCiAJCQkJQ0RE
RTAyRUExOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmggKi8s
CiAJCQkJQ0RERTAyRUIxOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Npb25BVkZvdW5kYXRpb25P
YmpDLm1tICovLAorCQkJCUNEREUwMkVFMThCNTY0RkEwMENGN0ZGMSAvKiBDRE1TZXNzaW9uTWVk
aWFTb3VyY2VBVkZPYmpDLmggKi8sCisJCQkJQ0RERTAyRUYxOEI1NjUxMjAwQ0Y3RkYxIC8qIENE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gKi8sCiAJCQkJMDdBQTZCNjkxNjZEMDE5NTAw
RDQ1NjcxIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDLmggKi8sCiAJCQkJMDdBQTZC
NkExNjZEMDE5NTAwRDQ1NjcxIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDLm1tICov
LAogCQkJCTA3MzY3REREMTcyQ0E2N0YwMEQ4NjFCOSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
TGVnYWN5QVZGT2JqQy5oICovLApAQCAtMjkwMTUsNiArMjkwMjAsNyBAQAogCQkJCTUxMUVGMkM2
MTdGMEZEMzUwMEU0RkExNiAvKiBKU0lEQktleVJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ5QzdCOUQ0MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9iamVjdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MUQ3MTlEODE4MTEwNkUwMDAxNkRDNTEgLyogSURCSW5kZXguY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0RERTAyRjAxOEI1NjUxMzAwQ0Y3RkYxIC8qIENETVNlc3Npb25NZWRpYVNv
dXJjZUFWRk9iakMubW0gaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QjlENjEwNDJEMzJGMDAwOUQ0
NDcgLyogV2ViR0xQcm9ncmFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUQ5MTA0MkQz
MkYwMDA5RDQ0NyAvKiBXZWJHTFJlbmRlcmJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
OUM3QjlERjEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1l
ZGlhU291cmNlQVZGT2JqQy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjNjU4OGQ0YzY3ODEzYzUxYTFkYzVmYTAw
YzYxMGEyMTRmZDZmZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQ19oCisjZGVmaW5lIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakNfaAor
CisjaW5jbHVkZSAiQ0RNU2Vzc2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9W
MikgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM7CisKK2NsYXNz
IENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMgOiBwdWJsaWMgQ0RNU2Vzc2lvbiB7CitwdWJs
aWM6CisgICAgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyhTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyogcGFyZW50KTsKKyAgICB2aXJ0dWFsIH5DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENETVNlc3Npb25DbGllbnQq
IGNsaWVudCkgb3ZlcnJpZGUgeyBtX2NsaWVudCA9IGNsaWVudDsgfQorICAgIHZpcnR1YWwgY29u
c3QgU3RyaW5nJiBzZXNzaW9uSWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nlc3Npb25J
ZDsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVl
c3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYg
ZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcm
IHN5c3RlbUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlS2V5cygpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJheSosIFJlZlB0cjxVaW50
OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVk
IGxvbmcmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOworCitwcm90ZWN0ZWQ6CisgICAgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMqIG1fcGFyZW50OworICAgIENETVNlc3Npb25DbGllbnQqIG1fY2xp
ZW50OworICAgIFJlZlB0cjxVaW50OEFycmF5PiBtX2luaXREYXRhOworICAgIFJlZlB0cjxVaW50
OEFycmF5PiBtX2NlcnRpZmljYXRlOworICAgIFN0cmluZyBtX3Nlc3Npb25JZDsKK307CisKK30K
KworI2VuZGlmCisKKyNlbmRpZiAvLyBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg3ZWRhMGVhODlhY2U4MWU4NWJmNjM2YzUzODU0MzYyMmMzY2Qw
NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0wLDAg
KzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJDRE1T
ZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgiCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
X1YyKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKworI2ltcG9y
dCAiQ0RNLmgiCisjaW1wb3J0ICJDRE1TZXNzaW9uLmgiCisjaW1wb3J0ICJFeGNlcHRpb25Db2Rl
LmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJNZWRpYVBsYXllci5oIgorI2ltcG9y
dCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCIKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgi
CisjaW1wb3J0ICJVVUlELmgiCisjaW1wb3J0IDxDb3JlTWVkaWEvQ01CYXNlLmg+CisjaW1wb3J0
IDxvYmpjL29iamMtcnVudGltZS5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFW
Rm91bmRhdGlvbikKK1NPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWU3RyZWFtRGF0YVBh
cnNlcik7CisjZGVmaW5lIEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0IGdldEFWU3RyZWFt
RGF0YVBhcnNlcigpCisKK0BpbnRlcmZhY2UgQVZTdHJlYW1EYXRhUGFyc2VyIDogTlNPYmplY3QK
Ky0gKHZvaWQpcHJvY2Vzc0NvbnRlbnRLZXlSZXNwb25zZURhdGE6KE5TRGF0YSAqKWNvbnRlbnRL
ZXlSZXNwb25zZURhdGEgZm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEOwor
LSAodm9pZClwcm9jZXNzQ29udGVudEtleVJlc3BvbnNlRXJyb3I6KE5TRXJyb3IgKillcnJvciBm
b3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQ7CistICh2b2lkKXJlbmV3RXhw
aXJpbmdDb250ZW50S2V5UmVzcG9uc2VEYXRhRm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJ
RCl0cmFja0lEOworLSAoTlNEYXRhICopc3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRhRm9y
QXBwOihOU0RhdGEgKilhcHBJZGVudGlmaWVyIGNvbnRlbnRJZGVudGlmaWVyOihOU0RhdGEgKilj
b250ZW50SWRlbnRpZmllciB0cmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQgb3B0
aW9uczooTlNEaWN0aW9uYXJ5ICopb3B0aW9ucyBlcnJvcjooTlNFcnJvciAqKilvdXRFcnJvcjsK
K0BlbmQKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDKiBwYXJlbnQpCisgICAgOiBtX3BhcmVudChwYXJlbnQpCisgICAgLCBtX2NsaWVudChudWxs
cHRyKQorICAgICwgbV9zZXNzaW9uSWQoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKQorewor
fQorCitQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6
OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBp
bml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29k
ZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKK3sKKyAgICBVTlVTRURfUEFSQU0obWltZVR5
cGUpOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvblVSTCk7CisgICAgQVNTRVJUKGluaXRE
YXRhKTsKKworICAgIExPRyhNZWRpYSwgIkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6Omdl
bmVyYXRlS2V5UmVxdWVzdCglcCkiLCB0aGlzKTsKKworICAgIGVycm9yQ29kZSA9IE1lZGlhUGxh
eWVyOjpOb0Vycm9yOworICAgIHN5c3RlbUNvZGUgPSAwOworCisgICAgbV9pbml0RGF0YSA9IGlu
aXREYXRhOworICAgIFN0cmluZyBjZXJ0aWZpY2F0ZVN0cmluZyhBU0NJSUxpdGVyYWwoImNlcnRp
ZmljYXRlIikpOworICAgIHJldHVybiBVaW50OEFycmF5OjpjcmVhdGUoKHVpbnQ4X3QqKWNlcnRp
ZmljYXRlU3RyaW5nLmdldENoYXJhY3RlcnNXaXRoVXBjb252ZXJ0PFVDaGFyPigpLCBjZXJ0aWZp
Y2F0ZVN0cmluZy5sZW5ndGgoKSAqIHNpemVvZihVQ2hhcikpOworfQorCit2b2lkIENETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakM6OnJlbGVhc2VLZXlzKCkKK3sKKyAgICBMT0coTWVkaWEsICJD
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpyZWxlYXNlS2V5cyglcCkiLCB0aGlzKTsKK30K
KworYm9vbCBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGUoVWludDhBcnJheSog
a2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJy
b3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKQoreworICAgIGlmICghbV9jZXJ0aWZp
Y2F0ZSkgeworICAgICAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
Ojp1cGRhdGUoJXApIC0gY2VydGlmaWNhdGUgZGF0YSIsIHRoaXMpOworCisgICAgICAgIG1fY2Vy
dGlmaWNhdGUgPSBrZXk7CisKKyAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4gY2VydGlmaWNhdGVE
YXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczptX2NlcnRpZmljYXRl
LT5kYXRhKCkgbGVuZ3RoOm1fY2VydGlmaWNhdGUtPmxlbmd0aCgpXSk7CisgICAgICAgIFJldGFp
blB0cjxOU0RhdGE+IGluaXREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhC
eXRlczptX2luaXREYXRhLT5kYXRhKCkgbGVuZ3RoOm1faW5pdERhdGEtPmxlbmd0aCgpXSk7CisK
KyAgICAgICAgTlNFcnJvciogZXJyb3IgPSBuaWw7CisgICAgICAgIFJldGFpblB0cjxOU0RhdGE+
IHJlcXVlc3QgPSBhZG9wdE5TKFttX3BhcmVudC0+cGFyc2VyKCkgc3RyZWFtaW5nQ29udGVudEtl
eVJlcXVlc3REYXRhRm9yQXBwOmNlcnRpZmljYXRlRGF0YS5nZXQoKSBjb250ZW50SWRlbnRpZmll
cjppbml0RGF0YS5nZXQoKSB0cmFja0lEOm1fcGFyZW50LT5wcm90ZWN0ZWRUcmFja0lEKCkgb3B0
aW9uczpuaWwgZXJyb3I6JmVycm9yXSk7CisKKyAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAg
ICAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGUoJXAp
IC0gZXJyb3I6JUAiLCB0aGlzLCBbZXJyb3IgZGVzY3JpcHRpb25dKTsKKyAgICAgICAgICAgIGVy
cm9yQ29kZSA9IE1lZGlhUGxheWVyOjpJbnZhbGlkUGxheWVyU3RhdGU7CisgICAgICAgICAgICBz
eXN0ZW1Db2RlID0gW2Vycm9yIGNvZGVdOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisKKyAgICAgICAgbmV4dE1lc3NhZ2UgPSBVaW50OEFycmF5OjpjcmVhdGUoW3JlcXVl
c3QgbGVuZ3RoXSk7CisgICAgICAgIFtyZXF1ZXN0IGdldEJ5dGVzOm5leHRNZXNzYWdlLT5kYXRh
KCkgbGVuZ3RoOm5leHRNZXNzYWdlLT5sZW5ndGgoKV07CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKKyAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp1
cGRhdGUoJXApIC0ga2V5IGRhdGEiLCB0aGlzKTsKKyAgICBlcnJvckNvZGUgPSBNZWRpYVBsYXll
cjo6Tm9FcnJvcjsKKyAgICBzeXN0ZW1Db2RlID0gMDsKKyAgICBSZXRhaW5QdHI8TlNEYXRhPiBr
ZXlEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczprZXktPmRhdGEo
KSBsZW5ndGg6a2V5LT5sZW5ndGgoKV0pOworICAgIFttX3BhcmVudC0+cGFyc2VyKCkgcHJvY2Vz
c0NvbnRlbnRLZXlSZXNwb25zZURhdGE6a2V5RGF0YS5nZXQoKSBmb3JUcmFja0lEOm1fcGFyZW50
LT5wcm90ZWN0ZWRUcmFja0lEKCldOworICAgIHJldHVybiB0cnVlOworfQorCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCBiYzkyZWZjMGE0ZmY4NDFmNzI2MjU1MTgw
MzFmZjliOGZkM2MxZjQwLi43NGU3YjU0MDkwZmUyYmZkNDRmNzFhYTgzOWVhZThjNTA3YTY3YWY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtNzMsNiArNzMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzaXplQ2hhbmdlZCgpOwogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikK
KyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBjcmVhdGVTZXNzaW9uKGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQga2V5TmVlZGVkKFVpbnQ4QXJyYXkqKTsKICNlbmRpZgog
CkBAIC0xNTksNiArMTYwLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJs
ZSgpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYg
dHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlw
ZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CisgICAgc3RhdGljIGJvb2wg
c3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUpOwogCiAgICAgZnJpZW5kIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAyMDQ4MTMwNzM1MzVmODc4ZDA2Nzk0
YjE0MTBiM2UwMjQ5M2M5NWU1Li41MWE4ZWI2YTNjMWJjOGUzYjliMjZhOWYxYWIxYmU1YzczZjgz
NjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCisjaW1wb3J0ICJD
RE1TZXNzaW9uLmgiCiAjaW1wb3J0ICJNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgiCiAjaW1w
b3J0ICJNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCIKICNpbXBvcnQgIk1lZGlhVGltZU1hYy5o
IgpAQCAtMTY1LDcgKzE2Niw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6fk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQygpCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVu
Z2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAg
ICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAs
IDAsIDAsIDApOworICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywg
c3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CiB9CiAKIFBhc3NPd25Q
dHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQpAQCAtMjA0LDggKzIwNSwy
MCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Z2V0U3VwcG9y
dGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eQogICAgIHR5cGVzID0gbWltZVR5cGVDYWNoZSgp
OwogfQogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKK3N0YXRpYyBib29sIGtleVN5
c3RlbUlzU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIHJldHVybiBl
cXVhbElnbm9yaW5nQ2FzZShrZXlTeXN0ZW0sICJjb20uYXBwbGUuZnBzLjJfMCIpOworfQorI2Vu
ZGlmCisKIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYgcGFyYW1ldGVycykKIHsKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQorICAg
IGlmICghcGFyYW1ldGVycy5rZXlTeXN0ZW0uaXNFbXB0eSgpICYmICFrZXlTeXN0ZW1Jc1N1cHBv
cnRlZChwYXJhbWV0ZXJzLmtleVN5c3RlbSkpCisgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5
ZXI6OklzTm90U3VwcG9ydGVkOworI2VuZGlmCisKICAgICAvLyBUaGlzIGVuZ2luZSBkb2VzIG5v
dCBzdXBwb3J0IG5vbi1tZWRpYS1zb3VyY2Ugc291cmNlcy4KICAgICBpZiAoIXBhcmFtZXRlcnMu
aXNNZWRpYVNvdXJjZSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRl
ZDsKQEAgLTIyMiw2ICsyMzUsMjIgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzVHlwZShjb24KICAgICByZXR1
cm4gW2dldEFWVVJMQXNzZXRDbGFzcygpIGlzUGxheWFibGVFeHRlbmRlZE1JTUVUeXBlOnR5cGVT
dHJpbmddID8gTWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVkIDogTWVkaWFQbGF5ZXI6Ok1heUJlU3Vw
cG9ydGVkOzsKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKQoreworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCisgICAgaWYgKCFr
ZXlTeXN0ZW0uaXNFbXB0eSgpKSB7CisgICAgICAgIGlmICgha2V5U3lzdGVtSXNTdXBwb3J0ZWQo
a2V5U3lzdGVtKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoIW1p
bWVUeXBlLmlzRW1wdHkoKSAmJiAhbWltZVR5cGVDYWNoZSgpLmNvbnRhaW5zKG1pbWVUeXBlKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKICNwcmFnbWEgbWFyayAtCiAjcHJhZ21h
IG1hcmsgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIE92ZXJyaWRlcwogCkBAIC01MzUsNiAr
NTY0LDE0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzaXpl
Q2hhbmdlZCgpCiB9CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQorc3RkOjp1bmlx
dWVfcHRyPENETVNlc3Npb24+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
Y3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKK3sKKyAgICBpZiAoIW1fbWVk
aWFTb3VyY2VQcml2YXRlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBt
X21lZGlhU291cmNlUHJpdmF0ZS0+Y3JlYXRlU2Vzc2lvbihrZXlTeXN0ZW0pOworfQorCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6a2V5TmVlZGVkKFVpbnQ4QXJy
YXkqIGluaXREYXRhKQogewogICAgIG1fcGxheWVyLT5rZXlOZWVkZWQoaW5pdERhdGEpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oCmlu
ZGV4IDY2ZDhiMDcwYmY3NTcwNDFkMWZmYzVkMzkxMmM0MjMxYTBjOTM0YmMuLjQzNmVjMzZkMzBl
MTQwMDY3ZTlkZWM4MjY0MWFjNjBlOGJjMTEzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFW
Rk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAi
TWVkaWFTb3VyY2VQcml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgpAQCAtNDIsNiArNDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBs
ZUJ1ZmZlciAqQ01TYW1wbGVCdWZmZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xh
c3MgQ0RNU2Vzc2lvbjsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
QzsKIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOwogY2xhc3MgVGltZVJhbmdlczsK
QEAgLTY4LDExICs3MCwxOCBAQCBwdWJsaWM6CiAgICAgTWVkaWFUaW1lIHNlZWtUb1RpbWUoTWVk
aWFUaW1lLCBNZWRpYVRpbWUgbmVnYXRpdmVUaHJlc2hvbGQsIE1lZGlhVGltZSBwb3NpdGl2ZVRo
cmVzaG9sZCk7CiAgICAgSW50U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0OwogCisjaWYgRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQV9WMikKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gY3Jl
YXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIE1lZGlh
U291cmNlUHJpdmF0ZUFWRk9iakMoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Kik7CiAKICAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRDaGFuZ2VBY3RpdmVTdGF0ZShT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyosIGJvb2wgYWN0aXZlKTsKICAgICB2b2lkIHNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDKik7CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKKyAgICB2
b2lkIHNvdXJjZUJ1ZmZlcktleU5lZWRlZChTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyosIFVp
bnQ4QXJyYXkqKTsKKyNlbmRpZgogICAgIHZvaWQgbW9uaXRvclNvdXJjZUJ1ZmZlcnMoKTsKICAg
ICB2b2lkIHJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXJQcml2YXRlKik7CiAKQEAgLTgy
LDYgKzkxLDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9kdXJhdGlvbjsKICAgICBWZWN0b3I8
UmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPj4gbV9zb3VyY2VCdWZmZXJzOwogICAg
IFZlY3RvcjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyo+IG1fYWN0aXZlU291cmNlQnVmZmVy
czsKKyAgICBEZXF1ZTxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyo+IG1fc291cmNlQnVmZmVy
c05lZWRpbmdTZXNzaW9uczsKICAgICBib29sIG1faXNFbmRlZDsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
U291cmNlUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDUz
ZmFjN2I3YmE2MTRiMTk0NzVjYmMxYzAzNzkzNzVlZmVhZDQyOTkuLjU5YTQxMTA0NzRhYjBhODJl
MmU2N2MyNDYzNWFlMTMxYTM4NTQwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYg
RU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgVVNFKEFWRk9VTkRBVElPTikKIAorI2ltcG9ydCAiQ0RN
U2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIgogI2ltcG9ydCAiQ29udGVudFR5cGUuaCIKICNp
bXBvcnQgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2ltcG9ydCAiTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgiCkBAIC0xMzcsNiArMTM4LDI2IEBAIHZvaWQgTWVk
aWFTb3VyY2VQcml2YXRlQVZGT2JqQzo6c291cmNlQnVmZmVyUHJpdmF0ZURpZENoYW5nZUFjdGl2
ZVN0YXRlKFNvdXJjZUJ1CiAgICAgfQogfQogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9W
MikKK3N0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpD
OjpjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYpCit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDkwCisgICAgaWYgKG1fc291cmNlQnVmZmVyc05lZWRpbmdTZXNz
aW9ucy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM+KG1fc291cmNlQnVmZmVy
c05lZWRpbmdTZXNzaW9ucy50YWtlRmlyc3QoKSk7CisjZW5kaWYKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKK3ZvaWQgTWVk
aWFTb3VyY2VQcml2YXRlQVZGT2JqQzo6c291cmNlQnVmZmVyS2V5TmVlZGVkKFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDKiBidWZmZXIsIFVpbnQ4QXJyYXkqIGluaXREYXRhKQoreworICAgIG1f
c291cmNlQnVmZmVyc05lZWRpbmdTZXNzaW9ucy5hcHBlbmQoYnVmZmVyKTsKKyAgICBwbGF5ZXIo
KS0+a2V5TmVlZGVkKGluaXREYXRhKTsKK30KKyNlbmRpZgorCiBzdGF0aWMgYm9vbCBNZWRpYVNv
dXJjZVByaXZhdGVBVkZPYmpDSGFzQXVkaW8oUGFzc1JlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQz4gcHJwU291cmNlQnVmZmVyKQogewogICAgIFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQz4gc291cmNlQnVmZmVyID0gcHJwU291cmNlQnVmZmVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKaW5kZXggNjhi
YTJjY2E3N2RkMTY1Y2JkZmNhNmYxMjE4YjJjNDY4YWY1Y2VlZi4uNzNmOWFiMGU0M2YzMTA2NzA0
NzdmYzA4MmUwZTg2OGYwMmI3YzNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCkBAIC00Miw2ICs0Miw3IEBAIE9CSkNfQ0xB
U1MgQVZBc3NldDsKIE9CSkNfQ0xBU1MgQVZTdHJlYW1EYXRhUGFyc2VyOwogT0JKQ19DTEFTUyBB
VlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI7CiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOworT0JKQ19DTEFTUyBOU0RhdGE7CiBPQkpDX0NMQVNTIE5TRXJyb3I7CiBPQkpD
X0NMQVNTIE5TT2JqZWN0OwogdHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIgKkNN
U2FtcGxlQnVmZmVyUmVmOwpAQCAtNjgsNiArNjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRG
YWlsVG9QYXJzZVN0cmVhbURhdGFXaXRoRXJyb3IoTlNFcnJvciopOwogICAgIHZvaWQgZGlkUHJv
dmlkZU1lZGlhRGF0YUZvclRyYWNrSUQoaW50IHRyYWNrSUQsIENNU2FtcGxlQnVmZmVyUmVmLCBj
b25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgdW5zaWduZWQgZmxhZ3MpOwogICAgIHZvaWQgZGlkUmVh
Y2hFbmRPZlRyYWNrV2l0aFRyYWNrSUQoaW50IHRyYWNrSUQsIGNvbnN0IFN0cmluZyYgbWVkaWFU
eXBlKTsKKyAgICB2b2lkIGRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9u
RGF0YUZvclRyYWNrSUQoTlNEYXRhKiwgaW50IHRyYWNrSUQpOwogCiAgICAgYm9vbCBwcm9jZXNz
Q29kZWRGcmFtZShpbnQgdHJhY2tJRCwgQ01TYW1wbGVCdWZmZXJSZWYsIGNvbnN0IFN0cmluZyYg
bWVkaWFUeXBlKTsKIApAQCAtODEsNiArODMsOSBAQCBwdWJsaWM6CiAgICAgTWVkaWFUaW1lIGZh
c3RTZWVrVGltZUZvck1lZGlhVGltZShNZWRpYVRpbWUsIE1lZGlhVGltZSBuZWdhdGl2ZVRocmVz
aG9sZCwgTWVkaWFUaW1lIHBvc2l0aXZlVGhyZXNob2xkKTsKICAgICBJbnRTaXplIG5hdHVyYWxT
aXplKCk7CiAKKyAgICBpbnQgcHJvdGVjdGVkVHJhY2tJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJv
dGVjdGVkVHJhY2tJRDsgfQorICAgIEFWU3RyZWFtRGF0YVBhcnNlciogcGFyc2VyKCkgY29uc3Qg
eyByZXR1cm4gbV9wYXJzZXIuZ2V0KCk7IH0KKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDKik7CiAKQEAg
LTExOSw2ICsxMjQsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3BhcnNpbmdTdWNjZWVkZWQ7
CiAgICAgaW50IG1fZW5hYmxlZFZpZGVvVHJhY2tJRDsKKyAgICBpbnQgbV9wcm90ZWN0ZWRUcmFj
a0lEOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCA5MzQ2ODVlZWIyYTg2MjgxMjExOTZlZWE3NjM3ZmNk
YjdjMDQ0NDViLi40OTczYTQzMGU1ZDE2OGI3ZjQ1NzYxYzI5MGNmMjQ3ZDgwNTQ3OGI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbQpAQCAtMTE1LDYgKzExNSwxMCBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVNldEF0dGFj
aG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cgogLSAodm9p
ZClhcHBlbmRTdHJlYW1EYXRhOihOU0RhdGEgKilkYXRhOwogLSAodm9pZClzZXRTaG91bGRQcm92
aWRlTWVkaWFEYXRhOihCT09MKXNob3VsZFByb3ZpZGVNZWRpYURhdGEgZm9yVHJhY2tJRDooQ01Q
ZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEOwogLSAoQk9PTClzaG91bGRQcm92aWRlTWVkaWFEYXRh
Rm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEOworLSAodm9pZClwcm9jZXNz
Q29udGVudEtleVJlc3BvbnNlRGF0YTooTlNEYXRhICopY29udGVudEtleVJlc3BvbnNlRGF0YSBm
b3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQ7CistICh2b2lkKXByb2Nlc3ND
b250ZW50S2V5UmVzcG9uc2VFcnJvcjooTlNFcnJvciAqKWVycm9yIGZvclRyYWNrSUQ6KENNUGVy
c2lzdGVudFRyYWNrSUQpdHJhY2tJRDsKKy0gKHZvaWQpcmVuZXdFeHBpcmluZ0NvbnRlbnRLZXlS
ZXNwb25zZURhdGFGb3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQ7CistIChO
U0RhdGEgKilzdHJlYW1pbmdDb250ZW50S2V5UmVxdWVzdERhdGFGb3JBcHA6KE5TRGF0YSAqKWFw
cElkZW50aWZpZXIgY29udGVudElkZW50aWZpZXI6KE5TRGF0YSAqKWNvbnRlbnRJZGVudGlmaWVy
IHRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJRCBvcHRpb25zOihOU0RpY3Rpb25h
cnkgKilvcHRpb25zIGVycm9yOihOU0Vycm9yICoqKW91dEVycm9yOwogQGVuZAogCiAjcHJhZ21h
IG1hcmsgLQpAQCAtMjE4LDYgKzIyMiwxNSBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVNldEF0
dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cgogICAg
IEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwogICAgIF9wYXJlbnQtPmRpZFJl
YWNoRW5kT2ZUcmFja1dpdGhUcmFja0lEKHRyYWNrSUQsIG1lZGlhVHlwZSk7CiB9CisKKy0gKHZv
aWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNl
ciBkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6KE5TRGF0YSAq
KWluaXREYXRhIGZvclRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJRAoreworI2lm
IEFTU0VSVF9ESVNBQkxFRAorICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKKyNl
bmRpZgorICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOworICAgIF9wYXJl
bnQtPmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNr
SUQoaW5pdERhdGEsIHRyYWNrSUQpOworfQogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0zMjcsNiArMzQwLDcgQEAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OlNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMKICAgICAsIG1fY2xpZW50
KDApCiAgICAgLCBtX3BhcnNpbmdTdWNjZWVkZWQodHJ1ZSkKICAgICAsIG1fZW5hYmxlZFZpZGVv
VHJhY2tJRCgtMSkKKyAgICAsIG1fcHJvdGVjdGVkVHJhY2tJRCgtMSkKIHsKIH0KIApAQCAtNDEy
LDYgKzQyNiwxOCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRSZWFjaEVu
ZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQgdHJhY2tJRCwgY29ucwogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250
ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQoTlNEYXRhKiBpbml0RGF0
YSwgaW50IHRyYWNrSUQpCit7CisgICAgVU5VU0VEX1BBUkFNKHRyYWNrSUQpOworI2lmIEVOQUJM
RShFTkNSWVBURURfTUVESUFfVjIpCisgICAgTE9HKE1lZGlhLCAiU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZv
clRyYWNrSUQoJXApIC0gdHJhY2s6JWQiLCB0aGlzLCB0cmFja0lEKTsKKyAgICBtX3Byb3RlY3Rl
ZFRyYWNrSUQgPSB0cmFja0lEOworICAgIFJlZlB0cjxVaW50OEFycmF5PiBpbml0RGF0YUFycmF5
ID0gVWludDhBcnJheTo6Y3JlYXRlKFtpbml0RGF0YSBsZW5ndGhdKTsKKyAgICBbaW5pdERhdGEg
Z2V0Qnl0ZXM6aW5pdERhdGFBcnJheS0+ZGF0YSgpIGxlbmd0aDppbml0RGF0YUFycmF5LT5sZW5n
dGgoKV07CisgICAgbV9tZWRpYVNvdXJjZS0+c291cmNlQnVmZmVyS2V5TmVlZGVkKHRoaXMsIGlu
aXREYXRhQXJyYXkuZ2V0KCkpOworI2VuZGlmCit9CisKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OnNldENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KiBjbGllbnQpCiB7
CiAgICAgbV9jbGllbnQgPSBjbGllbnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224944</attachid>
            <date>2014-02-21 21:03:03 -0800</date>
            <delta_ts>2014-02-21 21:31:20 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-129166-20140221210303.patch</filename>
            <type>text/plain</type>
            <size>28732</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFjYjY1ZWJlYTYzMTBj
YmQyMzk1NDc2MGFmYjI1NDU2ZjM3MmY1Zi4uMWJlMjQ0OTdiMWU3MjkzNWVkMDZiNWYxMDc2OWM4
YjRkMGM3ZDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE0LTAyLTIxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtFTUVdIEFkZCBhIENETVNl
c3Npb24gZm9yIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTY2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IENETVNlc3Np
b24sIGNlcmF0ZWQgYnkgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDIGFsbG93
aW5nCisgICAgICAgIG1lZGlhLXNvdXJjZS1iYWNrZWQgbWVkaWEgZWxlbWVudHMgdG8gcGxheSBw
cm90ZWN0ZWQgY29udGVudC4KKworICAgICAgICBBZGQgYSBuZXcgQ0RNU2Vzc2lvbk1lZGlhU291
cmNlQVZGT2JqQyBjbGFzczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6fkNETVNlc3Npb25NZWRpYVNv
dXJjZUFWRk9iakMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6Q0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
OjpnZW5lcmF0ZUtleVJlcXVlc3QpOiBEbyBub3QgYWN0dWFsbHkgZ2VuZXJhdGUgYQorICAgICAg
ICAgICAga2V5IHJlcXVlc3QgdW50aWwgdGhlIGNlcnRpZmljYXRlIGRhdGEgaGFzIGJlZW4gYWRk
ZWQgdmlhIHVwZGF0ZSgpOworICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQzo6cmVsZWFzZUtleXMpOiBOby1vcC4KKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZSk6IElmIG5vIGNlcnRpZmljYXRlIGRhdGEgaGFz
IHlldCBiZWVuCisgICAgICAgICAgICBhZGRlZCwgYXNzdW1lIHRoZSBpbmNvbWluZyBtZXNzYWdl
IGNvbnRhaW5zIGl0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKTogQWRkIHN1cHBvcnRzS2V5
U3lzdGVtLgorICAgICAgICAoV2ViQ29yZTo6a2V5U3lzdGVtSXNTdXBwb3J0ZWQpOiBVc2UgImNv
bS5hcHBsZS5mcHMuMl8wIiB0byBkaXN0aW5ndWlzaCBmcm9tIHRoZSBub3QtbWVkaWEtc291cmNl
IHNjaGVtZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6c3VwcG9ydHNUeXBlKTogQ2hlY2sgdGhlIGtleVN5c3RlbSB0eXBlLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0
c0tleVN5c3RlbSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGVTZXNzaW9uKTogQWRkZWQsIHBhc3MgdGhyb3VnaCB0
byBNZWRpYVNvdXJjZVByaXZhdGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpjcmVhdGVT
ZXNzaW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZP
YmpDOjpzb3VyY2VCdWZmZXJLZXlOZWVkZWQpOiBQYXNzIHRocm91Z2ggdG8gTWVkaWFQbGF5ZXIu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKC1bV2Vi
QVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToKKyAgICAgICAg
ICAgIEFkZGVkLCBwYXNzIHRocm91Z2ggdG8gU291cmNlQnVmZmVyUHJpdmF0ZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRCk6
IFJlbWVtYmVyCisgICAgICAgICAgICB3aGljaCB0cmFjayBpcyByZXF1ZXN0aW5nIHRoZSBrZXks
IGFuZCBwYXNzIHRoZSByZXF1ZXN0IHRvIE1lZGlhU291cmNlUHJpdmF0ZS4KKworICAgICAgICBB
ZGQgbmV3IGZpbGVzIHRvIHRoZSBwcm9qZWN0LgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKwogMjAxNC0wMS0yOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTWVkaWFDb250cm9sc10gRml4IGVycm9ycyBwb2ludGVkIG91
dCBieSBKU0hpbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZTQyNGJlMDJmMTY3MDQ0MjJhMTQzYWE0NTNjMTRiMTZmMzZlMGRj
Ni4uMmY4YTZlZGFmOTg5ZmNmNGMwNjAyNTIxYjA3OGQzMjdmOThjNzBiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU0MSw2
ICs1NTQxLDcgQEAKIAkJQ0REQzFFN0ExOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJp
dmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0REQzFFNzkxOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5o
ICovOyB9OwogCQlDRERENTcxNTE4QjU3QTgyMDBBOTRGQ0IgLyogQ0RNU2Vzc2lvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RERTAyRTkxOEIzREZD
NzAwQ0Y3RkYxIC8qIENETVNlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlDRERFMDJFRDE4QjNFRDZEMDBDRjdGRjEgLyogQ0RNU2Vzc2lv
bkFWRm91bmRhdGlvbk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRERFMDJFQjE4QjNFRDZEMDBDRjdGRjEgLyogQ0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakMubW0gKi87IH07CisJCUNEREUwMkYwMThCNTY1MTMwMENGN0ZGMSAvKiBDRE1TZXNz
aW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RERTAyRUYxOEI1NjUxMjAwQ0Y3RkYxIC8qIENETVNlc3Npb25NZWRp
YVNvdXJjZUFWRk9iakMubW0gKi87IH07CiAJCUNERTNBODU0MTdGNUZDRTYwMEM1QkUyMCAvKiBB
dWRpb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RFM0E4NTIxN0Y1RkNFNjAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRl
QVZGLmggKi87IH07CiAJCUNERTNBODU3MTdGNjAyMDQwMEM1QkUyMCAvKiBBdWRpb1RyYWNrUHJp
dmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREUzQTg1NTE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpD
Lm1tICovOyB9OwogCQlDREUzQTg1ODE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREUzQTg1NjE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmgg
Ki87IH07CkBAIC0xMjgwOSw2ICsxMjgxMCw4IEBACiAJCUNEREUwMkU5MThCM0RGQzcwMENGN0ZG
MSAvKiBDRE1TZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENETVNlc3Npb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RERTAyRUExOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Np
b25BVkZvdW5kYXRpb25PYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmg7IHBhdGggPSBvYmpjL0NETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEREUwMkVCMThCM0VE
NkQwMENGN0ZGMSAvKiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1t
OyBwYXRoID0gb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0RERTAyRUUxOEI1NjRGQTAwQ0Y3RkYxIC8qIENETVNlc3Npb25N
ZWRpYVNvdXJjZUFWRk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQy5oOyBwYXRoID0gb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEREUwMkVGMThCNTY1MTIwMENGN0ZGMSAvKiBD
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbTsgcGF0aCA9IG9i
amMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RFM0E4NTIxN0Y1RkNFNjAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZG
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlQVZG
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERTNBODU1MTdGNjAyMDQwMEM1QkUy
MCAvKiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW07IHBhdGggPSBvYmpj
L0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RFM0E4NTYxN0Y2MDIwNDAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9i
akMuaDsgcGF0aCA9IG9iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMTAxMiw2ICsyMTAxNSw4IEBACiAJCQkJQ0QzMzZGNUYxN0Y5
RjY0NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0gKi8sCiAJCQkJQ0RE
RTAyRUExOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmggKi8s
CiAJCQkJQ0RERTAyRUIxOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Npb25BVkZvdW5kYXRpb25P
YmpDLm1tICovLAorCQkJCUNEREUwMkVFMThCNTY0RkEwMENGN0ZGMSAvKiBDRE1TZXNzaW9uTWVk
aWFTb3VyY2VBVkZPYmpDLmggKi8sCisJCQkJQ0RERTAyRUYxOEI1NjUxMjAwQ0Y3RkYxIC8qIENE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gKi8sCiAJCQkJMDdBQTZCNjkxNjZEMDE5NTAw
RDQ1NjcxIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDLmggKi8sCiAJCQkJMDdBQTZC
NkExNjZEMDE5NTAwRDQ1NjcxIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDLm1tICov
LAogCQkJCTA3MzY3REREMTcyQ0E2N0YwMEQ4NjFCOSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
TGVnYWN5QVZGT2JqQy5oICovLApAQCAtMjkwMTUsNiArMjkwMjAsNyBAQAogCQkJCTUxMUVGMkM2
MTdGMEZEMzUwMEU0RkExNiAvKiBKU0lEQktleVJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ5QzdCOUQ0MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9iamVjdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MUQ3MTlEODE4MTEwNkUwMDAxNkRDNTEgLyogSURCSW5kZXguY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0RERTAyRjAxOEI1NjUxMzAwQ0Y3RkYxIC8qIENETVNlc3Npb25NZWRpYVNv
dXJjZUFWRk9iakMubW0gaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QjlENjEwNDJEMzJGMDAwOUQ0
NDcgLyogV2ViR0xQcm9ncmFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUQ5MTA0MkQz
MkYwMDA5RDQ0NyAvKiBXZWJHTFJlbmRlcmJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
OUM3QjlERjEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1l
ZGlhU291cmNlQVZGT2JqQy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjNjU4OGQ0YzY3ODEzYzUxYTFkYzVmYTAw
YzYxMGEyMTRmZDZmZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQ19oCisjZGVmaW5lIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakNfaAor
CisjaW5jbHVkZSAiQ0RNU2Vzc2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9W
MikgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM7CisKK2NsYXNz
IENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMgOiBwdWJsaWMgQ0RNU2Vzc2lvbiB7CitwdWJs
aWM6CisgICAgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyhTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyogcGFyZW50KTsKKyAgICB2aXJ0dWFsIH5DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENETVNlc3Npb25DbGllbnQq
IGNsaWVudCkgb3ZlcnJpZGUgeyBtX2NsaWVudCA9IGNsaWVudDsgfQorICAgIHZpcnR1YWwgY29u
c3QgU3RyaW5nJiBzZXNzaW9uSWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nlc3Npb25J
ZDsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVl
c3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYg
ZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcm
IHN5c3RlbUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlS2V5cygpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJheSosIFJlZlB0cjxVaW50
OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVk
IGxvbmcmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOworCitwcm90ZWN0ZWQ6CisgICAgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMqIG1fcGFyZW50OworICAgIENETVNlc3Npb25DbGllbnQqIG1fY2xp
ZW50OworICAgIFJlZlB0cjxVaW50OEFycmF5PiBtX2luaXREYXRhOworICAgIFJlZlB0cjxVaW50
OEFycmF5PiBtX2NlcnRpZmljYXRlOworICAgIFN0cmluZyBtX3Nlc3Npb25JZDsKK307CisKK30K
KworI2VuZGlmCisKKyNlbmRpZiAvLyBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg3ZWRhMGVhODlhY2U4MWU4NWJmNjM2YzUzODU0MzYyMmMzY2Qw
NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0wLDAg
KzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJDRE1T
ZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgiCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
X1YyKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKworI2ltcG9y
dCAiQ0RNLmgiCisjaW1wb3J0ICJDRE1TZXNzaW9uLmgiCisjaW1wb3J0ICJFeGNlcHRpb25Db2Rl
LmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJNZWRpYVBsYXllci5oIgorI2ltcG9y
dCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCIKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgi
CisjaW1wb3J0ICJVVUlELmgiCisjaW1wb3J0IDxDb3JlTWVkaWEvQ01CYXNlLmg+CisjaW1wb3J0
IDxvYmpjL29iamMtcnVudGltZS5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFW
Rm91bmRhdGlvbikKK1NPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWU3RyZWFtRGF0YVBh
cnNlcik7CisjZGVmaW5lIEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0IGdldEFWU3RyZWFt
RGF0YVBhcnNlcigpCisKK0BpbnRlcmZhY2UgQVZTdHJlYW1EYXRhUGFyc2VyIDogTlNPYmplY3QK
Ky0gKHZvaWQpcHJvY2Vzc0NvbnRlbnRLZXlSZXNwb25zZURhdGE6KE5TRGF0YSAqKWNvbnRlbnRL
ZXlSZXNwb25zZURhdGEgZm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEOwor
LSAodm9pZClwcm9jZXNzQ29udGVudEtleVJlc3BvbnNlRXJyb3I6KE5TRXJyb3IgKillcnJvciBm
b3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQ7CistICh2b2lkKXJlbmV3RXhw
aXJpbmdDb250ZW50S2V5UmVzcG9uc2VEYXRhRm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJ
RCl0cmFja0lEOworLSAoTlNEYXRhICopc3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRhRm9y
QXBwOihOU0RhdGEgKilhcHBJZGVudGlmaWVyIGNvbnRlbnRJZGVudGlmaWVyOihOU0RhdGEgKilj
b250ZW50SWRlbnRpZmllciB0cmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQgb3B0
aW9uczooTlNEaWN0aW9uYXJ5ICopb3B0aW9ucyBlcnJvcjooTlNFcnJvciAqKilvdXRFcnJvcjsK
K0BlbmQKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDKiBwYXJlbnQpCisgICAgOiBtX3BhcmVudChwYXJlbnQpCisgICAgLCBtX2NsaWVudChudWxs
cHRyKQorICAgICwgbV9zZXNzaW9uSWQoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKQorewor
fQorCitQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6
OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBp
bml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29k
ZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKK3sKKyAgICBVTlVTRURfUEFSQU0obWltZVR5
cGUpOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvblVSTCk7CisgICAgQVNTRVJUKGluaXRE
YXRhKTsKKworICAgIExPRyhNZWRpYSwgIkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6Omdl
bmVyYXRlS2V5UmVxdWVzdCglcCkiLCB0aGlzKTsKKworICAgIGVycm9yQ29kZSA9IE1lZGlhUGxh
eWVyOjpOb0Vycm9yOworICAgIHN5c3RlbUNvZGUgPSAwOworCisgICAgbV9pbml0RGF0YSA9IGlu
aXREYXRhOworICAgIFN0cmluZyBjZXJ0aWZpY2F0ZVN0cmluZyhBU0NJSUxpdGVyYWwoImNlcnRp
ZmljYXRlIikpOworICAgIHJldHVybiBVaW50OEFycmF5OjpjcmVhdGUoKHVpbnQ4X3QqKWNlcnRp
ZmljYXRlU3RyaW5nLmdldENoYXJhY3RlcnNXaXRoVXBjb252ZXJ0PFVDaGFyPigpLCBjZXJ0aWZp
Y2F0ZVN0cmluZy5sZW5ndGgoKSAqIHNpemVvZihVQ2hhcikpOworfQorCit2b2lkIENETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakM6OnJlbGVhc2VLZXlzKCkKK3sKKyAgICBMT0coTWVkaWEsICJD
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpyZWxlYXNlS2V5cyglcCkiLCB0aGlzKTsKK30K
KworYm9vbCBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGUoVWludDhBcnJheSog
a2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJy
b3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKQoreworICAgIGlmICghbV9jZXJ0aWZp
Y2F0ZSkgeworICAgICAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
Ojp1cGRhdGUoJXApIC0gY2VydGlmaWNhdGUgZGF0YSIsIHRoaXMpOworCisgICAgICAgIG1fY2Vy
dGlmaWNhdGUgPSBrZXk7CisKKyAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4gY2VydGlmaWNhdGVE
YXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczptX2NlcnRpZmljYXRl
LT5kYXRhKCkgbGVuZ3RoOm1fY2VydGlmaWNhdGUtPmxlbmd0aCgpXSk7CisgICAgICAgIFJldGFp
blB0cjxOU0RhdGE+IGluaXREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhC
eXRlczptX2luaXREYXRhLT5kYXRhKCkgbGVuZ3RoOm1faW5pdERhdGEtPmxlbmd0aCgpXSk7CisK
KyAgICAgICAgTlNFcnJvciogZXJyb3IgPSBuaWw7CisgICAgICAgIFJldGFpblB0cjxOU0RhdGE+
IHJlcXVlc3QgPSBhZG9wdE5TKFttX3BhcmVudC0+cGFyc2VyKCkgc3RyZWFtaW5nQ29udGVudEtl
eVJlcXVlc3REYXRhRm9yQXBwOmNlcnRpZmljYXRlRGF0YS5nZXQoKSBjb250ZW50SWRlbnRpZmll
cjppbml0RGF0YS5nZXQoKSB0cmFja0lEOm1fcGFyZW50LT5wcm90ZWN0ZWRUcmFja0lEKCkgb3B0
aW9uczpuaWwgZXJyb3I6JmVycm9yXSk7CisKKyAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAg
ICAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGUoJXAp
IC0gZXJyb3I6JUAiLCB0aGlzLCBbZXJyb3IgZGVzY3JpcHRpb25dKTsKKyAgICAgICAgICAgIGVy
cm9yQ29kZSA9IE1lZGlhUGxheWVyOjpJbnZhbGlkUGxheWVyU3RhdGU7CisgICAgICAgICAgICBz
eXN0ZW1Db2RlID0gW2Vycm9yIGNvZGVdOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisKKyAgICAgICAgbmV4dE1lc3NhZ2UgPSBVaW50OEFycmF5OjpjcmVhdGUoW3JlcXVl
c3QgbGVuZ3RoXSk7CisgICAgICAgIFtyZXF1ZXN0IGdldEJ5dGVzOm5leHRNZXNzYWdlLT5kYXRh
KCkgbGVuZ3RoOm5leHRNZXNzYWdlLT5sZW5ndGgoKV07CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKKyAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp1
cGRhdGUoJXApIC0ga2V5IGRhdGEiLCB0aGlzKTsKKyAgICBlcnJvckNvZGUgPSBNZWRpYVBsYXll
cjo6Tm9FcnJvcjsKKyAgICBzeXN0ZW1Db2RlID0gMDsKKyAgICBSZXRhaW5QdHI8TlNEYXRhPiBr
ZXlEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczprZXktPmRhdGEo
KSBsZW5ndGg6a2V5LT5sZW5ndGgoKV0pOworICAgIFttX3BhcmVudC0+cGFyc2VyKCkgcHJvY2Vz
c0NvbnRlbnRLZXlSZXNwb25zZURhdGE6a2V5RGF0YS5nZXQoKSBmb3JUcmFja0lEOm1fcGFyZW50
LT5wcm90ZWN0ZWRUcmFja0lEKCldOworICAgIHJldHVybiB0cnVlOworfQorCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCBiYzkyZWZjMGE0ZmY4NDFmNzI2MjU1MTgw
MzFmZjliOGZkM2MxZjQwLi43NGU3YjU0MDkwZmUyYmZkNDRmNzFhYTgzOWVhZThjNTA3YTY3YWY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtNzMsNiArNzMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzaXplQ2hhbmdlZCgpOwogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikK
KyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBjcmVhdGVTZXNzaW9uKGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQga2V5TmVlZGVkKFVpbnQ4QXJyYXkqKTsKICNlbmRpZgog
CkBAIC0xNTksNiArMTYwLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJs
ZSgpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYg
dHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlw
ZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CisgICAgc3RhdGljIGJvb2wg
c3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUpOwogCiAgICAgZnJpZW5kIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAyMDQ4MTMwNzM1MzVmODc4ZDA2Nzk0
YjE0MTBiM2UwMjQ5M2M5NWU1Li41MWE4ZWI2YTNjMWJjOGUzYjliMjZhOWYxYWIxYmU1YzczZjgz
NjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCisjaW1wb3J0ICJD
RE1TZXNzaW9uLmgiCiAjaW1wb3J0ICJNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgiCiAjaW1w
b3J0ICJNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCIKICNpbXBvcnQgIk1lZGlhVGltZU1hYy5o
IgpAQCAtMTY1LDcgKzE2Niw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6fk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQygpCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVu
Z2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAg
ICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAs
IDAsIDAsIDApOworICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywg
c3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CiB9CiAKIFBhc3NPd25Q
dHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQpAQCAtMjA0LDggKzIwNSwy
MCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Z2V0U3VwcG9y
dGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eQogICAgIHR5cGVzID0gbWltZVR5cGVDYWNoZSgp
OwogfQogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKK3N0YXRpYyBib29sIGtleVN5
c3RlbUlzU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIHJldHVybiBl
cXVhbElnbm9yaW5nQ2FzZShrZXlTeXN0ZW0sICJjb20uYXBwbGUuZnBzLjJfMCIpOworfQorI2Vu
ZGlmCisKIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYgcGFyYW1ldGVycykKIHsKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQorICAg
IGlmICghcGFyYW1ldGVycy5rZXlTeXN0ZW0uaXNFbXB0eSgpICYmICFrZXlTeXN0ZW1Jc1N1cHBv
cnRlZChwYXJhbWV0ZXJzLmtleVN5c3RlbSkpCisgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5
ZXI6OklzTm90U3VwcG9ydGVkOworI2VuZGlmCisKICAgICAvLyBUaGlzIGVuZ2luZSBkb2VzIG5v
dCBzdXBwb3J0IG5vbi1tZWRpYS1zb3VyY2Ugc291cmNlcy4KICAgICBpZiAoIXBhcmFtZXRlcnMu
aXNNZWRpYVNvdXJjZSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRl
ZDsKQEAgLTIyMiw2ICsyMzUsMjIgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzVHlwZShjb24KICAgICByZXR1
cm4gW2dldEFWVVJMQXNzZXRDbGFzcygpIGlzUGxheWFibGVFeHRlbmRlZE1JTUVUeXBlOnR5cGVT
dHJpbmddID8gTWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVkIDogTWVkaWFQbGF5ZXI6Ok1heUJlU3Vw
cG9ydGVkOzsKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKQoreworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCisgICAgaWYgKCFr
ZXlTeXN0ZW0uaXNFbXB0eSgpKSB7CisgICAgICAgIGlmICgha2V5U3lzdGVtSXNTdXBwb3J0ZWQo
a2V5U3lzdGVtKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoIW1p
bWVUeXBlLmlzRW1wdHkoKSAmJiAhbWltZVR5cGVDYWNoZSgpLmNvbnRhaW5zKG1pbWVUeXBlKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKICNwcmFnbWEgbWFyayAtCiAjcHJhZ21h
IG1hcmsgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIE92ZXJyaWRlcwogCkBAIC01MzUsNiAr
NTY0LDE0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzaXpl
Q2hhbmdlZCgpCiB9CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQorc3RkOjp1bmlx
dWVfcHRyPENETVNlc3Npb24+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
Y3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKK3sKKyAgICBpZiAoIW1fbWVk
aWFTb3VyY2VQcml2YXRlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBt
X21lZGlhU291cmNlUHJpdmF0ZS0+Y3JlYXRlU2Vzc2lvbihrZXlTeXN0ZW0pOworfQorCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6a2V5TmVlZGVkKFVpbnQ4QXJy
YXkqIGluaXREYXRhKQogewogICAgIG1fcGxheWVyLT5rZXlOZWVkZWQoaW5pdERhdGEpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oCmlu
ZGV4IDY2ZDhiMDcwYmY3NTcwNDFkMWZmYzVkMzkxMmM0MjMxYTBjOTM0YmMuLjQzNmVjMzZkMzBl
MTQwMDY3ZTlkZWM4MjY0MWFjNjBlOGJjMTEzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFW
Rk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAi
TWVkaWFTb3VyY2VQcml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgpAQCAtNDIsNiArNDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBs
ZUJ1ZmZlciAqQ01TYW1wbGVCdWZmZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xh
c3MgQ0RNU2Vzc2lvbjsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
QzsKIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOwogY2xhc3MgVGltZVJhbmdlczsK
QEAgLTY4LDExICs3MCwxOCBAQCBwdWJsaWM6CiAgICAgTWVkaWFUaW1lIHNlZWtUb1RpbWUoTWVk
aWFUaW1lLCBNZWRpYVRpbWUgbmVnYXRpdmVUaHJlc2hvbGQsIE1lZGlhVGltZSBwb3NpdGl2ZVRo
cmVzaG9sZCk7CiAgICAgSW50U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0OwogCisjaWYgRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQV9WMikKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0RNU2Vzc2lvbj4gY3Jl
YXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIE1lZGlh
U291cmNlUHJpdmF0ZUFWRk9iakMoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Kik7CiAKICAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRDaGFuZ2VBY3RpdmVTdGF0ZShT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyosIGJvb2wgYWN0aXZlKTsKICAgICB2b2lkIHNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDKik7CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKKyAgICB2
b2lkIHNvdXJjZUJ1ZmZlcktleU5lZWRlZChTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyosIFVp
bnQ4QXJyYXkqKTsKKyNlbmRpZgogICAgIHZvaWQgbW9uaXRvclNvdXJjZUJ1ZmZlcnMoKTsKICAg
ICB2b2lkIHJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXJQcml2YXRlKik7CiAKQEAgLTgy
LDYgKzkxLDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9kdXJhdGlvbjsKICAgICBWZWN0b3I8
UmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPj4gbV9zb3VyY2VCdWZmZXJzOwogICAg
IFZlY3RvcjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyo+IG1fYWN0aXZlU291cmNlQnVmZmVy
czsKKyAgICBEZXF1ZTxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyo+IG1fc291cmNlQnVmZmVy
c05lZWRpbmdTZXNzaW9uczsKICAgICBib29sIG1faXNFbmRlZDsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
U291cmNlUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDUz
ZmFjN2I3YmE2MTRiMTk0NzVjYmMxYzAzNzkzNzVlZmVhZDQyOTkuLjU5YTQxMTA0NzRhYjBhODJl
MmU2N2MyNDYzNWFlMTMxYTM4NTQwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYg
RU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgVVNFKEFWRk9VTkRBVElPTikKIAorI2ltcG9ydCAiQ0RN
U2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIgogI2ltcG9ydCAiQ29udGVudFR5cGUuaCIKICNp
bXBvcnQgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2ltcG9ydCAiTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgiCkBAIC0xMzcsNiArMTM4LDI2IEBAIHZvaWQgTWVk
aWFTb3VyY2VQcml2YXRlQVZGT2JqQzo6c291cmNlQnVmZmVyUHJpdmF0ZURpZENoYW5nZUFjdGl2
ZVN0YXRlKFNvdXJjZUJ1CiAgICAgfQogfQogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9W
MikKK3N0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpD
OjpjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYpCit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDkwCisgICAgaWYgKG1fc291cmNlQnVmZmVyc05lZWRpbmdTZXNz
aW9ucy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM+KG1fc291cmNlQnVmZmVy
c05lZWRpbmdTZXNzaW9ucy50YWtlRmlyc3QoKSk7CisjZW5kaWYKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKK3ZvaWQgTWVk
aWFTb3VyY2VQcml2YXRlQVZGT2JqQzo6c291cmNlQnVmZmVyS2V5TmVlZGVkKFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDKiBidWZmZXIsIFVpbnQ4QXJyYXkqIGluaXREYXRhKQoreworICAgIG1f
c291cmNlQnVmZmVyc05lZWRpbmdTZXNzaW9ucy5hcHBlbmQoYnVmZmVyKTsKKyAgICBwbGF5ZXIo
KS0+a2V5TmVlZGVkKGluaXREYXRhKTsKK30KKyNlbmRpZgorCiBzdGF0aWMgYm9vbCBNZWRpYVNv
dXJjZVByaXZhdGVBVkZPYmpDSGFzQXVkaW8oUGFzc1JlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQz4gcHJwU291cmNlQnVmZmVyKQogewogICAgIFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQz4gc291cmNlQnVmZmVyID0gcHJwU291cmNlQnVmZmVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKaW5kZXggNjhi
YTJjY2E3N2RkMTY1Y2JkZmNhNmYxMjE4YjJjNDY4YWY1Y2VlZi4uNzNmOWFiMGU0M2YzMTA2NzA0
NzdmYzA4MmUwZTg2OGYwMmI3YzNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCkBAIC00Miw2ICs0Miw3IEBAIE9CSkNfQ0xB
U1MgQVZBc3NldDsKIE9CSkNfQ0xBU1MgQVZTdHJlYW1EYXRhUGFyc2VyOwogT0JKQ19DTEFTUyBB
VlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI7CiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyOworT0JKQ19DTEFTUyBOU0RhdGE7CiBPQkpDX0NMQVNTIE5TRXJyb3I7CiBPQkpD
X0NMQVNTIE5TT2JqZWN0OwogdHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIgKkNN
U2FtcGxlQnVmZmVyUmVmOwpAQCAtNjgsNiArNjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRG
YWlsVG9QYXJzZVN0cmVhbURhdGFXaXRoRXJyb3IoTlNFcnJvciopOwogICAgIHZvaWQgZGlkUHJv
dmlkZU1lZGlhRGF0YUZvclRyYWNrSUQoaW50IHRyYWNrSUQsIENNU2FtcGxlQnVmZmVyUmVmLCBj
b25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgdW5zaWduZWQgZmxhZ3MpOwogICAgIHZvaWQgZGlkUmVh
Y2hFbmRPZlRyYWNrV2l0aFRyYWNrSUQoaW50IHRyYWNrSUQsIGNvbnN0IFN0cmluZyYgbWVkaWFU
eXBlKTsKKyAgICB2b2lkIGRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9u
RGF0YUZvclRyYWNrSUQoTlNEYXRhKiwgaW50IHRyYWNrSUQpOwogCiAgICAgYm9vbCBwcm9jZXNz
Q29kZWRGcmFtZShpbnQgdHJhY2tJRCwgQ01TYW1wbGVCdWZmZXJSZWYsIGNvbnN0IFN0cmluZyYg
bWVkaWFUeXBlKTsKIApAQCAtODEsNiArODMsOSBAQCBwdWJsaWM6CiAgICAgTWVkaWFUaW1lIGZh
c3RTZWVrVGltZUZvck1lZGlhVGltZShNZWRpYVRpbWUsIE1lZGlhVGltZSBuZWdhdGl2ZVRocmVz
aG9sZCwgTWVkaWFUaW1lIHBvc2l0aXZlVGhyZXNob2xkKTsKICAgICBJbnRTaXplIG5hdHVyYWxT
aXplKCk7CiAKKyAgICBpbnQgcHJvdGVjdGVkVHJhY2tJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJv
dGVjdGVkVHJhY2tJRDsgfQorICAgIEFWU3RyZWFtRGF0YVBhcnNlciogcGFyc2VyKCkgY29uc3Qg
eyByZXR1cm4gbV9wYXJzZXIuZ2V0KCk7IH0KKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDKik7CiAKQEAg
LTExOSw2ICsxMjQsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3BhcnNpbmdTdWNjZWVkZWQ7
CiAgICAgaW50IG1fZW5hYmxlZFZpZGVvVHJhY2tJRDsKKyAgICBpbnQgbV9wcm90ZWN0ZWRUcmFj
a0lEOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCA5MzQ2ODVlZWIyYTg2MjgxMjExOTZlZWE3NjM3ZmNk
YjdjMDQ0NDViLi40YmY4MGNkYjE3NjNmZDFiNWFjYjRlZjRmZjlmMTg5OTE1NTMxOTVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbQpAQCAtMTE1LDYgKzExNSwxMCBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVNldEF0dGFj
aG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cgogLSAodm9p
ZClhcHBlbmRTdHJlYW1EYXRhOihOU0RhdGEgKilkYXRhOwogLSAodm9pZClzZXRTaG91bGRQcm92
aWRlTWVkaWFEYXRhOihCT09MKXNob3VsZFByb3ZpZGVNZWRpYURhdGEgZm9yVHJhY2tJRDooQ01Q
ZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEOwogLSAoQk9PTClzaG91bGRQcm92aWRlTWVkaWFEYXRh
Rm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEOworLSAodm9pZClwcm9jZXNz
Q29udGVudEtleVJlc3BvbnNlRGF0YTooTlNEYXRhICopY29udGVudEtleVJlc3BvbnNlRGF0YSBm
b3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQ7CistICh2b2lkKXByb2Nlc3ND
b250ZW50S2V5UmVzcG9uc2VFcnJvcjooTlNFcnJvciAqKWVycm9yIGZvclRyYWNrSUQ6KENNUGVy
c2lzdGVudFRyYWNrSUQpdHJhY2tJRDsKKy0gKHZvaWQpcmVuZXdFeHBpcmluZ0NvbnRlbnRLZXlS
ZXNwb25zZURhdGFGb3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQ7CistIChO
U0RhdGEgKilzdHJlYW1pbmdDb250ZW50S2V5UmVxdWVzdERhdGFGb3JBcHA6KE5TRGF0YSAqKWFw
cElkZW50aWZpZXIgY29udGVudElkZW50aWZpZXI6KE5TRGF0YSAqKWNvbnRlbnRJZGVudGlmaWVy
IHRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJRCBvcHRpb25zOihOU0RpY3Rpb25h
cnkgKilvcHRpb25zIGVycm9yOihOU0Vycm9yICoqKW91dEVycm9yOwogQGVuZAogCiAjcHJhZ21h
IG1hcmsgLQpAQCAtMjE4LDYgKzIyMiwxNSBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVNldEF0
dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0cgogICAg
IEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwogICAgIF9wYXJlbnQtPmRpZFJl
YWNoRW5kT2ZUcmFja1dpdGhUcmFja0lEKHRyYWNrSUQsIG1lZGlhVHlwZSk7CiB9CisKKy0gKHZv
aWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNl
ciBkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6KE5TRGF0YSAq
KWluaXREYXRhIGZvclRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJRAoreworI2lm
IEFTU0VSVF9ESVNBQkxFRAorICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKKyNl
bmRpZgorICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOworICAgIF9wYXJl
bnQtPmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNr
SUQoaW5pdERhdGEsIHRyYWNrSUQpOworfQogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0zMjcsNiArMzQwLDcgQEAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OlNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMKICAgICAsIG1fY2xpZW50
KDApCiAgICAgLCBtX3BhcnNpbmdTdWNjZWVkZWQodHJ1ZSkKICAgICAsIG1fZW5hYmxlZFZpZGVv
VHJhY2tJRCgtMSkKKyAgICAsIG1fcHJvdGVjdGVkVHJhY2tJRCgtMSkKIHsKIH0KIApAQCAtNDEy
LDYgKzQyNiwyMCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRSZWFjaEVu
ZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQgdHJhY2tJRCwgY29ucwogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250
ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQoTlNEYXRhKiBpbml0RGF0
YSwgaW50IHRyYWNrSUQpCit7CisgICAgVU5VU0VEX1BBUkFNKHRyYWNrSUQpOworI2lmIEVOQUJM
RShFTkNSWVBURURfTUVESUFfVjIpCisgICAgTE9HKE1lZGlhLCAiU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZv
clRyYWNrSUQoJXApIC0gdHJhY2s6JWQiLCB0aGlzLCB0cmFja0lEKTsKKyAgICBtX3Byb3RlY3Rl
ZFRyYWNrSUQgPSB0cmFja0lEOworICAgIFJlZlB0cjxVaW50OEFycmF5PiBpbml0RGF0YUFycmF5
ID0gVWludDhBcnJheTo6Y3JlYXRlKFtpbml0RGF0YSBsZW5ndGhdKTsKKyAgICBbaW5pdERhdGEg
Z2V0Qnl0ZXM6aW5pdERhdGFBcnJheS0+ZGF0YSgpIGxlbmd0aDppbml0RGF0YUFycmF5LT5sZW5n
dGgoKV07CisgICAgbV9tZWRpYVNvdXJjZS0+c291cmNlQnVmZmVyS2V5TmVlZGVkKHRoaXMsIGlu
aXREYXRhQXJyYXkuZ2V0KCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oaW5pdERhdGEpOwor
I2VuZGlmCit9CisKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldENsaWVudChT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgbV9jbGllbnQgPSBjbGll
bnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224945</attachid>
            <date>2014-02-21 21:34:07 -0800</date>
            <delta_ts>2014-02-21 21:34:07 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-129166-20140221213407.patch</filename>
            <type>text/plain</type>
            <size>28798</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFjYjY1ZWJlYTYzMTBj
YmQyMzk1NDc2MGFmYjI1NDU2ZjM3MmY1Zi4uMWJlMjQ0OTdiMWU3MjkzNWVkMDZiNWYxMDc2OWM4
YjRkMGM3ZDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE0LTAyLTIxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtFTUVdIEFkZCBhIENETVNl
c3Npb24gZm9yIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTY2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IENETVNlc3Np
b24sIGNlcmF0ZWQgYnkgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDIGFsbG93
aW5nCisgICAgICAgIG1lZGlhLXNvdXJjZS1iYWNrZWQgbWVkaWEgZWxlbWVudHMgdG8gcGxheSBw
cm90ZWN0ZWQgY29udGVudC4KKworICAgICAgICBBZGQgYSBuZXcgQ0RNU2Vzc2lvbk1lZGlhU291
cmNlQVZGT2JqQyBjbGFzczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6fkNETVNlc3Npb25NZWRpYVNv
dXJjZUFWRk9iakMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6Q0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
OjpnZW5lcmF0ZUtleVJlcXVlc3QpOiBEbyBub3QgYWN0dWFsbHkgZ2VuZXJhdGUgYQorICAgICAg
ICAgICAga2V5IHJlcXVlc3QgdW50aWwgdGhlIGNlcnRpZmljYXRlIGRhdGEgaGFzIGJlZW4gYWRk
ZWQgdmlhIHVwZGF0ZSgpOworICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQzo6cmVsZWFzZUtleXMpOiBOby1vcC4KKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakM6OnVwZGF0ZSk6IElmIG5vIGNlcnRpZmljYXRlIGRhdGEgaGFz
IHlldCBiZWVuCisgICAgICAgICAgICBhZGRlZCwgYXNzdW1lIHRoZSBpbmNvbWluZyBtZXNzYWdl
IGNvbnRhaW5zIGl0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKTogQWRkIHN1cHBvcnRzS2V5
U3lzdGVtLgorICAgICAgICAoV2ViQ29yZTo6a2V5U3lzdGVtSXNTdXBwb3J0ZWQpOiBVc2UgImNv
bS5hcHBsZS5mcHMuMl8wIiB0byBkaXN0aW5ndWlzaCBmcm9tIHRoZSBub3QtbWVkaWEtc291cmNl
IHNjaGVtZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6c3VwcG9ydHNUeXBlKTogQ2hlY2sgdGhlIGtleVN5c3RlbSB0eXBlLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0
c0tleVN5c3RlbSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpjcmVhdGVTZXNzaW9uKTogQWRkZWQsIHBhc3MgdGhyb3VnaCB0
byBNZWRpYVNvdXJjZVByaXZhdGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpjcmVhdGVT
ZXNzaW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZP
YmpDOjpzb3VyY2VCdWZmZXJLZXlOZWVkZWQpOiBQYXNzIHRocm91Z2ggdG8gTWVkaWFQbGF5ZXIu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKC1bV2Vi
QVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToKKyAgICAgICAg
ICAgIEFkZGVkLCBwYXNzIHRocm91Z2ggdG8gU291cmNlQnVmZmVyUHJpdmF0ZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRCk6
IFJlbWVtYmVyCisgICAgICAgICAgICB3aGljaCB0cmFjayBpcyByZXF1ZXN0aW5nIHRoZSBrZXks
IGFuZCBwYXNzIHRoZSByZXF1ZXN0IHRvIE1lZGlhU291cmNlUHJpdmF0ZS4KKworICAgICAgICBB
ZGQgbmV3IGZpbGVzIHRvIHRoZSBwcm9qZWN0LgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKwogMjAxNC0wMS0yOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTWVkaWFDb250cm9sc10gRml4IGVycm9ycyBwb2ludGVkIG91
dCBieSBKU0hpbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZTQyNGJlMDJmMTY3MDQ0MjJhMTQzYWE0NTNjMTRiMTZmMzZlMGRj
Ni4uMmY4YTZlZGFmOTg5ZmNmNGMwNjAyNTIxYjA3OGQzMjdmOThjNzBiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU0MSw2
ICs1NTQxLDcgQEAKIAkJQ0REQzFFN0ExOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJp
dmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0REQzFFNzkxOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5o
ICovOyB9OwogCQlDRERENTcxNTE4QjU3QTgyMDBBOTRGQ0IgLyogQ0RNU2Vzc2lvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RERTAyRTkxOEIzREZD
NzAwQ0Y3RkYxIC8qIENETVNlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlDRERFMDJFRDE4QjNFRDZEMDBDRjdGRjEgLyogQ0RNU2Vzc2lv
bkFWRm91bmRhdGlvbk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRERFMDJFQjE4QjNFRDZEMDBDRjdGRjEgLyogQ0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakMubW0gKi87IH07CisJCUNEREUwMkYwMThCNTY1MTMwMENGN0ZGMSAvKiBDRE1TZXNz
aW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RERTAyRUYxOEI1NjUxMjAwQ0Y3RkYxIC8qIENETVNlc3Npb25NZWRp
YVNvdXJjZUFWRk9iakMubW0gKi87IH07CiAJCUNERTNBODU0MTdGNUZDRTYwMEM1QkUyMCAvKiBB
dWRpb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RFM0E4NTIxN0Y1RkNFNjAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRl
QVZGLmggKi87IH07CiAJCUNERTNBODU3MTdGNjAyMDQwMEM1QkUyMCAvKiBBdWRpb1RyYWNrUHJp
dmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREUzQTg1NTE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpD
Lm1tICovOyB9OwogCQlDREUzQTg1ODE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREUzQTg1NjE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmgg
Ki87IH07CkBAIC0xMjgwOSw2ICsxMjgxMCw4IEBACiAJCUNEREUwMkU5MThCM0RGQzcwMENGN0ZG
MSAvKiBDRE1TZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENETVNlc3Npb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RERTAyRUExOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Np
b25BVkZvdW5kYXRpb25PYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmg7IHBhdGggPSBvYmpjL0NETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEREUwMkVCMThCM0VE
NkQwMENGN0ZGMSAvKiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1t
OyBwYXRoID0gb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0RERTAyRUUxOEI1NjRGQTAwQ0Y3RkYxIC8qIENETVNlc3Npb25N
ZWRpYVNvdXJjZUFWRk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ0RNU2Vzc2lvbk1lZGlhU291cmNl
QVZGT2JqQy5oOyBwYXRoID0gb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEREUwMkVGMThCNTY1MTIwMENGN0ZGMSAvKiBD
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbTsgcGF0aCA9IG9i
amMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0RFM0E4NTIxN0Y1RkNFNjAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZG
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlQVZG
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERTNBODU1MTdGNjAyMDQwMEM1QkUy
MCAvKiBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9iakMubW07IHBhdGggPSBvYmpj
L0F1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RFM0E4NTYxN0Y2MDIwNDAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBdWRpb1RyYWNrUHJpdmF0ZUFWRk9i
akMuaDsgcGF0aCA9IG9iamMvQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMTAxMiw2ICsyMTAxNSw4IEBACiAJCQkJQ0QzMzZGNUYxN0Y5
RjY0NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0gKi8sCiAJCQkJQ0RE
RTAyRUExOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmggKi8s
CiAJCQkJQ0RERTAyRUIxOEIzRUQ2RDAwQ0Y3RkYxIC8qIENETVNlc3Npb25BVkZvdW5kYXRpb25P
YmpDLm1tICovLAorCQkJCUNEREUwMkVFMThCNTY0RkEwMENGN0ZGMSAvKiBDRE1TZXNzaW9uTWVk
aWFTb3VyY2VBVkZPYmpDLmggKi8sCisJCQkJQ0RERTAyRUYxOEI1NjUxMjAwQ0Y3RkYxIC8qIENE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gKi8sCiAJCQkJMDdBQTZCNjkxNjZEMDE5NTAw
RDQ1NjcxIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDLmggKi8sCiAJCQkJMDdBQTZC
NkExNjZEMDE5NTAwRDQ1NjcxIC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDLm1tICov
LAogCQkJCTA3MzY3REREMTcyQ0E2N0YwMEQ4NjFCOSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
TGVnYWN5QVZGT2JqQy5oICovLApAQCAtMjkwMTUsNiArMjkwMjAsNyBAQAogCQkJCTUxMUVGMkM2
MTdGMEZEMzUwMEU0RkExNiAvKiBKU0lEQktleVJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ5QzdCOUQ0MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9iamVjdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MUQ3MTlEODE4MTEwNkUwMDAxNkRDNTEgLyogSURCSW5kZXguY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0RERTAyRjAxOEI1NjUxMzAwQ0Y3RkYxIC8qIENETVNlc3Npb25NZWRpYVNv
dXJjZUFWRk9iakMubW0gaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QjlENjEwNDJEMzJGMDAwOUQ0
NDcgLyogV2ViR0xQcm9ncmFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUQ5MTA0MkQz
MkYwMDA5RDQ0NyAvKiBXZWJHTFJlbmRlcmJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
OUM3QjlERjEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1l
ZGlhU291cmNlQVZGT2JqQy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjNjU4OGQ0YzY3ODEzYzUxYTFkYzVmYTAw
YzYxMGEyMTRmZDZmZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQ19oCisjZGVmaW5lIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakNfaAor
CisjaW5jbHVkZSAiQ0RNU2Vzc2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9W
MikgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM7CisKK2NsYXNz
IENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMgOiBwdWJsaWMgQ0RNU2Vzc2lvbiB7CitwdWJs
aWM6CisgICAgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyhTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyogcGFyZW50KTsKKyAgICB2aXJ0dWFsIH5DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENETVNlc3Npb25DbGllbnQq
IGNsaWVudCkgb3ZlcnJpZGUgeyBtX2NsaWVudCA9IGNsaWVudDsgfQorICAgIHZpcnR1YWwgY29u
c3QgU3RyaW5nJiBzZXNzaW9uSWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nlc3Npb25J
ZDsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVl
c3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYg
ZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcm
IHN5c3RlbUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlS2V5cygpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJheSosIFJlZlB0cjxVaW50
OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVk
IGxvbmcmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOworCitwcm90ZWN0ZWQ6CisgICAgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMqIG1fcGFyZW50OworICAgIENETVNlc3Npb25DbGllbnQqIG1fY2xp
ZW50OworICAgIFJlZlB0cjxVaW50OEFycmF5PiBtX2luaXREYXRhOworICAgIFJlZlB0cjxVaW50
OEFycmF5PiBtX2NlcnRpZmljYXRlOworICAgIFN0cmluZyBtX3Nlc3Npb25JZDsKK307CisKK30K
KworI2VuZGlmCisKKyNlbmRpZiAvLyBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg3ZWRhMGVhODlhY2U4MWU4NWJmNjM2YzUzODU0MzYyMmMzY2Qw
NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0wLDAg
KzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJDRE1T
ZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgiCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
X1YyKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKworI2ltcG9y
dCAiQ0RNLmgiCisjaW1wb3J0ICJDRE1TZXNzaW9uLmgiCisjaW1wb3J0ICJFeGNlcHRpb25Db2Rl
LmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJNZWRpYVBsYXllci5oIgorI2ltcG9y
dCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCIKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgi
CisjaW1wb3J0ICJVVUlELmgiCisjaW1wb3J0IDxDb3JlTWVkaWEvQ01CYXNlLmg+CisjaW1wb3J0
IDxvYmpjL29iamMtcnVudGltZS5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFW
Rm91bmRhdGlvbikKK1NPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWU3RyZWFtRGF0YVBh
cnNlcik7CisjZGVmaW5lIEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0IGdldEFWU3RyZWFt
RGF0YVBhcnNlcigpCisKK0BpbnRlcmZhY2UgQVZTdHJlYW1EYXRhUGFyc2VyIDogTlNPYmplY3QK
Ky0gKHZvaWQpcHJvY2Vzc0NvbnRlbnRLZXlSZXNwb25zZURhdGE6KE5TRGF0YSAqKWNvbnRlbnRL
ZXlSZXNwb25zZURhdGEgZm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEOwor
LSAodm9pZClwcm9jZXNzQ29udGVudEtleVJlc3BvbnNlRXJyb3I6KE5TRXJyb3IgKillcnJvciBm
b3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQ7CistICh2b2lkKXJlbmV3RXhw
aXJpbmdDb250ZW50S2V5UmVzcG9uc2VEYXRhRm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJ
RCl0cmFja0lEOworLSAoTlNEYXRhICopc3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRhRm9y
QXBwOihOU0RhdGEgKilhcHBJZGVudGlmaWVyIGNvbnRlbnRJZGVudGlmaWVyOihOU0RhdGEgKilj
b250ZW50SWRlbnRpZmllciB0cmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQgb3B0
aW9uczooTlNEaWN0aW9uYXJ5ICopb3B0aW9ucyBlcnJvcjooTlNFcnJvciAqKilvdXRFcnJvcjsK
K0BlbmQKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDKiBwYXJlbnQpCisgICAgOiBtX3BhcmVudChwYXJlbnQpCisgICAgLCBtX2NsaWVudChudWxs
cHRyKQorICAgICwgbV9zZXNzaW9uSWQoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKQorewor
fQorCitQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6
OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBp
bml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29k
ZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKK3sKKyAgICBVTlVTRURfUEFSQU0obWltZVR5
cGUpOworICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvblVSTCk7CisgICAgQVNTRVJUKGluaXRE
YXRhKTsKKworICAgIExPRyhNZWRpYSwgIkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6Omdl
bmVyYXRlS2V5UmVxdWVzdCglcCkiLCB0aGlzKTsKKworICAgIGVycm9yQ29kZSA9IE1lZGlhUGxh
eWVyOjpOb0Vycm9yOworICAgIHN5c3RlbUNvZGUgPSAwOworCisgICAgbV9pbml0RGF0YSA9IGlu
aXREYXRhOworICAgIFN0cmluZyBjZXJ0aWZpY2F0ZVN0cmluZyhBU0NJSUxpdGVyYWwoImNlcnRp
ZmljYXRlIikpOworICAgIHJldHVybiBVaW50OEFycmF5OjpjcmVhdGUoKHVpbnQ4X3QqKWNlcnRp
ZmljYXRlU3RyaW5nLmdldENoYXJhY3RlcnNXaXRoVXBjb252ZXJ0PFVDaGFyPigpLCBjZXJ0aWZp
Y2F0ZVN0cmluZy5sZW5ndGgoKSAqIHNpemVvZihVQ2hhcikpOworfQorCit2b2lkIENETVNlc3Np
b25NZWRpYVNvdXJjZUFWRk9iakM6OnJlbGVhc2VLZXlzKCkKK3sKKyAgICBMT0coTWVkaWEsICJD
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpyZWxlYXNlS2V5cyglcCkiLCB0aGlzKTsKK30K
KworYm9vbCBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGUoVWludDhBcnJheSog
a2V5LCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJy
b3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKQoreworICAgIGlmICghbV9jZXJ0aWZp
Y2F0ZSkgeworICAgICAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
Ojp1cGRhdGUoJXApIC0gY2VydGlmaWNhdGUgZGF0YSIsIHRoaXMpOworCisgICAgICAgIG1fY2Vy
dGlmaWNhdGUgPSBrZXk7CisKKyAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4gY2VydGlmaWNhdGVE
YXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczptX2NlcnRpZmljYXRl
LT5kYXRhKCkgbGVuZ3RoOm1fY2VydGlmaWNhdGUtPmxlbmd0aCgpXSk7CisgICAgICAgIFJldGFp
blB0cjxOU0RhdGE+IGluaXREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhC
eXRlczptX2luaXREYXRhLT5kYXRhKCkgbGVuZ3RoOm1faW5pdERhdGEtPmxlbmd0aCgpXSk7CisK
KyAgICAgICAgTlNFcnJvciogZXJyb3IgPSBuaWw7CisgICAgICAgIFJldGFpblB0cjxOU0RhdGE+
IHJlcXVlc3QgPSBhZG9wdE5TKFttX3BhcmVudC0+cGFyc2VyKCkgc3RyZWFtaW5nQ29udGVudEtl
eVJlcXVlc3REYXRhRm9yQXBwOmNlcnRpZmljYXRlRGF0YS5nZXQoKSBjb250ZW50SWRlbnRpZmll
cjppbml0RGF0YS5nZXQoKSB0cmFja0lEOm1fcGFyZW50LT5wcm90ZWN0ZWRUcmFja0lEKCkgb3B0
aW9uczpuaWwgZXJyb3I6JmVycm9yXSk7CisKKyAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAg
ICAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp1cGRhdGUoJXAp
IC0gZXJyb3I6JUAiLCB0aGlzLCBbZXJyb3IgZGVzY3JpcHRpb25dKTsKKyAgICAgICAgICAgIGVy
cm9yQ29kZSA9IE1lZGlhUGxheWVyOjpJbnZhbGlkUGxheWVyU3RhdGU7CisgICAgICAgICAgICBz
eXN0ZW1Db2RlID0gW2Vycm9yIGNvZGVdOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisKKyAgICAgICAgbmV4dE1lc3NhZ2UgPSBVaW50OEFycmF5OjpjcmVhdGUoW3JlcXVl
c3QgbGVuZ3RoXSk7CisgICAgICAgIFtyZXF1ZXN0IGdldEJ5dGVzOm5leHRNZXNzYWdlLT5kYXRh
KCkgbGVuZ3RoOm5leHRNZXNzYWdlLT5sZW5ndGgoKV07CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKKyAgICBMT0coTWVkaWEsICJDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjp1
cGRhdGUoJXApIC0ga2V5IGRhdGEiLCB0aGlzKTsKKyAgICBlcnJvckNvZGUgPSBNZWRpYVBsYXll
cjo6Tm9FcnJvcjsKKyAgICBzeXN0ZW1Db2RlID0gMDsKKyAgICBSZXRhaW5QdHI8TlNEYXRhPiBr
ZXlEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczprZXktPmRhdGEo
KSBsZW5ndGg6a2V5LT5sZW5ndGgoKV0pOworICAgIFttX3BhcmVudC0+cGFyc2VyKCkgcHJvY2Vz
c0NvbnRlbnRLZXlSZXNwb25zZURhdGE6a2V5RGF0YS5nZXQoKSBmb3JUcmFja0lEOm1fcGFyZW50
LT5wcm90ZWN0ZWRUcmFja0lEKCldOworICAgIHJldHVybiB0cnVlOworfQorCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCBiYzkyZWZjMGE0ZmY4NDFmNzI2MjU1MTgw
MzFmZjliOGZkM2MxZjQwLi43NGU3YjU0MDkwZmUyYmZkNDRmNzFhYTgzOWVhZThjNTA3YTY3YWY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtNzMsNiArNzMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzaXplQ2hhbmdlZCgpOwogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikK
KyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBjcmVhdGVTZXNzaW9uKGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQga2V5TmVlZGVkKFVpbnQ4QXJyYXkqKTsKICNlbmRpZgog
CkBAIC0xNTksNiArMTYwLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJs
ZSgpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nPiYg
dHlwZXMpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlw
ZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CisgICAgc3RhdGljIGJvb2wg
c3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUpOwogCiAgICAgZnJpZW5kIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAyMDQ4MTMwNzM1MzVmODc4ZDA2Nzk0
YjE0MTBiM2UwMjQ5M2M5NWU1Li45YWM1YzQ1YmYyMjEyODI0Y2IzYWZiODMwM2ExZTNjZmEzMDU1
ZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCisjaW1wb3J0ICJD
RE1TZXNzaW9uLmgiCiAjaW1wb3J0ICJNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgiCiAjaW1w
b3J0ICJNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCIKICNpbXBvcnQgIk1lZGlhVGltZU1hYy5o
IgpAQCAtMTY1LDcgKzE2Niw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6fk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQygpCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVu
Z2luZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7CiAgICAgaWYgKGlzQXZhaWxhYmxlKCkpCi0gICAg
ICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAs
IDAsIDAsIDApOworICAgICAgICByZWdpc3RyYXIoY3JlYXRlLCBnZXRTdXBwb3J0ZWRUeXBlcywg
c3VwcG9ydHNUeXBlLCAwLCAwLCAwLCBzdXBwb3J0c0tleVN5c3RlbSk7CiB9CiAKIFBhc3NPd25Q
dHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OmNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyKQpAQCAtMjA0LDggKzIwNSwy
MCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Z2V0U3VwcG9y
dGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eQogICAgIHR5cGVzID0gbWltZVR5cGVDYWNoZSgp
OwogfQogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKK3N0YXRpYyBib29sIGtleVN5
c3RlbUlzU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworICAgIHJldHVybiBl
cXVhbElnbm9yaW5nQ2FzZShrZXlTeXN0ZW0sICJjb20uYXBwbGUuZnBzLjJfMCIpOworfQorI2Vu
ZGlmCisKIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYgcGFyYW1ldGVycykKIHsKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQorICAg
IGlmICghcGFyYW1ldGVycy5rZXlTeXN0ZW0uaXNFbXB0eSgpICYmICFrZXlTeXN0ZW1Jc1N1cHBv
cnRlZChwYXJhbWV0ZXJzLmtleVN5c3RlbSkpCisgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5
ZXI6OklzTm90U3VwcG9ydGVkOworI2VuZGlmCisKICAgICAvLyBUaGlzIGVuZ2luZSBkb2VzIG5v
dCBzdXBwb3J0IG5vbi1tZWRpYS1zb3VyY2Ugc291cmNlcy4KICAgICBpZiAoIXBhcmFtZXRlcnMu
aXNNZWRpYVNvdXJjZSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRl
ZDsKQEAgLTIyMiw2ICsyMzUsMjUgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzVHlwZShjb24KICAgICByZXR1
cm4gW2dldEFWVVJMQXNzZXRDbGFzcygpIGlzUGxheWFibGVFeHRlbmRlZE1JTUVUeXBlOnR5cGVT
dHJpbmddID8gTWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVkIDogTWVkaWFQbGF5ZXI6Ok1heUJlU3Vw
cG9ydGVkOzsKIH0KIAorYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKQoreworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCisgICAgaWYgKCFr
ZXlTeXN0ZW0uaXNFbXB0eSgpKSB7CisgICAgICAgIGlmICgha2V5U3lzdGVtSXNTdXBwb3J0ZWQo
a2V5U3lzdGVtKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoIW1p
bWVUeXBlLmlzRW1wdHkoKSAmJiAhbWltZVR5cGVDYWNoZSgpLmNvbnRhaW5zKG1pbWVUeXBlKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOworICAgIFVOVVNFRF9QQVJBTSht
aW1lVHlwZSk7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKICNwcmFnbWEgbWFyayAt
CiAjcHJhZ21hIG1hcmsgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIE92ZXJyaWRlcwogCkBA
IC01MzUsNiArNTY3LDE0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpzaXplQ2hhbmdlZCgpCiB9CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQor
c3RkOjp1bmlxdWVfcHRyPENETVNlc3Npb24+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6Y3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKK3sKKyAgICBp
ZiAoIW1fbWVkaWFTb3VyY2VQcml2YXRlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IHJldHVybiBtX21lZGlhU291cmNlUHJpdmF0ZS0+Y3JlYXRlU2Vzc2lvbihrZXlTeXN0ZW0pOwor
fQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6a2V5TmVlZGVk
KFVpbnQ4QXJyYXkqIGluaXREYXRhKQogewogICAgIG1fcGxheWVyLT5rZXlOZWVkZWQoaW5pdERh
dGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZG
T2JqQy5oCmluZGV4IDY2ZDhiMDcwYmY3NTcwNDFkMWZmYzVkMzkxMmM0MjMxYTBjOTM0YmMuLjQz
NmVjMzZkMzBlMTQwMDY3ZTlkZWM4MjY0MWFjNjBlOGJjMTEzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNl
UHJpdmF0ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgKQEAgLTI5LDYgKzI5
LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAj
aW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgpAQCAtNDIsNiArNDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBvcGFx
dWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZmZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY2xhc3MgQ0RNU2Vzc2lvbjsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzsKIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOwogY2xhc3MgVGlt
ZVJhbmdlczsKQEAgLTY4LDExICs3MCwxOCBAQCBwdWJsaWM6CiAgICAgTWVkaWFUaW1lIHNlZWtU
b1RpbWUoTWVkaWFUaW1lLCBNZWRpYVRpbWUgbmVnYXRpdmVUaHJlc2hvbGQsIE1lZGlhVGltZSBw
b3NpdGl2ZVRocmVzaG9sZCk7CiAgICAgSW50U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0OwogCisj
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0RNU2Vz
c2lvbj4gY3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiBwcml2YXRlOgog
ICAgIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDKik7CiAKICAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRDaGFuZ2VBY3Rp
dmVTdGF0ZShTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyosIGJvb2wgYWN0aXZlKTsKICAgICB2
b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKik7CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9W
MikKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlcktleU5lZWRlZChTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQyosIFVpbnQ4QXJyYXkqKTsKKyNlbmRpZgogICAgIHZvaWQgbW9uaXRvclNvdXJjZUJ1ZmZl
cnMoKTsKICAgICB2b2lkIHJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXJQcml2YXRlKik7
CiAKQEAgLTgyLDYgKzkxLDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9kdXJhdGlvbjsKICAg
ICBWZWN0b3I8UmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPj4gbV9zb3VyY2VCdWZm
ZXJzOwogICAgIFZlY3RvcjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyo+IG1fYWN0aXZlU291
cmNlQnVmZmVyczsKKyAgICBEZXF1ZTxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyo+IG1fc291
cmNlQnVmZmVyc05lZWRpbmdTZXNzaW9uczsKICAgICBib29sIG1faXNFbmRlZDsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1t
CmluZGV4IDUzZmFjN2I3YmE2MTRiMTk0NzVjYmMxYzAzNzkzNzVlZmVhZDQyOTkuLjU5YTQxMTA0
NzRhYjBhODJlMmU2N2MyNDYzNWFlMTMxYTM4NTQwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0
ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgVVNFKEFWRk9VTkRBVElPTikKIAorI2lt
cG9ydCAiQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIgogI2ltcG9ydCAiQ29udGVudFR5
cGUuaCIKICNpbXBvcnQgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2ltcG9ydCAiTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgiCkBAIC0xMzcsNiArMTM4LDI2IEBA
IHZvaWQgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQzo6c291cmNlQnVmZmVyUHJpdmF0ZURpZENo
YW5nZUFjdGl2ZVN0YXRlKFNvdXJjZUJ1CiAgICAgfQogfQogCisjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQV9WMikKK3N0ZDo6dW5pcXVlX3B0cjxDRE1TZXNzaW9uPiBNZWRpYVNvdXJjZVByaXZh
dGVBVkZPYmpDOjpjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYpCit7CisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisgICAgaWYgKG1fc291cmNlQnVmZmVyc05l
ZWRpbmdTZXNzaW9ucy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM+KG1fc291
cmNlQnVmZmVyc05lZWRpbmdTZXNzaW9ucy50YWtlRmlyc3QoKSk7CisjZW5kaWYKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikK
K3ZvaWQgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQzo6c291cmNlQnVmZmVyS2V5TmVlZGVkKFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKiBidWZmZXIsIFVpbnQ4QXJyYXkqIGluaXREYXRhKQor
eworICAgIG1fc291cmNlQnVmZmVyc05lZWRpbmdTZXNzaW9ucy5hcHBlbmQoYnVmZmVyKTsKKyAg
ICBwbGF5ZXIoKS0+a2V5TmVlZGVkKGluaXREYXRhKTsKK30KKyNlbmRpZgorCiBzdGF0aWMgYm9v
bCBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDSGFzQXVkaW8oUGFzc1JlZlB0cjxTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQz4gcHJwU291cmNlQnVmZmVyKQogewogICAgIFJlZlB0cjxTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQz4gc291cmNlQnVmZmVyID0gcHJwU291cmNlQnVmZmVyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgK
aW5kZXggNjhiYTJjY2E3N2RkMTY1Y2JkZmNhNmYxMjE4YjJjNDY4YWY1Y2VlZi4uNzNmOWFiMGU0
M2YzMTA2NzA0NzdmYzA4MmUwZTg2OGYwMmI3YzNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCkBAIC00Miw2ICs0Miw3IEBA
IE9CSkNfQ0xBU1MgQVZBc3NldDsKIE9CSkNfQ0xBU1MgQVZTdHJlYW1EYXRhUGFyc2VyOwogT0JK
Q19DTEFTUyBBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI7CiBPQkpDX0NMQVNTIEFWU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyOworT0JKQ19DTEFTUyBOU0RhdGE7CiBPQkpDX0NMQVNTIE5TRXJy
b3I7CiBPQkpDX0NMQVNTIE5TT2JqZWN0OwogdHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVC
dWZmZXIgKkNNU2FtcGxlQnVmZmVyUmVmOwpAQCAtNjgsNiArNjksNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWRGYWlsVG9QYXJzZVN0cmVhbURhdGFXaXRoRXJyb3IoTlNFcnJvciopOwogICAgIHZv
aWQgZGlkUHJvdmlkZU1lZGlhRGF0YUZvclRyYWNrSUQoaW50IHRyYWNrSUQsIENNU2FtcGxlQnVm
ZmVyUmVmLCBjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgdW5zaWduZWQgZmxhZ3MpOwogICAgIHZv
aWQgZGlkUmVhY2hFbmRPZlRyYWNrV2l0aFRyYWNrSUQoaW50IHRyYWNrSUQsIGNvbnN0IFN0cmlu
ZyYgbWVkaWFUeXBlKTsKKyAgICB2b2lkIGRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRp
YWxpemF0aW9uRGF0YUZvclRyYWNrSUQoTlNEYXRhKiwgaW50IHRyYWNrSUQpOwogCiAgICAgYm9v
bCBwcm9jZXNzQ29kZWRGcmFtZShpbnQgdHJhY2tJRCwgQ01TYW1wbGVCdWZmZXJSZWYsIGNvbnN0
IFN0cmluZyYgbWVkaWFUeXBlKTsKIApAQCAtODEsNiArODMsOSBAQCBwdWJsaWM6CiAgICAgTWVk
aWFUaW1lIGZhc3RTZWVrVGltZUZvck1lZGlhVGltZShNZWRpYVRpbWUsIE1lZGlhVGltZSBuZWdh
dGl2ZVRocmVzaG9sZCwgTWVkaWFUaW1lIHBvc2l0aXZlVGhyZXNob2xkKTsKICAgICBJbnRTaXpl
IG5hdHVyYWxTaXplKCk7CiAKKyAgICBpbnQgcHJvdGVjdGVkVHJhY2tJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fcHJvdGVjdGVkVHJhY2tJRDsgfQorICAgIEFWU3RyZWFtRGF0YVBhcnNlciogcGFyc2Vy
KCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZXIuZ2V0KCk7IH0KKwogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpD
Kik7CiAKQEAgLTExOSw2ICsxMjQsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3BhcnNpbmdT
dWNjZWVkZWQ7CiAgICAgaW50IG1fZW5hYmxlZFZpZGVvVHJhY2tJRDsKKyAgICBpbnQgbV9wcm90
ZWN0ZWRUcmFja0lEOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9T
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCA5MzQ2ODVlZWIyYTg2MjgxMjExOTZl
ZWE3NjM3ZmNkYjdjMDQ0NDViLi40YmY4MGNkYjE3NjNmZDFiNWFjYjRlZjRmZjlmMTg5OTE1NTMx
OTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5tbQpAQCAtMTE1LDYgKzExNSwxMCBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBD
TVNldEF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBDRlN0
cgogLSAodm9pZClhcHBlbmRTdHJlYW1EYXRhOihOU0RhdGEgKilkYXRhOwogLSAodm9pZClzZXRT
aG91bGRQcm92aWRlTWVkaWFEYXRhOihCT09MKXNob3VsZFByb3ZpZGVNZWRpYURhdGEgZm9yVHJh
Y2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEOwogLSAoQk9PTClzaG91bGRQcm92aWRl
TWVkaWFEYXRhRm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEOworLSAodm9p
ZClwcm9jZXNzQ29udGVudEtleVJlc3BvbnNlRGF0YTooTlNEYXRhICopY29udGVudEtleVJlc3Bv
bnNlRGF0YSBmb3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQ7CistICh2b2lk
KXByb2Nlc3NDb250ZW50S2V5UmVzcG9uc2VFcnJvcjooTlNFcnJvciAqKWVycm9yIGZvclRyYWNr
SUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJRDsKKy0gKHZvaWQpcmVuZXdFeHBpcmluZ0Nv
bnRlbnRLZXlSZXNwb25zZURhdGFGb3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNr
SUQ7CistIChOU0RhdGEgKilzdHJlYW1pbmdDb250ZW50S2V5UmVxdWVzdERhdGFGb3JBcHA6KE5T
RGF0YSAqKWFwcElkZW50aWZpZXIgY29udGVudElkZW50aWZpZXI6KE5TRGF0YSAqKWNvbnRlbnRJ
ZGVudGlmaWVyIHRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJRCBvcHRpb25zOihO
U0RpY3Rpb25hcnkgKilvcHRpb25zIGVycm9yOihOU0Vycm9yICoqKW91dEVycm9yOwogQGVuZAog
CiAjcHJhZ21hIG1hcmsgLQpAQCAtMjE4LDYgKzIyMiwxNSBAQCBTT0ZUX0xJTksoQ29yZU1lZGlh
LCBDTVNldEF0dGFjaG1lbnQsIHZvaWQsIChDTUF0dGFjaG1lbnRCZWFyZXJSZWYgdGFyZ2V0LCBD
RlN0cgogICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwogICAgIF9wYXJl
bnQtPmRpZFJlYWNoRW5kT2ZUcmFja1dpdGhUcmFja0lEKHRyYWNrSUQsIG1lZGlhVHlwZSk7CiB9
CisKKy0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFt
RGF0YVBhcnNlciBkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6
KE5TRGF0YSAqKWluaXREYXRhIGZvclRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJ
RAoreworI2lmIEFTU0VSVF9ESVNBQkxFRAorICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFy
c2VyKTsKKyNlbmRpZgorICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwor
ICAgIF9wYXJlbnQtPmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0
YUZvclRyYWNrSUQoaW5pdERhdGEsIHRyYWNrSUQpOworfQogQGVuZAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0zMjcsNiArMzQwLDcgQEAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OlNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMKICAgICAs
IG1fY2xpZW50KDApCiAgICAgLCBtX3BhcnNpbmdTdWNjZWVkZWQodHJ1ZSkKICAgICAsIG1fZW5h
YmxlZFZpZGVvVHJhY2tJRCgtMSkKKyAgICAsIG1fcHJvdGVjdGVkVHJhY2tJRCgtMSkKIHsKIH0K
IApAQCAtNDEyLDYgKzQyNiwyMCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpk
aWRSZWFjaEVuZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQgdHJhY2tJRCwgY29ucwogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFBy
b3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQoTlNEYXRh
KiBpbml0RGF0YSwgaW50IHRyYWNrSUQpCit7CisgICAgVU5VU0VEX1BBUkFNKHRyYWNrSUQpOwor
I2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCisgICAgTE9HKE1lZGlhLCAiU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0
aW9uRGF0YUZvclRyYWNrSUQoJXApIC0gdHJhY2s6JWQiLCB0aGlzLCB0cmFja0lEKTsKKyAgICBt
X3Byb3RlY3RlZFRyYWNrSUQgPSB0cmFja0lEOworICAgIFJlZlB0cjxVaW50OEFycmF5PiBpbml0
RGF0YUFycmF5ID0gVWludDhBcnJheTo6Y3JlYXRlKFtpbml0RGF0YSBsZW5ndGhdKTsKKyAgICBb
aW5pdERhdGEgZ2V0Qnl0ZXM6aW5pdERhdGFBcnJheS0+ZGF0YSgpIGxlbmd0aDppbml0RGF0YUFy
cmF5LT5sZW5ndGgoKV07CisgICAgbV9tZWRpYVNvdXJjZS0+c291cmNlQnVmZmVyS2V5TmVlZGVk
KHRoaXMsIGluaXREYXRhQXJyYXkuZ2V0KCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oaW5p
dERhdGEpOworI2VuZGlmCit9CisKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNl
dENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgbV9jbGll
bnQgPSBjbGllbnQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>