<?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>171418</bug_id>
          
          <creation_ts>2017-04-27 20:27:47 -0700</creation_ts>
          <short_desc>Drop support for legacy ClientRect / ClientRectList</short_desc>
          <delta_ts>2017-04-30 17:44:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>171226</dependson>
    
    <dependson>171393</dependson>
    
    <dependson>171412</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1302462</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-27 20:27:47 -0700</bug_when>
    <thetext>Drop support for legacy ClientRect / ClientRectList.

Firefox has already dropped them in favor of DOMRect / sequence&lt;DOMRect&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302874</commentid>
    <comment_count>1</comment_count>
      <attachid>308619</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 16:59:56 -0700</bug_when>
    <thetext>Created attachment 308619
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302875</commentid>
    <comment_count>2</comment_count>
      <attachid>308620</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 17:01:02 -0700</bug_when>
    <thetext>Created attachment 308620
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302945</commentid>
    <comment_count>3</comment_count>
      <attachid>308646</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 18:52:22 -0700</bug_when>
    <thetext>Created attachment 308646
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302948</commentid>
    <comment_count>4</comment_count>
      <attachid>308647</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 18:58:45 -0700</bug_when>
    <thetext>Created attachment 308647
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302950</commentid>
    <comment_count>5</comment_count>
      <attachid>308649</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 19:01:57 -0700</bug_when>
    <thetext>Created attachment 308649
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302955</commentid>
    <comment_count>6</comment_count>
      <attachid>308650</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 19:09:34 -0700</bug_when>
    <thetext>Created attachment 308650
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302957</commentid>
    <comment_count>7</comment_count>
      <attachid>308651</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 19:24:46 -0700</bug_when>
    <thetext>Created attachment 308651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303127</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-04-30 12:23:50 -0700</bug_when>
    <thetext>rs=me when this gets building / passing tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303148</commentid>
    <comment_count>9</comment_count>
      <attachid>308700</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-30 14:37:03 -0700</bug_when>
    <thetext>Created attachment 308700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303163</commentid>
    <comment_count>10</comment_count>
      <attachid>308700</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-30 17:44:10 -0700</bug_when>
    <thetext>Comment on attachment 308700
Patch

Clearing flags on attachment: 308700

Committed r216002: &lt;http://trac.webkit.org/changeset/216002&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303164</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-30 17:44:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308619</attachid>
            <date>2017-04-28 16:59:56 -0700</date>
            <delta_ts>2017-04-28 17:01:02 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>171418_drop_ClientRect_wip.patch</filename>
            <type>text/plain</type>
            <size>23634</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMWMxN2RlNmM2NTEuLmQ5NjE0YzBiZjVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtNDA2LDggKzQwNiw2IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURM
X0ZJTEVTCiAgICAgZG9tL0NEQVRBU2VjdGlvbi5pZGwKICAgICBkb20vQ2hhcmFjdGVyRGF0YS5p
ZGwKICAgICBkb20vQ2hpbGROb2RlLmlkbAotICAgIGRvbS9DbGllbnRSZWN0LmlkbAotICAgIGRv
bS9DbGllbnRSZWN0TGlzdC5pZGwKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuaWRsCiAgICAgZG9t
L0NvbW1lbnQuaWRsCiAgICAgZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRsCkBAIC0xNDQ3LDggKzE0
NDUsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0NoaWxkTGlzdE11dGF0aW9uU2Nv
cGUuY3BwCiAgICAgZG9tL0NoaWxkTm9kZUxpc3QuY3BwCiAgICAgZG9tL0NsYXNzQ29sbGVjdGlv
bi5jcHAKLSAgICBkb20vQ2xpZW50UmVjdC5jcHAKLSAgICBkb20vQ2xpZW50UmVjdExpc3QuY3Bw
CiAgICAgZG9tL0NsaXBib2FyZEV2ZW50LmNwcAogICAgIGRvbS9Db2xsZWN0aW9uSW5kZXhDYWNo
ZS5jcHAKICAgICBkb20vQ29tbWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRl
eCBiZDhiNzgyMjdmOC4uNWE2NjFmMTYxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAK
QEAgLTEwNyw4ICsxMDcsNiBAQAogI2VuZGlmCiAjaW5jbHVkZSAiSlNDREFUQVNlY3Rpb24uY3Bw
IgogI2luY2x1ZGUgIkpTQ2hhcmFjdGVyRGF0YS5jcHAiCi0jaW5jbHVkZSAiSlNDbGllbnRSZWN0
LmNwcCIKLSNpbmNsdWRlICJKU0NsaWVudFJlY3RMaXN0LmNwcCIKICNpbmNsdWRlICJKU0Nsb3Nl
RXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTQ29tbWFuZExpbmVBUElIb3N0LmNwcCIKICNpbmNsdWRl
ICJKU0NvbW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggN2M1NzQ3
MGYxZjMuLjBhY2QyOWMxM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM0
Miw4ICszNDIsNiBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20vQ0RB
VEFTZWN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQ2hhcmFjdGVyRGF0YS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL0NoaWxkTm9kZS5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL0Ns
aWVudFJlY3QuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL0NsaXBib2FyZEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9k
b20vQ29tbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRs
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBkOTNjNDBkNDU3My4uMzYyMWFiZDY4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3OTcsMTQgKzU3OTcsNiBA
QAogCQlCQ0JEMjFBQjBFNDE3QUQ0MDBBMDcwRjIgLyogVVJMSGFzaC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCRDIxQUEwRTQxN0FENDAwQTA3MEYy
IC8qIFVSTEhhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCQ0JGQjUzQzBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JGQjUzQTBE
Q0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAgKi87IH07CiAJCUJDQkZCNTNE
MERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JGQjUzQjBEQ0QyOUNGMDAxOUIzRTUgLyog
SlNET01XaW5kb3dTaGVsbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTc3MEYz
Q0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCAqLzsgfTsKLQkJQkNDMDY1N0UwRjNDRTFC
NzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDQzA2NTc4MEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0Lmgg
Ki87IH07Ci0JCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU3QTBG
M0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuY3BwICovOyB9OwotCQlCQ0MwNjU4MTBG
M0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTdCMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGll
bnRSZWN0TGlzdC5oICovOyB9OwotCQlCQ0MwNjU4NzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGll
bnRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDQzA2NTgzMEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuY3BwICovOyB9OwotCQlC
Q0MwNjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NDBGM0NFMkE3MDBDRDJEODcg
LyogSlNDbGllbnRSZWN0LmggKi87IH07Ci0JCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBK
U0NsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNw
cCAqLzsgfTsKLQkJQkNDMDY1OEEwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTg2
MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi87IH07CiAJCUJDQzBFODc1
MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMEU4NzMxQkZFNzBFOTAwOEY3RjUw
IC8qIEhUTUxQaWN0dXJlRWxlbWVudC5jcHAgKi87IH07CiAJCUJDQzBFODc2MUJGRTcwRTkwMDhG
N0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzBFODc0MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVy
ZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkNDNUJFMDAwQzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5
bGVTaGVldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0M1QkRGRTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmNwcCAqLzsgfTsK
QEAgLTE0MjM5LDE2ICsxNDIzMSw2IEBACiAJCUJDQkQyMUFBMEU0MTdBRDQwMEEwNzBGMiAvKiBV
UkxIYXNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVSTEhhc2guaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCRkI1M0EwRENEMjlDRjAwMTlCM0U1IC8qIEpT
RE9NV2luZG93U2hlbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNET01XaW5kb3dTaGVsbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkZC
NTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NV2luZG93U2hlbGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkNDMDY1NzcwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xpZW50UmVjdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzA2NTc4MEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGll
bnRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsaWVudFJlY3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1NzkwRjNDRTFCNzAwQ0QyRDg3IC8q
IENsaWVudFJlY3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENsaWVudFJlY3QuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3QTBGM0NFMUI3MDBDRDJEODcgLyog
Q2xpZW50UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q2xpZW50UmVjdExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3
QjBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2xpZW50UmVjdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQkNDMDY1N0MwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDbGllbnRSZWN0TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUJDQzA2NTgzMEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDbGllbnRSZWN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODQwRjNDRTJBNzAwQ0QyRDg3IC8q
IEpTQ2xpZW50UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaWVu
dFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODUwRjNDRTJBNzAw
Q0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNDbGllbnRSZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUJDQzA2NTg2MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ2xpZW50UmVjdExpc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDMEU4NzMxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQ
aWN0dXJlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MUGljdHVyZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Mw
RTg3NDFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQaWN0dXJlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0M1QkRGRTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNo
ZWV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU1N0eWxl
U2hlZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE4NDYsMTAgKzIxODI4
LDYgQEAKIAkJQTgzQjc5MEUwQ0NBRkY5NzAwMEIwODI1IC8qIENTUyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQkNDMDY1ODMwRjNDRTJBNzAwQ0QyRDg3
IC8qIEpTQ2xpZW50UmVjdC5jcHAgKi8sCi0JCQkJQkNDMDY1ODQwRjNDRTJBNzAwQ0QyRDg3IC8q
IEpTQ2xpZW50UmVjdC5oICovLAotCQkJCUJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0Ns
aWVudFJlY3RMaXN0LmNwcCAqLywKLQkJCQlCQ0MwNjU4NjBGM0NFMkE3MDBDRDJEODcgLyogSlND
bGllbnRSZWN0TGlzdC5oICovLAogCQkJCUJDNDZDMUYyMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NT
U0ZvbnRGYWNlUnVsZS5jcHAgKi8sCiAJCQkJQkM0NkMxRjMwQzBEREM4RjAwMjBDRkMzIC8qIEpT
Q1NTRm9udEZhY2VSdWxlLmggKi8sCiAJCQkJQkM0NkMxRjQwQzBEREM4RjAwMjBDRkMzIC8qIEpT
Q1NTSW1wb3J0UnVsZS5jcHAgKi8sCkBAIC0yNTQ0OCwxMiArMjU0MjYsNiBAQAogCQkJCUE4MTg3
MjE1MDk3N0QzQzAwMDU4MjZEOSAvKiBDaGlsZE5vZGVMaXN0LmggKi8sCiAJCQkJODM0OEJGQTkx
Qjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5jcHAgKi8sCiAJCQkJODM0OEJGQUEx
Qjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oICovLAotCQkJCUJDQzA2NTc3MEYz
Q0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCAqLywKLQkJCQlCQ0MwNjU3ODBGM0NFMUI3
MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oICovLAotCQkJCUJDQzA2NTc5MEYzQ0UxQjcwMENEMkQ4
NyAvKiBDbGllbnRSZWN0LmlkbCAqLywKLQkJCQlCQ0MwNjU3QTBGM0NFMUI3MDBDRDJEODcgLyog
Q2xpZW50UmVjdExpc3QuY3BwICovLAotCQkJCUJDQzA2NTdCMEYzQ0UxQjcwMENEMkQ4NyAvKiBD
bGllbnRSZWN0TGlzdC5oICovLAotCQkJCUJDQzA2NTdDMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGll
bnRSZWN0TGlzdC5pZGwgKi8sCiAJCQkJODUwMzFCMjkwQTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBi
b2FyZEV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIyQTBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJv
YXJkRXZlbnQuaCAqLywKIAkJCQk4MzZEMDMyNzFEQTg5QjczMDBGRkQ5NkIgLyogQ2xpcGJvYXJk
RXZlbnQuaWRsICovLApAQCAtMjY1OTgsOCArMjY1NzAsNiBAQAogCQkJCTE0RDgyNDA4MEFGOTNB
RUIwMDA0RjA1NyAvKiBDaHJvbWVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QTgxNEQ0
MUM2REVDNDAwMEJGODVBQyAvKiBDbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODM0OEJGQUMxQjg1NzI5ODAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQkNDMDY1N0UwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3Qu
aCBpbiBIZWFkZXJzICovLAotCQkJCUJDQzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRS
ZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzQTkxRTYxQzk2M0I4ODAwRDFBN0UzIC8q
IENsaXBib2FyZEFjY2Vzc1BvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNDAwQTQ0
RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQjky
REY0QjE1RkVEMDg3MDA5OTQ0MzMgLyogQ2xpcFBhdGhPcGVyYXRpb24uaCBpbiBIZWFkZXJzICov
LApAQCAtMjc2NTQsOCArMjc2MjQsNiBAQAogCQkJCUZEQTE1RUEyMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0NoYW5uZWxNZXJnZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBNDEyQjAz
RUUxMDAzQTU4M0EgLyogSlNDaGFubmVsU3BsaXR0ZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2NURGMzFGNDA5RDFDQzYwMDAwQkUzMjUgLyogSlNDaGFyYWN0ZXJEYXRhLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlCQ0MwNjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4g
SGVhZGVycyAqLywKLQkJCQlCQ0MwNjU4QTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2RDAzMzIxREE4QTE0MjAwRkZEOTZCIC8qIEpT
Q2xpcGJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRkI1NTA0MTEzRTNFOTEwMDgy
MTE3NiAvKiBKU0Nsb3NlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODRGRTNDMTg2NEUy
RDgwMDg0M0IxMCAvKiBKU0NvbW1hbmRMaW5lQVBJSG9zdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
MDY3MCw4ICszMDYzOCw2IEBACiAJCQkJQUJBRjIyMDgwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9t
ZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUU0QTgxNEQ2MUM2REVFOEQwMEJGODVBQyAvKiBD
bGFzc0NoYW5nZUludmFsaWRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzQ4QkZBQjFC
ODU3Mjk4MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk4NTAzMUIzRjBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTgwMzcxNjExQTY2RjAwQTAwQkFGNTE5IC8qIENs
aXBSZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAv
KiBDbG9jay5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxNjIwLDggKzMxNTg2LDYgQEAKIAkJCQlG
REExNUVBMTEyQjAzRUUxMDAzQTU4M0EgLyogSlNDaGFubmVsTWVyZ2VyTm9kZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGREExNUVBMzEyQjAzRUUxMDAzQTU4M0EgLyogSlNDaGFubmVsU3BsaXR0
ZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMUYzMDlEMUNDNjAwMDBCRTMyNSAv
KiBKU0NoYXJhY3RlckRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNDMDY1ODcwRjNDRTJB
NzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0MwNjU4
OTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4MzZEMDMzMTFEQThBMTNGMDBGRkQ5NkIgLyogSlNDbGlwYm9hcmRFdmVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MUZCNTUwNTExM0UzRTkxMDA4MjExNzYgLyogSlNDbG9zZUV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1ODRGRTNCMTg2NEUyRDgwMDg0M0IxMCAvKiBKU0Nv
bW1hbmRMaW5lQVBJSG9zdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMyMDA4LDcgKzMxOTcyLDcg
QEAKIAkJCQk3QzMzMEEwNzFERjlGOTUxMDBEMzM5NUMgLyogSlNQb3NpdGlvbk9wdGlvbnMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxRkYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUHJvY2Vz
c2luZ0luc3RydWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0NDYxM0VEMENENjgxQkEw
MEZBREE3NSAvKiBKU1Byb2dyZXNzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0gICAgICAgICAg
ICAgICAgQTU3OEY0M0IxREUwMTQyMTAwM0RGQzZBIC8qIEpTUHJvbWlzZVJlamVjdGlvbkV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE1NzhGNDNCMURFMDE0MjEwMDNERkM2QSAvKiBKU1By
b21pc2VSZWplY3Rpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzc2NjRGQzE4M0U2
QjVDMDAxMzNCOTIgLyogSlNRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCNjU4RkZBMTE1MjJFRjNBMDBERDU1OTUgLyogSlNSYWRpb05vZGVMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMjAxMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1Jhbmdl
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFs
bEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggMjcw
ZTQxNjY4ZDIuLjBhMDU0MjE5YjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
QWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAg
LTM3LDggKzM3LDYgQEAKICNpbmNsdWRlICJDaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcCIKICNp
bmNsdWRlICJDaGlsZE5vZGVMaXN0LmNwcCIKICNpbmNsdWRlICJDbGFzc0NvbGxlY3Rpb24uY3Bw
IgotI2luY2x1ZGUgIkNsaWVudFJlY3QuY3BwIgotI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmNw
cCIKICNpbmNsdWRlICJDbGlwYm9hcmRFdmVudC5jcHAiCiAjaW5jbHVkZSAiQ29sbGVjdGlvbklu
ZGV4Q2FjaGUuY3BwIgogI2luY2x1ZGUgIkNvbW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CmluZGV4IDgxODkyNDNjNjRmLi44MWJjNzMxYmMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApA
QCAtMzMsOCArMzMsNiBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNs
aWVudC5oIgogI2luY2x1ZGUgIkNsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmgiCi0jaW5jbHVkZSAi
Q2xpZW50UmVjdC5oIgotI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiQ29t
cG9zZWRUcmVlQW5jZXN0b3JJdGVyYXRvci5oIgogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGVBbGdv
cml0aG1zLmgiCiAjaW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDA2NzcyMDdkZWJhLi44OWY4
ZWRiMTgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0z
NSw4ICszNSw2IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNT
U1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJD
bGllbnRSZWN0LmgiCi0jaW5jbHVkZSAiQ2xpZW50UmVjdExpc3QuaCIKICNpbmNsdWRlICJDb21t
b25WTS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNv
bnRlbnRUeXBlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJl
Z2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKaW5kZXgg
ZTY4ODQ4MDk3YTguLjUyMTRhNzk1ZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZUVFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRS
ZWdpb24uY3BwCkBAIC0zNCw3ICszNCw2IEBACiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAK
LSNpbmNsdWRlICJDbGllbnRSZWN0LmgiCiAjaW5jbHVkZSAiRE9NUmVjdC5oIgogI2luY2x1ZGUg
IkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9yLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDEzZmVhMDM5MGJlLi41ZGM5YmQ0
MWU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTMyLDcgKzMy
LDYgQEAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDbGllbnRSZWN0
LmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9u
UGFyYW1ldGVycy5qcwppbmRleCA1ZmNiZWMxZDk0Ny4uZmM5NWZhNDAyMmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlv
blBhcmFtZXRlcnMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcwpAQCAtNjk2LDExICs2OTYsNiBAQCBX
ZWJJbnNwZWN0b3IuTmF0aXZlUHJvdG90eXBlRnVuY3Rpb25QYXJhbWV0ZXJzID0gewogICAgICAg
ICBfX3Byb3RvX186IG51bGwsCiAgICAgfSwKIAotICAgIENsaWVudFJlY3RMaXN0OiB7Ci0gICAg
ICAgIGl0ZW06ICJbaW5kZXhdIiwKLSAgICAgICAgX19wcm90b19fOiBudWxsLAotICAgIH0sCi0K
ICAgICBDb21tYW5kTGluZUFQSUhvc3Q6IHsKICAgICAgICAgY29weVRleHQ6ICJ0ZXh0IiwKICAg
ICAgICAgZGF0YWJhc2VJZDogImRhdGFiYXNlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVj
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNsaWVudFJlY3QuY3BwCmluZGV4IDJkNzFlOGU1MmY3Li40Zjg3ZTBiNmMw
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3Qu
Y3BwCkBAIC0zNSwxMiArMzUsMTIgQEAKICNkZWZpbmUgV0VCS0lUX0RPTV9DTElFTlRfUkVDVF9H
RVRfUFJJVkFURShvYmopIEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURShvYmosIFdFQktJVF9E
T01fVFlQRV9DTElFTlRfUkVDVCwgV2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUpCiAKIHR5cGVk
ZWYgc3RydWN0IF9XZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZSB7Ci0gICAgUmVmUHRyPFdlYkNv
cmU6OkNsaWVudFJlY3Q+IGNvcmVPYmplY3Q7CisgICAgUmVmUHRyPFdlYkNvcmU6OkRPTVJlY3Q+
IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTUNsaWVudFJlY3RQcml2YXRlOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotV2ViS2l0RE9NQ2xpZW50UmVjdCoga2l0KFdlYkNvcmU6OkNsaWVudFJlY3Qq
IG9iaikKK1dlYktpdERPTUNsaWVudFJlY3QqIGtpdChXZWJDb3JlOjpET01SZWN0KiBvYmopCiB7
CiAgICAgaWYgKCFvYmopCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNTEsMTIgKzUxLDEy
IEBAIFdlYktpdERPTUNsaWVudFJlY3QqIGtpdChXZWJDb3JlOjpDbGllbnRSZWN0KiBvYmopCiAg
ICAgcmV0dXJuIHdyYXBDbGllbnRSZWN0KG9iaik7CiB9CiAKLVdlYkNvcmU6OkNsaWVudFJlY3Qq
IGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVjdCogcmVxdWVzdCkKK1dlYkNvcmU6OkRPTVJlY3QqIGNv
cmUoV2ViS2l0RE9NQ2xpZW50UmVjdCogcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gcmVxdWVzdCA/
IHN0YXRpY19jYXN0PFdlYkNvcmU6OkNsaWVudFJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1
ZXN0KS0+Y29yZU9iamVjdCkgOiBudWxscHRyOworICAgIHJldHVybiByZXF1ZXN0ID8gc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6RE9NUmVjdCo+KFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3Jl
T2JqZWN0KSA6IG51bGxwdHI7CiB9CiAKLVdlYktpdERPTUNsaWVudFJlY3QqIHdyYXBDbGllbnRS
ZWN0KFdlYkNvcmU6OkNsaWVudFJlY3QqIGNvcmVPYmplY3QpCitXZWJLaXRET01DbGllbnRSZWN0
KiB3cmFwQ2xpZW50UmVjdChXZWJDb3JlOjpET01SZWN0KiBjb3JlT2JqZWN0KQogewogICAgIEFT
U0VSVChjb3JlT2JqZWN0KTsKICAgICByZXR1cm4gV0VCS0lUX0RPTV9DTElFTlRfUkVDVChnX29i
amVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX0NMSUVOVF9SRUNULCAiY29yZS1vYmplY3QiLCBjb3Jl
T2JqZWN0LCBudWxscHRyKSk7CkBAIC0xMjAsNyArMTIwLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0
X2RvbV9jbGllbnRfcmVjdF9jb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAgICAgR19PQkpF
Q1RfQ0xBU1Mod2Via2l0X2RvbV9jbGllbnRfcmVjdF9wYXJlbnRfY2xhc3MpLT5jb25zdHJ1Y3Rl
ZChvYmplY3QpOwogCiAgICAgV2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUqIHByaXYgPSBXRUJL
SVRfRE9NX0NMSUVOVF9SRUNUX0dFVF9QUklWQVRFKG9iamVjdCk7Ci0gICAgcHJpdi0+Y29yZU9i
amVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkNsaWVudFJlY3QqPihXRUJLSVRfRE9NX09CSkVD
VChvYmplY3QpLT5jb3JlT2JqZWN0KTsKKyAgICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8V2ViQ29yZTo6RE9NUmVjdCo+KFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmpl
Y3QpOwogICAgIFdlYktpdDo6RE9NT2JqZWN0Q2FjaGU6OnB1dChwcml2LT5jb3JlT2JqZWN0Lmdl
dCgpLCBvYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NQ2xpZW50UmVjdExpc3QuY3BwCmluZGV4IDE2MDE5OTc3YWJiLi45NjA4ZmI2ZjBkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0
TGlzdC5jcHAKQEAgLTM2LDI4ICszNiwyMyBAQAogI2RlZmluZSBXRUJLSVRfRE9NX0NMSUVOVF9S
RUNUX0xJU1RfR0VUX1BSSVZBVEUob2JqKSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUob2Jq
LCBXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JFQ1RfTElTVCwgV2ViS2l0RE9NQ2xpZW50UmVjdExp
c3RQcml2YXRlKQogCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2
YXRlIHsKLSAgICBSZWZQdHI8V2ViQ29yZTo6Q2xpZW50UmVjdExpc3Q+IGNvcmVPYmplY3Q7Cisg
ICAgV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiBjb3JlT2JqZWN0OwogfSBXZWJL
aXRET01DbGllbnRSZWN0TGlzdFByaXZhdGU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1XZWJL
aXRET01DbGllbnRSZWN0TGlzdCoga2l0KFdlYkNvcmU6OkNsaWVudFJlY3RMaXN0KiBvYmopCitX
VEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+IGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVj
dExpc3QqIHJlcXVlc3QpCiB7Ci0gICAgaWYgKCFvYmopCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotCi0gICAgaWYgKGdwb2ludGVyIHJldCA9IERPTU9iamVjdENhY2hlOjpnZXQob2JqKSkKLSAg
ICAgICAgcmV0dXJuIFdFQktJVF9ET01fQ0xJRU5UX1JFQ1RfTElTVChyZXQpOwotCi0gICAgcmV0
dXJuIHdyYXBDbGllbnRSZWN0TGlzdChvYmopOworICAgIHJldHVybiByZXF1ZXN0ID8gV0VCS0lU
X0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3QgOiBXVEY6OlZlY3RvcjxSZWY8V2ViQ29y
ZTo6RE9NUmVjdD4+KCk7CiB9CiAKLVdlYkNvcmU6OkNsaWVudFJlY3RMaXN0KiBjb3JlKFdlYktp
dERPTUNsaWVudFJlY3RMaXN0KiByZXF1ZXN0KQorCitXZWJLaXRET01DbGllbnRSZWN0TGlzdCog
a2l0KGNvbnN0IFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mIG9iaikKIHsKLSAg
ICByZXR1cm4gcmVxdWVzdCA/IHN0YXRpY19jYXN0PFdlYkNvcmU6OkNsaWVudFJlY3RMaXN0Kj4o
V0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3QpIDogbnVsbHB0cjsKKyAgICBy
ZXR1cm4gd3JhcENsaWVudFJlY3RMaXN0KG9iaik7CiB9CiAKLVdlYktpdERPTUNsaWVudFJlY3RM
aXN0KiB3cmFwQ2xpZW50UmVjdExpc3QoV2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqIGNvcmVPYmpl
Y3QpCitXZWJLaXRET01DbGllbnRSZWN0TGlzdCogd3JhcENsaWVudFJlY3RMaXN0KGNvbnN0IFdU
Rjo6VmVjdG9yPFdlYkNvcmU6OkRPTVJlY3Q+JiBjb3JlT2JqZWN0KQogewogICAgIEFTU0VSVChj
b3JlT2JqZWN0KTsKICAgICByZXR1cm4gV0VCS0lUX0RPTV9DTElFTlRfUkVDVF9MSVNUKGdfb2Jq
ZWN0X25ldyhXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JFQ1RfTElTVCwgImNvcmUtb2JqZWN0Iiwg
Y29yZU9iamVjdCwgbnVsbHB0cikpOwpAQCAtMTAxLDggKzk2LDcgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X2RvbV9jbGllbnRfcmVjdF9saXN0X2NvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKICAg
ICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xpc3RfcGFyZW50X2NsYXNz
KS0+Y29uc3RydWN0ZWQob2JqZWN0KTsKIAogICAgIFdlYktpdERPTUNsaWVudFJlY3RMaXN0UHJp
dmF0ZSogcHJpdiA9IFdFQktJVF9ET01fQ0xJRU5UX1JFQ1RfTElTVF9HRVRfUFJJVkFURShvYmpl
Y3QpOwotICAgIHByaXYtPmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRS
ZWN0TGlzdCo+KFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmplY3QpOwotICAgIFdl
YktpdDo6RE9NT2JqZWN0Q2FjaGU6OnB1dChwcml2LT5jb3JlT2JqZWN0LmdldCgpLCBvYmplY3Qp
OworICAgIHByaXYtPmNvcmVPYmplY3QgPSBXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpLT5jb3Jl
T2JqZWN0OwogfQogCiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xpc3RfY2xh
c3NfaW5pdChXZWJLaXRET01DbGllbnRSZWN0TGlzdENsYXNzKiByZXF1ZXN0Q2xhc3MpCkBAIC0x
MzUsMTQgKzEyOSwxNCBAQCBXZWJLaXRET01DbGllbnRSZWN0KiB3ZWJraXRfZG9tX2NsaWVudF9y
ZWN0X2xpc3RfaXRlbShXZWJLaXRET01DbGllbnRSZWN0TGlzdCogcwogewogICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfRE9NX0lTX0NMSUVOVF9SRUNUX0xJU1Qoc2VsZiksIG51bGxwdHIpOwotICAgIFdlYkNv
cmU6OkNsaWVudFJlY3RMaXN0KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0
cjxXZWJDb3JlOjpDbGllbnRSZWN0PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+
aXRlbShpbmRleCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgp
KTsKKyAgICBhdXRvIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgYXV0byBnb2JqZWN0
UmVzdWx0ID0gaXRlbS5pdGVtKGluZGV4KTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVj
dFJlc3VsdC5wdHIoKSk7CiB9CiAKIGd1bG9uZyB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xpc3Rf
Z2V0X2xlbmd0aChXZWJLaXRET01DbGllbnRSZWN0TGlzdCogc2VsZikKIHsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0RPTV9JU19DTElFTlRfUkVDVF9MSVNUKHNlbGYpLCAwKTsKLSAgICByZXR1cm4gV2Vi
S2l0Ojpjb3JlKHNlbGYpLT5sZW5ndGgoKTsKKyAgICByZXR1cm4gV2ViS2l0Ojpjb3JlKHNlbGYp
Lmxlbmd0aCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRlLmgKaW5kZXggM2JjNWI0YmUxMzMuLjkyNDE5MmZj
NWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q2xpZW50UmVjdExpc3RQcml2YXRlLmgKQEAgLTE5LDExICsxOSwxMiBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50UmVjdExpc3QuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0RPTVJlY3QuaD4KICNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NQ2xpZW50UmVjdExp
c3QuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotV2Vi
S2l0RE9NQ2xpZW50UmVjdExpc3QqIHdyYXBDbGllbnRSZWN0TGlzdChXZWJDb3JlOjpDbGllbnRS
ZWN0TGlzdCopOwotV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIGtpdChXZWJDb3JlOjpDbGllbnRS
ZWN0TGlzdCopOwotV2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqIGNvcmUoV2ViS2l0RE9NQ2xpZW50
UmVjdExpc3QqKTsKK1dlYktpdERPTUNsaWVudFJlY3RMaXN0KiB3cmFwQ2xpZW50UmVjdExpc3Qo
Y29uc3QgV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiYpOworV2ViS2l0RE9NQ2xp
ZW50UmVjdExpc3QqIGtpdChjb25zdCBXVEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+
Jik7CitXVEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+IGNvcmUoV2ViS2l0RE9NQ2xp
ZW50UmVjdExpc3QqKTsKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01D
bGllbnRSZWN0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZS5oCmluZGV4IGRhODhk
NDk1ODVlLi5kN2VjYzBlMmJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUuaApAQCAtMTksMTEgKzE5LDExIEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRSZWN0Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9ET01SZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTUNsaWVudFJl
Y3QuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci1XZWJLaXRET01DbGllbnRSZWN0KiB3cmFwQ2xp
ZW50UmVjdChXZWJDb3JlOjpDbGllbnRSZWN0Kik7Ci1XZWJLaXRET01DbGllbnRSZWN0KiBraXQo
V2ViQ29yZTo6Q2xpZW50UmVjdCopOwotV2ViQ29yZTo6Q2xpZW50UmVjdCogY29yZShXZWJLaXRE
T01DbGllbnRSZWN0Kik7CitXZWJLaXRET01DbGllbnRSZWN0KiB3cmFwQ2xpZW50UmVjdChXZWJD
b3JlOjpET01SZWN0Kik7CitXZWJLaXRET01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6RE9NUmVj
dCopOworV2ViQ29yZTo6RE9NUmVjdCogY29yZShXZWJLaXRET01DbGllbnRSZWN0Kik7CiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVs
ZW1lbnQuY3BwCmluZGV4IDczYTZlYTFhZTA3Li41OWExNWQzMzlkNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwCkBAIC0yMiw4ICsyMiw2IEBACiAK
ICNpbmNsdWRlIDxXZWJDb3JlL0NTU0ltcG9ydFJ1bGUuaD4KICNpbmNsdWRlICJET01PYmplY3RD
YWNoZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50UmVjdC5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvQ2xpZW50UmVjdExpc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTVJlY3QuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Db2Rl
Lmg+CkBAIC0xMjI2LDI3ICsxMjI0LDEyIEBAIGdsb25nIHdlYmtpdF9kb21fZWxlbWVudF9nZXRf
c2Nyb2xsX2hlaWdodChXZWJLaXRET01FbGVtZW50KiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLXN0YXRpYyBSZWY8V2ViQ29yZTo6Q2xpZW50UmVjdD4gdG9DbGllbnRSZWN0KFdlYkNv
cmU6OkRPTVJlY3QmIHJlY3QpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OkNsaWVudFJlY3Q6OmNy
ZWF0ZShXZWJDb3JlOjpGbG9hdFJlY3QocmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCks
IHJlY3QuaGVpZ2h0KCkpKTsKLX0KLQogV2ViS2l0RE9NQ2xpZW50UmVjdCogd2Via2l0X2RvbV9l
bGVtZW50X2dldF9ib3VuZGluZ19jbGllbnRfcmVjdChXZWJLaXRET01FbGVtZW50KiBzZWxmKQog
ewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIG51bGxwdHIpOwogICAg
IFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgYXV0byBj
bGllbnRSZWN0ID0gdG9DbGllbnRSZWN0KGl0ZW0tPmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTsK
LSAgICByZXR1cm4gV2ViS2l0OjpraXQoY2xpZW50UmVjdC5wdHIoKSk7Ci19Ci0KLXN0YXRpYyBW
ZWN0b3I8UmVmPFdlYkNvcmU6OkNsaWVudFJlY3Q+PiB0b0NsaWVudFJlY3RWZWN0b3IoVmVjdG9y
PFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mJiByZWN0cykKLXsKLSAgICBWZWN0b3I8UmVmPFdlYkNv
cmU6OkNsaWVudFJlY3Q+PiBjbGllbnRSZWN0czsKLSAgICBjbGllbnRSZWN0cy5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KHJlY3RzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvJiByZWN0IDogcmVjdHMp
Ci0gICAgICAgIGNsaWVudFJlY3RzLnVuY2hlY2tlZEFwcGVuZCh0b0NsaWVudFJlY3QocmVjdCkp
OwotICAgIHJldHVybiBjbGllbnRSZWN0czsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoaXRlbS0+
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucHRyKCkpOwogfQogCiBXZWJLaXRET01DbGllbnRSZWN0
TGlzdCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfcmVjdHMoV2ViS2l0RE9NRWxlbWVu
dCogc2VsZikKQEAgLTEyNTQsOCArMTIzNyw3IEBAIFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiB3
ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsaWVudF9yZWN0cyhXZWJLaXRET01FbGVtZW50KiBzCiAg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgbnVsbHB0cik7CiAgICAgV2Vi
Q29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBhdXRvIGNsaWVu
dFJlY3RzID0gV2ViQ29yZTo6Q2xpZW50UmVjdExpc3Q6OmNyZWF0ZSh0b0NsaWVudFJlY3RWZWN0
b3IoaXRlbS0+Z2V0Q2xpZW50UmVjdHMoKSkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChjbGll
bnRSZWN0cy5wdHIoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGl0ZW0tPmdldENsaWVudFJl
Y3RzKCkpOwogfQogCiBXZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29m
ZnNldF9wYXJlbnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308620</attachid>
            <date>2017-04-28 17:01:02 -0700</date>
            <delta_ts>2017-04-28 18:52:22 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>171418_drop_ClientRect_wip.patch</filename>
            <type>text/plain</type>
            <size>37039</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMWMxN2RlNmM2NTEuLmQ5NjE0YzBiZjVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtNDA2LDggKzQwNiw2IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURM
X0ZJTEVTCiAgICAgZG9tL0NEQVRBU2VjdGlvbi5pZGwKICAgICBkb20vQ2hhcmFjdGVyRGF0YS5p
ZGwKICAgICBkb20vQ2hpbGROb2RlLmlkbAotICAgIGRvbS9DbGllbnRSZWN0LmlkbAotICAgIGRv
bS9DbGllbnRSZWN0TGlzdC5pZGwKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuaWRsCiAgICAgZG9t
L0NvbW1lbnQuaWRsCiAgICAgZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRsCkBAIC0xNDQ3LDggKzE0
NDUsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0NoaWxkTGlzdE11dGF0aW9uU2Nv
cGUuY3BwCiAgICAgZG9tL0NoaWxkTm9kZUxpc3QuY3BwCiAgICAgZG9tL0NsYXNzQ29sbGVjdGlv
bi5jcHAKLSAgICBkb20vQ2xpZW50UmVjdC5jcHAKLSAgICBkb20vQ2xpZW50UmVjdExpc3QuY3Bw
CiAgICAgZG9tL0NsaXBib2FyZEV2ZW50LmNwcAogICAgIGRvbS9Db2xsZWN0aW9uSW5kZXhDYWNo
ZS5jcHAKICAgICBkb20vQ29tbWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRl
eCBiZDhiNzgyMjdmOC4uNWE2NjFmMTYxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAK
QEAgLTEwNyw4ICsxMDcsNiBAQAogI2VuZGlmCiAjaW5jbHVkZSAiSlNDREFUQVNlY3Rpb24uY3Bw
IgogI2luY2x1ZGUgIkpTQ2hhcmFjdGVyRGF0YS5jcHAiCi0jaW5jbHVkZSAiSlNDbGllbnRSZWN0
LmNwcCIKLSNpbmNsdWRlICJKU0NsaWVudFJlY3RMaXN0LmNwcCIKICNpbmNsdWRlICJKU0Nsb3Nl
RXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTQ29tbWFuZExpbmVBUElIb3N0LmNwcCIKICNpbmNsdWRl
ICJKU0NvbW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggN2M1NzQ3
MGYxZjMuLjBhY2QyOWMxM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM0
Miw4ICszNDIsNiBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20vQ0RB
VEFTZWN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQ2hhcmFjdGVyRGF0YS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL0NoaWxkTm9kZS5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL0Ns
aWVudFJlY3QuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL0NsaXBib2FyZEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9k
b20vQ29tbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRs
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBkOTNjNDBkNDU3My4uMzYyMWFiZDY4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3OTcsMTQgKzU3OTcsNiBA
QAogCQlCQ0JEMjFBQjBFNDE3QUQ0MDBBMDcwRjIgLyogVVJMSGFzaC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCRDIxQUEwRTQxN0FENDAwQTA3MEYy
IC8qIFVSTEhhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCQ0JGQjUzQzBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JGQjUzQTBE
Q0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAgKi87IH07CiAJCUJDQkZCNTNE
MERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JGQjUzQjBEQ0QyOUNGMDAxOUIzRTUgLyog
SlNET01XaW5kb3dTaGVsbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTc3MEYz
Q0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCAqLzsgfTsKLQkJQkNDMDY1N0UwRjNDRTFC
NzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDQzA2NTc4MEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0Lmgg
Ki87IH07Ci0JCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU3QTBG
M0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuY3BwICovOyB9OwotCQlCQ0MwNjU4MTBG
M0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTdCMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGll
bnRSZWN0TGlzdC5oICovOyB9OwotCQlCQ0MwNjU4NzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGll
bnRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDQzA2NTgzMEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuY3BwICovOyB9OwotCQlC
Q0MwNjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NDBGM0NFMkE3MDBDRDJEODcg
LyogSlNDbGllbnRSZWN0LmggKi87IH07Ci0JCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBK
U0NsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNw
cCAqLzsgfTsKLQkJQkNDMDY1OEEwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTg2
MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi87IH07CiAJCUJDQzBFODc1
MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMEU4NzMxQkZFNzBFOTAwOEY3RjUw
IC8qIEhUTUxQaWN0dXJlRWxlbWVudC5jcHAgKi87IH07CiAJCUJDQzBFODc2MUJGRTcwRTkwMDhG
N0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzBFODc0MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVy
ZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkNDNUJFMDAwQzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5
bGVTaGVldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0M1QkRGRTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmNwcCAqLzsgfTsK
QEAgLTE0MjM5LDE2ICsxNDIzMSw2IEBACiAJCUJDQkQyMUFBMEU0MTdBRDQwMEEwNzBGMiAvKiBV
UkxIYXNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVSTEhhc2guaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCRkI1M0EwRENEMjlDRjAwMTlCM0U1IC8qIEpT
RE9NV2luZG93U2hlbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNET01XaW5kb3dTaGVsbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkZC
NTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NV2luZG93U2hlbGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkNDMDY1NzcwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xpZW50UmVjdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzA2NTc4MEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGll
bnRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsaWVudFJlY3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1NzkwRjNDRTFCNzAwQ0QyRDg3IC8q
IENsaWVudFJlY3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENsaWVudFJlY3QuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3QTBGM0NFMUI3MDBDRDJEODcgLyog
Q2xpZW50UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q2xpZW50UmVjdExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3
QjBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2xpZW50UmVjdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQkNDMDY1N0MwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDbGllbnRSZWN0TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUJDQzA2NTgzMEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDbGllbnRSZWN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODQwRjNDRTJBNzAwQ0QyRDg3IC8q
IEpTQ2xpZW50UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaWVu
dFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODUwRjNDRTJBNzAw
Q0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNDbGllbnRSZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUJDQzA2NTg2MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ2xpZW50UmVjdExpc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDMEU4NzMxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQ
aWN0dXJlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MUGljdHVyZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Mw
RTg3NDFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQaWN0dXJlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0M1QkRGRTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNo
ZWV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU1N0eWxl
U2hlZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE4NDYsMTAgKzIxODI4
LDYgQEAKIAkJQTgzQjc5MEUwQ0NBRkY5NzAwMEIwODI1IC8qIENTUyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQkNDMDY1ODMwRjNDRTJBNzAwQ0QyRDg3
IC8qIEpTQ2xpZW50UmVjdC5jcHAgKi8sCi0JCQkJQkNDMDY1ODQwRjNDRTJBNzAwQ0QyRDg3IC8q
IEpTQ2xpZW50UmVjdC5oICovLAotCQkJCUJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0Ns
aWVudFJlY3RMaXN0LmNwcCAqLywKLQkJCQlCQ0MwNjU4NjBGM0NFMkE3MDBDRDJEODcgLyogSlND
bGllbnRSZWN0TGlzdC5oICovLAogCQkJCUJDNDZDMUYyMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NT
U0ZvbnRGYWNlUnVsZS5jcHAgKi8sCiAJCQkJQkM0NkMxRjMwQzBEREM4RjAwMjBDRkMzIC8qIEpT
Q1NTRm9udEZhY2VSdWxlLmggKi8sCiAJCQkJQkM0NkMxRjQwQzBEREM4RjAwMjBDRkMzIC8qIEpT
Q1NTSW1wb3J0UnVsZS5jcHAgKi8sCkBAIC0yNTQ0OCwxMiArMjU0MjYsNiBAQAogCQkJCUE4MTg3
MjE1MDk3N0QzQzAwMDU4MjZEOSAvKiBDaGlsZE5vZGVMaXN0LmggKi8sCiAJCQkJODM0OEJGQTkx
Qjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5jcHAgKi8sCiAJCQkJODM0OEJGQUEx
Qjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oICovLAotCQkJCUJDQzA2NTc3MEYz
Q0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCAqLywKLQkJCQlCQ0MwNjU3ODBGM0NFMUI3
MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oICovLAotCQkJCUJDQzA2NTc5MEYzQ0UxQjcwMENEMkQ4
NyAvKiBDbGllbnRSZWN0LmlkbCAqLywKLQkJCQlCQ0MwNjU3QTBGM0NFMUI3MDBDRDJEODcgLyog
Q2xpZW50UmVjdExpc3QuY3BwICovLAotCQkJCUJDQzA2NTdCMEYzQ0UxQjcwMENEMkQ4NyAvKiBD
bGllbnRSZWN0TGlzdC5oICovLAotCQkJCUJDQzA2NTdDMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGll
bnRSZWN0TGlzdC5pZGwgKi8sCiAJCQkJODUwMzFCMjkwQTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBi
b2FyZEV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIyQTBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJv
YXJkRXZlbnQuaCAqLywKIAkJCQk4MzZEMDMyNzFEQTg5QjczMDBGRkQ5NkIgLyogQ2xpcGJvYXJk
RXZlbnQuaWRsICovLApAQCAtMjY1OTgsOCArMjY1NzAsNiBAQAogCQkJCTE0RDgyNDA4MEFGOTNB
RUIwMDA0RjA1NyAvKiBDaHJvbWVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QTgxNEQ0
MUM2REVDNDAwMEJGODVBQyAvKiBDbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODM0OEJGQUMxQjg1NzI5ODAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQkNDMDY1N0UwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3Qu
aCBpbiBIZWFkZXJzICovLAotCQkJCUJDQzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRS
ZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzQTkxRTYxQzk2M0I4ODAwRDFBN0UzIC8q
IENsaXBib2FyZEFjY2Vzc1BvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNDAwQTQ0
RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQjky
REY0QjE1RkVEMDg3MDA5OTQ0MzMgLyogQ2xpcFBhdGhPcGVyYXRpb24uaCBpbiBIZWFkZXJzICov
LApAQCAtMjc2NTQsOCArMjc2MjQsNiBAQAogCQkJCUZEQTE1RUEyMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0NoYW5uZWxNZXJnZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBNDEyQjAz
RUUxMDAzQTU4M0EgLyogSlNDaGFubmVsU3BsaXR0ZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2NURGMzFGNDA5RDFDQzYwMDAwQkUzMjUgLyogSlNDaGFyYWN0ZXJEYXRhLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlCQ0MwNjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4g
SGVhZGVycyAqLywKLQkJCQlCQ0MwNjU4QTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2RDAzMzIxREE4QTE0MjAwRkZEOTZCIC8qIEpT
Q2xpcGJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRkI1NTA0MTEzRTNFOTEwMDgy
MTE3NiAvKiBKU0Nsb3NlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODRGRTNDMTg2NEUy
RDgwMDg0M0IxMCAvKiBKU0NvbW1hbmRMaW5lQVBJSG9zdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
MDY3MCw4ICszMDYzOCw2IEBACiAJCQkJQUJBRjIyMDgwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9t
ZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUU0QTgxNEQ2MUM2REVFOEQwMEJGODVBQyAvKiBD
bGFzc0NoYW5nZUludmFsaWRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzQ4QkZBQjFC
ODU3Mjk4MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk4NTAzMUIzRjBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTgwMzcxNjExQTY2RjAwQTAwQkFGNTE5IC8qIENs
aXBSZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAv
KiBDbG9jay5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxNjIwLDggKzMxNTg2LDYgQEAKIAkJCQlG
REExNUVBMTEyQjAzRUUxMDAzQTU4M0EgLyogSlNDaGFubmVsTWVyZ2VyTm9kZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGREExNUVBMzEyQjAzRUUxMDAzQTU4M0EgLyogSlNDaGFubmVsU3BsaXR0
ZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMUYzMDlEMUNDNjAwMDBCRTMyNSAv
KiBKU0NoYXJhY3RlckRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNDMDY1ODcwRjNDRTJB
NzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0MwNjU4
OTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4MzZEMDMzMTFEQThBMTNGMDBGRkQ5NkIgLyogSlNDbGlwYm9hcmRFdmVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MUZCNTUwNTExM0UzRTkxMDA4MjExNzYgLyogSlNDbG9zZUV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1ODRGRTNCMTg2NEUyRDgwMDg0M0IxMCAvKiBKU0Nv
bW1hbmRMaW5lQVBJSG9zdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMyMDA4LDcgKzMxOTcyLDcg
QEAKIAkJCQk3QzMzMEEwNzFERjlGOTUxMDBEMzM5NUMgLyogSlNQb3NpdGlvbk9wdGlvbnMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxRkYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUHJvY2Vz
c2luZ0luc3RydWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0NDYxM0VEMENENjgxQkEw
MEZBREE3NSAvKiBKU1Byb2dyZXNzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0gICAgICAgICAg
ICAgICAgQTU3OEY0M0IxREUwMTQyMTAwM0RGQzZBIC8qIEpTUHJvbWlzZVJlamVjdGlvbkV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE1NzhGNDNCMURFMDE0MjEwMDNERkM2QSAvKiBKU1By
b21pc2VSZWplY3Rpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzc2NjRGQzE4M0U2
QjVDMDAxMzNCOTIgLyogSlNRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCNjU4RkZBMTE1MjJFRjNBMDBERDU1OTUgLyogSlNSYWRpb05vZGVMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMjAxMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1Jhbmdl
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVu
dFJlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0YTY0ZTc1NTEwZi4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1DbGllbnRSZWN0OjpDbGllbnRSZWN0KCkKLXsKLX0KLQotQ2xpZW50UmVjdDo6
Q2xpZW50UmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQotICAgIDogbV9yZWN0KHJlY3QpCi17Ci19
Ci0KLUNsaWVudFJlY3Q6OkNsaWVudFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQotICAgIDog
bV9yZWN0KHJlY3QpCi17Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
ZW50UmVjdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTllZmI1Yjc0MC4uMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0j
aW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCi0jaW5jbHVkZSA8d3RmL1JlZi5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNz
IEludFJlY3Q7IAotCi0gICAgY2xhc3MgQ2xpZW50UmVjdCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFi
bGUsIHB1YmxpYyBSZWZDb3VudGVkPENsaWVudFJlY3Q+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IHN0YXRpYyBSZWY8Q2xpZW50UmVjdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
bGllbnRSZWN0KTsgfQotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJlY3Q+IGNyZWF0ZShjb25z
dCBJbnRSZWN0JiByZWN0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENsaWVudFJlY3QocmVjdCkp
OyB9Ci0gICAgICAgIHN0YXRpYyBSZWY8Q2xpZW50UmVjdD4gY3JlYXRlKGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDbGllbnRSZWN0KHJlY3QpKTsgfQotCi0g
ICAgICAgIGZsb2F0IHRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC55KCk7IH0KLSAgICAgICAg
ZmxvYXQgcmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QubWF4WCgpOyB9Ci0gICAgICAgIGZs
b2F0IGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5tYXhZKCk7IH0KLSAgICAgICAgZmxv
YXQgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC54KCk7IH0KLSAgICAgICAgZmxvYXQgd2lk
dGgoKSBjb25zdCB7IHJldHVybiBtX3JlY3Qud2lkdGgoKTsgfQotICAgICAgICBmbG9hdCBoZWln
aHQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QuaGVpZ2h0KCk7IH0KLQotICAgIHByaXZhdGU6Ci0g
ICAgICAgIFdFQkNPUkVfRVhQT1JUIENsaWVudFJlY3QoKTsKLSAgICAgICAgV0VCQ09SRV9FWFBP
UlQgZXhwbGljaXQgQ2xpZW50UmVjdChjb25zdCBJbnRSZWN0Jik7Ci0gICAgICAgIFdFQkNPUkVf
RVhQT1JUIGV4cGxpY2l0IENsaWVudFJlY3QoY29uc3QgRmxvYXRSZWN0Jik7Ci0KLSAgICAgICAg
RmxvYXRSZWN0IG1fcmVjdDsKLSAgICB9OyAKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuaWRsIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NsaWVudFJlY3QuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDk5
NDBhOWRmMS4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3Qu
aWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotWwotICAgIEltcGxlbWVudGF0aW9uTGFja3NW
VGFibGUsCi0gICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCi1dIGludGVyZmFjZSBDbGll
bnRSZWN0IHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGZsb2F0IHRvcDsK
LSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGZsb2F0IHJpZ2h0OwotICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZmxvYXQgYm90dG9tOwotICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZmxvYXQgbGVmdDsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5yZXN0cmljdGVkIGZsb2F0IHdpZHRoOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJl
c3RyaWN0ZWQgZmxvYXQgaGVpZ2h0OwotCi0gICAgc2VyaWFsaXplciA9IHsgYXR0cmlidXRlIH07
Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDM1NGUzY2M1ODcxLi4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ2xpZW50UmVjdExpc3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmgiCi0KLSNpbmNsdWRlICJD
bGllbnRSZWN0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotQ2xpZW50UmVjdExpc3Q6OkNs
aWVudFJlY3RMaXN0KCkKLXsKLX0KLQotQ2xpZW50UmVjdExpc3Q6OkNsaWVudFJlY3RMaXN0KGNv
bnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKLXsKLSAgICBtX2xpc3QucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShxdWFkcy5zaXplKCkpOwotICAgIGZvciAoYXV0byYgcXVhZCA6IHF1YWRzKQot
ICAgICAgICBtX2xpc3QudW5jaGVja2VkQXBwZW5kKENsaWVudFJlY3Q6OmNyZWF0ZShxdWFkLmVu
Y2xvc2luZ0JvdW5kaW5nQm94KCkpKTsKLX0KLQotQ2xpZW50UmVjdExpc3Q6OkNsaWVudFJlY3RM
aXN0KFZlY3RvcjxSZWY8Q2xpZW50UmVjdD4+JiYgcmVjdHMpCi0gICAgOiBtX2xpc3QoV1RGTW92
ZShyZWN0cykpCi17Ci19Ci0KLUNsaWVudFJlY3RMaXN0Ojp+Q2xpZW50UmVjdExpc3QoKQotewot
fQotCi11bnNpZ25lZCBDbGllbnRSZWN0TGlzdDo6bGVuZ3RoKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9saXN0LnNpemUoKTsKLX0KLQotQ2xpZW50UmVjdCogQ2xpZW50UmVjdExpc3Q6Oml0ZW0o
dW5zaWduZWQgaW5kZXgpCi17Ci0gICAgaWYgKGluZGV4ID49IG1fbGlzdC5zaXplKCkpIHsKLSAg
ICAgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIHRocm93IGFuIElOREVYX1NJWkVfRVJSIGV4Y2Vw
dGlvbj8KLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBtX2xpc3Rb
aW5kZXhdLnB0cigpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGllbnRSZWN0TGlzdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTFjZDcxMzIz
NC4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0LmgK
KysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkZsb2F0
UXVhZC5oIgotI2luY2x1ZGUgPHd0Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAg
Y2xhc3MgQ2xpZW50UmVjdDsKLQotICAgIGNsYXNzIENsaWVudFJlY3RMaXN0IDogcHVibGljIFJl
ZkNvdW50ZWQ8Q2xpZW50UmVjdExpc3Q+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBS
ZWY8Q2xpZW50UmVjdExpc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xpZW50
UmVjdExpc3QpOyB9Ci0gICAgICAgIHN0YXRpYyBSZWY8Q2xpZW50UmVjdExpc3Q+IGNyZWF0ZShj
b25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xp
ZW50UmVjdExpc3QocXVhZHMpKTsgfQotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJlY3RMaXN0
PiBjcmVhdGUoVmVjdG9yPFJlZjxDbGllbnRSZWN0Pj4mJiByZWN0cykgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDbGllbnRSZWN0TGlzdChXVEZNb3ZlKHJlY3RzKSkpOyB9Ci0gICAgICAgIFdFQkNP
UkVfRVhQT1JUIH5DbGllbnRSZWN0TGlzdCgpOwotCi0gICAgICAgIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0OwotICAgICAgICBDbGllbnRSZWN0KiBpdGVtKHVuc2lnbmVkIGluZGV4KTsKLQotICAg
IHByaXZhdGU6Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIENsaWVudFJlY3RMaXN0KCk7Ci0gICAg
ICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IENsaWVudFJlY3RMaXN0KGNvbnN0IFZlY3RvcjxG
bG9hdFF1YWQ+Jik7Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IENsaWVudFJlY3RM
aXN0KFZlY3RvcjxSZWY8Q2xpZW50UmVjdD4+JiYpOwotCi0gICAgICAgIFZlY3RvcjxSZWY8Q2xp
ZW50UmVjdD4+IG1fbGlzdDsKLSAgICB9OyAKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGE1ZGJjZjY3MWY1Li4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
ZW50UmVjdExpc3QuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotWwotICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUsCi0gICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCi1dIGlu
dGVyZmFjZSBDbGllbnRSZWN0TGlzdCB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgbGVuZ3RoOwotICAgIGdldHRlciBDbGllbnRSZWN0IGl0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCk7Ci0gICAgLy8gRklYTUU6IEZpeCBsaXN0IGJlaGF2aW9yIHRvIGFsbG93IGN1c3RvbSBl
eGNlcHRpb25zIHRvIGJlIHRocm93bi4KLX07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
CmluZGV4IDI3MGU0MTY2OGQyLi4wYTA1NDIxOWI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5P
bmUuY3BwCkBAIC0zNyw4ICszNyw2IEBACiAjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29w
ZS5jcHAiCiAjaW5jbHVkZSAiQ2hpbGROb2RlTGlzdC5jcHAiCiAjaW5jbHVkZSAiQ2xhc3NDb2xs
ZWN0aW9uLmNwcCIKLSNpbmNsdWRlICJDbGllbnRSZWN0LmNwcCIKLSNpbmNsdWRlICJDbGllbnRS
ZWN0TGlzdC5jcHAiCiAjaW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQuY3BwIgogI2luY2x1ZGUgIkNv
bGxlY3Rpb25JbmRleENhY2hlLmNwcCIKICNpbmNsdWRlICJDb21tZW50LmNwcCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCA4MTg5MjQzYzY0Zi4uODFiYzczMWJjMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKQEAgLTMzLDggKzMzLDYgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRl
ICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIgot
I2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKLSNpbmNsdWRlICJDbGllbnRSZWN0TGlzdC5oIgogI2lu
Y2x1ZGUgIkNvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJDb250YWlu
ZXJOb2RlQWxnb3JpdGhtcy5oIgogI2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVl
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAwNjc3MjA3
ZGViYS4uODlmOGVkYjE4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcApAQCAtMzUsOCArMzUsNiBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNp
bmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0j
aW5jbHVkZSAiQ2xpZW50UmVjdC5oIgotI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmgiCiAjaW5j
bHVkZSAiQ29tbW9uVk0uaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNp
bmNsdWRlICJDb250ZW50VHlwZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24u
Y3BwCmluZGV4IGU2ODg0ODA5N2E4Li41MjE0YTc5NWU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVlRUUmVnaW9uLmNwcApAQCAtMzQsNyArMzQsNiBAQAogCiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogCi0jaW5jbHVkZSAiQ2xpZW50UmVjdC5oIgogI2luY2x1ZGUgIkRPTVJlY3QuaCIK
ICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJdGVyYXRv
ci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCAxM2ZlYTAzOTBi
ZS4uNWRjOWJkNDFlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBA
IC0zMiw3ICszMiw2IEBACiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICNpbmNsdWRlICJDYWNo
ZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAi
Q2xpZW50UmVjdC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1l
dGVycy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRp
dmVGdW5jdGlvblBhcmFtZXRlcnMuanMKaW5kZXggNWZjYmVjMWQ5NDcuLmZjOTVmYTQwMjJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0
aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMKQEAgLTY5NiwxMSAr
Njk2LDYgQEAgV2ViSW5zcGVjdG9yLk5hdGl2ZVByb3RvdHlwZUZ1bmN0aW9uUGFyYW1ldGVycyA9
IHsKICAgICAgICAgX19wcm90b19fOiBudWxsLAogICAgIH0sCiAKLSAgICBDbGllbnRSZWN0TGlz
dDogewotICAgICAgICBpdGVtOiAiW2luZGV4XSIsCi0gICAgICAgIF9fcHJvdG9fXzogbnVsbCwK
LSAgICB9LAotCiAgICAgQ29tbWFuZExpbmVBUElIb3N0OiB7CiAgICAgICAgIGNvcHlUZXh0OiAi
dGV4dCIsCiAgICAgICAgIGRhdGFiYXNlSWQ6ICJkYXRhYmFzZSIsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNsaWVudFJlY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNwcAppbmRleCAyZDcxZThlNTJmNy4u
NGY4N2UwYjZjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01D
bGllbnRSZWN0LmNwcApAQCAtMzUsMTIgKzM1LDEyIEBACiAjZGVmaW5lIFdFQktJVF9ET01fQ0xJ
RU5UX1JFQ1RfR0VUX1BSSVZBVEUob2JqKSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUob2Jq
LCBXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JFQ1QsIFdlYktpdERPTUNsaWVudFJlY3RQcml2YXRl
KQogCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUgewotICAgIFJl
ZlB0cjxXZWJDb3JlOjpDbGllbnRSZWN0PiBjb3JlT2JqZWN0OworICAgIFJlZlB0cjxXZWJDb3Jl
OjpET01SZWN0PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYktpdERPTUNsaWVudFJlY3QqIGtpdChXZWJDb3JlOjpD
bGllbnRSZWN0KiBvYmopCitXZWJLaXRET01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6RE9NUmVj
dCogb2JqKQogewogICAgIGlmICghb2JqKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTUx
LDEyICs1MSwxMiBAQCBXZWJLaXRET01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6Q2xpZW50UmVj
dCogb2JqKQogICAgIHJldHVybiB3cmFwQ2xpZW50UmVjdChvYmopOwogfQogCi1XZWJDb3JlOjpD
bGllbnRSZWN0KiBjb3JlKFdlYktpdERPTUNsaWVudFJlY3QqIHJlcXVlc3QpCitXZWJDb3JlOjpE
T01SZWN0KiBjb3JlKFdlYktpdERPTUNsaWVudFJlY3QqIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJu
IHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRSZWN0Kj4oV0VCS0lUX0RPTV9P
QkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3QpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gcmVxdWVz
dCA/IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRPTVJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1
ZXN0KS0+Y29yZU9iamVjdCkgOiBudWxscHRyOwogfQogCi1XZWJLaXRET01DbGllbnRSZWN0KiB3
cmFwQ2xpZW50UmVjdChXZWJDb3JlOjpDbGllbnRSZWN0KiBjb3JlT2JqZWN0KQorV2ViS2l0RE9N
Q2xpZW50UmVjdCogd3JhcENsaWVudFJlY3QoV2ViQ29yZTo6RE9NUmVjdCogY29yZU9iamVjdCkK
IHsKICAgICBBU1NFUlQoY29yZU9iamVjdCk7CiAgICAgcmV0dXJuIFdFQktJVF9ET01fQ0xJRU5U
X1JFQ1QoZ19vYmplY3RfbmV3KFdFQktJVF9ET01fVFlQRV9DTElFTlRfUkVDVCwgImNvcmUtb2Jq
ZWN0IiwgY29yZU9iamVjdCwgbnVsbHB0cikpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyB2
b2lkIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfY29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQog
ICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fY2xpZW50X3JlY3RfcGFyZW50X2NsYXNzKS0+
Y29uc3RydWN0ZWQob2JqZWN0KTsKIAogICAgIFdlYktpdERPTUNsaWVudFJlY3RQcml2YXRlKiBw
cml2ID0gV0VCS0lUX0RPTV9DTElFTlRfUkVDVF9HRVRfUFJJVkFURShvYmplY3QpOwotICAgIHBy
aXYtPmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRSZWN0Kj4oV0VCS0lU
X0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCk7CisgICAgcHJpdi0+Y29yZU9iamVjdCA9
IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRPTVJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3Qp
LT5jb3JlT2JqZWN0KTsKICAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpwdXQocHJpdi0+Y29y
ZU9iamVjdC5nZXQoKSwgb2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmNwcAppbmRleCAxNjAxOTk3N2FiYi4uOTYw
OGZiNmYwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q2xpZW50UmVjdExpc3QuY3BwCkBAIC0zNiwyOCArMzYsMjMgQEAKICNkZWZpbmUgV0VCS0lUX0RP
TV9DTElFTlRfUkVDVF9MSVNUX0dFVF9QUklWQVRFKG9iaikgR19UWVBFX0lOU1RBTkNFX0dFVF9Q
UklWQVRFKG9iaiwgV0VCS0lUX0RPTV9UWVBFX0NMSUVOVF9SRUNUX0xJU1QsIFdlYktpdERPTUNs
aWVudFJlY3RMaXN0UHJpdmF0ZSkKIAogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTUNsaWVudFJl
Y3RMaXN0UHJpdmF0ZSB7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkNsaWVudFJlY3RMaXN0PiBjb3Jl
T2JqZWN0OworICAgIFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4gY29yZU9iamVj
dDsKIH0gV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRlOwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIGtpdChXZWJDb3JlOjpDbGllbnRSZWN0TGlz
dCogb2JqKQorV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiBjb3JlKFdlYktpdERP
TUNsaWVudFJlY3RMaXN0KiByZXF1ZXN0KQogewotICAgIGlmICghb2JqKQotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLQotICAgIGlmIChncG9pbnRlciByZXQgPSBET01PYmplY3RDYWNoZTo6Z2V0
KG9iaikpCi0gICAgICAgIHJldHVybiBXRUJLSVRfRE9NX0NMSUVOVF9SRUNUX0xJU1QocmV0KTsK
LQotICAgIHJldHVybiB3cmFwQ2xpZW50UmVjdExpc3Qob2JqKTsKKyAgICByZXR1cm4gcmVxdWVz
dCA/IFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0IDogV1RGOjpWZWN0b3I8
UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PigpOwogfQogCi1XZWJDb3JlOjpDbGllbnRSZWN0TGlzdCog
Y29yZShXZWJLaXRET01DbGllbnRSZWN0TGlzdCogcmVxdWVzdCkKKworV2ViS2l0RE9NQ2xpZW50
UmVjdExpc3QqIGtpdChjb25zdCBXVEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiBv
YmopCiB7Ci0gICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRS
ZWN0TGlzdCo+KFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KSA6IG51bGxw
dHI7CisgICAgcmV0dXJuIHdyYXBDbGllbnRSZWN0TGlzdChvYmopOwogfQogCi1XZWJLaXRET01D
bGllbnRSZWN0TGlzdCogd3JhcENsaWVudFJlY3RMaXN0KFdlYkNvcmU6OkNsaWVudFJlY3RMaXN0
KiBjb3JlT2JqZWN0KQorV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHdyYXBDbGllbnRSZWN0TGlz
dChjb25zdCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpET01SZWN0PiYgY29yZU9iamVjdCkKIHsKICAg
ICBBU1NFUlQoY29yZU9iamVjdCk7CiAgICAgcmV0dXJuIFdFQktJVF9ET01fQ0xJRU5UX1JFQ1Rf
TElTVChnX29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX0NMSUVOVF9SRUNUX0xJU1QsICJjb3Jl
LW9iamVjdCIsIGNvcmVPYmplY3QsIG51bGxwdHIpKTsKQEAgLTEwMSw4ICs5Niw3IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9jb25zdHJ1Y3RlZChHT2JqZWN0KiBv
YmplY3QpCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV9jbGllbnRfcmVjdF9saXN0X3Bh
cmVudF9jbGFzcyktPmNvbnN0cnVjdGVkKG9iamVjdCk7CiAKICAgICBXZWJLaXRET01DbGllbnRS
ZWN0TGlzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfRE9NX0NMSUVOVF9SRUNUX0xJU1RfR0VUX1BS
SVZBVEUob2JqZWN0KTsKLSAgICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6Q2xpZW50UmVjdExpc3QqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpLT5jb3JlT2JqZWN0
KTsKLSAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpwdXQocHJpdi0+Y29yZU9iamVjdC5nZXQo
KSwgb2JqZWN0KTsKKyAgICBwcml2LT5jb3JlT2JqZWN0ID0gV0VCS0lUX0RPTV9PQkpFQ1Qob2Jq
ZWN0KS0+Y29yZU9iamVjdDsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X2RvbV9jbGllbnRfcmVj
dF9saXN0X2NsYXNzX2luaXQoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RDbGFzcyogcmVxdWVzdENs
YXNzKQpAQCAtMTM1LDE0ICsxMjksMTQgQEAgV2ViS2l0RE9NQ2xpZW50UmVjdCogd2Via2l0X2Rv
bV9jbGllbnRfcmVjdF9saXN0X2l0ZW0oV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHMKIHsKICAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19DTElFTlRfUkVDVF9MSVNUKHNlbGYpLCBudWxscHRyKTsK
LSAgICBXZWJDb3JlOjpDbGllbnRSZWN0TGlzdCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsK
LSAgICBSZWZQdHI8V2ViQ29yZTo6Q2xpZW50UmVjdD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0
UHRyKGl0ZW0tPml0ZW0oaW5kZXgpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJl
c3VsdC5nZXQoKSk7CisgICAgYXV0byBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGF1
dG8gZ29iamVjdFJlc3VsdCA9IGl0ZW0uaXRlbShpbmRleCk7CisgICAgcmV0dXJuIFdlYktpdDo6
a2l0KGdvYmplY3RSZXN1bHQucHRyKCkpOwogfQogCiBndWxvbmcgd2Via2l0X2RvbV9jbGllbnRf
cmVjdF9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHNlbGYpCiB7CiAg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9ET01fSVNfQ0xJRU5UX1JFQ1RfTElTVChzZWxmKSwgMCk7Ci0gICAg
cmV0dXJuIFdlYktpdDo6Y29yZShzZWxmKS0+bGVuZ3RoKCk7CisgICAgcmV0dXJuIFdlYktpdDo6
Y29yZShzZWxmKS5sZW5ndGgoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5oCmluZGV4IDNiYzViNGJlMTMz
Li45MjQxOTJmYzVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5oCkBAIC0xOSwxMSArMTksMTIgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudFJlY3RMaXN0Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9ET01SZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTUNs
aWVudFJlY3RMaXN0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKLVdlYktpdERPTUNsaWVudFJlY3RMaXN0KiB3cmFwQ2xpZW50UmVjdExpc3QoV2ViQ29y
ZTo6Q2xpZW50UmVjdExpc3QqKTsKLVdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoV2ViQ29y
ZTo6Q2xpZW50UmVjdExpc3QqKTsKLVdlYkNvcmU6OkNsaWVudFJlY3RMaXN0KiBjb3JlKFdlYktp
dERPTUNsaWVudFJlY3RMaXN0Kik7CitXZWJLaXRET01DbGllbnRSZWN0TGlzdCogd3JhcENsaWVu
dFJlY3RMaXN0KGNvbnN0IFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mKTsKK1dl
YktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoY29uc3QgV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6
OkRPTVJlY3Q+PiYpOworV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiBjb3JlKFdl
YktpdERPTUNsaWVudFJlY3RMaXN0Kik7CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUuaApp
bmRleCBkYTg4ZDQ5NTg1ZS4uZDdlY2MwZTJiY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVj
dFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RQcml2YXRlLmgKQEAgLTE5LDExICsxOSwx
MSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50UmVjdC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRE9NUmVjdC5oPgogI2luY2x1ZGUgPHdlYmtpdGRvbS9XZWJLaXRE
T01DbGllbnRSZWN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotV2ViS2l0RE9NQ2xpZW50UmVj
dCogd3JhcENsaWVudFJlY3QoV2ViQ29yZTo6Q2xpZW50UmVjdCopOwotV2ViS2l0RE9NQ2xpZW50
UmVjdCoga2l0KFdlYkNvcmU6OkNsaWVudFJlY3QqKTsKLVdlYkNvcmU6OkNsaWVudFJlY3QqIGNv
cmUoV2ViS2l0RE9NQ2xpZW50UmVjdCopOworV2ViS2l0RE9NQ2xpZW50UmVjdCogd3JhcENsaWVu
dFJlY3QoV2ViQ29yZTo6RE9NUmVjdCopOworV2ViS2l0RE9NQ2xpZW50UmVjdCoga2l0KFdlYkNv
cmU6OkRPTVJlY3QqKTsKK1dlYkNvcmU6OkRPTVJlY3QqIGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVj
dCopOwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01FbGVtZW50LmNwcAppbmRleCA3M2E2ZWExYWUwNy4uNTlhMTVkMzM5ZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50LmNwcApAQCAtMjIsOCAr
MjIsNiBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9DU1NJbXBvcnRSdWxlLmg+CiAjaW5jbHVkZSAi
RE9NT2JqZWN0Q2FjaGUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudFJlY3QuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL0NsaWVudFJlY3RMaXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01SZWN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXhj
ZXB0aW9uQ29kZS5oPgpAQCAtMTIyNiwyNyArMTIyNCwxMiBAQCBnbG9uZyB3ZWJraXRfZG9tX2Vs
ZW1lbnRfZ2V0X3Njcm9sbF9oZWlnaHQoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgUmVmPFdlYkNvcmU6OkNsaWVudFJlY3Q+IHRvQ2xpZW50
UmVjdChXZWJDb3JlOjpET01SZWN0JiByZWN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpDbGll
bnRSZWN0OjpjcmVhdGUoV2ViQ29yZTo6RmxvYXRSZWN0KHJlY3QueCgpLCByZWN0LnkoKSwgcmVj
dC53aWR0aCgpLCByZWN0LmhlaWdodCgpKSk7Ci19Ci0KIFdlYktpdERPTUNsaWVudFJlY3QqIHdl
YmtpdF9kb21fZWxlbWVudF9nZXRfYm91bmRpbmdfY2xpZW50X3JlY3QoV2ViS2l0RE9NRWxlbWVu
dCogc2VsZikKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCBudWxs
cHRyKTsKICAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwot
ICAgIGF1dG8gY2xpZW50UmVjdCA9IHRvQ2xpZW50UmVjdChpdGVtLT5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGNsaWVudFJlY3QucHRyKCkpOwotfQot
Ci1zdGF0aWMgVmVjdG9yPFJlZjxXZWJDb3JlOjpDbGllbnRSZWN0Pj4gdG9DbGllbnRSZWN0VmVj
dG9yKFZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiYgcmVjdHMpCi17Ci0gICAgVmVjdG9y
PFJlZjxXZWJDb3JlOjpDbGllbnRSZWN0Pj4gY2xpZW50UmVjdHM7Ci0gICAgY2xpZW50UmVjdHMu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShyZWN0cy5zaXplKCkpOwotICAgIGZvciAoYXV0byYgcmVj
dCA6IHJlY3RzKQotICAgICAgICBjbGllbnRSZWN0cy51bmNoZWNrZWRBcHBlbmQodG9DbGllbnRS
ZWN0KHJlY3QpKTsKLSAgICByZXR1cm4gY2xpZW50UmVjdHM7CisgICAgcmV0dXJuIFdlYktpdDo6
a2l0KGl0ZW0tPmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnB0cigpKTsKIH0KIAogV2ViS2l0RE9N
Q2xpZW50UmVjdExpc3QqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2xpZW50X3JlY3RzKFdlYktp
dERPTUVsZW1lbnQqIHNlbGYpCkBAIC0xMjU0LDggKzEyMzcsNyBAQCBXZWJLaXRET01DbGllbnRS
ZWN0TGlzdCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfcmVjdHMoV2ViS2l0RE9NRWxl
bWVudCogcwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIG51bGxwdHIp
OwogICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAg
YXV0byBjbGllbnRSZWN0cyA9IFdlYkNvcmU6OkNsaWVudFJlY3RMaXN0OjpjcmVhdGUodG9DbGll
bnRSZWN0VmVjdG9yKGl0ZW0tPmdldENsaWVudFJlY3RzKCkpKTsKLSAgICByZXR1cm4gV2ViS2l0
OjpraXQoY2xpZW50UmVjdHMucHRyKCkpOworICAgIHJldHVybiBXZWJLaXQ6OmtpdChpdGVtLT5n
ZXRDbGllbnRSZWN0cygpKTsKIH0KIAogV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9lbGVt
ZW50X2dldF9vZmZzZXRfcGFyZW50KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308646</attachid>
            <date>2017-04-28 18:52:22 -0700</date>
            <delta_ts>2017-04-28 18:58:45 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>171418_drop_ClientRect_wip.patch</filename>
            <type>text/plain</type>
            <size>37661</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMWMxN2RlNmM2NTEuLmQ5NjE0YzBiZjVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtNDA2LDggKzQwNiw2IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURM
X0ZJTEVTCiAgICAgZG9tL0NEQVRBU2VjdGlvbi5pZGwKICAgICBkb20vQ2hhcmFjdGVyRGF0YS5p
ZGwKICAgICBkb20vQ2hpbGROb2RlLmlkbAotICAgIGRvbS9DbGllbnRSZWN0LmlkbAotICAgIGRv
bS9DbGllbnRSZWN0TGlzdC5pZGwKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuaWRsCiAgICAgZG9t
L0NvbW1lbnQuaWRsCiAgICAgZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRsCkBAIC0xNDQ3LDggKzE0
NDUsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0NoaWxkTGlzdE11dGF0aW9uU2Nv
cGUuY3BwCiAgICAgZG9tL0NoaWxkTm9kZUxpc3QuY3BwCiAgICAgZG9tL0NsYXNzQ29sbGVjdGlv
bi5jcHAKLSAgICBkb20vQ2xpZW50UmVjdC5jcHAKLSAgICBkb20vQ2xpZW50UmVjdExpc3QuY3Bw
CiAgICAgZG9tL0NsaXBib2FyZEV2ZW50LmNwcAogICAgIGRvbS9Db2xsZWN0aW9uSW5kZXhDYWNo
ZS5jcHAKICAgICBkb20vQ29tbWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRl
eCBiZDhiNzgyMjdmOC4uNWE2NjFmMTYxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAK
QEAgLTEwNyw4ICsxMDcsNiBAQAogI2VuZGlmCiAjaW5jbHVkZSAiSlNDREFUQVNlY3Rpb24uY3Bw
IgogI2luY2x1ZGUgIkpTQ2hhcmFjdGVyRGF0YS5jcHAiCi0jaW5jbHVkZSAiSlNDbGllbnRSZWN0
LmNwcCIKLSNpbmNsdWRlICJKU0NsaWVudFJlY3RMaXN0LmNwcCIKICNpbmNsdWRlICJKU0Nsb3Nl
RXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTQ29tbWFuZExpbmVBUElIb3N0LmNwcCIKICNpbmNsdWRl
ICJKU0NvbW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggN2M1NzQ3
MGYxZjMuLjBhY2QyOWMxM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM0
Miw4ICszNDIsNiBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20vQ0RB
VEFTZWN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQ2hhcmFjdGVyRGF0YS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL0NoaWxkTm9kZS5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL0Ns
aWVudFJlY3QuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL0NsaXBib2FyZEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9k
b20vQ29tbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRs
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBkOTNjNDBkNDU3My4uMzYyMWFiZDY4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3OTcsMTQgKzU3OTcsNiBA
QAogCQlCQ0JEMjFBQjBFNDE3QUQ0MDBBMDcwRjIgLyogVVJMSGFzaC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCRDIxQUEwRTQxN0FENDAwQTA3MEYy
IC8qIFVSTEhhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCQ0JGQjUzQzBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JGQjUzQTBE
Q0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAgKi87IH07CiAJCUJDQkZCNTNE
MERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JGQjUzQjBEQ0QyOUNGMDAxOUIzRTUgLyog
SlNET01XaW5kb3dTaGVsbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTc3MEYz
Q0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCAqLzsgfTsKLQkJQkNDMDY1N0UwRjNDRTFC
NzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDQzA2NTc4MEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0Lmgg
Ki87IH07Ci0JCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU3QTBG
M0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuY3BwICovOyB9OwotCQlCQ0MwNjU4MTBG
M0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTdCMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGll
bnRSZWN0TGlzdC5oICovOyB9OwotCQlCQ0MwNjU4NzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGll
bnRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDQzA2NTgzMEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuY3BwICovOyB9OwotCQlC
Q0MwNjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NDBGM0NFMkE3MDBDRDJEODcg
LyogSlNDbGllbnRSZWN0LmggKi87IH07Ci0JCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBK
U0NsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNw
cCAqLzsgfTsKLQkJQkNDMDY1OEEwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTg2
MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi87IH07CiAJCUJDQzBFODc1
MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMEU4NzMxQkZFNzBFOTAwOEY3RjUw
IC8qIEhUTUxQaWN0dXJlRWxlbWVudC5jcHAgKi87IH07CiAJCUJDQzBFODc2MUJGRTcwRTkwMDhG
N0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzBFODc0MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVy
ZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkNDNUJFMDAwQzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5
bGVTaGVldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0M1QkRGRTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmNwcCAqLzsgfTsK
QEAgLTE0MjM5LDE2ICsxNDIzMSw2IEBACiAJCUJDQkQyMUFBMEU0MTdBRDQwMEEwNzBGMiAvKiBV
UkxIYXNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVSTEhhc2guaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCRkI1M0EwRENEMjlDRjAwMTlCM0U1IC8qIEpT
RE9NV2luZG93U2hlbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNET01XaW5kb3dTaGVsbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkZC
NTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NV2luZG93U2hlbGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkNDMDY1NzcwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xpZW50UmVjdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzA2NTc4MEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGll
bnRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsaWVudFJlY3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1NzkwRjNDRTFCNzAwQ0QyRDg3IC8q
IENsaWVudFJlY3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENsaWVudFJlY3QuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3QTBGM0NFMUI3MDBDRDJEODcgLyog
Q2xpZW50UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q2xpZW50UmVjdExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3
QjBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2xpZW50UmVjdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQkNDMDY1N0MwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDbGllbnRSZWN0TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUJDQzA2NTgzMEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDbGllbnRSZWN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODQwRjNDRTJBNzAwQ0QyRDg3IC8q
IEpTQ2xpZW50UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaWVu
dFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODUwRjNDRTJBNzAw
Q0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNDbGllbnRSZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUJDQzA2NTg2MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ2xpZW50UmVjdExpc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDMEU4NzMxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQ
aWN0dXJlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MUGljdHVyZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Mw
RTg3NDFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQaWN0dXJlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0M1QkRGRTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNo
ZWV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU1N0eWxl
U2hlZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE4NDYsMTAgKzIxODI4
LDYgQEAKIAkJQTgzQjc5MEUwQ0NBRkY5NzAwMEIwODI1IC8qIENTUyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQkNDMDY1ODMwRjNDRTJBNzAwQ0QyRDg3
IC8qIEpTQ2xpZW50UmVjdC5jcHAgKi8sCi0JCQkJQkNDMDY1ODQwRjNDRTJBNzAwQ0QyRDg3IC8q
IEpTQ2xpZW50UmVjdC5oICovLAotCQkJCUJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0Ns
aWVudFJlY3RMaXN0LmNwcCAqLywKLQkJCQlCQ0MwNjU4NjBGM0NFMkE3MDBDRDJEODcgLyogSlND
bGllbnRSZWN0TGlzdC5oICovLAogCQkJCUJDNDZDMUYyMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NT
U0ZvbnRGYWNlUnVsZS5jcHAgKi8sCiAJCQkJQkM0NkMxRjMwQzBEREM4RjAwMjBDRkMzIC8qIEpT
Q1NTRm9udEZhY2VSdWxlLmggKi8sCiAJCQkJQkM0NkMxRjQwQzBEREM4RjAwMjBDRkMzIC8qIEpT
Q1NTSW1wb3J0UnVsZS5jcHAgKi8sCkBAIC0yNTQ0OCwxMiArMjU0MjYsNiBAQAogCQkJCUE4MTg3
MjE1MDk3N0QzQzAwMDU4MjZEOSAvKiBDaGlsZE5vZGVMaXN0LmggKi8sCiAJCQkJODM0OEJGQTkx
Qjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5jcHAgKi8sCiAJCQkJODM0OEJGQUEx
Qjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oICovLAotCQkJCUJDQzA2NTc3MEYz
Q0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCAqLywKLQkJCQlCQ0MwNjU3ODBGM0NFMUI3
MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oICovLAotCQkJCUJDQzA2NTc5MEYzQ0UxQjcwMENEMkQ4
NyAvKiBDbGllbnRSZWN0LmlkbCAqLywKLQkJCQlCQ0MwNjU3QTBGM0NFMUI3MDBDRDJEODcgLyog
Q2xpZW50UmVjdExpc3QuY3BwICovLAotCQkJCUJDQzA2NTdCMEYzQ0UxQjcwMENEMkQ4NyAvKiBD
bGllbnRSZWN0TGlzdC5oICovLAotCQkJCUJDQzA2NTdDMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGll
bnRSZWN0TGlzdC5pZGwgKi8sCiAJCQkJODUwMzFCMjkwQTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBi
b2FyZEV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIyQTBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJv
YXJkRXZlbnQuaCAqLywKIAkJCQk4MzZEMDMyNzFEQTg5QjczMDBGRkQ5NkIgLyogQ2xpcGJvYXJk
RXZlbnQuaWRsICovLApAQCAtMjY1OTgsOCArMjY1NzAsNiBAQAogCQkJCTE0RDgyNDA4MEFGOTNB
RUIwMDA0RjA1NyAvKiBDaHJvbWVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QTgxNEQ0
MUM2REVDNDAwMEJGODVBQyAvKiBDbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODM0OEJGQUMxQjg1NzI5ODAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQkNDMDY1N0UwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3Qu
aCBpbiBIZWFkZXJzICovLAotCQkJCUJDQzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRS
ZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzQTkxRTYxQzk2M0I4ODAwRDFBN0UzIC8q
IENsaXBib2FyZEFjY2Vzc1BvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNDAwQTQ0
RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQjky
REY0QjE1RkVEMDg3MDA5OTQ0MzMgLyogQ2xpcFBhdGhPcGVyYXRpb24uaCBpbiBIZWFkZXJzICov
LApAQCAtMjc2NTQsOCArMjc2MjQsNiBAQAogCQkJCUZEQTE1RUEyMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0NoYW5uZWxNZXJnZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBNDEyQjAz
RUUxMDAzQTU4M0EgLyogSlNDaGFubmVsU3BsaXR0ZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2NURGMzFGNDA5RDFDQzYwMDAwQkUzMjUgLyogSlNDaGFyYWN0ZXJEYXRhLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlCQ0MwNjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4g
SGVhZGVycyAqLywKLQkJCQlCQ0MwNjU4QTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2RDAzMzIxREE4QTE0MjAwRkZEOTZCIC8qIEpT
Q2xpcGJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRkI1NTA0MTEzRTNFOTEwMDgy
MTE3NiAvKiBKU0Nsb3NlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODRGRTNDMTg2NEUy
RDgwMDg0M0IxMCAvKiBKU0NvbW1hbmRMaW5lQVBJSG9zdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
MDY3MCw4ICszMDYzOCw2IEBACiAJCQkJQUJBRjIyMDgwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9t
ZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUU0QTgxNEQ2MUM2REVFOEQwMEJGODVBQyAvKiBD
bGFzc0NoYW5nZUludmFsaWRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzQ4QkZBQjFC
ODU3Mjk4MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk4NTAzMUIzRjBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTgwMzcxNjExQTY2RjAwQTAwQkFGNTE5IC8qIENs
aXBSZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAv
KiBDbG9jay5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxNjIwLDggKzMxNTg2LDYgQEAKIAkJCQlG
REExNUVBMTEyQjAzRUUxMDAzQTU4M0EgLyogSlNDaGFubmVsTWVyZ2VyTm9kZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGREExNUVBMzEyQjAzRUUxMDAzQTU4M0EgLyogSlNDaGFubmVsU3BsaXR0
ZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMUYzMDlEMUNDNjAwMDBCRTMyNSAv
KiBKU0NoYXJhY3RlckRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNDMDY1ODcwRjNDRTJB
NzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0MwNjU4
OTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4MzZEMDMzMTFEQThBMTNGMDBGRkQ5NkIgLyogSlNDbGlwYm9hcmRFdmVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MUZCNTUwNTExM0UzRTkxMDA4MjExNzYgLyogSlNDbG9zZUV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1ODRGRTNCMTg2NEUyRDgwMDg0M0IxMCAvKiBKU0Nv
bW1hbmRMaW5lQVBJSG9zdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMyMDA4LDcgKzMxOTcyLDcg
QEAKIAkJCQk3QzMzMEEwNzFERjlGOTUxMDBEMzM5NUMgLyogSlNQb3NpdGlvbk9wdGlvbnMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxRkYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUHJvY2Vz
c2luZ0luc3RydWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0NDYxM0VEMENENjgxQkEw
MEZBREE3NSAvKiBKU1Byb2dyZXNzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0gICAgICAgICAg
ICAgICAgQTU3OEY0M0IxREUwMTQyMTAwM0RGQzZBIC8qIEpTUHJvbWlzZVJlamVjdGlvbkV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE1NzhGNDNCMURFMDE0MjEwMDNERkM2QSAvKiBKU1By
b21pc2VSZWplY3Rpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzc2NjRGQzE4M0U2
QjVDMDAxMzNCOTIgLyogSlNRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCNjU4RkZBMTE1MjJFRjNBMDBERDU1OTUgLyogSlNSYWRpb05vZGVMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMjAxMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1Jhbmdl
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVu
dFJlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0YTY0ZTc1NTEwZi4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1DbGllbnRSZWN0OjpDbGllbnRSZWN0KCkKLXsKLX0KLQotQ2xpZW50UmVjdDo6
Q2xpZW50UmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQotICAgIDogbV9yZWN0KHJlY3QpCi17Ci19
Ci0KLUNsaWVudFJlY3Q6OkNsaWVudFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQotICAgIDog
bV9yZWN0KHJlY3QpCi17Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
ZW50UmVjdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTllZmI1Yjc0MC4uMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0j
aW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCi0jaW5jbHVkZSA8d3RmL1JlZi5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNz
IEludFJlY3Q7IAotCi0gICAgY2xhc3MgQ2xpZW50UmVjdCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFi
bGUsIHB1YmxpYyBSZWZDb3VudGVkPENsaWVudFJlY3Q+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IHN0YXRpYyBSZWY8Q2xpZW50UmVjdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
bGllbnRSZWN0KTsgfQotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJlY3Q+IGNyZWF0ZShjb25z
dCBJbnRSZWN0JiByZWN0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENsaWVudFJlY3QocmVjdCkp
OyB9Ci0gICAgICAgIHN0YXRpYyBSZWY8Q2xpZW50UmVjdD4gY3JlYXRlKGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDbGllbnRSZWN0KHJlY3QpKTsgfQotCi0g
ICAgICAgIGZsb2F0IHRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC55KCk7IH0KLSAgICAgICAg
ZmxvYXQgcmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QubWF4WCgpOyB9Ci0gICAgICAgIGZs
b2F0IGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5tYXhZKCk7IH0KLSAgICAgICAgZmxv
YXQgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC54KCk7IH0KLSAgICAgICAgZmxvYXQgd2lk
dGgoKSBjb25zdCB7IHJldHVybiBtX3JlY3Qud2lkdGgoKTsgfQotICAgICAgICBmbG9hdCBoZWln
aHQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QuaGVpZ2h0KCk7IH0KLQotICAgIHByaXZhdGU6Ci0g
ICAgICAgIFdFQkNPUkVfRVhQT1JUIENsaWVudFJlY3QoKTsKLSAgICAgICAgV0VCQ09SRV9FWFBP
UlQgZXhwbGljaXQgQ2xpZW50UmVjdChjb25zdCBJbnRSZWN0Jik7Ci0gICAgICAgIFdFQkNPUkVf
RVhQT1JUIGV4cGxpY2l0IENsaWVudFJlY3QoY29uc3QgRmxvYXRSZWN0Jik7Ci0KLSAgICAgICAg
RmxvYXRSZWN0IG1fcmVjdDsKLSAgICB9OyAKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuaWRsIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NsaWVudFJlY3QuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDk5
NDBhOWRmMS4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3Qu
aWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotWwotICAgIEltcGxlbWVudGF0aW9uTGFja3NW
VGFibGUsCi0gICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCi1dIGludGVyZmFjZSBDbGll
bnRSZWN0IHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGZsb2F0IHRvcDsK
LSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGZsb2F0IHJpZ2h0OwotICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZmxvYXQgYm90dG9tOwotICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZmxvYXQgbGVmdDsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5yZXN0cmljdGVkIGZsb2F0IHdpZHRoOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJl
c3RyaWN0ZWQgZmxvYXQgaGVpZ2h0OwotCi0gICAgc2VyaWFsaXplciA9IHsgYXR0cmlidXRlIH07
Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDM1NGUzY2M1ODcxLi4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ2xpZW50UmVjdExpc3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmgiCi0KLSNpbmNsdWRlICJD
bGllbnRSZWN0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotQ2xpZW50UmVjdExpc3Q6OkNs
aWVudFJlY3RMaXN0KCkKLXsKLX0KLQotQ2xpZW50UmVjdExpc3Q6OkNsaWVudFJlY3RMaXN0KGNv
bnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKLXsKLSAgICBtX2xpc3QucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShxdWFkcy5zaXplKCkpOwotICAgIGZvciAoYXV0byYgcXVhZCA6IHF1YWRzKQot
ICAgICAgICBtX2xpc3QudW5jaGVja2VkQXBwZW5kKENsaWVudFJlY3Q6OmNyZWF0ZShxdWFkLmVu
Y2xvc2luZ0JvdW5kaW5nQm94KCkpKTsKLX0KLQotQ2xpZW50UmVjdExpc3Q6OkNsaWVudFJlY3RM
aXN0KFZlY3RvcjxSZWY8Q2xpZW50UmVjdD4+JiYgcmVjdHMpCi0gICAgOiBtX2xpc3QoV1RGTW92
ZShyZWN0cykpCi17Ci19Ci0KLUNsaWVudFJlY3RMaXN0Ojp+Q2xpZW50UmVjdExpc3QoKQotewot
fQotCi11bnNpZ25lZCBDbGllbnRSZWN0TGlzdDo6bGVuZ3RoKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9saXN0LnNpemUoKTsKLX0KLQotQ2xpZW50UmVjdCogQ2xpZW50UmVjdExpc3Q6Oml0ZW0o
dW5zaWduZWQgaW5kZXgpCi17Ci0gICAgaWYgKGluZGV4ID49IG1fbGlzdC5zaXplKCkpIHsKLSAg
ICAgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIHRocm93IGFuIElOREVYX1NJWkVfRVJSIGV4Y2Vw
dGlvbj8KLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBtX2xpc3Rb
aW5kZXhdLnB0cigpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGllbnRSZWN0TGlzdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTFjZDcxMzIz
NC4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0LmgK
KysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkZsb2F0
UXVhZC5oIgotI2luY2x1ZGUgPHd0Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAg
Y2xhc3MgQ2xpZW50UmVjdDsKLQotICAgIGNsYXNzIENsaWVudFJlY3RMaXN0IDogcHVibGljIFJl
ZkNvdW50ZWQ8Q2xpZW50UmVjdExpc3Q+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBS
ZWY8Q2xpZW50UmVjdExpc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xpZW50
UmVjdExpc3QpOyB9Ci0gICAgICAgIHN0YXRpYyBSZWY8Q2xpZW50UmVjdExpc3Q+IGNyZWF0ZShj
b25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xp
ZW50UmVjdExpc3QocXVhZHMpKTsgfQotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJlY3RMaXN0
PiBjcmVhdGUoVmVjdG9yPFJlZjxDbGllbnRSZWN0Pj4mJiByZWN0cykgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDbGllbnRSZWN0TGlzdChXVEZNb3ZlKHJlY3RzKSkpOyB9Ci0gICAgICAgIFdFQkNP
UkVfRVhQT1JUIH5DbGllbnRSZWN0TGlzdCgpOwotCi0gICAgICAgIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0OwotICAgICAgICBDbGllbnRSZWN0KiBpdGVtKHVuc2lnbmVkIGluZGV4KTsKLQotICAg
IHByaXZhdGU6Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIENsaWVudFJlY3RMaXN0KCk7Ci0gICAg
ICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IENsaWVudFJlY3RMaXN0KGNvbnN0IFZlY3RvcjxG
bG9hdFF1YWQ+Jik7Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IENsaWVudFJlY3RM
aXN0KFZlY3RvcjxSZWY8Q2xpZW50UmVjdD4+JiYpOwotCi0gICAgICAgIFZlY3RvcjxSZWY8Q2xp
ZW50UmVjdD4+IG1fbGlzdDsKLSAgICB9OyAKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGE1ZGJjZjY3MWY1Li4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
ZW50UmVjdExpc3QuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotWwotICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUsCi0gICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCi1dIGlu
dGVyZmFjZSBDbGllbnRSZWN0TGlzdCB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgbGVuZ3RoOwotICAgIGdldHRlciBDbGllbnRSZWN0IGl0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCk7Ci0gICAgLy8gRklYTUU6IEZpeCBsaXN0IGJlaGF2aW9yIHRvIGFsbG93IGN1c3RvbSBl
eGNlcHRpb25zIHRvIGJlIHRocm93bi4KLX07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
CmluZGV4IDI3MGU0MTY2OGQyLi4wYTA1NDIxOWI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5P
bmUuY3BwCkBAIC0zNyw4ICszNyw2IEBACiAjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29w
ZS5jcHAiCiAjaW5jbHVkZSAiQ2hpbGROb2RlTGlzdC5jcHAiCiAjaW5jbHVkZSAiQ2xhc3NDb2xs
ZWN0aW9uLmNwcCIKLSNpbmNsdWRlICJDbGllbnRSZWN0LmNwcCIKLSNpbmNsdWRlICJDbGllbnRS
ZWN0TGlzdC5jcHAiCiAjaW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQuY3BwIgogI2luY2x1ZGUgIkNv
bGxlY3Rpb25JbmRleENhY2hlLmNwcCIKICNpbmNsdWRlICJDb21tZW50LmNwcCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCA4MTg5MjQzYzY0Zi4uODFiYzczMWJjMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKQEAgLTMzLDggKzMzLDYgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRl
ICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIgot
I2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKLSNpbmNsdWRlICJDbGllbnRSZWN0TGlzdC5oIgogI2lu
Y2x1ZGUgIkNvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJDb250YWlu
ZXJOb2RlQWxnb3JpdGhtcy5oIgogI2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVl
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAwNjc3MjA3
ZGViYS4uODlmOGVkYjE4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcApAQCAtMzUsOCArMzUsNiBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNp
bmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0j
aW5jbHVkZSAiQ2xpZW50UmVjdC5oIgotI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmgiCiAjaW5j
bHVkZSAiQ29tbW9uVk0uaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNp
bmNsdWRlICJDb250ZW50VHlwZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24u
Y3BwCmluZGV4IGU2ODg0ODA5N2E4Li41MjE0YTc5NWU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVlRUUmVnaW9uLmNwcApAQCAtMzQsNyArMzQsNiBAQAogCiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogCi0jaW5jbHVkZSAiQ2xpZW50UmVjdC5oIgogI2luY2x1ZGUgIkRPTVJlY3QuaCIK
ICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJdGVyYXRv
ci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCAxM2ZlYTAzOTBi
ZS4uNWRjOWJkNDFlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBA
IC0zMiw3ICszMiw2IEBACiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICNpbmNsdWRlICJDYWNo
ZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAi
Q2xpZW50UmVjdC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1l
dGVycy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRp
dmVGdW5jdGlvblBhcmFtZXRlcnMuanMKaW5kZXggNWZjYmVjMWQ5NDcuLmZjOTVmYTQwMjJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0
aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMKQEAgLTY5NiwxMSAr
Njk2LDYgQEAgV2ViSW5zcGVjdG9yLk5hdGl2ZVByb3RvdHlwZUZ1bmN0aW9uUGFyYW1ldGVycyA9
IHsKICAgICAgICAgX19wcm90b19fOiBudWxsLAogICAgIH0sCiAKLSAgICBDbGllbnRSZWN0TGlz
dDogewotICAgICAgICBpdGVtOiAiW2luZGV4XSIsCi0gICAgICAgIF9fcHJvdG9fXzogbnVsbCwK
LSAgICB9LAotCiAgICAgQ29tbWFuZExpbmVBUElIb3N0OiB7CiAgICAgICAgIGNvcHlUZXh0OiAi
dGV4dCIsCiAgICAgICAgIGRhdGFiYXNlSWQ6ICJkYXRhYmFzZSIsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNsaWVudFJlY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNwcAppbmRleCAyZDcxZThlNTJmNy4u
NGY4N2UwYjZjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01D
bGllbnRSZWN0LmNwcApAQCAtMzUsMTIgKzM1LDEyIEBACiAjZGVmaW5lIFdFQktJVF9ET01fQ0xJ
RU5UX1JFQ1RfR0VUX1BSSVZBVEUob2JqKSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUob2Jq
LCBXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JFQ1QsIFdlYktpdERPTUNsaWVudFJlY3RQcml2YXRl
KQogCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUgewotICAgIFJl
ZlB0cjxXZWJDb3JlOjpDbGllbnRSZWN0PiBjb3JlT2JqZWN0OworICAgIFJlZlB0cjxXZWJDb3Jl
OjpET01SZWN0PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYktpdERPTUNsaWVudFJlY3QqIGtpdChXZWJDb3JlOjpD
bGllbnRSZWN0KiBvYmopCitXZWJLaXRET01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6RE9NUmVj
dCogb2JqKQogewogICAgIGlmICghb2JqKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTUx
LDEyICs1MSwxMiBAQCBXZWJLaXRET01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6Q2xpZW50UmVj
dCogb2JqKQogICAgIHJldHVybiB3cmFwQ2xpZW50UmVjdChvYmopOwogfQogCi1XZWJDb3JlOjpD
bGllbnRSZWN0KiBjb3JlKFdlYktpdERPTUNsaWVudFJlY3QqIHJlcXVlc3QpCitXZWJDb3JlOjpE
T01SZWN0KiBjb3JlKFdlYktpdERPTUNsaWVudFJlY3QqIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJu
IHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRSZWN0Kj4oV0VCS0lUX0RPTV9P
QkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3QpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gcmVxdWVz
dCA/IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRPTVJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1
ZXN0KS0+Y29yZU9iamVjdCkgOiBudWxscHRyOwogfQogCi1XZWJLaXRET01DbGllbnRSZWN0KiB3
cmFwQ2xpZW50UmVjdChXZWJDb3JlOjpDbGllbnRSZWN0KiBjb3JlT2JqZWN0KQorV2ViS2l0RE9N
Q2xpZW50UmVjdCogd3JhcENsaWVudFJlY3QoV2ViQ29yZTo6RE9NUmVjdCogY29yZU9iamVjdCkK
IHsKICAgICBBU1NFUlQoY29yZU9iamVjdCk7CiAgICAgcmV0dXJuIFdFQktJVF9ET01fQ0xJRU5U
X1JFQ1QoZ19vYmplY3RfbmV3KFdFQktJVF9ET01fVFlQRV9DTElFTlRfUkVDVCwgImNvcmUtb2Jq
ZWN0IiwgY29yZU9iamVjdCwgbnVsbHB0cikpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyB2
b2lkIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfY29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQog
ICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fY2xpZW50X3JlY3RfcGFyZW50X2NsYXNzKS0+
Y29uc3RydWN0ZWQob2JqZWN0KTsKIAogICAgIFdlYktpdERPTUNsaWVudFJlY3RQcml2YXRlKiBw
cml2ID0gV0VCS0lUX0RPTV9DTElFTlRfUkVDVF9HRVRfUFJJVkFURShvYmplY3QpOwotICAgIHBy
aXYtPmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRSZWN0Kj4oV0VCS0lU
X0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCk7CisgICAgcHJpdi0+Y29yZU9iamVjdCA9
IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRPTVJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3Qp
LT5jb3JlT2JqZWN0KTsKICAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpwdXQocHJpdi0+Y29y
ZU9iamVjdC5nZXQoKSwgb2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmNwcAppbmRleCAxNjAxOTk3N2FiYi4uYTg3
MjBhMDNjM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q2xpZW50UmVjdExpc3QuY3BwCkBAIC0zNSwzMiArMzUsNDcgQEAKIAogI2RlZmluZSBXRUJLSVRf
RE9NX0NMSUVOVF9SRUNUX0xJU1RfR0VUX1BSSVZBVEUob2JqKSBHX1RZUEVfSU5TVEFOQ0VfR0VU
X1BSSVZBVEUob2JqLCBXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JFQ1RfTElTVCwgV2ViS2l0RE9N
Q2xpZW50UmVjdExpc3RQcml2YXRlKQogCitjbGFzcyBDbGllbnRSZWN0TGlzdCA6IHB1YmxpYyBS
ZWZDb3VudGVkIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPENsaWVudFJlY3RMaXN0PiBjcmVh
dGUoY29uc3QgV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiYgaXRlbXMpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDbGllbnRSZWN0TGlzdChpdGVtcykpOwor
ICAgIH0KKworICAgIGNvbnN0IFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4+JiBp
dGVtcygpIGNvbnN0IHsgcmV0dXJuIG1faXRlbXMoKSB9CisKK3ByaXZhdGU6CisgICAgQ2xpZW50
UmVjdExpc3QoY29uc3QgV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiYgaXRlbXMp
CisgICAgICAgIDogbV9pdGVtcyhpdGVtcworICAgIHsgfQorCisgICAgV1RGOjpWZWN0b3I8UmVm
PFdlYkNvcmU6OkRPTVJlY3Q+Pj4gbV9pdGVtczsKK307CisKIHR5cGVkZWYgc3RydWN0IF9XZWJL
aXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUgewotICAgIFJlZlB0cjxXZWJDb3JlOjpDbGllbnRS
ZWN0TGlzdD4gY29yZU9iamVjdDsKKyAgICBSZWZQdHI8Q2xpZW50UmVjdExpc3Q+IGNvcmVPYmpl
Y3Q7CiB9IFdlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZTsKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLVdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoV2ViQ29yZTo6Q2xpZW50UmVjdExp
c3QqIG9iaikKK1dlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoY29uc3QgV1RGOjpWZWN0b3I8
UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiYgb2JqKQogewogICAgIGlmICghb2JqKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIGlmIChncG9pbnRlciByZXQgPSBET01PYmplY3RDYWNoZTo6
Z2V0KG9iaikpCi0gICAgICAgIHJldHVybiBXRUJLSVRfRE9NX0NMSUVOVF9SRUNUX0xJU1QocmV0
KTsKLQogICAgIHJldHVybiB3cmFwQ2xpZW50UmVjdExpc3Qob2JqKTsKIH0KIAotV2ViQ29yZTo6
Q2xpZW50UmVjdExpc3QqIGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHJlcXVlc3QpCitz
dGF0aWMgQ2xpZW50UmVjdExpc3QqIGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHJlcXVl
c3QpCiB7Ci0gICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRS
ZWN0TGlzdCo+KFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KSA6IG51bGxw
dHI7CisgICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxDbGllbnRSZWN0TGlzdCo+KFdF
QktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KSA6IG51bGxwdHI7CiB9CiAKLVdl
YktpdERPTUNsaWVudFJlY3RMaXN0KiB3cmFwQ2xpZW50UmVjdExpc3QoV2ViQ29yZTo6Q2xpZW50
UmVjdExpc3QqIGNvcmVPYmplY3QpCitXZWJLaXRET01DbGllbnRSZWN0TGlzdCogd3JhcENsaWVu
dFJlY3RMaXN0KGNvbnN0IFdURjo6VmVjdG9yPFdlYkNvcmU6OkRPTVJlY3Q+JiBjb3JlT2JqZWN0
KQogewogICAgIEFTU0VSVChjb3JlT2JqZWN0KTsKLSAgICByZXR1cm4gV0VCS0lUX0RPTV9DTElF
TlRfUkVDVF9MSVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JFQ1RfTElT
VCwgImNvcmUtb2JqZWN0IiwgY29yZU9iamVjdCwgbnVsbHB0cikpOworICAgIGF1dG8gbGlzdCA9
IENsaWVudFJlY3RMaXN0OjpjcmVhdGUoY29yZU9iamVjdCk7CisgICAgcmV0dXJuIFdFQktJVF9E
T01fQ0xJRU5UX1JFQ1RfTElTVChnX29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX0NMSUVOVF9S
RUNUX0xJU1QsICJjb3JlLW9iamVjdCIsIGxpc3QucHRyKCksIG51bGxwdHIpKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkBAIC0xMDEsOCArMTE2LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0
X2RvbV9jbGllbnRfcmVjdF9saXN0X2NvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKICAgICBH
X09CSkVDVF9DTEFTUyh3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xpc3RfcGFyZW50X2NsYXNzKS0+
Y29uc3RydWN0ZWQob2JqZWN0KTsKIAogICAgIFdlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0
ZSogcHJpdiA9IFdFQktJVF9ET01fQ0xJRU5UX1JFQ1RfTElTVF9HRVRfUFJJVkFURShvYmplY3Qp
OwotICAgIHByaXYtPmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRSZWN0
TGlzdCo+KFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmplY3QpOwotICAgIFdlYktp
dDo6RE9NT2JqZWN0Q2FjaGU6OnB1dChwcml2LT5jb3JlT2JqZWN0LmdldCgpLCBvYmplY3QpOwor
ICAgIHByaXYtPmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxDbGllbnRSZWN0TGlzdCo+KFdFQktJ
VF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmplY3QpOwogfQogCiBzdGF0aWMgdm9pZCB3ZWJr
aXRfZG9tX2NsaWVudF9yZWN0X2xpc3RfY2xhc3NfaW5pdChXZWJLaXRET01DbGllbnRSZWN0TGlz
dENsYXNzKiByZXF1ZXN0Q2xhc3MpCkBAIC0xMzUsMTQgKzE0OSwxNCBAQCBXZWJLaXRET01DbGll
bnRSZWN0KiB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xpc3RfaXRlbShXZWJLaXRET01DbGllbnRS
ZWN0TGlzdCogcwogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
ICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0NMSUVOVF9SRUNUX0xJU1Qo
c2VsZiksIG51bGxwdHIpOwotICAgIFdlYkNvcmU6OkNsaWVudFJlY3RMaXN0KiBpdGVtID0gV2Vi
S2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpDbGllbnRSZWN0PiBnb2JqZWN0
UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+aXRlbShpbmRleCkpOwotICAgIHJldHVybiBXZWJL
aXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKKyAgICBDbGllbnRSZWN0TGlzdCogbGlzdCA9
IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBSZWY8V2ViQ29yZTo6RE9NUmVjdD4gZ29iamVjdFJl
c3VsdCA9IGxpc3QtPml0ZW1zKCkuaXRlbShpbmRleCk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0
KGdvYmplY3RSZXN1bHQucHRyKCkpOwogfQogCiBndWxvbmcgd2Via2l0X2RvbV9jbGllbnRfcmVj
dF9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHNlbGYpCiB7CiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfQ0xJRU5UX1JFQ1RfTElTVChzZWxmKSwgMCk7Ci0gICAgcmV0
dXJuIFdlYktpdDo6Y29yZShzZWxmKS0+bGVuZ3RoKCk7CisgICAgcmV0dXJuIFdlYktpdDo6Y29y
ZShzZWxmKS0+aXRlbXMoKS5sZW5ndGgoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVj
dExpc3RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5oCmluZGV4IDNiYzVi
NGJlMTMzLi45ZmMzODYzMzA1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5oCkBAIC0xOSwxMSArMTksMTEg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudFJlY3RMaXN0Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9ET01SZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktp
dERPTUNsaWVudFJlY3RMaXN0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKLVdlYktpdERPTUNsaWVudFJlY3RMaXN0KiB3cmFwQ2xpZW50UmVjdExpc3Qo
V2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqKTsKLVdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQo
V2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqKTsKLVdlYkNvcmU6OkNsaWVudFJlY3RMaXN0KiBjb3Jl
KFdlYktpdERPTUNsaWVudFJlY3RMaXN0Kik7CitXZWJLaXRET01DbGllbnRSZWN0TGlzdCogd3Jh
cENsaWVudFJlY3RMaXN0KGNvbnN0IFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4m
KTsKK1dlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoY29uc3QgV1RGOjpWZWN0b3I8UmVmPFdl
YkNvcmU6OkRPTVJlY3Q+PiYpOwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUNsaWVudFJlY3RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RQcml2YXRlLmgKaW5kZXgg
ZGE4OGQ0OTU4NWUuLmQ3ZWNjMGUyYmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZS5oCkBAIC0xOSwxMSArMTksMTEgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudFJlY3QuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0RPTVJlY3QuaD4KICNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NQ2xp
ZW50UmVjdC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLVdlYktpdERPTUNsaWVudFJlY3QqIHdy
YXBDbGllbnRSZWN0KFdlYkNvcmU6OkNsaWVudFJlY3QqKTsKLVdlYktpdERPTUNsaWVudFJlY3Qq
IGtpdChXZWJDb3JlOjpDbGllbnRSZWN0Kik7Ci1XZWJDb3JlOjpDbGllbnRSZWN0KiBjb3JlKFdl
YktpdERPTUNsaWVudFJlY3QqKTsKK1dlYktpdERPTUNsaWVudFJlY3QqIHdyYXBDbGllbnRSZWN0
KFdlYkNvcmU6OkRPTVJlY3QqKTsKK1dlYktpdERPTUNsaWVudFJlY3QqIGtpdChXZWJDb3JlOjpE
T01SZWN0Kik7CitXZWJDb3JlOjpET01SZWN0KiBjb3JlKFdlYktpdERPTUNsaWVudFJlY3QqKTsK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NRWxlbWVudC5jcHAKaW5kZXggNzNhNmVhMWFlMDcuLjU5YTE1ZDMzOWQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAKQEAgLTIyLDggKzIyLDYg
QEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvQ1NTSW1wb3J0UnVsZS5oPgogI2luY2x1ZGUgIkRPTU9i
amVjdENhY2hlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRSZWN0Lmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9DbGllbnRSZWN0TGlzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRE9NUmVjdC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlv
bkNvZGUuaD4KQEAgLTEyMjYsMjcgKzEyMjQsMTIgQEAgZ2xvbmcgd2Via2l0X2RvbV9lbGVtZW50
X2dldF9zY3JvbGxfaGVpZ2h0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotc3RhdGljIFJlZjxXZWJDb3JlOjpDbGllbnRSZWN0PiB0b0NsaWVudFJlY3Qo
V2ViQ29yZTo6RE9NUmVjdCYgcmVjdCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6Q2xpZW50UmVj
dDo6Y3JlYXRlKFdlYkNvcmU6OkZsb2F0UmVjdChyZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lk
dGgoKSwgcmVjdC5oZWlnaHQoKSkpOwotfQotCiBXZWJLaXRET01DbGllbnRSZWN0KiB3ZWJraXRf
ZG9tX2VsZW1lbnRfZ2V0X2JvdW5kaW5nX2NsaWVudF9yZWN0KFdlYktpdERPTUVsZW1lbnQqIHNl
bGYpCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgbnVsbHB0cik7
CiAgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBh
dXRvIGNsaWVudFJlY3QgPSB0b0NsaWVudFJlY3QoaXRlbS0+Z2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChjbGllbnRSZWN0LnB0cigpKTsKLX0KLQotc3Rh
dGljIFZlY3RvcjxSZWY8V2ViQ29yZTo6Q2xpZW50UmVjdD4+IHRvQ2xpZW50UmVjdFZlY3RvcihW
ZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiYmIHJlY3RzKQotewotICAgIFZlY3RvcjxSZWY8
V2ViQ29yZTo6Q2xpZW50UmVjdD4+IGNsaWVudFJlY3RzOwotICAgIGNsaWVudFJlY3RzLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkocmVjdHMuc2l6ZSgpKTsKLSAgICBmb3IgKGF1dG8mIHJlY3QgOiBy
ZWN0cykKLSAgICAgICAgY2xpZW50UmVjdHMudW5jaGVja2VkQXBwZW5kKHRvQ2xpZW50UmVjdChy
ZWN0KSk7Ci0gICAgcmV0dXJuIGNsaWVudFJlY3RzOworICAgIHJldHVybiBXZWJLaXQ6OmtpdChp
dGVtLT5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5wdHIoKSk7CiB9CiAKIFdlYktpdERPTUNsaWVu
dFJlY3RMaXN0KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsaWVudF9yZWN0cyhXZWJLaXRET01F
bGVtZW50KiBzZWxmKQpAQCAtMTI1NCw4ICsxMjM3LDcgQEAgV2ViS2l0RE9NQ2xpZW50UmVjdExp
c3QqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2xpZW50X3JlY3RzKFdlYktpdERPTUVsZW1lbnQq
IHMKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCBudWxscHRyKTsKICAg
ICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGF1dG8g
Y2xpZW50UmVjdHMgPSBXZWJDb3JlOjpDbGllbnRSZWN0TGlzdDo6Y3JlYXRlKHRvQ2xpZW50UmVj
dFZlY3RvcihpdGVtLT5nZXRDbGllbnRSZWN0cygpKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0
KGNsaWVudFJlY3RzLnB0cigpKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoaXRlbS0+Z2V0Q2xp
ZW50UmVjdHMoKSk7CiB9CiAKIFdlYktpdERPTUVsZW1lbnQqIHdlYmtpdF9kb21fZWxlbWVudF9n
ZXRfb2Zmc2V0X3BhcmVudChXZWJLaXRET01FbGVtZW50KiBzZWxmKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308647</attachid>
            <date>2017-04-28 18:58:45 -0700</date>
            <delta_ts>2017-04-28 19:01:55 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>171418_drop_ClientRect_wip.patch</filename>
            <type>text/plain</type>
            <size>37677</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMWMxN2RlNmM2NTEuLmQ5NjE0YzBiZjVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtNDA2LDggKzQwNiw2IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURM
X0ZJTEVTCiAgICAgZG9tL0NEQVRBU2VjdGlvbi5pZGwKICAgICBkb20vQ2hhcmFjdGVyRGF0YS5p
ZGwKICAgICBkb20vQ2hpbGROb2RlLmlkbAotICAgIGRvbS9DbGllbnRSZWN0LmlkbAotICAgIGRv
bS9DbGllbnRSZWN0TGlzdC5pZGwKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuaWRsCiAgICAgZG9t
L0NvbW1lbnQuaWRsCiAgICAgZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRsCkBAIC0xNDQ3LDggKzE0
NDUsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0NoaWxkTGlzdE11dGF0aW9uU2Nv
cGUuY3BwCiAgICAgZG9tL0NoaWxkTm9kZUxpc3QuY3BwCiAgICAgZG9tL0NsYXNzQ29sbGVjdGlv
bi5jcHAKLSAgICBkb20vQ2xpZW50UmVjdC5jcHAKLSAgICBkb20vQ2xpZW50UmVjdExpc3QuY3Bw
CiAgICAgZG9tL0NsaXBib2FyZEV2ZW50LmNwcAogICAgIGRvbS9Db2xsZWN0aW9uSW5kZXhDYWNo
ZS5jcHAKICAgICBkb20vQ29tbWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRl
eCBiZDhiNzgyMjdmOC4uNWE2NjFmMTYxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAK
QEAgLTEwNyw4ICsxMDcsNiBAQAogI2VuZGlmCiAjaW5jbHVkZSAiSlNDREFUQVNlY3Rpb24uY3Bw
IgogI2luY2x1ZGUgIkpTQ2hhcmFjdGVyRGF0YS5jcHAiCi0jaW5jbHVkZSAiSlNDbGllbnRSZWN0
LmNwcCIKLSNpbmNsdWRlICJKU0NsaWVudFJlY3RMaXN0LmNwcCIKICNpbmNsdWRlICJKU0Nsb3Nl
RXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTQ29tbWFuZExpbmVBUElIb3N0LmNwcCIKICNpbmNsdWRl
ICJKU0NvbW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggN2M1NzQ3
MGYxZjMuLjBhY2QyOWMxM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM0
Miw4ICszNDIsNiBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20vQ0RB
VEFTZWN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQ2hhcmFjdGVyRGF0YS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL0NoaWxkTm9kZS5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL0Ns
aWVudFJlY3QuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL0NsaXBib2FyZEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9k
b20vQ29tbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRs
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBkOTNjNDBkNDU3My4uMzYyMWFiZDY4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3OTcsMTQgKzU3OTcsNiBA
QAogCQlCQ0JEMjFBQjBFNDE3QUQ0MDBBMDcwRjIgLyogVVJMSGFzaC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCRDIxQUEwRTQxN0FENDAwQTA3MEYy
IC8qIFVSTEhhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCQ0JGQjUzQzBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JGQjUzQTBE
Q0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAgKi87IH07CiAJCUJDQkZCNTNE
MERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JGQjUzQjBEQ0QyOUNGMDAxOUIzRTUgLyog
SlNET01XaW5kb3dTaGVsbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTc3MEYz
Q0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCAqLzsgfTsKLQkJQkNDMDY1N0UwRjNDRTFC
NzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDQzA2NTc4MEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0Lmgg
Ki87IH07Ci0JCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU3QTBG
M0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuY3BwICovOyB9OwotCQlCQ0MwNjU4MTBG
M0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTdCMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGll
bnRSZWN0TGlzdC5oICovOyB9OwotCQlCQ0MwNjU4NzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGll
bnRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDQzA2NTgzMEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuY3BwICovOyB9OwotCQlC
Q0MwNjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NDBGM0NFMkE3MDBDRDJEODcg
LyogSlNDbGllbnRSZWN0LmggKi87IH07Ci0JCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBK
U0NsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNw
cCAqLzsgfTsKLQkJQkNDMDY1OEEwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTg2
MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi87IH07CiAJCUJDQzBFODc1
MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMEU4NzMxQkZFNzBFOTAwOEY3RjUw
IC8qIEhUTUxQaWN0dXJlRWxlbWVudC5jcHAgKi87IH07CiAJCUJDQzBFODc2MUJGRTcwRTkwMDhG
N0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzBFODc0MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVy
ZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkNDNUJFMDAwQzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5
bGVTaGVldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0M1QkRGRTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmNwcCAqLzsgfTsK
QEAgLTE0MjM5LDE2ICsxNDIzMSw2IEBACiAJCUJDQkQyMUFBMEU0MTdBRDQwMEEwNzBGMiAvKiBV
UkxIYXNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVSTEhhc2guaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCRkI1M0EwRENEMjlDRjAwMTlCM0U1IC8qIEpT
RE9NV2luZG93U2hlbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNET01XaW5kb3dTaGVsbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkZC
NTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NV2luZG93U2hlbGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkNDMDY1NzcwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xpZW50UmVjdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzA2NTc4MEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGll
bnRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsaWVudFJlY3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1NzkwRjNDRTFCNzAwQ0QyRDg3IC8q
IENsaWVudFJlY3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENsaWVudFJlY3QuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3QTBGM0NFMUI3MDBDRDJEODcgLyog
Q2xpZW50UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q2xpZW50UmVjdExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3
QjBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2xpZW50UmVjdExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQkNDMDY1N0MwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDbGllbnRSZWN0TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUJDQzA2NTgzMEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDbGllbnRSZWN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODQwRjNDRTJBNzAwQ0QyRDg3IC8q
IEpTQ2xpZW50UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NsaWVu
dFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODUwRjNDRTJBNzAw
Q0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNDbGllbnRSZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUJDQzA2NTg2MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ2xpZW50UmVjdExpc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDMEU4NzMxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQ
aWN0dXJlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MUGljdHVyZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Mw
RTg3NDFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQaWN0dXJlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0M1QkRGRTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNo
ZWV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU1N0eWxl
U2hlZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE4NDYsMTAgKzIxODI4
LDYgQEAKIAkJQTgzQjc5MEUwQ0NBRkY5NzAwMEIwODI1IC8qIENTUyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQkNDMDY1ODMwRjNDRTJBNzAwQ0QyRDg3
IC8qIEpTQ2xpZW50UmVjdC5jcHAgKi8sCi0JCQkJQkNDMDY1ODQwRjNDRTJBNzAwQ0QyRDg3IC8q
IEpTQ2xpZW50UmVjdC5oICovLAotCQkJCUJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0Ns
aWVudFJlY3RMaXN0LmNwcCAqLywKLQkJCQlCQ0MwNjU4NjBGM0NFMkE3MDBDRDJEODcgLyogSlND
bGllbnRSZWN0TGlzdC5oICovLAogCQkJCUJDNDZDMUYyMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NT
U0ZvbnRGYWNlUnVsZS5jcHAgKi8sCiAJCQkJQkM0NkMxRjMwQzBEREM4RjAwMjBDRkMzIC8qIEpT
Q1NTRm9udEZhY2VSdWxlLmggKi8sCiAJCQkJQkM0NkMxRjQwQzBEREM4RjAwMjBDRkMzIC8qIEpT
Q1NTSW1wb3J0UnVsZS5jcHAgKi8sCkBAIC0yNTQ0OCwxMiArMjU0MjYsNiBAQAogCQkJCUE4MTg3
MjE1MDk3N0QzQzAwMDU4MjZEOSAvKiBDaGlsZE5vZGVMaXN0LmggKi8sCiAJCQkJODM0OEJGQTkx
Qjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5jcHAgKi8sCiAJCQkJODM0OEJGQUEx
Qjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oICovLAotCQkJCUJDQzA2NTc3MEYz
Q0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCAqLywKLQkJCQlCQ0MwNjU3ODBGM0NFMUI3
MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oICovLAotCQkJCUJDQzA2NTc5MEYzQ0UxQjcwMENEMkQ4
NyAvKiBDbGllbnRSZWN0LmlkbCAqLywKLQkJCQlCQ0MwNjU3QTBGM0NFMUI3MDBDRDJEODcgLyog
Q2xpZW50UmVjdExpc3QuY3BwICovLAotCQkJCUJDQzA2NTdCMEYzQ0UxQjcwMENEMkQ4NyAvKiBD
bGllbnRSZWN0TGlzdC5oICovLAotCQkJCUJDQzA2NTdDMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGll
bnRSZWN0TGlzdC5pZGwgKi8sCiAJCQkJODUwMzFCMjkwQTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBi
b2FyZEV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIyQTBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJv
YXJkRXZlbnQuaCAqLywKIAkJCQk4MzZEMDMyNzFEQTg5QjczMDBGRkQ5NkIgLyogQ2xpcGJvYXJk
RXZlbnQuaWRsICovLApAQCAtMjY1OTgsOCArMjY1NzAsNiBAQAogCQkJCTE0RDgyNDA4MEFGOTNB
RUIwMDA0RjA1NyAvKiBDaHJvbWVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QTgxNEQ0
MUM2REVDNDAwMEJGODVBQyAvKiBDbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODM0OEJGQUMxQjg1NzI5ODAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQkNDMDY1N0UwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3Qu
aCBpbiBIZWFkZXJzICovLAotCQkJCUJDQzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRS
ZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzQTkxRTYxQzk2M0I4ODAwRDFBN0UzIC8q
IENsaXBib2FyZEFjY2Vzc1BvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNDAwQTQ0
RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQjky
REY0QjE1RkVEMDg3MDA5OTQ0MzMgLyogQ2xpcFBhdGhPcGVyYXRpb24uaCBpbiBIZWFkZXJzICov
LApAQCAtMjc2NTQsOCArMjc2MjQsNiBAQAogCQkJCUZEQTE1RUEyMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0NoYW5uZWxNZXJnZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBNDEyQjAz
RUUxMDAzQTU4M0EgLyogSlNDaGFubmVsU3BsaXR0ZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2NURGMzFGNDA5RDFDQzYwMDAwQkUzMjUgLyogSlNDaGFyYWN0ZXJEYXRhLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlCQ0MwNjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggaW4g
SGVhZGVycyAqLywKLQkJCQlCQ0MwNjU4QTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2RDAzMzIxREE4QTE0MjAwRkZEOTZCIC8qIEpT
Q2xpcGJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRkI1NTA0MTEzRTNFOTEwMDgy
MTE3NiAvKiBKU0Nsb3NlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODRGRTNDMTg2NEUy
RDgwMDg0M0IxMCAvKiBKU0NvbW1hbmRMaW5lQVBJSG9zdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
MDY3MCw4ICszMDYzOCw2IEBACiAJCQkJQUJBRjIyMDgwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9t
ZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUU0QTgxNEQ2MUM2REVFOEQwMEJGODVBQyAvKiBD
bGFzc0NoYW5nZUludmFsaWRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzQ4QkZBQjFC
ODU3Mjk4MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk4NTAzMUIzRjBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTgwMzcxNjExQTY2RjAwQTAwQkFGNTE5IC8qIENs
aXBSZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERUE3NjM1MTQ2MEI3MUEwMDhCMzFGMSAv
KiBDbG9jay5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxNjIwLDggKzMxNTg2LDYgQEAKIAkJCQlG
REExNUVBMTEyQjAzRUUxMDAzQTU4M0EgLyogSlNDaGFubmVsTWVyZ2VyTm9kZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGREExNUVBMzEyQjAzRUUxMDAzQTU4M0EgLyogSlNDaGFubmVsU3BsaXR0
ZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMUYzMDlEMUNDNjAwMDBCRTMyNSAv
KiBKU0NoYXJhY3RlckRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNDMDY1ODcwRjNDRTJB
NzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0MwNjU4
OTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4MzZEMDMzMTFEQThBMTNGMDBGRkQ5NkIgLyogSlNDbGlwYm9hcmRFdmVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MUZCNTUwNTExM0UzRTkxMDA4MjExNzYgLyogSlNDbG9zZUV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1ODRGRTNCMTg2NEUyRDgwMDg0M0IxMCAvKiBKU0Nv
bW1hbmRMaW5lQVBJSG9zdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMyMDA4LDcgKzMxOTcyLDcg
QEAKIAkJCQk3QzMzMEEwNzFERjlGOTUxMDBEMzM5NUMgLyogSlNQb3NpdGlvbk9wdGlvbnMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxRkYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUHJvY2Vz
c2luZ0luc3RydWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0NDYxM0VEMENENjgxQkEw
MEZBREE3NSAvKiBKU1Byb2dyZXNzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0gICAgICAgICAg
ICAgICAgQTU3OEY0M0IxREUwMTQyMTAwM0RGQzZBIC8qIEpTUHJvbWlzZVJlamVjdGlvbkV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE1NzhGNDNCMURFMDE0MjEwMDNERkM2QSAvKiBKU1By
b21pc2VSZWplY3Rpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzc2NjRGQzE4M0U2
QjVDMDAxMzNCOTIgLyogSlNRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCNjU4RkZBMTE1MjJFRjNBMDBERDU1OTUgLyogSlNSYWRpb05vZGVMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMjAxMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1Jhbmdl
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVu
dFJlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0YTY0ZTc1NTEwZi4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1DbGllbnRSZWN0OjpDbGllbnRSZWN0KCkKLXsKLX0KLQotQ2xpZW50UmVjdDo6
Q2xpZW50UmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQotICAgIDogbV9yZWN0KHJlY3QpCi17Ci19
Ci0KLUNsaWVudFJlY3Q6OkNsaWVudFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQotICAgIDog
bV9yZWN0KHJlY3QpCi17Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
ZW50UmVjdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTllZmI1Yjc0MC4uMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0j
aW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCi0jaW5jbHVkZSA8d3RmL1JlZi5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNz
IEludFJlY3Q7IAotCi0gICAgY2xhc3MgQ2xpZW50UmVjdCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFi
bGUsIHB1YmxpYyBSZWZDb3VudGVkPENsaWVudFJlY3Q+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IHN0YXRpYyBSZWY8Q2xpZW50UmVjdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
bGllbnRSZWN0KTsgfQotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJlY3Q+IGNyZWF0ZShjb25z
dCBJbnRSZWN0JiByZWN0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENsaWVudFJlY3QocmVjdCkp
OyB9Ci0gICAgICAgIHN0YXRpYyBSZWY8Q2xpZW50UmVjdD4gY3JlYXRlKGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDbGllbnRSZWN0KHJlY3QpKTsgfQotCi0g
ICAgICAgIGZsb2F0IHRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC55KCk7IH0KLSAgICAgICAg
ZmxvYXQgcmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QubWF4WCgpOyB9Ci0gICAgICAgIGZs
b2F0IGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5tYXhZKCk7IH0KLSAgICAgICAgZmxv
YXQgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC54KCk7IH0KLSAgICAgICAgZmxvYXQgd2lk
dGgoKSBjb25zdCB7IHJldHVybiBtX3JlY3Qud2lkdGgoKTsgfQotICAgICAgICBmbG9hdCBoZWln
aHQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QuaGVpZ2h0KCk7IH0KLQotICAgIHByaXZhdGU6Ci0g
ICAgICAgIFdFQkNPUkVfRVhQT1JUIENsaWVudFJlY3QoKTsKLSAgICAgICAgV0VCQ09SRV9FWFBP
UlQgZXhwbGljaXQgQ2xpZW50UmVjdChjb25zdCBJbnRSZWN0Jik7Ci0gICAgICAgIFdFQkNPUkVf
RVhQT1JUIGV4cGxpY2l0IENsaWVudFJlY3QoY29uc3QgRmxvYXRSZWN0Jik7Ci0KLSAgICAgICAg
RmxvYXRSZWN0IG1fcmVjdDsKLSAgICB9OyAKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuaWRsIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NsaWVudFJlY3QuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDk5
NDBhOWRmMS4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3Qu
aWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotWwotICAgIEltcGxlbWVudGF0aW9uTGFja3NW
VGFibGUsCi0gICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCi1dIGludGVyZmFjZSBDbGll
bnRSZWN0IHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGZsb2F0IHRvcDsK
LSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGZsb2F0IHJpZ2h0OwotICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZmxvYXQgYm90dG9tOwotICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZmxvYXQgbGVmdDsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5yZXN0cmljdGVkIGZsb2F0IHdpZHRoOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJl
c3RyaWN0ZWQgZmxvYXQgaGVpZ2h0OwotCi0gICAgc2VyaWFsaXplciA9IHsgYXR0cmlidXRlIH07
Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDM1NGUzY2M1ODcxLi4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ2xpZW50UmVjdExpc3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmgiCi0KLSNpbmNsdWRlICJD
bGllbnRSZWN0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotQ2xpZW50UmVjdExpc3Q6OkNs
aWVudFJlY3RMaXN0KCkKLXsKLX0KLQotQ2xpZW50UmVjdExpc3Q6OkNsaWVudFJlY3RMaXN0KGNv
bnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKLXsKLSAgICBtX2xpc3QucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShxdWFkcy5zaXplKCkpOwotICAgIGZvciAoYXV0byYgcXVhZCA6IHF1YWRzKQot
ICAgICAgICBtX2xpc3QudW5jaGVja2VkQXBwZW5kKENsaWVudFJlY3Q6OmNyZWF0ZShxdWFkLmVu
Y2xvc2luZ0JvdW5kaW5nQm94KCkpKTsKLX0KLQotQ2xpZW50UmVjdExpc3Q6OkNsaWVudFJlY3RM
aXN0KFZlY3RvcjxSZWY8Q2xpZW50UmVjdD4+JiYgcmVjdHMpCi0gICAgOiBtX2xpc3QoV1RGTW92
ZShyZWN0cykpCi17Ci19Ci0KLUNsaWVudFJlY3RMaXN0Ojp+Q2xpZW50UmVjdExpc3QoKQotewot
fQotCi11bnNpZ25lZCBDbGllbnRSZWN0TGlzdDo6bGVuZ3RoKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9saXN0LnNpemUoKTsKLX0KLQotQ2xpZW50UmVjdCogQ2xpZW50UmVjdExpc3Q6Oml0ZW0o
dW5zaWduZWQgaW5kZXgpCi17Ci0gICAgaWYgKGluZGV4ID49IG1fbGlzdC5zaXplKCkpIHsKLSAg
ICAgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIHRocm93IGFuIElOREVYX1NJWkVfRVJSIGV4Y2Vw
dGlvbj8KLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBtX2xpc3Rb
aW5kZXhdLnB0cigpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGllbnRSZWN0TGlzdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTFjZDcxMzIz
NC4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0LmgK
KysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkZsb2F0
UXVhZC5oIgotI2luY2x1ZGUgPHd0Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAg
Y2xhc3MgQ2xpZW50UmVjdDsKLQotICAgIGNsYXNzIENsaWVudFJlY3RMaXN0IDogcHVibGljIFJl
ZkNvdW50ZWQ8Q2xpZW50UmVjdExpc3Q+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBS
ZWY8Q2xpZW50UmVjdExpc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xpZW50
UmVjdExpc3QpOyB9Ci0gICAgICAgIHN0YXRpYyBSZWY8Q2xpZW50UmVjdExpc3Q+IGNyZWF0ZShj
b25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xp
ZW50UmVjdExpc3QocXVhZHMpKTsgfQotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJlY3RMaXN0
PiBjcmVhdGUoVmVjdG9yPFJlZjxDbGllbnRSZWN0Pj4mJiByZWN0cykgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDbGllbnRSZWN0TGlzdChXVEZNb3ZlKHJlY3RzKSkpOyB9Ci0gICAgICAgIFdFQkNP
UkVfRVhQT1JUIH5DbGllbnRSZWN0TGlzdCgpOwotCi0gICAgICAgIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0OwotICAgICAgICBDbGllbnRSZWN0KiBpdGVtKHVuc2lnbmVkIGluZGV4KTsKLQotICAg
IHByaXZhdGU6Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIENsaWVudFJlY3RMaXN0KCk7Ci0gICAg
ICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IENsaWVudFJlY3RMaXN0KGNvbnN0IFZlY3RvcjxG
bG9hdFF1YWQ+Jik7Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IENsaWVudFJlY3RM
aXN0KFZlY3RvcjxSZWY8Q2xpZW50UmVjdD4+JiYpOwotCi0gICAgICAgIFZlY3RvcjxSZWY8Q2xp
ZW50UmVjdD4+IG1fbGlzdDsKLSAgICB9OyAKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGE1ZGJjZjY3MWY1Li4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
ZW50UmVjdExpc3QuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotWwotICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUsCi0gICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCi1dIGlu
dGVyZmFjZSBDbGllbnRSZWN0TGlzdCB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgbGVuZ3RoOwotICAgIGdldHRlciBDbGllbnRSZWN0IGl0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCk7Ci0gICAgLy8gRklYTUU6IEZpeCBsaXN0IGJlaGF2aW9yIHRvIGFsbG93IGN1c3RvbSBl
eGNlcHRpb25zIHRvIGJlIHRocm93bi4KLX07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
CmluZGV4IDI3MGU0MTY2OGQyLi4wYTA1NDIxOWI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5P
bmUuY3BwCkBAIC0zNyw4ICszNyw2IEBACiAjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29w
ZS5jcHAiCiAjaW5jbHVkZSAiQ2hpbGROb2RlTGlzdC5jcHAiCiAjaW5jbHVkZSAiQ2xhc3NDb2xs
ZWN0aW9uLmNwcCIKLSNpbmNsdWRlICJDbGllbnRSZWN0LmNwcCIKLSNpbmNsdWRlICJDbGllbnRS
ZWN0TGlzdC5jcHAiCiAjaW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQuY3BwIgogI2luY2x1ZGUgIkNv
bGxlY3Rpb25JbmRleENhY2hlLmNwcCIKICNpbmNsdWRlICJDb21tZW50LmNwcCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCA4MTg5MjQzYzY0Zi4uODFiYzczMWJjMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKQEAgLTMzLDggKzMzLDYgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRl
ICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIgot
I2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKLSNpbmNsdWRlICJDbGllbnRSZWN0TGlzdC5oIgogI2lu
Y2x1ZGUgIkNvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJDb250YWlu
ZXJOb2RlQWxnb3JpdGhtcy5oIgogI2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVl
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAwNjc3MjA3
ZGViYS4uODlmOGVkYjE4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcApAQCAtMzUsOCArMzUsNiBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNp
bmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0j
aW5jbHVkZSAiQ2xpZW50UmVjdC5oIgotI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmgiCiAjaW5j
bHVkZSAiQ29tbW9uVk0uaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNp
bmNsdWRlICJDb250ZW50VHlwZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24u
Y3BwCmluZGV4IGU2ODg0ODA5N2E4Li41MjE0YTc5NWU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVlRUUmVnaW9uLmNwcApAQCAtMzQsNyArMzQsNiBAQAogCiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogCi0jaW5jbHVkZSAiQ2xpZW50UmVjdC5oIgogI2luY2x1ZGUgIkRPTVJlY3QuaCIK
ICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJdGVyYXRv
ci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCAxM2ZlYTAzOTBi
ZS4uNWRjOWJkNDFlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBA
IC0zMiw3ICszMiw2IEBACiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICNpbmNsdWRlICJDYWNo
ZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAi
Q2xpZW50UmVjdC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1l
dGVycy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRp
dmVGdW5jdGlvblBhcmFtZXRlcnMuanMKaW5kZXggNWZjYmVjMWQ5NDcuLmZjOTVmYTQwMjJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0
aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMKQEAgLTY5NiwxMSAr
Njk2LDYgQEAgV2ViSW5zcGVjdG9yLk5hdGl2ZVByb3RvdHlwZUZ1bmN0aW9uUGFyYW1ldGVycyA9
IHsKICAgICAgICAgX19wcm90b19fOiBudWxsLAogICAgIH0sCiAKLSAgICBDbGllbnRSZWN0TGlz
dDogewotICAgICAgICBpdGVtOiAiW2luZGV4XSIsCi0gICAgICAgIF9fcHJvdG9fXzogbnVsbCwK
LSAgICB9LAotCiAgICAgQ29tbWFuZExpbmVBUElIb3N0OiB7CiAgICAgICAgIGNvcHlUZXh0OiAi
dGV4dCIsCiAgICAgICAgIGRhdGFiYXNlSWQ6ICJkYXRhYmFzZSIsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNsaWVudFJlY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNwcAppbmRleCAyZDcxZThlNTJmNy4u
NGY4N2UwYjZjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01D
bGllbnRSZWN0LmNwcApAQCAtMzUsMTIgKzM1LDEyIEBACiAjZGVmaW5lIFdFQktJVF9ET01fQ0xJ
RU5UX1JFQ1RfR0VUX1BSSVZBVEUob2JqKSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUob2Jq
LCBXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JFQ1QsIFdlYktpdERPTUNsaWVudFJlY3RQcml2YXRl
KQogCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUgewotICAgIFJl
ZlB0cjxXZWJDb3JlOjpDbGllbnRSZWN0PiBjb3JlT2JqZWN0OworICAgIFJlZlB0cjxXZWJDb3Jl
OjpET01SZWN0PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYktpdERPTUNsaWVudFJlY3QqIGtpdChXZWJDb3JlOjpD
bGllbnRSZWN0KiBvYmopCitXZWJLaXRET01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6RE9NUmVj
dCogb2JqKQogewogICAgIGlmICghb2JqKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTUx
LDEyICs1MSwxMiBAQCBXZWJLaXRET01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6Q2xpZW50UmVj
dCogb2JqKQogICAgIHJldHVybiB3cmFwQ2xpZW50UmVjdChvYmopOwogfQogCi1XZWJDb3JlOjpD
bGllbnRSZWN0KiBjb3JlKFdlYktpdERPTUNsaWVudFJlY3QqIHJlcXVlc3QpCitXZWJDb3JlOjpE
T01SZWN0KiBjb3JlKFdlYktpdERPTUNsaWVudFJlY3QqIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJu
IHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRSZWN0Kj4oV0VCS0lUX0RPTV9P
QkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3QpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gcmVxdWVz
dCA/IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRPTVJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1
ZXN0KS0+Y29yZU9iamVjdCkgOiBudWxscHRyOwogfQogCi1XZWJLaXRET01DbGllbnRSZWN0KiB3
cmFwQ2xpZW50UmVjdChXZWJDb3JlOjpDbGllbnRSZWN0KiBjb3JlT2JqZWN0KQorV2ViS2l0RE9N
Q2xpZW50UmVjdCogd3JhcENsaWVudFJlY3QoV2ViQ29yZTo6RE9NUmVjdCogY29yZU9iamVjdCkK
IHsKICAgICBBU1NFUlQoY29yZU9iamVjdCk7CiAgICAgcmV0dXJuIFdFQktJVF9ET01fQ0xJRU5U
X1JFQ1QoZ19vYmplY3RfbmV3KFdFQktJVF9ET01fVFlQRV9DTElFTlRfUkVDVCwgImNvcmUtb2Jq
ZWN0IiwgY29yZU9iamVjdCwgbnVsbHB0cikpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyB2
b2lkIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfY29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQog
ICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fY2xpZW50X3JlY3RfcGFyZW50X2NsYXNzKS0+
Y29uc3RydWN0ZWQob2JqZWN0KTsKIAogICAgIFdlYktpdERPTUNsaWVudFJlY3RQcml2YXRlKiBw
cml2ID0gV0VCS0lUX0RPTV9DTElFTlRfUkVDVF9HRVRfUFJJVkFURShvYmplY3QpOwotICAgIHBy
aXYtPmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRSZWN0Kj4oV0VCS0lU
X0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCk7CisgICAgcHJpdi0+Y29yZU9iamVjdCA9
IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRPTVJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3Qp
LT5jb3JlT2JqZWN0KTsKICAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpwdXQocHJpdi0+Y29y
ZU9iamVjdC5nZXQoKSwgb2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmNwcAppbmRleCAxNjAxOTk3N2FiYi4uMTFi
ZDYxMjM1YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q2xpZW50UmVjdExpc3QuY3BwCkBAIC0zNSwzMiArMzUsNDcgQEAKIAogI2RlZmluZSBXRUJLSVRf
RE9NX0NMSUVOVF9SRUNUX0xJU1RfR0VUX1BSSVZBVEUob2JqKSBHX1RZUEVfSU5TVEFOQ0VfR0VU
X1BSSVZBVEUob2JqLCBXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JFQ1RfTElTVCwgV2ViS2l0RE9N
Q2xpZW50UmVjdExpc3RQcml2YXRlKQogCitjbGFzcyBDbGllbnRSZWN0TGlzdCA6IHB1YmxpYyBS
ZWZDb3VudGVkPENsaWVudFJlY3RMaXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDbGll
bnRSZWN0TGlzdD4gY3JlYXRlKGNvbnN0IFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0
Pj4mIGl0ZW1zKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xpZW50UmVj
dExpc3QoaXRlbXMpKTsKKyAgICB9CisKKyAgICBjb25zdCBXVEY6OlZlY3RvcjxSZWY8V2ViQ29y
ZTo6RE9NUmVjdD4+PiYgaXRlbXMoKSBjb25zdCB7IHJldHVybiBtX2l0ZW1zKCkgfQorCitwcml2
YXRlOgorICAgIENsaWVudFJlY3RMaXN0KGNvbnN0IFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpE
T01SZWN0Pj4mIGl0ZW1zKQorICAgICAgICA6IG1faXRlbXMoaXRlbXMKKyAgICB7IH0KKworICAg
IFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4+IG1faXRlbXM7Cit9OworCiB0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRlIHsKLSAgICBSZWZQdHI8
V2ViQ29yZTo6Q2xpZW50UmVjdExpc3Q+IGNvcmVPYmplY3Q7CisgICAgUmVmUHRyPENsaWVudFJl
Y3RMaXN0PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1XZWJLaXRET01DbGllbnRSZWN0TGlzdCoga2l0KFdlYkNv
cmU6OkNsaWVudFJlY3RMaXN0KiBvYmopCitXZWJLaXRET01DbGllbnRSZWN0TGlzdCoga2l0KGNv
bnN0IFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mIG9iaikKIHsKICAgICBpZiAo
IW9iaikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAoZ3BvaW50ZXIgcmV0ID0g
RE9NT2JqZWN0Q2FjaGU6OmdldChvYmopKQotICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9DTElF
TlRfUkVDVF9MSVNUKHJldCk7Ci0KICAgICByZXR1cm4gd3JhcENsaWVudFJlY3RMaXN0KG9iaik7
CiB9CiAKLVdlYkNvcmU6OkNsaWVudFJlY3RMaXN0KiBjb3JlKFdlYktpdERPTUNsaWVudFJlY3RM
aXN0KiByZXF1ZXN0KQorc3RhdGljIENsaWVudFJlY3RMaXN0KiBjb3JlKFdlYktpdERPTUNsaWVu
dFJlY3RMaXN0KiByZXF1ZXN0KQogewotICAgIHJldHVybiByZXF1ZXN0ID8gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29y
ZU9iamVjdCkgOiBudWxscHRyOworICAgIHJldHVybiByZXF1ZXN0ID8gc3RhdGljX2Nhc3Q8Q2xp
ZW50UmVjdExpc3QqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCkgOiBu
dWxscHRyOwogfQogCi1XZWJLaXRET01DbGllbnRSZWN0TGlzdCogd3JhcENsaWVudFJlY3RMaXN0
KFdlYkNvcmU6OkNsaWVudFJlY3RMaXN0KiBjb3JlT2JqZWN0KQorV2ViS2l0RE9NQ2xpZW50UmVj
dExpc3QqIHdyYXBDbGllbnRSZWN0TGlzdChjb25zdCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpET01S
ZWN0PiYgY29yZU9iamVjdCkKIHsKICAgICBBU1NFUlQoY29yZU9iamVjdCk7Ci0gICAgcmV0dXJu
IFdFQktJVF9ET01fQ0xJRU5UX1JFQ1RfTElTVChnX29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBF
X0NMSUVOVF9SRUNUX0xJU1QsICJjb3JlLW9iamVjdCIsIGNvcmVPYmplY3QsIG51bGxwdHIpKTsK
KyAgICBhdXRvIGxpc3QgPSBDbGllbnRSZWN0TGlzdDo6Y3JlYXRlKGNvcmVPYmplY3QpOworICAg
IHJldHVybiBXRUJLSVRfRE9NX0NMSUVOVF9SRUNUX0xJU1QoZ19vYmplY3RfbmV3KFdFQktJVF9E
T01fVFlQRV9DTElFTlRfUkVDVF9MSVNULCAiY29yZS1vYmplY3QiLCBsaXN0LnB0cigpLCBudWxs
cHRyKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApAQCAtMTAxLDggKzExNiw3IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9jb25zdHJ1Y3RlZChHT2JqZWN0
KiBvYmplY3QpCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV9jbGllbnRfcmVjdF9saXN0
X3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdGVkKG9iamVjdCk7CiAKICAgICBXZWJLaXRET01DbGll
bnRSZWN0TGlzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfRE9NX0NMSUVOVF9SRUNUX0xJU1RfR0VU
X1BSSVZBVEUob2JqZWN0KTsKLSAgICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6Q2xpZW50UmVjdExpc3QqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpLT5jb3JlT2Jq
ZWN0KTsKLSAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpwdXQocHJpdi0+Y29yZU9iamVjdC5n
ZXQoKSwgb2JqZWN0KTsKKyAgICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2xpZW50
UmVjdExpc3QqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpLT5jb3JlT2JqZWN0KTsKIH0KIAog
c3RhdGljIHZvaWQgd2Via2l0X2RvbV9jbGllbnRfcmVjdF9saXN0X2NsYXNzX2luaXQoV2ViS2l0
RE9NQ2xpZW50UmVjdExpc3RDbGFzcyogcmVxdWVzdENsYXNzKQpAQCAtMTM1LDE0ICsxNDksMTQg
QEAgV2ViS2l0RE9NQ2xpZW50UmVjdCogd2Via2l0X2RvbV9jbGllbnRfcmVjdF9saXN0X2l0ZW0o
V2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHMKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19D
TElFTlRfUkVDVF9MSVNUKHNlbGYpLCBudWxscHRyKTsKLSAgICBXZWJDb3JlOjpDbGllbnRSZWN0
TGlzdCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6Q2xp
ZW50UmVjdD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPml0ZW0oaW5kZXgpKTsK
LSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7CisgICAgQ2xpZW50
UmVjdExpc3QqIGxpc3QgPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgUmVmPFdlYkNvcmU6OkRP
TVJlY3Q+IGdvYmplY3RSZXN1bHQgPSBsaXN0LT5pdGVtcygpLml0ZW0oaW5kZXgpOworICAgIHJl
dHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LnB0cigpKTsKIH0KIAogZ3Vsb25nIHdlYmtp
dF9kb21fY2xpZW50X3JlY3RfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTUNsaWVudFJlY3RMaXN0
KiBzZWxmKQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0NMSUVOVF9SRUNUX0xJU1Qoc2Vs
ZiksIDApOwotICAgIHJldHVybiBXZWJLaXQ6OmNvcmUoc2VsZiktPmxlbmd0aCgpOworICAgIHJl
dHVybiBXZWJLaXQ6OmNvcmUoc2VsZiktPml0ZW1zKCkubGVuZ3RoKCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZh
dGUuaAppbmRleCAzYmM1YjRiZTEzMy4uOWZjMzg2MzMwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xp
ZW50UmVjdExpc3RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUuaApA
QCAtMTksMTEgKzE5LDExIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8V2ViQ29yZS9D
bGllbnRSZWN0TGlzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRE9NUmVjdC5oPgogI2luY2x1ZGUg
PHdlYmtpdGRvbS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci1XZWJLaXRET01DbGllbnRSZWN0TGlzdCogd3Jh
cENsaWVudFJlY3RMaXN0KFdlYkNvcmU6OkNsaWVudFJlY3RMaXN0Kik7Ci1XZWJLaXRET01DbGll
bnRSZWN0TGlzdCoga2l0KFdlYkNvcmU6OkNsaWVudFJlY3RMaXN0Kik7Ci1XZWJDb3JlOjpDbGll
bnRSZWN0TGlzdCogY29yZShXZWJLaXRET01DbGllbnRSZWN0TGlzdCopOworV2ViS2l0RE9NQ2xp
ZW50UmVjdExpc3QqIHdyYXBDbGllbnRSZWN0TGlzdChjb25zdCBXVEY6OlZlY3RvcjxSZWY8V2Vi
Q29yZTo6RE9NUmVjdD4+Jik7CitXZWJLaXRET01DbGllbnRSZWN0TGlzdCoga2l0KGNvbnN0IFdU
Rjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mKTsKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0
UHJpdmF0ZS5oCmluZGV4IGRhODhkNDk1ODVlLi5kN2VjYzBlMmJjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01DbGllbnRSZWN0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUuaApAQCAt
MTksMTEgKzE5LDExIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8V2ViQ29yZS9DbGll
bnRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9ET01SZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0
ZG9tL1dlYktpdERPTUNsaWVudFJlY3QuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci1XZWJLaXRE
T01DbGllbnRSZWN0KiB3cmFwQ2xpZW50UmVjdChXZWJDb3JlOjpDbGllbnRSZWN0Kik7Ci1XZWJL
aXRET01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6Q2xpZW50UmVjdCopOwotV2ViQ29yZTo6Q2xp
ZW50UmVjdCogY29yZShXZWJLaXRET01DbGllbnRSZWN0Kik7CitXZWJLaXRET01DbGllbnRSZWN0
KiB3cmFwQ2xpZW50UmVjdChXZWJDb3JlOjpET01SZWN0Kik7CitXZWJLaXRET01DbGllbnRSZWN0
KiBraXQoV2ViQ29yZTo6RE9NUmVjdCopOworV2ViQ29yZTo6RE9NUmVjdCogY29yZShXZWJLaXRE
T01DbGllbnRSZWN0Kik7CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwCmluZGV4IDczYTZlYTFhZTA3Li41OWExNWQz
MzlkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3Bw
CkBAIC0yMiw4ICsyMiw2IEBACiAKICNpbmNsdWRlIDxXZWJDb3JlL0NTU0ltcG9ydFJ1bGUuaD4K
ICNpbmNsdWRlICJET01PYmplY3RDYWNoZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50UmVj
dC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50UmVjdExpc3QuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RPTVJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9FeGNlcHRpb25Db2RlLmg+CkBAIC0xMjI2LDI3ICsxMjI0LDEyIEBAIGdsb25nIHdl
YmtpdF9kb21fZWxlbWVudF9nZXRfc2Nyb2xsX2hlaWdodChXZWJLaXRET01FbGVtZW50KiBzZWxm
KQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBSZWY8V2ViQ29yZTo6Q2xpZW50UmVj
dD4gdG9DbGllbnRSZWN0KFdlYkNvcmU6OkRPTVJlY3QmIHJlY3QpCi17Ci0gICAgcmV0dXJuIFdl
YkNvcmU6OkNsaWVudFJlY3Q6OmNyZWF0ZShXZWJDb3JlOjpGbG9hdFJlY3QocmVjdC54KCksIHJl
Y3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpKTsKLX0KLQogV2ViS2l0RE9NQ2xp
ZW50UmVjdCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9ib3VuZGluZ19jbGllbnRfcmVjdChXZWJL
aXRET01FbGVtZW50KiBzZWxmKQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQo
c2VsZiksIG51bGxwdHIpOwogICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7Ci0gICAgYXV0byBjbGllbnRSZWN0ID0gdG9DbGllbnRSZWN0KGl0ZW0tPmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoY2xpZW50UmVjdC5w
dHIoKSk7Ci19Ci0KLXN0YXRpYyBWZWN0b3I8UmVmPFdlYkNvcmU6OkNsaWVudFJlY3Q+PiB0b0Ns
aWVudFJlY3RWZWN0b3IoVmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mJiByZWN0cykKLXsK
LSAgICBWZWN0b3I8UmVmPFdlYkNvcmU6OkNsaWVudFJlY3Q+PiBjbGllbnRSZWN0czsKLSAgICBj
bGllbnRSZWN0cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJlY3RzLnNpemUoKSk7Ci0gICAgZm9y
IChhdXRvJiByZWN0IDogcmVjdHMpCi0gICAgICAgIGNsaWVudFJlY3RzLnVuY2hlY2tlZEFwcGVu
ZCh0b0NsaWVudFJlY3QocmVjdCkpOwotICAgIHJldHVybiBjbGllbnRSZWN0czsKKyAgICByZXR1
cm4gV2ViS2l0OjpraXQoaXRlbS0+Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucHRyKCkpOwogfQog
CiBXZWJLaXRET01DbGllbnRSZWN0TGlzdCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRf
cmVjdHMoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKQEAgLTEyNTQsOCArMTIzNyw3IEBAIFdlYktp
dERPTUNsaWVudFJlY3RMaXN0KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsaWVudF9yZWN0cyhX
ZWJLaXRET01FbGVtZW50KiBzCiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxm
KSwgbnVsbHB0cik7CiAgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShz
ZWxmKTsKLSAgICBhdXRvIGNsaWVudFJlY3RzID0gV2ViQ29yZTo6Q2xpZW50UmVjdExpc3Q6OmNy
ZWF0ZSh0b0NsaWVudFJlY3RWZWN0b3IoaXRlbS0+Z2V0Q2xpZW50UmVjdHMoKSkpOwotICAgIHJl
dHVybiBXZWJLaXQ6OmtpdChjbGllbnRSZWN0cy5wdHIoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6
a2l0KGl0ZW0tPmdldENsaWVudFJlY3RzKCkpOwogfQogCiBXZWJLaXRET01FbGVtZW50KiB3ZWJr
aXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF9wYXJlbnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308649</attachid>
            <date>2017-04-28 19:01:57 -0700</date>
            <delta_ts>2017-04-28 19:09:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171418-20170428190156.patch</filename>
            <type>text/plain</type>
            <size>42280</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBmMmYzODIyNWUyYTQw
YTJlNjg1ODY2NTZkMjhiNWFkODVlN2RkOS4uYzZmZTNkNDI4ZGQ5NWQ4NjAxMmY3NGU1Nzg4NDJi
YjlkYzUyODM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDE3LTA0LTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBs
ZWdhY3kgQ2xpZW50UmVjdCAvIENsaWVudFJlY3RMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0MTgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBDbGllbnRS
ZWN0IC8gQ2xpZW50UmVjdExpc3QgdHlwZXMgbm93IHdlIHVzZQorICAgICAgICBET01SZWN0IGV2
ZXJ5d2hlcmUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0NsaWVudFJl
Y3QuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9DbGllbnRSZWN0Lmg6IFJlbW92ZWQuCisg
ICAgICAgICogZG9tL0NsaWVudFJlY3QuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9DbGll
bnRSZWN0TGlzdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogZG9tL0NsaWVudFJlY3RMaXN0Lmg6
IFJlbW92ZWQuCisgICAgICAgICogZG9tL0NsaWVudFJlY3RMaXN0LmlkbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvdHJh
Y2svVlRUUmVnaW9uLmNwcDoKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKwor
MjAxNy0wNC0yOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIFN0
b3AgdXNpbmcgbGVnYWN5IENsaWVudFJlY3QgLyBDbGllbnRSZWN0TGlzdCBpbiBJbnRlcm5hbHMK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTQxMgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAwMDQxNmVmMTdmOTU2ZmU2ZmI4ZDU4YTVjOGJi
YWU1NDBiZTYwYTliLi5jMDE4MWZhYjAwYzEzZGUyNWQ2MWE5YjVmZGM1NTFiNTRmNDMwNGMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wNC0yOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IENsaWVudFJlY3QgLyBDbGllbnRSZWN0TGlzdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNDE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBDbGllbnRSZWN0TGlzdC1yZWxhdGVkIGNv
ZGUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFt
ZXRlcnMuanM6CisKIDIwMTctMDQtMjcgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlA
c29ueS5jb20+CiAKICAgICAgICAgW0dUS10gV2ViIEluc3BlY3RvcjogQWRkIG5ldyBHVEsrIGlj
b25zIGZvciBkaWZmZXJlbnQgU2NyaXB0IFRpbWVsaW5lIFZpZXdzIChFdmVudHMgYW5kIENhbGwg
VHJlZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjFiMzAwMjQ1YTU0YzE4NDZlZmQ0NDE2ZjZkOGJkY2U5MmU3
YzQzZi4uNGE3MzFhYzU0MWU2NDYwZjVkYmM1NzExNWQwOWUyNGYzYzBhOWRlMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTA0LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBsZWdhY3kgQ2xpZW50UmVjdCAvIENs
aWVudFJlY3RMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzE0MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBHVEsgYnVpbGQgZml4LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
a2l0KToKKyAgICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgIChXZWJLaXQ6OndyYXBDbGll
bnRSZWN0KToKKyAgICAgICAgKHdlYmtpdF9kb21fY2xpZW50X3JlY3RfY29uc3RydWN0ZWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q2xpZW50UmVjdExpc3QuY3BwOgorICAgICAgICAoQ2xpZW50UmVjdExpc3Q6OmNyZWF0ZSk6Cisg
ICAgICAgIChDbGllbnRSZWN0TGlzdDo6aXRlbXMpOgorICAgICAgICAoQ2xpZW50UmVjdExpc3Q6
OkNsaWVudFJlY3RMaXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdFBy
aXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUVsZW1lbnQuY3BwOgorICAgICAgICAod2Via2l0X2RvbV9lbGVtZW50X2dldF9i
b3VuZGluZ19jbGllbnRfcmVjdCk6CisgICAgICAgICh3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2Ns
aWVudF9yZWN0cyk6CisKIDIwMTctMDQtMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIGdldFVzZXJNZWRpYSB2aWRlbyBzdHJlYW1zIHNob3VsZCBmb2xsb3cg
ZGV2aWNlIG9yaWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDFjMTdkZTZjNjUxNDkw
ZWU3YjhmNzg0Y2NjMjY3ZmQ0YmNhZDUwZGYuLmQ5NjE0YzBiZjVhMzhiZDNkZjMyYmI0MzQxMGU0
MTQyYjczYzEwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MDYsOCArNDA2LDYgQEAgc2V0
KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBkb20vQ0RBVEFTZWN0aW9uLmlkbAogICAg
IGRvbS9DaGFyYWN0ZXJEYXRhLmlkbAogICAgIGRvbS9DaGlsZE5vZGUuaWRsCi0gICAgZG9tL0Ns
aWVudFJlY3QuaWRsCi0gICAgZG9tL0NsaWVudFJlY3RMaXN0LmlkbAogICAgIGRvbS9DbGlwYm9h
cmRFdmVudC5pZGwKICAgICBkb20vQ29tbWVudC5pZGwKICAgICBkb20vQ29tcG9zaXRpb25FdmVu
dC5pZGwKQEAgLTE0NDcsOCArMTQ0NSw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20v
Q2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAKICAgICBkb20vQ2hpbGROb2RlTGlzdC5jcHAKICAg
ICBkb20vQ2xhc3NDb2xsZWN0aW9uLmNwcAotICAgIGRvbS9DbGllbnRSZWN0LmNwcAotICAgIGRv
bS9DbGllbnRSZWN0TGlzdC5jcHAKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuY3BwCiAgICAgZG9t
L0NvbGxlY3Rpb25JbmRleENhY2hlLmNwcAogICAgIGRvbS9Db21tZW50LmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCmluZGV4IGJkOGI3ODIyN2Y4YmJhMTJiZjg1Nzk2ZWQyNjE1ZmI5NThj
MTFkMjQuLjVhNjYxZjE2MTE0MTRmNjhkNjY5ZTQ2OGRkMGI3YjE2ZDdlMTE3NjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTEwNyw4ICsxMDcsNiBAQAogI2VuZGlmCiAjaW5jbHVk
ZSAiSlNDREFUQVNlY3Rpb24uY3BwIgogI2luY2x1ZGUgIkpTQ2hhcmFjdGVyRGF0YS5jcHAiCi0j
aW5jbHVkZSAiSlNDbGllbnRSZWN0LmNwcCIKLSNpbmNsdWRlICJKU0NsaWVudFJlY3RMaXN0LmNw
cCIKICNpbmNsdWRlICJKU0Nsb3NlRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTQ29tbWFuZExpbmVB
UElIb3N0LmNwcCIKICNpbmNsdWRlICJKU0NvbW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggN2M1NzQ3MGYxZjNjMjk4OWY5YmMxODI2ZTQ3MjQ4M2Q1NjlhYmVlOS4u
MGFjZDI5YzEzZDM2MDRjMmVmZDZmNzc4M2M0YTJmOWM2OGZmZTExYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0zNDIsOCArMzQyLDYgQEAgSlNfQklORElOR19JRExTID0gXAog
ICAgICQoV2ViQ29yZSkvZG9tL0NEQVRBU2VjdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9t
L0NoYXJhY3RlckRhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9DaGlsZE5vZGUuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL2RvbS9DbGllbnRSZWN0LmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20v
Q2xpZW50UmVjdExpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9DbGlwYm9hcmRFdmVudC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0NvbW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Rv
bS9Db21wb3NpdGlvbkV2ZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDkzYzQwZDQ1NzMwNGYyNDA4NjIzOWE4NmU1
MzExYjEyMmNkNWI0ZS4uMzYyMWFiZDY4NTBiNmEzNTVkYzYwZmViNjM3MjExMjBmNzkzOGQwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNTc5NywxNCArNTc5Nyw2IEBACiAJCUJDQkQyMUFCMEU0MTdBRDQwMEEwNzBGMiAvKiBV
UkxIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0JEMjFBQTBFNDE3QUQ0MDBBMDcwRjIgLyogVVJMSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDQkZCNTNDMERDRDI5Q0YwMDE5QjNFNSAv
KiBKU0RPTVdpbmRvd1NoZWxsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQkZCNTNBMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxs
LmNwcCAqLzsgfTsKIAkJQkNCRkI1M0QwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hl
bGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkZC
NTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNDMDY1N0QwRjNDRTFCNzAwQ0Qy
RDg3IC8qIENsaWVudFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNDMDY1NzcwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuY3BwICov
OyB9OwotCQlCQ0MwNjU3RTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1NzgwRjNDRTFCNzAw
Q0QyRDg3IC8qIENsaWVudFJlY3QuaCAqLzsgfTsKLQkJQkNDMDY1ODAwRjNDRTFCNzAwQ0QyRDg3
IC8qIENsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQzA2NTdBMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5j
cHAgKi87IH07Ci0JCUJDQzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1N0Iw
RjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggKi87IH07Ci0JCUJDQzA2NTg3MEYz
Q0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1ODMwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xp
ZW50UmVjdC5jcHAgKi87IH07Ci0JCUJDQzA2NTg4MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVu
dFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
QzA2NTg0MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLzsgfTsKLQkJQkNDMDY1
ODkwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1ODUwRjNDRTJBNzAwQ0QyRDg3
IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovOyB9OwotCQlCQ0MwNjU4QTBGM0NFMkE3MDBDRDJE
ODcgLyogSlNDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNDMDY1ODYwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExp
c3QuaCAqLzsgfTsKIAkJQkNDMEU4NzUxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0MwRTg3MzFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmNwcCAqLzsgfTsK
IAkJQkNDMEU4NzYxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMEU4NzQxQkZFNzBF
OTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5oICovOyB9OwogCQlCQ0M1QkUwMDBDMEU5
MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzVCREZFMEMwRTkzMTEwMDExQzJEQiAvKiBKU0NT
U1N0eWxlU2hlZXQuY3BwICovOyB9OwpAQCAtMTQyMzksMTYgKzE0MjMxLDYgQEAKIAkJQkNCRDIx
QUEwRTQxN0FENDAwQTA3MEYyIC8qIFVSTEhhc2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVVJMSGFzaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0JGQjUz
QTBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVdpbmRvd1NoZWxsLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93
U2hlbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01XaW5kb3dTaGVs
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3NzBGM0NFMUI3MDBDRDJE
ODcgLyogQ2xpZW50UmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDbGllbnRSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1Nzgw
RjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ2xpZW50UmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0Mw
NjU3OTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQ2xpZW50UmVjdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzA2
NTdBMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGllbnRSZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUJDQzA2NTdCMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGllbnRSZWN0TGlzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3QzBGM0NFMUI3MDBDRDJEODcgLyog
Q2xpZW50UmVjdExpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENsaWVudFJlY3RMaXN0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODMwRjNDRTJBNzAwQ0Qy
RDg3IC8qIEpTQ2xpZW50UmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0NsaWVudFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0Mw
NjU4NDBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTQ2xpZW50UmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlCQ0MwNjU4NTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NsaWVudFJlY3RMaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODYwRjNDRTJBNzAwQ0QyRDg3IC8q
IEpTQ2xpZW50UmVjdExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlND
bGllbnRSZWN0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0MwRTg3MzFC
RkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxQaWN0dXJlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDQzBFODc0MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVy
ZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFBpY3R1cmVF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzVCREZFMEMwRTkzMTEw
MDExQzJEQiAvKiBKU0NTU1N0eWxlU2hlZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQ1NTU3R5bGVTaGVldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMTg0NiwxMCArMjE4MjgsNiBAQAogCQlBODNCNzkwRTBDQ0FGRjk3MDAwQjA4MjUg
LyogQ1NTICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlC
Q0MwNjU4MzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmNwcCAqLywKLQkJCQlCQ0Mw
NjU4NDBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggKi8sCi0JCQkJQkNDMDY1ODUw
RjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovLAotCQkJCUJDQzA2NTg2
MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi8sCiAJCQkJQkM0NkMxRjIw
QzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTRm9udEZhY2VSdWxlLmNwcCAqLywKIAkJCQlCQzQ2QzFG
MzBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NGb250RmFjZVJ1bGUuaCAqLywKIAkJCQlCQzQ2QzFG
NDBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NJbXBvcnRSdWxlLmNwcCAqLywKQEAgLTI1NDQ4LDEy
ICsyNTQyNiw2IEBACiAJCQkJQTgxODcyMTUwOTc3RDNDMDAwNTgyNkQ5IC8qIENoaWxkTm9kZUxp
c3QuaCAqLywKIAkJCQk4MzQ4QkZBOTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9u
LmNwcCAqLywKIAkJCQk4MzQ4QkZBQTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9u
LmggKi8sCi0JCQkJQkNDMDY1NzcwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuY3BwICov
LAotCQkJCUJDQzA2NTc4MEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmggKi8sCi0JCQkJ
QkNDMDY1NzkwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaWRsICovLAotCQkJCUJDQzA2
NTdBMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAgKi8sCi0JCQkJQkNDMDY1
N0IwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggKi8sCi0JCQkJQkNDMDY1N0Mw
RjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmlkbCAqLywKIAkJCQk4NTAzMUIyOTBB
NDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuY3BwICovLAogCQkJCTg1MDMxQjJBMEE0
NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5oICovLAogCQkJCTgzNkQwMzI3MURBODlC
NzMwMEZGRDk2QiAvKiBDbGlwYm9hcmRFdmVudC5pZGwgKi8sCkBAIC0yNjU5OCw4ICsyNjU3MCw2
IEBACiAJCQkJMTREODI0MDgwQUY5M0FFQjAwMDRGMDU3IC8qIENocm9tZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTRBODE0RDQxQzZERUM0MDAwQkY4NUFDIC8qIENsYXNzQ2hhbmdlSW52
YWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzQ4QkZBQzFCODU3Mjk4MDA5MTJGMzYg
LyogQ2xhc3NDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQ0MwNjU3RTBGM0NFMUI3
MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkNDMDY1ODEwRjND
RTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzNB
OTFFNjFDOTYzQjg4MDBEMUE3RTMgLyogQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NTAzMUI0MDBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZCOTJERjRCMTVGRUQwODcwMDk5NDQzMyAvKiBDbGlwUGF0aE9w
ZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzY1NCw4ICsyNzYyNCw2IEBACiAJCQkJRkRB
MTVFQTIxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQ2hhbm5lbE1lcmdlck5vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZEQTE1RUE0MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0NoYW5uZWxTcGxpdHRlck5v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMUY0MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0No
YXJhY3RlckRhdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDQzA2NTg4MEYzQ0UyQTcwMENEMkQ4
NyAvKiBKU0NsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDQzA2NThBMEYzQ0UyQTcw
MENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzZEMDMz
MjFEQThBMTQyMDBGRkQ5NkIgLyogSlNDbGlwYm9hcmRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTFGQjU1MDQxMTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTU4NEZFM0MxODY0RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElIb3N0
LmggaW4gSGVhZGVycyAqLywKQEAgLTMwNjcwLDggKzMwNjM4LDYgQEAKIAkJCQlBQkFGMjIwODBD
MDNCMUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBODE0
RDYxQzZERUU4RDAwQkY4NUFDIC8qIENsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTgzNDhCRkFCMUI4NTcyOTgwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNDMDY1N0QwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVu
dFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNDMDY1ODAwRjNDRTFCNzAwQ0QyRDg3IC8q
IENsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjNGMEE0NEVGQzcw
MEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1ODAzNzE2
MTFBNjZGMDBBMDBCQUY1MTkgLyogQ2xpcFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RF
QTc2MzUxNDYwQjcxQTAwOEIzMUYxIC8qIENsb2NrLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzE2
MjAsOCArMzE1ODYsNiBAQAogCQkJCUZEQTE1RUExMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0NoYW5u
ZWxNZXJnZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RUEzMTJCMDNFRTEwMDNB
NTgzQSAvKiBKU0NoYW5uZWxTcGxpdHRlck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVE
RjMxRjMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTQ2hhcmFjdGVyRGF0YS5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlCQ0MwNjU4NzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzNkQwMzMxMURBOEExM0YwMEZGRDk2QiAvKiBK
U0NsaXBib2FyZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRkI1NTA1MTEzRTNFOTEw
MDgyMTE3NiAvKiBKU0Nsb3NlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU4NEZFM0Ix
ODY0RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElIb3N0LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMzIwMDgsNyArMzE5NzIsNyBAQAogCQkJCTdDMzMwQTA3MURGOUY5NTEwMEQzMzk1QyAv
KiBKU1Bvc2l0aW9uT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzFGRjA5RDFD
QzYwMDAwQkUzMjUgLyogSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTQ0NjEzRUQwQ0Q2ODFCQTAwRkFEQTc1IC8qIEpTUHJvZ3Jlc3NFdmVudC5jcHAgaW4g
U291cmNlcyAqLywKLSAgICAgICAgICAgICAgICBBNTc4RjQzQjFERTAxNDIxMDAzREZDNkEgLyog
SlNQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTU3OEY0M0Ix
REUwMTQyMTAwM0RGQzZBIC8qIEpTUHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA3NzY2NEZDMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNrVGltZVBsdWdpblJl
cGxhY2VtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI2NThGRkExMTUyMkVGM0EwMERENTU5
NSAvKiBKU1JhZGlvTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMyMDEwOUQx
Q0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
ZW50UmVjdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhNjRlNzU1MTBmZjg1
ODQyM2I3MTdlZDc2ZWEwZjliMjEwYTI5ZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaWVu
dFJlY3QuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1DbGllbnRSZWN0OjpDbGllbnRSZWN0
KCkKLXsKLX0KLQotQ2xpZW50UmVjdDo6Q2xpZW50UmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQot
ICAgIDogbV9yZWN0KHJlY3QpCi17Ci19Ci0KLUNsaWVudFJlY3Q6OkNsaWVudFJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQotICAgIDogbV9yZWN0KHJlY3QpCi17Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyZTllZmI1Yjc0MGEzYmJmMDE5NmRiMGM5OTk4MjI4ZWQ0N2M3MzlmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9DbGllbnRSZWN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQot
I2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgotI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBJbnRSZWN0OyAKLQotICAgIGNsYXNzIENsaWVudFJl
Y3QgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxDbGllbnRSZWN0
PiB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJlY3Q+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xpZW50UmVjdCk7IH0KLSAgICAgICAgc3RhdGljIFJl
ZjxDbGllbnRSZWN0PiBjcmVhdGUoY29uc3QgSW50UmVjdCYgcmVjdCkgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDbGllbnRSZWN0KHJlY3QpKTsgfQotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJl
Y3Q+IGNyZWF0ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q2xpZW50UmVjdChyZWN0KSk7IH0KLQotICAgICAgICBmbG9hdCB0b3AoKSBjb25zdCB7IHJldHVy
biBtX3JlY3QueSgpOyB9Ci0gICAgICAgIGZsb2F0IHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9y
ZWN0Lm1heFgoKTsgfQotICAgICAgICBmbG9hdCBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX3Jl
Y3QubWF4WSgpOyB9Ci0gICAgICAgIGZsb2F0IGxlZnQoKSBjb25zdCB7IHJldHVybiBtX3JlY3Qu
eCgpOyB9Ci0gICAgICAgIGZsb2F0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LndpZHRo
KCk7IH0KLSAgICAgICAgZmxvYXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LmhlaWdo
dCgpOyB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBXRUJDT1JFX0VYUE9SVCBDbGllbnRSZWN0
KCk7Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IENsaWVudFJlY3QoY29uc3QgSW50
UmVjdCYpOwotICAgICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBDbGllbnRSZWN0KGNvbnN0
IEZsb2F0UmVjdCYpOwotCi0gICAgICAgIEZsb2F0UmVjdCBtX3JlY3Q7Ci0gICAgfTsgCi0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGll
bnRSZWN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0LmlkbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2Q5OTQwYTlkZjFkMTBhZjI4YjUzZGFhNjhmYzc3MzNhNTM1
MjdhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi1b
Ci0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLSAgICBFeHBvcnRNYWNybz1XRUJDT1JF
X0VYUE9SVCwKLV0gaW50ZXJmYWNlIENsaWVudFJlY3QgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnJlc3RyaWN0ZWQgZmxvYXQgdG9wOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3Ry
aWN0ZWQgZmxvYXQgcmlnaHQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBm
bG9hdCBib3R0b207Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBmbG9hdCBs
ZWZ0OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZmxvYXQgd2lkdGg7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBmbG9hdCBoZWlnaHQ7Ci0KLSAgICBz
ZXJpYWxpemVyID0geyBhdHRyaWJ1dGUgfTsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ2xpZW50UmVjdExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RM
aXN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU0ZTNjYzU4NzEzMmIwNjQ0
ZGE5NWUzMGQ2MmNlN2NlYWFkZmEyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaWVu
dFJlY3RMaXN0LmgiCi0KLSNpbmNsdWRlICJDbGllbnRSZWN0LmgiCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotQ2xpZW50UmVjdExpc3Q6OkNsaWVudFJlY3RMaXN0KCkKLXsKLX0KLQotQ2xpZW50
UmVjdExpc3Q6OkNsaWVudFJlY3RMaXN0KGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykK
LXsKLSAgICBtX2xpc3QucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShxdWFkcy5zaXplKCkpOwotICAg
IGZvciAoYXV0byYgcXVhZCA6IHF1YWRzKQotICAgICAgICBtX2xpc3QudW5jaGVja2VkQXBwZW5k
KENsaWVudFJlY3Q6OmNyZWF0ZShxdWFkLmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpKTsKLX0KLQot
Q2xpZW50UmVjdExpc3Q6OkNsaWVudFJlY3RMaXN0KFZlY3RvcjxSZWY8Q2xpZW50UmVjdD4+JiYg
cmVjdHMpCi0gICAgOiBtX2xpc3QoV1RGTW92ZShyZWN0cykpCi17Ci19Ci0KLUNsaWVudFJlY3RM
aXN0Ojp+Q2xpZW50UmVjdExpc3QoKQotewotfQotCi11bnNpZ25lZCBDbGllbnRSZWN0TGlzdDo6
bGVuZ3RoKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9saXN0LnNpemUoKTsKLX0KLQotQ2xpZW50
UmVjdCogQ2xpZW50UmVjdExpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpCi17Ci0gICAgaWYgKGlu
ZGV4ID49IG1fbGlzdC5zaXplKCkpIHsKLSAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIHRo
cm93IGFuIElOREVYX1NJWkVfRVJSIGV4Y2VwdGlvbj8KLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgfQotICAgIHJldHVybiBtX2xpc3RbaW5kZXhdLnB0cigpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExp
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiYTFjZDcxMzIzNDQ4MzEyNDc5ZGYxYTQzNDE1NWM0ODU0Y2Q3OTI1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJGbG9hdFF1YWQuaCIKLSNpbmNsdWRlIDx3dGYvUmVmLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIENsaWVudFJlY3Q7Ci0KLSAgICBjbGFz
cyBDbGllbnRSZWN0TGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPENsaWVudFJlY3RMaXN0PiB7Ci0g
ICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJlY3RMaXN0PiBjcmVhdGUoKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IENsaWVudFJlY3RMaXN0KTsgfQotICAgICAgICBzdGF0aWMg
UmVmPENsaWVudFJlY3RMaXN0PiBjcmVhdGUoY29uc3QgVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRz
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENsaWVudFJlY3RMaXN0KHF1YWRzKSk7IH0KLSAgICAg
ICAgc3RhdGljIFJlZjxDbGllbnRSZWN0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8Q2xpZW50UmVj
dD4+JiYgcmVjdHMpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xpZW50UmVjdExpc3QoV1RGTW92
ZShyZWN0cykpKTsgfQotICAgICAgICBXRUJDT1JFX0VYUE9SVCB+Q2xpZW50UmVjdExpc3QoKTsK
LQotICAgICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKLSAgICAgICAgQ2xpZW50UmVjdCog
aXRlbSh1bnNpZ25lZCBpbmRleCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBXRUJDT1JFX0VY
UE9SVCBDbGllbnRSZWN0TGlzdCgpOwotICAgICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBD
bGllbnRSZWN0TGlzdChjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYpOwotICAgICAgICBXRUJDT1JF
X0VYUE9SVCBleHBsaWNpdCBDbGllbnRSZWN0TGlzdChWZWN0b3I8UmVmPENsaWVudFJlY3Q+PiYm
KTsKLQotICAgICAgICBWZWN0b3I8UmVmPENsaWVudFJlY3Q+PiBtX2xpc3Q7Ci0gICAgfTsgCi0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGllbnRSZWN0TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuaWRs
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNWRiY2Y2NzFmNWE0YWNiNDFiMDliODcx
MDZkOTBhMWE3ZDM1MjNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwKKysrIC9kZXYvbnVs
bApAQCAtMSwzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICoKLSAqLwotCi1bCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLSAgICBFeHBv
cnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKLV0gaW50ZXJmYWNlIENsaWVudFJlY3RMaXN0IHsKLSAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgZ2V0dGVyIENs
aWVudFJlY3QgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKLSAgICAvLyBGSVhNRTogRml4IGxp
c3QgYmVoYXZpb3IgdG8gYWxsb3cgY3VzdG9tIGV4Y2VwdGlvbnMgdG8gYmUgdGhyb3duLgotfTsK
LQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggMjcwZTQxNjY4ZDIyOGM0NmE5YWZi
ZTQyZGY0ZWY5NzcxYzQwMmE4MS4uMGEwNTQyMTliNjg4YjA1ZTJmM2ZlODM2NWRlNzYxNmI3NGE2
NWNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0zNyw4ICszNyw2IEBACiAj
aW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAiCiAjaW5jbHVkZSAiQ2hpbGROb2Rl
TGlzdC5jcHAiCiAjaW5jbHVkZSAiQ2xhc3NDb2xsZWN0aW9uLmNwcCIKLSNpbmNsdWRlICJDbGll
bnRSZWN0LmNwcCIKLSNpbmNsdWRlICJDbGllbnRSZWN0TGlzdC5jcHAiCiAjaW5jbHVkZSAiQ2xp
cGJvYXJkRXZlbnQuY3BwIgogI2luY2x1ZGUgIkNvbGxlY3Rpb25JbmRleENhY2hlLmNwcCIKICNp
bmNsdWRlICJDb21tZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA4MTg5MjQzYzY0
ZjQ0YjcxODY3MWM3MDAxMWM4MzRkYTI4Mzc0YTEzLi44MWJjNzMxYmMwOTQ5ODIxYzhlNDZiZTNj
OGRhM2U5YmU0ZjMwYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMyw4ICszMyw2IEBA
CiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaCIKLSNpbmNsdWRlICJDbGllbnRSZWN0LmgiCi0j
aW5jbHVkZSAiQ2xpZW50UmVjdExpc3QuaCIKICNpbmNsdWRlICJDb21wb3NlZFRyZWVBbmNlc3Rv
ckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCIKICNpbmNs
dWRlICJDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMDY3NzIwN2RlYmFkNTMyYzZiM2YzNzM2OTg2YzViNDZm
YTdhYzYwYS4uODlmOGVkYjE4MzVkOWQ2MjJkMzcwNGYxNDZiOTFiN2JhZTRlMTAxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0zNSw4ICszNSw2IEBACiAj
aW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMu
aCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJDbGllbnRSZWN0LmgiCi0j
aW5jbHVkZSAiQ2xpZW50UmVjdExpc3QuaCIKICNpbmNsdWRlICJDb21tb25WTS5oIgogI2luY2x1
ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKaW5kZXggZTY4ODQ4MDk3YThjNDk5
OTU3NDAzNGVlYTIwYjU4ZjJiNTViNDZmZi4uNTIxNGE3OTVlNjE4MDcwZTViYzU1MmYzYjU4ZDJm
OWU5ZGVjYzdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcApAQCAt
MzQsNyArMzQsNiBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiQ2xp
ZW50UmVjdC5oIgogI2luY2x1ZGUgIkRPTVJlY3QuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3Qu
aCIKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJdGVyYXRvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmNwcAppbmRleCAxM2ZlYTAzOTBiZWM5MTQxYWQ4MDk5OTdjNmMyYTgyMTAy
ODMzNmU4Li41ZGM5YmQ0MWU4ZjgzNWE3YzRhMDdlYWI3NjZlMDMxZDhjNjYzNGVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKICNpbmNsdWRl
ICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50RnJhZ21lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpz
CmluZGV4IDVmY2JlYzFkOTQ3NzU2Yjg1YjA5YTNlMDcyMjkyOGM4MWZiMjZmMzAuLmZjOTVmYTQw
MjJmYTA2MzY4YzIwYTNiNzMyN2NhZmNhM2Y5ZTIxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2
ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcwpAQCAtNjk2LDExICs2OTYsNiBAQCBXZWJJbnNwZWN0b3Iu
TmF0aXZlUHJvdG90eXBlRnVuY3Rpb25QYXJhbWV0ZXJzID0gewogICAgICAgICBfX3Byb3RvX186
IG51bGwsCiAgICAgfSwKIAotICAgIENsaWVudFJlY3RMaXN0OiB7Ci0gICAgICAgIGl0ZW06ICJb
aW5kZXhdIiwKLSAgICAgICAgX19wcm90b19fOiBudWxsLAotICAgIH0sCi0KICAgICBDb21tYW5k
TGluZUFQSUhvc3Q6IHsKICAgICAgICAgY29weVRleHQ6ICJ0ZXh0IiwKICAgICAgICAgZGF0YWJh
c2VJZDogImRhdGFiYXNlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNsaWVudFJlY3QuY3BwCmluZGV4IDJkNzFlOGU1MmY3Yzg1NjA4MjQzMmVjMDVmMTdmZDMyYzNi
NmFlOWUuLjRmODdlMGI2YzAxZTI4N2JkZWFkYTlkYjcxZTM5YWYwNWM2OGEyZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NQ2xpZW50UmVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNwcApAQCAtMzUs
MTIgKzM1LDEyIEBACiAjZGVmaW5lIFdFQktJVF9ET01fQ0xJRU5UX1JFQ1RfR0VUX1BSSVZBVEUo
b2JqKSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUob2JqLCBXRUJLSVRfRE9NX1RZUEVfQ0xJ
RU5UX1JFQ1QsIFdlYktpdERPTUNsaWVudFJlY3RQcml2YXRlKQogCiB0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUgewotICAgIFJlZlB0cjxXZWJDb3JlOjpDbGllbnRS
ZWN0PiBjb3JlT2JqZWN0OworICAgIFJlZlB0cjxXZWJDb3JlOjpET01SZWN0PiBjb3JlT2JqZWN0
OwogfSBXZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LVdlYktpdERPTUNsaWVudFJlY3QqIGtpdChXZWJDb3JlOjpDbGllbnRSZWN0KiBvYmopCitXZWJL
aXRET01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6RE9NUmVjdCogb2JqKQogewogICAgIGlmICgh
b2JqKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTUxLDEyICs1MSwxMiBAQCBXZWJLaXRE
T01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6Q2xpZW50UmVjdCogb2JqKQogICAgIHJldHVybiB3
cmFwQ2xpZW50UmVjdChvYmopOwogfQogCi1XZWJDb3JlOjpDbGllbnRSZWN0KiBjb3JlKFdlYktp
dERPTUNsaWVudFJlY3QqIHJlcXVlc3QpCitXZWJDb3JlOjpET01SZWN0KiBjb3JlKFdlYktpdERP
TUNsaWVudFJlY3QqIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpDbGllbnRSZWN0Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVP
YmplY3QpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gcmVxdWVzdCA/IHN0YXRpY19jYXN0PFdlYkNv
cmU6OkRPTVJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCkgOiBu
dWxscHRyOwogfQogCi1XZWJLaXRET01DbGllbnRSZWN0KiB3cmFwQ2xpZW50UmVjdChXZWJDb3Jl
OjpDbGllbnRSZWN0KiBjb3JlT2JqZWN0KQorV2ViS2l0RE9NQ2xpZW50UmVjdCogd3JhcENsaWVu
dFJlY3QoV2ViQ29yZTo6RE9NUmVjdCogY29yZU9iamVjdCkKIHsKICAgICBBU1NFUlQoY29yZU9i
amVjdCk7CiAgICAgcmV0dXJuIFdFQktJVF9ET01fQ0xJRU5UX1JFQ1QoZ19vYmplY3RfbmV3KFdF
QktJVF9ET01fVFlQRV9DTElFTlRfUkVDVCwgImNvcmUtb2JqZWN0IiwgY29yZU9iamVjdCwgbnVs
bHB0cikpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fY2xpZW50
X3JlY3RfY29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQogICAgIEdfT0JKRUNUX0NMQVNTKHdl
YmtpdF9kb21fY2xpZW50X3JlY3RfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0ZWQob2JqZWN0KTsK
IAogICAgIFdlYktpdERPTUNsaWVudFJlY3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX0RPTV9DTElF
TlRfUkVDVF9HRVRfUFJJVkFURShvYmplY3QpOwotICAgIHByaXYtPmNvcmVPYmplY3QgPSBzdGF0
aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRSZWN0Kj4oV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+
Y29yZU9iamVjdCk7CisgICAgcHJpdi0+Y29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6
OkRPTVJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpLT5jb3JlT2JqZWN0KTsKICAgICBX
ZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpwdXQocHJpdi0+Y29yZU9iamVjdC5nZXQoKSwgb2JqZWN0
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVu
dFJlY3RMaXN0LmNwcAppbmRleCAxNjAxOTk3N2FiYmZmMDA4NzRmNjBkMzY0M2RlNDI2MWY5NDUz
MGZiLi5hMTNmZjkzMTZjYmM1OWFlODFlM2QwZDJhZTRlOGMzMzU3OTdkYzNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNsaWVudFJlY3RMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmNwcApA
QCAtMzUsMzIgKzM1LDQ3IEBACiAKICNkZWZpbmUgV0VCS0lUX0RPTV9DTElFTlRfUkVDVF9MSVNU
X0dFVF9QUklWQVRFKG9iaikgR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKG9iaiwgV0VCS0lU
X0RPTV9UWVBFX0NMSUVOVF9SRUNUX0xJU1QsIFdlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0
ZSkKIAorY2xhc3MgQ2xpZW50UmVjdExpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxDbGllbnRSZWN0
TGlzdD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q2xpZW50UmVjdExpc3Q+IGNyZWF0ZShj
b25zdCBXVEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiBpdGVtcykKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENsaWVudFJlY3RMaXN0KGl0ZW1zKSk7CisgICAg
fQorCisgICAgY29uc3QgV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiYgaXRlbXMo
KSBjb25zdCB7IHJldHVybiBtX2l0ZW1zKCkgfQorCitwcml2YXRlOgorICAgIENsaWVudFJlY3RM
aXN0KGNvbnN0IFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mIGl0ZW1zKQorICAg
ICAgICA6IG1faXRlbXMoaXRlbXMKKyAgICB7IH0KKworICAgIFdURjo6VmVjdG9yPFJlZjxXZWJD
b3JlOjpET01SZWN0Pj4gbV9pdGVtczsKK307CisKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01D
bGllbnRSZWN0TGlzdFByaXZhdGUgewotICAgIFJlZlB0cjxXZWJDb3JlOjpDbGllbnRSZWN0TGlz
dD4gY29yZU9iamVjdDsKKyAgICBSZWZQdHI8Q2xpZW50UmVjdExpc3Q+IGNvcmVPYmplY3Q7CiB9
IFdlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LVdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoV2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqIG9i
aikKK1dlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoY29uc3QgV1RGOjpWZWN0b3I8UmVmPFdl
YkNvcmU6OkRPTVJlY3Q+PiYgb2JqKQogewogICAgIGlmICghb2JqKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIGlmIChncG9pbnRlciByZXQgPSBET01PYmplY3RDYWNoZTo6Z2V0KG9i
aikpCi0gICAgICAgIHJldHVybiBXRUJLSVRfRE9NX0NMSUVOVF9SRUNUX0xJU1QocmV0KTsKLQog
ICAgIHJldHVybiB3cmFwQ2xpZW50UmVjdExpc3Qob2JqKTsKIH0KIAotV2ViQ29yZTo6Q2xpZW50
UmVjdExpc3QqIGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHJlcXVlc3QpCitzdGF0aWMg
Q2xpZW50UmVjdExpc3QqIGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHJlcXVlc3QpCiB7
Ci0gICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRSZWN0TGlz
dCo+KFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KSA6IG51bGxwdHI7Cisg
ICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxDbGllbnRSZWN0TGlzdCo+KFdFQktJVF9E
T01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KSA6IG51bGxwdHI7CiB9CiAKLVdlYktpdERP
TUNsaWVudFJlY3RMaXN0KiB3cmFwQ2xpZW50UmVjdExpc3QoV2ViQ29yZTo6Q2xpZW50UmVjdExp
c3QqIGNvcmVPYmplY3QpCitXZWJLaXRET01DbGllbnRSZWN0TGlzdCogd3JhcENsaWVudFJlY3RM
aXN0KGNvbnN0IFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mIGNvcmVPYmplY3Qp
CiB7CiAgICAgQVNTRVJUKGNvcmVPYmplY3QpOwotICAgIHJldHVybiBXRUJLSVRfRE9NX0NMSUVO
VF9SRUNUX0xJU1QoZ19vYmplY3RfbmV3KFdFQktJVF9ET01fVFlQRV9DTElFTlRfUkVDVF9MSVNU
LCAiY29yZS1vYmplY3QiLCBjb3JlT2JqZWN0LCBudWxscHRyKSk7CisgICAgYXV0byBsaXN0ID0g
Q2xpZW50UmVjdExpc3Q6OmNyZWF0ZShjb3JlT2JqZWN0KTsKKyAgICByZXR1cm4gV0VCS0lUX0RP
TV9DTElFTlRfUkVDVF9MSVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JF
Q1RfTElTVCwgImNvcmUtb2JqZWN0IiwgbGlzdC5wdHIoKSwgbnVsbHB0cikpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKQEAgLTEwMSw4ICsxMTYsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRf
ZG9tX2NsaWVudF9yZWN0X2xpc3RfY29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQogICAgIEdf
T0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9wYXJlbnRfY2xhc3MpLT5j
b25zdHJ1Y3RlZChvYmplY3QpOwogCiAgICAgV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRl
KiBwcml2ID0gV0VCS0lUX0RPTV9DTElFTlRfUkVDVF9MSVNUX0dFVF9QUklWQVRFKG9iamVjdCk7
Ci0gICAgcHJpdi0+Y29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkNsaWVudFJlY3RM
aXN0Kj4oV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCk7Ci0gICAgV2ViS2l0
OjpET01PYmplY3RDYWNoZTo6cHV0KHByaXYtPmNvcmVPYmplY3QuZ2V0KCksIG9iamVjdCk7Cisg
ICAgcHJpdi0+Y29yZU9iamVjdCA9IHN0YXRpY19jYXN0PENsaWVudFJlY3RMaXN0Kj4oV0VCS0lU
X0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtp
dF9kb21fY2xpZW50X3JlY3RfbGlzdF9jbGFzc19pbml0KFdlYktpdERPTUNsaWVudFJlY3RMaXN0
Q2xhc3MqIHJlcXVlc3RDbGFzcykKQEAgLTEzNSwxNCArMTQ5LDE0IEBAIFdlYktpdERPTUNsaWVu
dFJlY3QqIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9pdGVtKFdlYktpdERPTUNsaWVudFJl
Y3RMaXN0KiBzCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwog
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfQ0xJRU5UX1JFQ1RfTElTVChz
ZWxmKSwgbnVsbHB0cik7Ci0gICAgV2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqIGl0ZW0gPSBXZWJL
aXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkNsaWVudFJlY3Q+IGdvYmplY3RS
ZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5pdGVtKGluZGV4KSk7Ci0gICAgcmV0dXJuIFdlYktp
dDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworICAgIENsaWVudFJlY3RMaXN0KiBsaXN0ID0g
V2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFJlZjxXZWJDb3JlOjpET01SZWN0PiBnb2JqZWN0UmVz
dWx0ID0gbGlzdC0+aXRlbXMoKS5pdGVtKGluZGV4KTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQo
Z29iamVjdFJlc3VsdC5wdHIoKSk7CiB9CiAKIGd1bG9uZyB3ZWJraXRfZG9tX2NsaWVudF9yZWN0
X2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRET01DbGllbnRSZWN0TGlzdCogc2VsZikKIHsKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19DTElFTlRfUkVDVF9MSVNUKHNlbGYpLCAwKTsKLSAgICByZXR1
cm4gV2ViS2l0Ojpjb3JlKHNlbGYpLT5sZW5ndGgoKTsKKyAgICByZXR1cm4gV2ViS2l0Ojpjb3Jl
KHNlbGYpLT5pdGVtcygpLmxlbmd0aCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0
TGlzdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRlLmgKaW5kZXggM2JjNWI0
YmUxMzNmYTc2NTQ0OGZjOTI2YTY3NzRiMzIyMzk4ZjAyZC4uOWZjMzg2MzMwNTE3Mjg1ODY4OGY2
MDVjODQ5NjY4MzYwNDIyOTFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5oCkBAIC0xOSwxMSArMTksMTEg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudFJlY3RMaXN0Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9ET01SZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktp
dERPTUNsaWVudFJlY3RMaXN0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKLVdlYktpdERPTUNsaWVudFJlY3RMaXN0KiB3cmFwQ2xpZW50UmVjdExpc3Qo
V2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqKTsKLVdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQo
V2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqKTsKLVdlYkNvcmU6OkNsaWVudFJlY3RMaXN0KiBjb3Jl
KFdlYktpdERPTUNsaWVudFJlY3RMaXN0Kik7CitXZWJLaXRET01DbGllbnRSZWN0TGlzdCogd3Jh
cENsaWVudFJlY3RMaXN0KGNvbnN0IFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4m
KTsKK1dlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoY29uc3QgV1RGOjpWZWN0b3I8UmVmPFdl
YkNvcmU6OkRPTVJlY3Q+PiYpOwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUNsaWVudFJlY3RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RQcml2YXRlLmgKaW5kZXgg
ZGE4OGQ0OTU4NWU4YWQ5NWUwODE2YzNmYWQ1N2RkMDNjMDMyYThlYi4uZDdlY2MwZTJiY2E2ODY3
NTIxMGUxZWU3MjE0NjhmZDQ0NGYxMGFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0UHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUuaApAQCAtMTksMTEgKzE5LDExIEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRSZWN0Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9ET01SZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTUNs
aWVudFJlY3QuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci1XZWJLaXRET01DbGllbnRSZWN0KiB3
cmFwQ2xpZW50UmVjdChXZWJDb3JlOjpDbGllbnRSZWN0Kik7Ci1XZWJLaXRET01DbGllbnRSZWN0
KiBraXQoV2ViQ29yZTo6Q2xpZW50UmVjdCopOwotV2ViQ29yZTo6Q2xpZW50UmVjdCogY29yZShX
ZWJLaXRET01DbGllbnRSZWN0Kik7CitXZWJLaXRET01DbGllbnRSZWN0KiB3cmFwQ2xpZW50UmVj
dChXZWJDb3JlOjpET01SZWN0Kik7CitXZWJLaXRET01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6
RE9NUmVjdCopOworV2ViQ29yZTo6RE9NUmVjdCogY29yZShXZWJLaXRET01DbGllbnRSZWN0Kik7
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUVsZW1lbnQuY3BwCmluZGV4IDczYTZlYTFhZTA3ODFlZTk2NzQ1NTRhMjI0ZTQ3NTJiNzdl
OWM4YTUuLjU5YTE1ZDMzOWQ0OTRmMmUyM2ZiNTBlMjg0MTU1NWFkNGM4NzBlZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50LmNwcApAQCAtMjIsOCArMjIs
NiBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9DU1NJbXBvcnRSdWxlLmg+CiAjaW5jbHVkZSAiRE9N
T2JqZWN0Q2FjaGUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudFJlY3QuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL0NsaWVudFJlY3RMaXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01SZWN0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0
aW9uQ29kZS5oPgpAQCAtMTIyNiwyNyArMTIyNCwxMiBAQCBnbG9uZyB3ZWJraXRfZG9tX2VsZW1l
bnRfZ2V0X3Njcm9sbF9oZWlnaHQoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCi1zdGF0aWMgUmVmPFdlYkNvcmU6OkNsaWVudFJlY3Q+IHRvQ2xpZW50UmVj
dChXZWJDb3JlOjpET01SZWN0JiByZWN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpDbGllbnRS
ZWN0OjpjcmVhdGUoV2ViQ29yZTo6RmxvYXRSZWN0KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53
aWR0aCgpLCByZWN0LmhlaWdodCgpKSk7Ci19Ci0KIFdlYktpdERPTUNsaWVudFJlY3QqIHdlYmtp
dF9kb21fZWxlbWVudF9nZXRfYm91bmRpbmdfY2xpZW50X3JlY3QoV2ViS2l0RE9NRWxlbWVudCog
c2VsZikKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCBudWxscHRy
KTsKICAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAg
IGF1dG8gY2xpZW50UmVjdCA9IHRvQ2xpZW50UmVjdChpdGVtLT5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGNsaWVudFJlY3QucHRyKCkpOwotfQotCi1z
dGF0aWMgVmVjdG9yPFJlZjxXZWJDb3JlOjpDbGllbnRSZWN0Pj4gdG9DbGllbnRSZWN0VmVjdG9y
KFZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiYgcmVjdHMpCi17Ci0gICAgVmVjdG9yPFJl
ZjxXZWJDb3JlOjpDbGllbnRSZWN0Pj4gY2xpZW50UmVjdHM7Ci0gICAgY2xpZW50UmVjdHMucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShyZWN0cy5zaXplKCkpOwotICAgIGZvciAoYXV0byYgcmVjdCA6
IHJlY3RzKQotICAgICAgICBjbGllbnRSZWN0cy51bmNoZWNrZWRBcHBlbmQodG9DbGllbnRSZWN0
KHJlY3QpKTsKLSAgICByZXR1cm4gY2xpZW50UmVjdHM7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0
KGl0ZW0tPmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnB0cigpKTsKIH0KIAogV2ViS2l0RE9NQ2xp
ZW50UmVjdExpc3QqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2xpZW50X3JlY3RzKFdlYktpdERP
TUVsZW1lbnQqIHNlbGYpCkBAIC0xMjU0LDggKzEyMzcsNyBAQCBXZWJLaXRET01DbGllbnRSZWN0
TGlzdCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfcmVjdHMoV2ViS2l0RE9NRWxlbWVu
dCogcwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIG51bGxwdHIpOwog
ICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgYXV0
byBjbGllbnRSZWN0cyA9IFdlYkNvcmU6OkNsaWVudFJlY3RMaXN0OjpjcmVhdGUodG9DbGllbnRS
ZWN0VmVjdG9yKGl0ZW0tPmdldENsaWVudFJlY3RzKCkpKTsKLSAgICByZXR1cm4gV2ViS2l0Ojpr
aXQoY2xpZW50UmVjdHMucHRyKCkpOworICAgIHJldHVybiBXZWJLaXQ6OmtpdChpdGVtLT5nZXRD
bGllbnRSZWN0cygpKTsKIH0KIAogV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9lbGVtZW50
X2dldF9vZmZzZXRfcGFyZW50KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308650</attachid>
            <date>2017-04-28 19:09:34 -0700</date>
            <delta_ts>2017-04-28 19:24:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171418-20170428190934.patch</filename>
            <type>text/plain</type>
            <size>42276</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBmMmYzODIyNWUyYTQw
YTJlNjg1ODY2NTZkMjhiNWFkODVlN2RkOS4uYzZmZTNkNDI4ZGQ5NWQ4NjAxMmY3NGU1Nzg4NDJi
YjlkYzUyODM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDE3LTA0LTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBs
ZWdhY3kgQ2xpZW50UmVjdCAvIENsaWVudFJlY3RMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0MTgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBDbGllbnRS
ZWN0IC8gQ2xpZW50UmVjdExpc3QgdHlwZXMgbm93IHdlIHVzZQorICAgICAgICBET01SZWN0IGV2
ZXJ5d2hlcmUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0NsaWVudFJl
Y3QuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9DbGllbnRSZWN0Lmg6IFJlbW92ZWQuCisg
ICAgICAgICogZG9tL0NsaWVudFJlY3QuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9DbGll
bnRSZWN0TGlzdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogZG9tL0NsaWVudFJlY3RMaXN0Lmg6
IFJlbW92ZWQuCisgICAgICAgICogZG9tL0NsaWVudFJlY3RMaXN0LmlkbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvdHJh
Y2svVlRUUmVnaW9uLmNwcDoKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKwor
MjAxNy0wNC0yOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIFN0
b3AgdXNpbmcgbGVnYWN5IENsaWVudFJlY3QgLyBDbGllbnRSZWN0TGlzdCBpbiBJbnRlcm5hbHMK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTQxMgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAwMDQxNmVmMTdmOTU2ZmU2ZmI4ZDU4YTVjOGJi
YWU1NDBiZTYwYTliLi5jMDE4MWZhYjAwYzEzZGUyNWQ2MWE5YjVmZGM1NTFiNTRmNDMwNGMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wNC0yOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IENsaWVudFJlY3QgLyBDbGllbnRSZWN0TGlzdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNDE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBDbGllbnRSZWN0TGlzdC1yZWxhdGVkIGNv
ZGUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFt
ZXRlcnMuanM6CisKIDIwMTctMDQtMjcgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlA
c29ueS5jb20+CiAKICAgICAgICAgW0dUS10gV2ViIEluc3BlY3RvcjogQWRkIG5ldyBHVEsrIGlj
b25zIGZvciBkaWZmZXJlbnQgU2NyaXB0IFRpbWVsaW5lIFZpZXdzIChFdmVudHMgYW5kIENhbGwg
VHJlZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjFiMzAwMjQ1YTU0YzE4NDZlZmQ0NDE2ZjZkOGJkY2U5MmU3
YzQzZi4uNGE3MzFhYzU0MWU2NDYwZjVkYmM1NzExNWQwOWUyNGYzYzBhOWRlMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTA0LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBsZWdhY3kgQ2xpZW50UmVjdCAvIENs
aWVudFJlY3RMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzE0MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBHVEsgYnVpbGQgZml4LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
a2l0KToKKyAgICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgIChXZWJLaXQ6OndyYXBDbGll
bnRSZWN0KToKKyAgICAgICAgKHdlYmtpdF9kb21fY2xpZW50X3JlY3RfY29uc3RydWN0ZWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q2xpZW50UmVjdExpc3QuY3BwOgorICAgICAgICAoQ2xpZW50UmVjdExpc3Q6OmNyZWF0ZSk6Cisg
ICAgICAgIChDbGllbnRSZWN0TGlzdDo6aXRlbXMpOgorICAgICAgICAoQ2xpZW50UmVjdExpc3Q6
OkNsaWVudFJlY3RMaXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdFBy
aXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUVsZW1lbnQuY3BwOgorICAgICAgICAod2Via2l0X2RvbV9lbGVtZW50X2dldF9i
b3VuZGluZ19jbGllbnRfcmVjdCk6CisgICAgICAgICh3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2Ns
aWVudF9yZWN0cyk6CisKIDIwMTctMDQtMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIGdldFVzZXJNZWRpYSB2aWRlbyBzdHJlYW1zIHNob3VsZCBmb2xsb3cg
ZGV2aWNlIG9yaWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDFjMTdkZTZjNjUxNDkw
ZWU3YjhmNzg0Y2NjMjY3ZmQ0YmNhZDUwZGYuLmQ5NjE0YzBiZjVhMzhiZDNkZjMyYmI0MzQxMGU0
MTQyYjczYzEwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MDYsOCArNDA2LDYgQEAgc2V0
KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBkb20vQ0RBVEFTZWN0aW9uLmlkbAogICAg
IGRvbS9DaGFyYWN0ZXJEYXRhLmlkbAogICAgIGRvbS9DaGlsZE5vZGUuaWRsCi0gICAgZG9tL0Ns
aWVudFJlY3QuaWRsCi0gICAgZG9tL0NsaWVudFJlY3RMaXN0LmlkbAogICAgIGRvbS9DbGlwYm9h
cmRFdmVudC5pZGwKICAgICBkb20vQ29tbWVudC5pZGwKICAgICBkb20vQ29tcG9zaXRpb25FdmVu
dC5pZGwKQEAgLTE0NDcsOCArMTQ0NSw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20v
Q2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAKICAgICBkb20vQ2hpbGROb2RlTGlzdC5jcHAKICAg
ICBkb20vQ2xhc3NDb2xsZWN0aW9uLmNwcAotICAgIGRvbS9DbGllbnRSZWN0LmNwcAotICAgIGRv
bS9DbGllbnRSZWN0TGlzdC5jcHAKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuY3BwCiAgICAgZG9t
L0NvbGxlY3Rpb25JbmRleENhY2hlLmNwcAogICAgIGRvbS9Db21tZW50LmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCmluZGV4IGJkOGI3ODIyN2Y4YmJhMTJiZjg1Nzk2ZWQyNjE1ZmI5NThj
MTFkMjQuLjVhNjYxZjE2MTE0MTRmNjhkNjY5ZTQ2OGRkMGI3YjE2ZDdlMTE3NjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTEwNyw4ICsxMDcsNiBAQAogI2VuZGlmCiAjaW5jbHVk
ZSAiSlNDREFUQVNlY3Rpb24uY3BwIgogI2luY2x1ZGUgIkpTQ2hhcmFjdGVyRGF0YS5jcHAiCi0j
aW5jbHVkZSAiSlNDbGllbnRSZWN0LmNwcCIKLSNpbmNsdWRlICJKU0NsaWVudFJlY3RMaXN0LmNw
cCIKICNpbmNsdWRlICJKU0Nsb3NlRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTQ29tbWFuZExpbmVB
UElIb3N0LmNwcCIKICNpbmNsdWRlICJKU0NvbW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggN2M1NzQ3MGYxZjNjMjk4OWY5YmMxODI2ZTQ3MjQ4M2Q1NjlhYmVlOS4u
MGFjZDI5YzEzZDM2MDRjMmVmZDZmNzc4M2M0YTJmOWM2OGZmZTExYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0zNDIsOCArMzQyLDYgQEAgSlNfQklORElOR19JRExTID0gXAog
ICAgICQoV2ViQ29yZSkvZG9tL0NEQVRBU2VjdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9t
L0NoYXJhY3RlckRhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9DaGlsZE5vZGUuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL2RvbS9DbGllbnRSZWN0LmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20v
Q2xpZW50UmVjdExpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9DbGlwYm9hcmRFdmVudC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0NvbW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Rv
bS9Db21wb3NpdGlvbkV2ZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDkzYzQwZDQ1NzMwNGYyNDA4NjIzOWE4NmU1
MzExYjEyMmNkNWI0ZS4uMzYyMWFiZDY4NTBiNmEzNTVkYzYwZmViNjM3MjExMjBmNzkzOGQwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNTc5NywxNCArNTc5Nyw2IEBACiAJCUJDQkQyMUFCMEU0MTdBRDQwMEEwNzBGMiAvKiBV
UkxIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0JEMjFBQTBFNDE3QUQ0MDBBMDcwRjIgLyogVVJMSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDQkZCNTNDMERDRDI5Q0YwMDE5QjNFNSAv
KiBKU0RPTVdpbmRvd1NoZWxsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQkZCNTNBMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxs
LmNwcCAqLzsgfTsKIAkJQkNCRkI1M0QwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hl
bGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkZC
NTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNDMDY1N0QwRjNDRTFCNzAwQ0Qy
RDg3IC8qIENsaWVudFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNDMDY1NzcwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuY3BwICov
OyB9OwotCQlCQ0MwNjU3RTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1NzgwRjNDRTFCNzAw
Q0QyRDg3IC8qIENsaWVudFJlY3QuaCAqLzsgfTsKLQkJQkNDMDY1ODAwRjNDRTFCNzAwQ0QyRDg3
IC8qIENsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQzA2NTdBMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5j
cHAgKi87IH07Ci0JCUJDQzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1N0Iw
RjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggKi87IH07Ci0JCUJDQzA2NTg3MEYz
Q0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1ODMwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xp
ZW50UmVjdC5jcHAgKi87IH07Ci0JCUJDQzA2NTg4MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVu
dFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
QzA2NTg0MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLzsgfTsKLQkJQkNDMDY1
ODkwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1ODUwRjNDRTJBNzAwQ0QyRDg3
IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovOyB9OwotCQlCQ0MwNjU4QTBGM0NFMkE3MDBDRDJE
ODcgLyogSlNDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNDMDY1ODYwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExp
c3QuaCAqLzsgfTsKIAkJQkNDMEU4NzUxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0MwRTg3MzFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmNwcCAqLzsgfTsK
IAkJQkNDMEU4NzYxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMEU4NzQxQkZFNzBF
OTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5oICovOyB9OwogCQlCQ0M1QkUwMDBDMEU5
MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzVCREZFMEMwRTkzMTEwMDExQzJEQiAvKiBKU0NT
U1N0eWxlU2hlZXQuY3BwICovOyB9OwpAQCAtMTQyMzksMTYgKzE0MjMxLDYgQEAKIAkJQkNCRDIx
QUEwRTQxN0FENDAwQTA3MEYyIC8qIFVSTEhhc2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVVJMSGFzaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0JGQjUz
QTBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVdpbmRvd1NoZWxsLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93
U2hlbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01XaW5kb3dTaGVs
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3NzBGM0NFMUI3MDBDRDJE
ODcgLyogQ2xpZW50UmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDbGllbnRSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1Nzgw
RjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ2xpZW50UmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0Mw
NjU3OTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQ2xpZW50UmVjdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzA2
NTdBMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGllbnRSZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUJDQzA2NTdCMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGllbnRSZWN0TGlzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3QzBGM0NFMUI3MDBDRDJEODcgLyog
Q2xpZW50UmVjdExpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENsaWVudFJlY3RMaXN0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODMwRjNDRTJBNzAwQ0Qy
RDg3IC8qIEpTQ2xpZW50UmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0NsaWVudFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0Mw
NjU4NDBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTQ2xpZW50UmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlCQ0MwNjU4NTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NsaWVudFJlY3RMaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODYwRjNDRTJBNzAwQ0QyRDg3IC8q
IEpTQ2xpZW50UmVjdExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlND
bGllbnRSZWN0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0MwRTg3MzFC
RkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxQaWN0dXJlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDQzBFODc0MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVy
ZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFBpY3R1cmVF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzVCREZFMEMwRTkzMTEw
MDExQzJEQiAvKiBKU0NTU1N0eWxlU2hlZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQ1NTU3R5bGVTaGVldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMTg0NiwxMCArMjE4MjgsNiBAQAogCQlBODNCNzkwRTBDQ0FGRjk3MDAwQjA4MjUg
LyogQ1NTICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlC
Q0MwNjU4MzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmNwcCAqLywKLQkJCQlCQ0Mw
NjU4NDBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggKi8sCi0JCQkJQkNDMDY1ODUw
RjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovLAotCQkJCUJDQzA2NTg2
MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi8sCiAJCQkJQkM0NkMxRjIw
QzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTRm9udEZhY2VSdWxlLmNwcCAqLywKIAkJCQlCQzQ2QzFG
MzBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NGb250RmFjZVJ1bGUuaCAqLywKIAkJCQlCQzQ2QzFG
NDBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NJbXBvcnRSdWxlLmNwcCAqLywKQEAgLTI1NDQ4LDEy
ICsyNTQyNiw2IEBACiAJCQkJQTgxODcyMTUwOTc3RDNDMDAwNTgyNkQ5IC8qIENoaWxkTm9kZUxp
c3QuaCAqLywKIAkJCQk4MzQ4QkZBOTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9u
LmNwcCAqLywKIAkJCQk4MzQ4QkZBQTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9u
LmggKi8sCi0JCQkJQkNDMDY1NzcwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuY3BwICov
LAotCQkJCUJDQzA2NTc4MEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmggKi8sCi0JCQkJ
QkNDMDY1NzkwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaWRsICovLAotCQkJCUJDQzA2
NTdBMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAgKi8sCi0JCQkJQkNDMDY1
N0IwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggKi8sCi0JCQkJQkNDMDY1N0Mw
RjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmlkbCAqLywKIAkJCQk4NTAzMUIyOTBB
NDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuY3BwICovLAogCQkJCTg1MDMxQjJBMEE0
NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5oICovLAogCQkJCTgzNkQwMzI3MURBODlC
NzMwMEZGRDk2QiAvKiBDbGlwYm9hcmRFdmVudC5pZGwgKi8sCkBAIC0yNjU5OCw4ICsyNjU3MCw2
IEBACiAJCQkJMTREODI0MDgwQUY5M0FFQjAwMDRGMDU3IC8qIENocm9tZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTRBODE0RDQxQzZERUM0MDAwQkY4NUFDIC8qIENsYXNzQ2hhbmdlSW52
YWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzQ4QkZBQzFCODU3Mjk4MDA5MTJGMzYg
LyogQ2xhc3NDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQ0MwNjU3RTBGM0NFMUI3
MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkNDMDY1ODEwRjND
RTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzNB
OTFFNjFDOTYzQjg4MDBEMUE3RTMgLyogQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NTAzMUI0MDBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZCOTJERjRCMTVGRUQwODcwMDk5NDQzMyAvKiBDbGlwUGF0aE9w
ZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzY1NCw4ICsyNzYyNCw2IEBACiAJCQkJRkRB
MTVFQTIxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQ2hhbm5lbE1lcmdlck5vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZEQTE1RUE0MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0NoYW5uZWxTcGxpdHRlck5v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMUY0MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0No
YXJhY3RlckRhdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDQzA2NTg4MEYzQ0UyQTcwMENEMkQ4
NyAvKiBKU0NsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDQzA2NThBMEYzQ0UyQTcw
MENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzZEMDMz
MjFEQThBMTQyMDBGRkQ5NkIgLyogSlNDbGlwYm9hcmRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTFGQjU1MDQxMTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTU4NEZFM0MxODY0RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElIb3N0
LmggaW4gSGVhZGVycyAqLywKQEAgLTMwNjcwLDggKzMwNjM4LDYgQEAKIAkJCQlBQkFGMjIwODBD
MDNCMUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBODE0
RDYxQzZERUU4RDAwQkY4NUFDIC8qIENsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTgzNDhCRkFCMUI4NTcyOTgwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNDMDY1N0QwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVu
dFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNDMDY1ODAwRjNDRTFCNzAwQ0QyRDg3IC8q
IENsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjNGMEE0NEVGQzcw
MEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1ODAzNzE2
MTFBNjZGMDBBMDBCQUY1MTkgLyogQ2xpcFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RF
QTc2MzUxNDYwQjcxQTAwOEIzMUYxIC8qIENsb2NrLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzE2
MjAsOCArMzE1ODYsNiBAQAogCQkJCUZEQTE1RUExMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0NoYW5u
ZWxNZXJnZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RUEzMTJCMDNFRTEwMDNB
NTgzQSAvKiBKU0NoYW5uZWxTcGxpdHRlck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVE
RjMxRjMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTQ2hhcmFjdGVyRGF0YS5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlCQ0MwNjU4NzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzNkQwMzMxMURBOEExM0YwMEZGRDk2QiAvKiBK
U0NsaXBib2FyZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRkI1NTA1MTEzRTNFOTEw
MDgyMTE3NiAvKiBKU0Nsb3NlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU4NEZFM0Ix
ODY0RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElIb3N0LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMzIwMDgsNyArMzE5NzIsNyBAQAogCQkJCTdDMzMwQTA3MURGOUY5NTEwMEQzMzk1QyAv
KiBKU1Bvc2l0aW9uT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzFGRjA5RDFD
QzYwMDAwQkUzMjUgLyogSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTQ0NjEzRUQwQ0Q2ODFCQTAwRkFEQTc1IC8qIEpTUHJvZ3Jlc3NFdmVudC5jcHAgaW4g
U291cmNlcyAqLywKLSAgICAgICAgICAgICAgICBBNTc4RjQzQjFERTAxNDIxMDAzREZDNkEgLyog
SlNQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTU3OEY0M0Ix
REUwMTQyMTAwM0RGQzZBIC8qIEpTUHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA3NzY2NEZDMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNrVGltZVBsdWdpblJl
cGxhY2VtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI2NThGRkExMTUyMkVGM0EwMERENTU5
NSAvKiBKU1JhZGlvTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMyMDEwOUQx
Q0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
ZW50UmVjdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhNjRlNzU1MTBmZjg1
ODQyM2I3MTdlZDc2ZWEwZjliMjEwYTI5ZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaWVu
dFJlY3QuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1DbGllbnRSZWN0OjpDbGllbnRSZWN0
KCkKLXsKLX0KLQotQ2xpZW50UmVjdDo6Q2xpZW50UmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQot
ICAgIDogbV9yZWN0KHJlY3QpCi17Ci19Ci0KLUNsaWVudFJlY3Q6OkNsaWVudFJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQotICAgIDogbV9yZWN0KHJlY3QpCi17Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyZTllZmI1Yjc0MGEzYmJmMDE5NmRiMGM5OTk4MjI4ZWQ0N2M3MzlmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9DbGllbnRSZWN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQot
I2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgotI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBJbnRSZWN0OyAKLQotICAgIGNsYXNzIENsaWVudFJl
Y3QgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxDbGllbnRSZWN0
PiB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJlY3Q+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xpZW50UmVjdCk7IH0KLSAgICAgICAgc3RhdGljIFJl
ZjxDbGllbnRSZWN0PiBjcmVhdGUoY29uc3QgSW50UmVjdCYgcmVjdCkgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDbGllbnRSZWN0KHJlY3QpKTsgfQotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJl
Y3Q+IGNyZWF0ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q2xpZW50UmVjdChyZWN0KSk7IH0KLQotICAgICAgICBmbG9hdCB0b3AoKSBjb25zdCB7IHJldHVy
biBtX3JlY3QueSgpOyB9Ci0gICAgICAgIGZsb2F0IHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9y
ZWN0Lm1heFgoKTsgfQotICAgICAgICBmbG9hdCBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX3Jl
Y3QubWF4WSgpOyB9Ci0gICAgICAgIGZsb2F0IGxlZnQoKSBjb25zdCB7IHJldHVybiBtX3JlY3Qu
eCgpOyB9Ci0gICAgICAgIGZsb2F0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LndpZHRo
KCk7IH0KLSAgICAgICAgZmxvYXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LmhlaWdo
dCgpOyB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBXRUJDT1JFX0VYUE9SVCBDbGllbnRSZWN0
KCk7Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IENsaWVudFJlY3QoY29uc3QgSW50
UmVjdCYpOwotICAgICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBDbGllbnRSZWN0KGNvbnN0
IEZsb2F0UmVjdCYpOwotCi0gICAgICAgIEZsb2F0UmVjdCBtX3JlY3Q7Ci0gICAgfTsgCi0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGll
bnRSZWN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0LmlkbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2Q5OTQwYTlkZjFkMTBhZjI4YjUzZGFhNjhmYzc3MzNhNTM1
MjdhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi1b
Ci0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLSAgICBFeHBvcnRNYWNybz1XRUJDT1JF
X0VYUE9SVCwKLV0gaW50ZXJmYWNlIENsaWVudFJlY3QgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnJlc3RyaWN0ZWQgZmxvYXQgdG9wOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3Ry
aWN0ZWQgZmxvYXQgcmlnaHQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBm
bG9hdCBib3R0b207Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBmbG9hdCBs
ZWZ0OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZmxvYXQgd2lkdGg7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBmbG9hdCBoZWlnaHQ7Ci0KLSAgICBz
ZXJpYWxpemVyID0geyBhdHRyaWJ1dGUgfTsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ2xpZW50UmVjdExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RM
aXN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU0ZTNjYzU4NzEzMmIwNjQ0
ZGE5NWUzMGQ2MmNlN2NlYWFkZmEyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaWVu
dFJlY3RMaXN0LmgiCi0KLSNpbmNsdWRlICJDbGllbnRSZWN0LmgiCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotQ2xpZW50UmVjdExpc3Q6OkNsaWVudFJlY3RMaXN0KCkKLXsKLX0KLQotQ2xpZW50
UmVjdExpc3Q6OkNsaWVudFJlY3RMaXN0KGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykK
LXsKLSAgICBtX2xpc3QucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShxdWFkcy5zaXplKCkpOwotICAg
IGZvciAoYXV0byYgcXVhZCA6IHF1YWRzKQotICAgICAgICBtX2xpc3QudW5jaGVja2VkQXBwZW5k
KENsaWVudFJlY3Q6OmNyZWF0ZShxdWFkLmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpKTsKLX0KLQot
Q2xpZW50UmVjdExpc3Q6OkNsaWVudFJlY3RMaXN0KFZlY3RvcjxSZWY8Q2xpZW50UmVjdD4+JiYg
cmVjdHMpCi0gICAgOiBtX2xpc3QoV1RGTW92ZShyZWN0cykpCi17Ci19Ci0KLUNsaWVudFJlY3RM
aXN0Ojp+Q2xpZW50UmVjdExpc3QoKQotewotfQotCi11bnNpZ25lZCBDbGllbnRSZWN0TGlzdDo6
bGVuZ3RoKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9saXN0LnNpemUoKTsKLX0KLQotQ2xpZW50
UmVjdCogQ2xpZW50UmVjdExpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpCi17Ci0gICAgaWYgKGlu
ZGV4ID49IG1fbGlzdC5zaXplKCkpIHsKLSAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIHRo
cm93IGFuIElOREVYX1NJWkVfRVJSIGV4Y2VwdGlvbj8KLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgfQotICAgIHJldHVybiBtX2xpc3RbaW5kZXhdLnB0cigpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExp
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiYTFjZDcxMzIzNDQ4MzEyNDc5ZGYxYTQzNDE1NWM0ODU0Y2Q3OTI1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJGbG9hdFF1YWQuaCIKLSNpbmNsdWRlIDx3dGYvUmVmLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIENsaWVudFJlY3Q7Ci0KLSAgICBjbGFz
cyBDbGllbnRSZWN0TGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPENsaWVudFJlY3RMaXN0PiB7Ci0g
ICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJlY3RMaXN0PiBjcmVhdGUoKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IENsaWVudFJlY3RMaXN0KTsgfQotICAgICAgICBzdGF0aWMg
UmVmPENsaWVudFJlY3RMaXN0PiBjcmVhdGUoY29uc3QgVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRz
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENsaWVudFJlY3RMaXN0KHF1YWRzKSk7IH0KLSAgICAg
ICAgc3RhdGljIFJlZjxDbGllbnRSZWN0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8Q2xpZW50UmVj
dD4+JiYgcmVjdHMpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xpZW50UmVjdExpc3QoV1RGTW92
ZShyZWN0cykpKTsgfQotICAgICAgICBXRUJDT1JFX0VYUE9SVCB+Q2xpZW50UmVjdExpc3QoKTsK
LQotICAgICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKLSAgICAgICAgQ2xpZW50UmVjdCog
aXRlbSh1bnNpZ25lZCBpbmRleCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBXRUJDT1JFX0VY
UE9SVCBDbGllbnRSZWN0TGlzdCgpOwotICAgICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBD
bGllbnRSZWN0TGlzdChjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYpOwotICAgICAgICBXRUJDT1JF
X0VYUE9SVCBleHBsaWNpdCBDbGllbnRSZWN0TGlzdChWZWN0b3I8UmVmPENsaWVudFJlY3Q+PiYm
KTsKLQotICAgICAgICBWZWN0b3I8UmVmPENsaWVudFJlY3Q+PiBtX2xpc3Q7Ci0gICAgfTsgCi0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGllbnRSZWN0TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuaWRs
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNWRiY2Y2NzFmNWE0YWNiNDFiMDliODcx
MDZkOTBhMWE3ZDM1MjNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwKKysrIC9kZXYvbnVs
bApAQCAtMSwzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICoKLSAqLwotCi1bCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLSAgICBFeHBv
cnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKLV0gaW50ZXJmYWNlIENsaWVudFJlY3RMaXN0IHsKLSAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgZ2V0dGVyIENs
aWVudFJlY3QgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKLSAgICAvLyBGSVhNRTogRml4IGxp
c3QgYmVoYXZpb3IgdG8gYWxsb3cgY3VzdG9tIGV4Y2VwdGlvbnMgdG8gYmUgdGhyb3duLgotfTsK
LQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggMjcwZTQxNjY4ZDIyOGM0NmE5YWZi
ZTQyZGY0ZWY5NzcxYzQwMmE4MS4uMGEwNTQyMTliNjg4YjA1ZTJmM2ZlODM2NWRlNzYxNmI3NGE2
NWNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0zNyw4ICszNyw2IEBACiAj
aW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAiCiAjaW5jbHVkZSAiQ2hpbGROb2Rl
TGlzdC5jcHAiCiAjaW5jbHVkZSAiQ2xhc3NDb2xsZWN0aW9uLmNwcCIKLSNpbmNsdWRlICJDbGll
bnRSZWN0LmNwcCIKLSNpbmNsdWRlICJDbGllbnRSZWN0TGlzdC5jcHAiCiAjaW5jbHVkZSAiQ2xp
cGJvYXJkRXZlbnQuY3BwIgogI2luY2x1ZGUgIkNvbGxlY3Rpb25JbmRleENhY2hlLmNwcCIKICNp
bmNsdWRlICJDb21tZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA4MTg5MjQzYzY0
ZjQ0YjcxODY3MWM3MDAxMWM4MzRkYTI4Mzc0YTEzLi44MWJjNzMxYmMwOTQ5ODIxYzhlNDZiZTNj
OGRhM2U5YmU0ZjMwYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMyw4ICszMyw2IEBA
CiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaCIKLSNpbmNsdWRlICJDbGllbnRSZWN0LmgiCi0j
aW5jbHVkZSAiQ2xpZW50UmVjdExpc3QuaCIKICNpbmNsdWRlICJDb21wb3NlZFRyZWVBbmNlc3Rv
ckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCIKICNpbmNs
dWRlICJDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMDY3NzIwN2RlYmFkNTMyYzZiM2YzNzM2OTg2YzViNDZm
YTdhYzYwYS4uODlmOGVkYjE4MzVkOWQ2MjJkMzcwNGYxNDZiOTFiN2JhZTRlMTAxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0zNSw4ICszNSw2IEBACiAj
aW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMu
aCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJDbGllbnRSZWN0LmgiCi0j
aW5jbHVkZSAiQ2xpZW50UmVjdExpc3QuaCIKICNpbmNsdWRlICJDb21tb25WTS5oIgogI2luY2x1
ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKaW5kZXggZTY4ODQ4MDk3YThjNDk5
OTU3NDAzNGVlYTIwYjU4ZjJiNTViNDZmZi4uNTIxNGE3OTVlNjE4MDcwZTViYzU1MmYzYjU4ZDJm
OWU5ZGVjYzdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcApAQCAt
MzQsNyArMzQsNiBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiQ2xp
ZW50UmVjdC5oIgogI2luY2x1ZGUgIkRPTVJlY3QuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3Qu
aCIKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJdGVyYXRvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmNwcAppbmRleCAxM2ZlYTAzOTBiZWM5MTQxYWQ4MDk5OTdjNmMyYTgyMTAy
ODMzNmU4Li41ZGM5YmQ0MWU4ZjgzNWE3YzRhMDdlYWI3NjZlMDMxZDhjNjYzNGVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKICNpbmNsdWRl
ICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50RnJhZ21lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpz
CmluZGV4IDVmY2JlYzFkOTQ3NzU2Yjg1YjA5YTNlMDcyMjkyOGM4MWZiMjZmMzAuLmZjOTVmYTQw
MjJmYTA2MzY4YzIwYTNiNzMyN2NhZmNhM2Y5ZTIxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2
ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcwpAQCAtNjk2LDExICs2OTYsNiBAQCBXZWJJbnNwZWN0b3Iu
TmF0aXZlUHJvdG90eXBlRnVuY3Rpb25QYXJhbWV0ZXJzID0gewogICAgICAgICBfX3Byb3RvX186
IG51bGwsCiAgICAgfSwKIAotICAgIENsaWVudFJlY3RMaXN0OiB7Ci0gICAgICAgIGl0ZW06ICJb
aW5kZXhdIiwKLSAgICAgICAgX19wcm90b19fOiBudWxsLAotICAgIH0sCi0KICAgICBDb21tYW5k
TGluZUFQSUhvc3Q6IHsKICAgICAgICAgY29weVRleHQ6ICJ0ZXh0IiwKICAgICAgICAgZGF0YWJh
c2VJZDogImRhdGFiYXNlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNsaWVudFJlY3QuY3BwCmluZGV4IDJkNzFlOGU1MmY3Yzg1NjA4MjQzMmVjMDVmMTdmZDMyYzNi
NmFlOWUuLjRmODdlMGI2YzAxZTI4N2JkZWFkYTlkYjcxZTM5YWYwNWM2OGEyZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NQ2xpZW50UmVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNwcApAQCAtMzUs
MTIgKzM1LDEyIEBACiAjZGVmaW5lIFdFQktJVF9ET01fQ0xJRU5UX1JFQ1RfR0VUX1BSSVZBVEUo
b2JqKSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUob2JqLCBXRUJLSVRfRE9NX1RZUEVfQ0xJ
RU5UX1JFQ1QsIFdlYktpdERPTUNsaWVudFJlY3RQcml2YXRlKQogCiB0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUgewotICAgIFJlZlB0cjxXZWJDb3JlOjpDbGllbnRS
ZWN0PiBjb3JlT2JqZWN0OworICAgIFJlZlB0cjxXZWJDb3JlOjpET01SZWN0PiBjb3JlT2JqZWN0
OwogfSBXZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LVdlYktpdERPTUNsaWVudFJlY3QqIGtpdChXZWJDb3JlOjpDbGllbnRSZWN0KiBvYmopCitXZWJL
aXRET01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6RE9NUmVjdCogb2JqKQogewogICAgIGlmICgh
b2JqKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTUxLDEyICs1MSwxMiBAQCBXZWJLaXRE
T01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6Q2xpZW50UmVjdCogb2JqKQogICAgIHJldHVybiB3
cmFwQ2xpZW50UmVjdChvYmopOwogfQogCi1XZWJDb3JlOjpDbGllbnRSZWN0KiBjb3JlKFdlYktp
dERPTUNsaWVudFJlY3QqIHJlcXVlc3QpCitXZWJDb3JlOjpET01SZWN0KiBjb3JlKFdlYktpdERP
TUNsaWVudFJlY3QqIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpDbGllbnRSZWN0Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVP
YmplY3QpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gcmVxdWVzdCA/IHN0YXRpY19jYXN0PFdlYkNv
cmU6OkRPTVJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCkgOiBu
dWxscHRyOwogfQogCi1XZWJLaXRET01DbGllbnRSZWN0KiB3cmFwQ2xpZW50UmVjdChXZWJDb3Jl
OjpDbGllbnRSZWN0KiBjb3JlT2JqZWN0KQorV2ViS2l0RE9NQ2xpZW50UmVjdCogd3JhcENsaWVu
dFJlY3QoV2ViQ29yZTo6RE9NUmVjdCogY29yZU9iamVjdCkKIHsKICAgICBBU1NFUlQoY29yZU9i
amVjdCk7CiAgICAgcmV0dXJuIFdFQktJVF9ET01fQ0xJRU5UX1JFQ1QoZ19vYmplY3RfbmV3KFdF
QktJVF9ET01fVFlQRV9DTElFTlRfUkVDVCwgImNvcmUtb2JqZWN0IiwgY29yZU9iamVjdCwgbnVs
bHB0cikpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fY2xpZW50
X3JlY3RfY29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQogICAgIEdfT0JKRUNUX0NMQVNTKHdl
YmtpdF9kb21fY2xpZW50X3JlY3RfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0ZWQob2JqZWN0KTsK
IAogICAgIFdlYktpdERPTUNsaWVudFJlY3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX0RPTV9DTElF
TlRfUkVDVF9HRVRfUFJJVkFURShvYmplY3QpOwotICAgIHByaXYtPmNvcmVPYmplY3QgPSBzdGF0
aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRSZWN0Kj4oV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+
Y29yZU9iamVjdCk7CisgICAgcHJpdi0+Y29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6
OkRPTVJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpLT5jb3JlT2JqZWN0KTsKICAgICBX
ZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpwdXQocHJpdi0+Y29yZU9iamVjdC5nZXQoKSwgb2JqZWN0
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVu
dFJlY3RMaXN0LmNwcAppbmRleCAxNjAxOTk3N2FiYmZmMDA4NzRmNjBkMzY0M2RlNDI2MWY5NDUz
MGZiLi5lZDdmMGNhNWYyZGU4YzJlMWU3MmE5MDQ3YWU3Y2U0ZmM1MzMzZGJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNsaWVudFJlY3RMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmNwcApA
QCAtMzUsMzIgKzM1LDQ0IEBACiAKICNkZWZpbmUgV0VCS0lUX0RPTV9DTElFTlRfUkVDVF9MSVNU
X0dFVF9QUklWQVRFKG9iaikgR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKG9iaiwgV0VCS0lU
X0RPTV9UWVBFX0NMSUVOVF9SRUNUX0xJU1QsIFdlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0
ZSkKIAorY2xhc3MgQ2xpZW50UmVjdExpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxDbGllbnRSZWN0
TGlzdD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q2xpZW50UmVjdExpc3Q+IGNyZWF0ZShj
b25zdCBXVEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiBpdGVtcykKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENsaWVudFJlY3RMaXN0KGl0ZW1zKSk7CisgICAg
fQorCisgICAgY29uc3QgV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiYgaXRlbXMo
KSBjb25zdCB7IHJldHVybiBtX2l0ZW1zOyB9CisKK3ByaXZhdGU6CisgICAgQ2xpZW50UmVjdExp
c3QoY29uc3QgV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiYgaXRlbXMpCisgICAg
ICAgIDogbV9pdGVtcyhpdGVtcykKKyAgICB7IH0KKworICAgIFdURjo6VmVjdG9yPFJlZjxXZWJD
b3JlOjpET01SZWN0Pj4gbV9pdGVtczsKK307CisKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01D
bGllbnRSZWN0TGlzdFByaXZhdGUgewotICAgIFJlZlB0cjxXZWJDb3JlOjpDbGllbnRSZWN0TGlz
dD4gY29yZU9iamVjdDsKKyAgICBSZWZQdHI8Q2xpZW50UmVjdExpc3Q+IGNvcmVPYmplY3Q7CiB9
IFdlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LVdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoV2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqIG9i
aikKK1dlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQoY29uc3QgV1RGOjpWZWN0b3I8UmVmPFdl
YkNvcmU6OkRPTVJlY3Q+PiYgb2JqKQogewotICAgIGlmICghb2JqKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQotICAgIGlmIChncG9pbnRlciByZXQgPSBET01PYmplY3RDYWNoZTo6Z2V0KG9i
aikpCi0gICAgICAgIHJldHVybiBXRUJLSVRfRE9NX0NMSUVOVF9SRUNUX0xJU1QocmV0KTsKLQog
ICAgIHJldHVybiB3cmFwQ2xpZW50UmVjdExpc3Qob2JqKTsKIH0KIAotV2ViQ29yZTo6Q2xpZW50
UmVjdExpc3QqIGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHJlcXVlc3QpCitzdGF0aWMg
Q2xpZW50UmVjdExpc3QqIGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHJlcXVlc3QpCiB7
Ci0gICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRSZWN0TGlz
dCo+KFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KSA6IG51bGxwdHI7Cisg
ICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxDbGllbnRSZWN0TGlzdCo+KFdFQktJVF9E
T01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KSA6IG51bGxwdHI7CiB9CiAKLVdlYktpdERP
TUNsaWVudFJlY3RMaXN0KiB3cmFwQ2xpZW50UmVjdExpc3QoV2ViQ29yZTo6Q2xpZW50UmVjdExp
c3QqIGNvcmVPYmplY3QpCitXZWJLaXRET01DbGllbnRSZWN0TGlzdCogd3JhcENsaWVudFJlY3RM
aXN0KGNvbnN0IFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mIGNvcmVPYmplY3Qp
CiB7CiAgICAgQVNTRVJUKGNvcmVPYmplY3QpOwotICAgIHJldHVybiBXRUJLSVRfRE9NX0NMSUVO
VF9SRUNUX0xJU1QoZ19vYmplY3RfbmV3KFdFQktJVF9ET01fVFlQRV9DTElFTlRfUkVDVF9MSVNU
LCAiY29yZS1vYmplY3QiLCBjb3JlT2JqZWN0LCBudWxscHRyKSk7CisgICAgYXV0byBsaXN0ID0g
Q2xpZW50UmVjdExpc3Q6OmNyZWF0ZShjb3JlT2JqZWN0KTsKKyAgICByZXR1cm4gV0VCS0lUX0RP
TV9DTElFTlRfUkVDVF9MSVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JF
Q1RfTElTVCwgImNvcmUtb2JqZWN0IiwgbGlzdC5wdHIoKSwgbnVsbHB0cikpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKQEAgLTEwMSw4ICsxMTMsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRf
ZG9tX2NsaWVudF9yZWN0X2xpc3RfY29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQogICAgIEdf
T0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9wYXJlbnRfY2xhc3MpLT5j
b25zdHJ1Y3RlZChvYmplY3QpOwogCiAgICAgV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRl
KiBwcml2ID0gV0VCS0lUX0RPTV9DTElFTlRfUkVDVF9MSVNUX0dFVF9QUklWQVRFKG9iamVjdCk7
Ci0gICAgcHJpdi0+Y29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkNsaWVudFJlY3RM
aXN0Kj4oV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCk7Ci0gICAgV2ViS2l0
OjpET01PYmplY3RDYWNoZTo6cHV0KHByaXYtPmNvcmVPYmplY3QuZ2V0KCksIG9iamVjdCk7Cisg
ICAgcHJpdi0+Y29yZU9iamVjdCA9IHN0YXRpY19jYXN0PENsaWVudFJlY3RMaXN0Kj4oV0VCS0lU
X0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtp
dF9kb21fY2xpZW50X3JlY3RfbGlzdF9jbGFzc19pbml0KFdlYktpdERPTUNsaWVudFJlY3RMaXN0
Q2xhc3MqIHJlcXVlc3RDbGFzcykKQEAgLTEzNSw4ICsxNDYsOCBAQCBXZWJLaXRET01DbGllbnRS
ZWN0KiB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xpc3RfaXRlbShXZWJLaXRET01DbGllbnRSZWN0
TGlzdCogcwogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0NMSUVOVF9SRUNUX0xJU1Qoc2Vs
ZiksIG51bGxwdHIpOwotICAgIFdlYkNvcmU6OkNsaWVudFJlY3RMaXN0KiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpDbGllbnRSZWN0PiBnb2JqZWN0UmVz
dWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+aXRlbShpbmRleCkpOworICAgIGF1dG8mIGxpc3QgPSBX
ZWJLaXQ6OmNvcmUoc2VsZiktPml0ZW1zKCk7CisgICAgUmVmUHRyPFdlYkNvcmU6OkRPTVJlY3Q+
IGdvYmplY3RSZXN1bHQgPSBpbmRleCA+PSBsaXN0LnNpemUoKSA/IG51bGxwdHIgOiBsaXN0W2lu
ZGV4XS5wdHIoKTsKICAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7
CiB9CiAKQEAgLTE0NCw1ICsxNTUsNSBAQCBndWxvbmcgd2Via2l0X2RvbV9jbGllbnRfcmVjdF9s
aXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHNlbGYpCiB7CiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9ET01fSVNfQ0xJRU5UX1JFQ1RfTElTVChzZWxmKSwgMCk7Ci0gICAgcmV0dXJu
IFdlYktpdDo6Y29yZShzZWxmKS0+bGVuZ3RoKCk7CisgICAgcmV0dXJuIFdlYktpdDo6Y29yZShz
ZWxmKS0+aXRlbXMoKS5zaXplKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUuaAppbmRleCAzYmM1YjRiZTEz
M2ZhNzY1NDQ4ZmM5MjZhNjc3NGIzMjIzOThmMDJkLi45ZmMzODYzMzA1MTcyODU4Njg4ZjYwNWM4
NDk2NjgzNjA0MjI5MWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRlLmgKQEAgLTE5LDExICsxOSwxMSBAQAog
CiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50UmVjdExpc3QuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0RPTVJlY3QuaD4KICNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9N
Q2xpZW50UmVjdExpc3QuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewotV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHdyYXBDbGllbnRSZWN0TGlzdChXZWJD
b3JlOjpDbGllbnRSZWN0TGlzdCopOwotV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIGtpdChXZWJD
b3JlOjpDbGllbnRSZWN0TGlzdCopOwotV2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqIGNvcmUoV2Vi
S2l0RE9NQ2xpZW50UmVjdExpc3QqKTsKK1dlYktpdERPTUNsaWVudFJlY3RMaXN0KiB3cmFwQ2xp
ZW50UmVjdExpc3QoY29uc3QgV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiYpOwor
V2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIGtpdChjb25zdCBXVEY6OlZlY3RvcjxSZWY8V2ViQ29y
ZTo6RE9NUmVjdD4+Jik7CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q2xpZW50UmVjdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUuaAppbmRleCBkYTg4
ZDQ5NTg1ZThhZDk1ZTA4MTZjM2ZhZDU3ZGQwM2MwMzJhOGViLi5kN2VjYzBlMmJjYTY4Njc1MjEw
ZTFlZTcyMTQ2OGZkNDQ0ZjEwYWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZS5oCkBAIC0xOSwxMSArMTksMTEgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudFJlY3QuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0RPTVJlY3QuaD4KICNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NQ2xpZW50
UmVjdC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLVdlYktpdERPTUNsaWVudFJlY3QqIHdyYXBD
bGllbnRSZWN0KFdlYkNvcmU6OkNsaWVudFJlY3QqKTsKLVdlYktpdERPTUNsaWVudFJlY3QqIGtp
dChXZWJDb3JlOjpDbGllbnRSZWN0Kik7Ci1XZWJDb3JlOjpDbGllbnRSZWN0KiBjb3JlKFdlYktp
dERPTUNsaWVudFJlY3QqKTsKK1dlYktpdERPTUNsaWVudFJlY3QqIHdyYXBDbGllbnRSZWN0KFdl
YkNvcmU6OkRPTVJlY3QqKTsKK1dlYktpdERPTUNsaWVudFJlY3QqIGtpdChXZWJDb3JlOjpET01S
ZWN0Kik7CitXZWJDb3JlOjpET01SZWN0KiBjb3JlKFdlYktpdERPTUNsaWVudFJlY3QqKTsKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
RWxlbWVudC5jcHAKaW5kZXggNzNhNmVhMWFlMDc4MWVlOTY3NDU1NGEyMjRlNDc1MmI3N2U5Yzhh
NS4uNTlhMTVkMzM5ZDQ5NGYyZTIzZmI1MGUyODQxNTU1YWQ0Yzg3MGVkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwCkBAIC0yMiw4ICsyMiw2IEBA
CiAKICNpbmNsdWRlIDxXZWJDb3JlL0NTU0ltcG9ydFJ1bGUuaD4KICNpbmNsdWRlICJET01PYmpl
Y3RDYWNoZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50UmVjdC5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvQ2xpZW50UmVjdExpc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTVJlY3QuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25D
b2RlLmg+CkBAIC0xMjI2LDI3ICsxMjI0LDEyIEBAIGdsb25nIHdlYmtpdF9kb21fZWxlbWVudF9n
ZXRfc2Nyb2xsX2hlaWdodChXZWJLaXRET01FbGVtZW50KiBzZWxmKQogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKLXN0YXRpYyBSZWY8V2ViQ29yZTo6Q2xpZW50UmVjdD4gdG9DbGllbnRSZWN0KFdl
YkNvcmU6OkRPTVJlY3QmIHJlY3QpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OkNsaWVudFJlY3Q6
OmNyZWF0ZShXZWJDb3JlOjpGbG9hdFJlY3QocmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRo
KCksIHJlY3QuaGVpZ2h0KCkpKTsKLX0KLQogV2ViS2l0RE9NQ2xpZW50UmVjdCogd2Via2l0X2Rv
bV9lbGVtZW50X2dldF9ib3VuZGluZ19jbGllbnRfcmVjdChXZWJLaXRET01FbGVtZW50KiBzZWxm
KQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIG51bGxwdHIpOwog
ICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgYXV0
byBjbGllbnRSZWN0ID0gdG9DbGllbnRSZWN0KGl0ZW0tPmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
KTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoY2xpZW50UmVjdC5wdHIoKSk7Ci19Ci0KLXN0YXRp
YyBWZWN0b3I8UmVmPFdlYkNvcmU6OkNsaWVudFJlY3Q+PiB0b0NsaWVudFJlY3RWZWN0b3IoVmVj
dG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mJiByZWN0cykKLXsKLSAgICBWZWN0b3I8UmVmPFdl
YkNvcmU6OkNsaWVudFJlY3Q+PiBjbGllbnRSZWN0czsKLSAgICBjbGllbnRSZWN0cy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHJlY3RzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvJiByZWN0IDogcmVj
dHMpCi0gICAgICAgIGNsaWVudFJlY3RzLnVuY2hlY2tlZEFwcGVuZCh0b0NsaWVudFJlY3QocmVj
dCkpOwotICAgIHJldHVybiBjbGllbnRSZWN0czsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoaXRl
bS0+Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucHRyKCkpOwogfQogCiBXZWJLaXRET01DbGllbnRS
ZWN0TGlzdCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfcmVjdHMoV2ViS2l0RE9NRWxl
bWVudCogc2VsZikKQEAgLTEyNTQsOCArMTIzNyw3IEBAIFdlYktpdERPTUNsaWVudFJlY3RMaXN0
KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsaWVudF9yZWN0cyhXZWJLaXRET01FbGVtZW50KiBz
CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgbnVsbHB0cik7CiAgICAg
V2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBhdXRvIGNs
aWVudFJlY3RzID0gV2ViQ29yZTo6Q2xpZW50UmVjdExpc3Q6OmNyZWF0ZSh0b0NsaWVudFJlY3RW
ZWN0b3IoaXRlbS0+Z2V0Q2xpZW50UmVjdHMoKSkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChj
bGllbnRSZWN0cy5wdHIoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGl0ZW0tPmdldENsaWVu
dFJlY3RzKCkpOwogfQogCiBXZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0
X29mZnNldF9wYXJlbnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308651</attachid>
            <date>2017-04-28 19:24:46 -0700</date>
            <delta_ts>2017-04-30 14:37:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171418-20170428192445.patch</filename>
            <type>text/plain</type>
            <size>42319</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBmMmYzODIyNWUyYTQw
YTJlNjg1ODY2NTZkMjhiNWFkODVlN2RkOS4uYzZmZTNkNDI4ZGQ5NWQ4NjAxMmY3NGU1Nzg4NDJi
YjlkYzUyODM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDE3LTA0LTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBs
ZWdhY3kgQ2xpZW50UmVjdCAvIENsaWVudFJlY3RMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0MTgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBDbGllbnRS
ZWN0IC8gQ2xpZW50UmVjdExpc3QgdHlwZXMgbm93IHdlIHVzZQorICAgICAgICBET01SZWN0IGV2
ZXJ5d2hlcmUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0NsaWVudFJl
Y3QuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9DbGllbnRSZWN0Lmg6IFJlbW92ZWQuCisg
ICAgICAgICogZG9tL0NsaWVudFJlY3QuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9DbGll
bnRSZWN0TGlzdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogZG9tL0NsaWVudFJlY3RMaXN0Lmg6
IFJlbW92ZWQuCisgICAgICAgICogZG9tL0NsaWVudFJlY3RMaXN0LmlkbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvdHJh
Y2svVlRUUmVnaW9uLmNwcDoKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKwor
MjAxNy0wNC0yOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIFN0
b3AgdXNpbmcgbGVnYWN5IENsaWVudFJlY3QgLyBDbGllbnRSZWN0TGlzdCBpbiBJbnRlcm5hbHMK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTQxMgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAwMDQxNmVmMTdmOTU2ZmU2ZmI4ZDU4YTVjOGJi
YWU1NDBiZTYwYTliLi5jMDE4MWZhYjAwYzEzZGUyNWQ2MWE5YjVmZGM1NTFiNTRmNDMwNGMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wNC0yOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3Ig
bGVnYWN5IENsaWVudFJlY3QgLyBDbGllbnRSZWN0TGlzdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNDE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBDbGllbnRSZWN0TGlzdC1yZWxhdGVkIGNv
ZGUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFt
ZXRlcnMuanM6CisKIDIwMTctMDQtMjcgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlA
c29ueS5jb20+CiAKICAgICAgICAgW0dUS10gV2ViIEluc3BlY3RvcjogQWRkIG5ldyBHVEsrIGlj
b25zIGZvciBkaWZmZXJlbnQgU2NyaXB0IFRpbWVsaW5lIFZpZXdzIChFdmVudHMgYW5kIENhbGwg
VHJlZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjFiMzAwMjQ1YTU0YzE4NDZlZmQ0NDE2ZjZkOGJkY2U5MmU3
YzQzZi4uNGE3MzFhYzU0MWU2NDYwZjVkYmM1NzExNWQwOWUyNGYzYzBhOWRlMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTA0LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBsZWdhY3kgQ2xpZW50UmVjdCAvIENs
aWVudFJlY3RMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzE0MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBHVEsgYnVpbGQgZml4LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
a2l0KToKKyAgICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgIChXZWJLaXQ6OndyYXBDbGll
bnRSZWN0KToKKyAgICAgICAgKHdlYmtpdF9kb21fY2xpZW50X3JlY3RfY29uc3RydWN0ZWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q2xpZW50UmVjdExpc3QuY3BwOgorICAgICAgICAoQ2xpZW50UmVjdExpc3Q6OmNyZWF0ZSk6Cisg
ICAgICAgIChDbGllbnRSZWN0TGlzdDo6aXRlbXMpOgorICAgICAgICAoQ2xpZW50UmVjdExpc3Q6
OkNsaWVudFJlY3RMaXN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdFBy
aXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUVsZW1lbnQuY3BwOgorICAgICAgICAod2Via2l0X2RvbV9lbGVtZW50X2dldF9i
b3VuZGluZ19jbGllbnRfcmVjdCk6CisgICAgICAgICh3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2Ns
aWVudF9yZWN0cyk6CisKIDIwMTctMDQtMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIGdldFVzZXJNZWRpYSB2aWRlbyBzdHJlYW1zIHNob3VsZCBmb2xsb3cg
ZGV2aWNlIG9yaWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDFjMTdkZTZjNjUxNDkw
ZWU3YjhmNzg0Y2NjMjY3ZmQ0YmNhZDUwZGYuLmQ5NjE0YzBiZjVhMzhiZDNkZjMyYmI0MzQxMGU0
MTQyYjczYzEwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MDYsOCArNDA2LDYgQEAgc2V0
KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBkb20vQ0RBVEFTZWN0aW9uLmlkbAogICAg
IGRvbS9DaGFyYWN0ZXJEYXRhLmlkbAogICAgIGRvbS9DaGlsZE5vZGUuaWRsCi0gICAgZG9tL0Ns
aWVudFJlY3QuaWRsCi0gICAgZG9tL0NsaWVudFJlY3RMaXN0LmlkbAogICAgIGRvbS9DbGlwYm9h
cmRFdmVudC5pZGwKICAgICBkb20vQ29tbWVudC5pZGwKICAgICBkb20vQ29tcG9zaXRpb25FdmVu
dC5pZGwKQEAgLTE0NDcsOCArMTQ0NSw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20v
Q2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAKICAgICBkb20vQ2hpbGROb2RlTGlzdC5jcHAKICAg
ICBkb20vQ2xhc3NDb2xsZWN0aW9uLmNwcAotICAgIGRvbS9DbGllbnRSZWN0LmNwcAotICAgIGRv
bS9DbGllbnRSZWN0TGlzdC5jcHAKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuY3BwCiAgICAgZG9t
L0NvbGxlY3Rpb25JbmRleENhY2hlLmNwcAogICAgIGRvbS9Db21tZW50LmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCmluZGV4IGJkOGI3ODIyN2Y4YmJhMTJiZjg1Nzk2ZWQyNjE1ZmI5NThj
MTFkMjQuLjVhNjYxZjE2MTE0MTRmNjhkNjY5ZTQ2OGRkMGI3YjE2ZDdlMTE3NjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTEwNyw4ICsxMDcsNiBAQAogI2VuZGlmCiAjaW5jbHVk
ZSAiSlNDREFUQVNlY3Rpb24uY3BwIgogI2luY2x1ZGUgIkpTQ2hhcmFjdGVyRGF0YS5jcHAiCi0j
aW5jbHVkZSAiSlNDbGllbnRSZWN0LmNwcCIKLSNpbmNsdWRlICJKU0NsaWVudFJlY3RMaXN0LmNw
cCIKICNpbmNsdWRlICJKU0Nsb3NlRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTQ29tbWFuZExpbmVB
UElIb3N0LmNwcCIKICNpbmNsdWRlICJKU0NvbW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggN2M1NzQ3MGYxZjNjMjk4OWY5YmMxODI2ZTQ3MjQ4M2Q1NjlhYmVlOS4u
MGFjZDI5YzEzZDM2MDRjMmVmZDZmNzc4M2M0YTJmOWM2OGZmZTExYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0zNDIsOCArMzQyLDYgQEAgSlNfQklORElOR19JRExTID0gXAog
ICAgICQoV2ViQ29yZSkvZG9tL0NEQVRBU2VjdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9t
L0NoYXJhY3RlckRhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9DaGlsZE5vZGUuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL2RvbS9DbGllbnRSZWN0LmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20v
Q2xpZW50UmVjdExpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9DbGlwYm9hcmRFdmVudC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL0NvbW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2Rv
bS9Db21wb3NpdGlvbkV2ZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDkzYzQwZDQ1NzMwNGYyNDA4NjIzOWE4NmU1
MzExYjEyMmNkNWI0ZS4uMzYyMWFiZDY4NTBiNmEzNTVkYzYwZmViNjM3MjExMjBmNzkzOGQwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNTc5NywxNCArNTc5Nyw2IEBACiAJCUJDQkQyMUFCMEU0MTdBRDQwMEEwNzBGMiAvKiBV
UkxIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0JEMjFBQTBFNDE3QUQ0MDBBMDcwRjIgLyogVVJMSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDQkZCNTNDMERDRDI5Q0YwMDE5QjNFNSAv
KiBKU0RPTVdpbmRvd1NoZWxsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQkZCNTNBMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxs
LmNwcCAqLzsgfTsKIAkJQkNCRkI1M0QwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hl
bGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkZC
NTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNDMDY1N0QwRjNDRTFCNzAwQ0Qy
RDg3IC8qIENsaWVudFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNDMDY1NzcwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuY3BwICov
OyB9OwotCQlCQ0MwNjU3RTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1NzgwRjNDRTFCNzAw
Q0QyRDg3IC8qIENsaWVudFJlY3QuaCAqLzsgfTsKLQkJQkNDMDY1ODAwRjNDRTFCNzAwQ0QyRDg3
IC8qIENsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQzA2NTdBMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5j
cHAgKi87IH07Ci0JCUJDQzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1N0Iw
RjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggKi87IH07Ci0JCUJDQzA2NTg3MEYz
Q0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1ODMwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xp
ZW50UmVjdC5jcHAgKi87IH07Ci0JCUJDQzA2NTg4MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVu
dFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
QzA2NTg0MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3QuaCAqLzsgfTsKLQkJQkNDMDY1
ODkwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMDY1ODUwRjNDRTJBNzAwQ0QyRDg3
IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovOyB9OwotCQlCQ0MwNjU4QTBGM0NFMkE3MDBDRDJE
ODcgLyogSlNDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNDMDY1ODYwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExp
c3QuaCAqLzsgfTsKIAkJQkNDMEU4NzUxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0MwRTg3MzFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmNwcCAqLzsgfTsK
IAkJQkNDMEU4NzYxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMEU4NzQxQkZFNzBF
OTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5oICovOyB9OwogCQlCQ0M1QkUwMDBDMEU5
MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzVCREZFMEMwRTkzMTEwMDExQzJEQiAvKiBKU0NT
U1N0eWxlU2hlZXQuY3BwICovOyB9OwpAQCAtMTQyMzksMTYgKzE0MjMxLDYgQEAKIAkJQkNCRDIx
QUEwRTQxN0FENDAwQTA3MEYyIC8qIFVSTEhhc2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVVJMSGFzaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0JGQjUz
QTBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVdpbmRvd1NoZWxsLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93
U2hlbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01XaW5kb3dTaGVs
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3NzBGM0NFMUI3MDBDRDJE
ODcgLyogQ2xpZW50UmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDbGllbnRSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1Nzgw
RjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ2xpZW50UmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0Mw
NjU3OTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQ2xpZW50UmVjdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzA2
NTdBMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGllbnRSZWN0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUJDQzA2NTdCMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGllbnRSZWN0TGlzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3QzBGM0NFMUI3MDBDRDJEODcgLyog
Q2xpZW50UmVjdExpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENsaWVudFJlY3RMaXN0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODMwRjNDRTJBNzAwQ0Qy
RDg3IC8qIEpTQ2xpZW50UmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0NsaWVudFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0Mw
NjU4NDBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTQ2xpZW50UmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlCQ0MwNjU4NTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NsaWVudFJlY3RMaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODYwRjNDRTJBNzAwQ0QyRDg3IC8q
IEpTQ2xpZW50UmVjdExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlND
bGllbnRSZWN0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0MwRTg3MzFC
RkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxQaWN0dXJlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDQzBFODc0MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVy
ZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFBpY3R1cmVF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzVCREZFMEMwRTkzMTEw
MDExQzJEQiAvKiBKU0NTU1N0eWxlU2hlZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQ1NTU3R5bGVTaGVldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMTg0NiwxMCArMjE4MjgsNiBAQAogCQlBODNCNzkwRTBDQ0FGRjk3MDAwQjA4MjUg
LyogQ1NTICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlC
Q0MwNjU4MzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmNwcCAqLywKLQkJCQlCQ0Mw
NjU4NDBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggKi8sCi0JCQkJQkNDMDY1ODUw
RjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovLAotCQkJCUJDQzA2NTg2
MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi8sCiAJCQkJQkM0NkMxRjIw
QzBEREM4RjAwMjBDRkMzIC8qIEpTQ1NTRm9udEZhY2VSdWxlLmNwcCAqLywKIAkJCQlCQzQ2QzFG
MzBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NGb250RmFjZVJ1bGUuaCAqLywKIAkJCQlCQzQ2QzFG
NDBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NJbXBvcnRSdWxlLmNwcCAqLywKQEAgLTI1NDQ4LDEy
ICsyNTQyNiw2IEBACiAJCQkJQTgxODcyMTUwOTc3RDNDMDAwNTgyNkQ5IC8qIENoaWxkTm9kZUxp
c3QuaCAqLywKIAkJCQk4MzQ4QkZBOTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9u
LmNwcCAqLywKIAkJCQk4MzQ4QkZBQTFCODU3Mjk1MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9u
LmggKi8sCi0JCQkJQkNDMDY1NzcwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuY3BwICov
LAotCQkJCUJDQzA2NTc4MEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmggKi8sCi0JCQkJ
QkNDMDY1NzkwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaWRsICovLAotCQkJCUJDQzA2
NTdBMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAgKi8sCi0JCQkJQkNDMDY1
N0IwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggKi8sCi0JCQkJQkNDMDY1N0Mw
RjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmlkbCAqLywKIAkJCQk4NTAzMUIyOTBB
NDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuY3BwICovLAogCQkJCTg1MDMxQjJBMEE0
NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5oICovLAogCQkJCTgzNkQwMzI3MURBODlC
NzMwMEZGRDk2QiAvKiBDbGlwYm9hcmRFdmVudC5pZGwgKi8sCkBAIC0yNjU5OCw4ICsyNjU3MCw2
IEBACiAJCQkJMTREODI0MDgwQUY5M0FFQjAwMDRGMDU3IC8qIENocm9tZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTRBODE0RDQxQzZERUM0MDAwQkY4NUFDIC8qIENsYXNzQ2hhbmdlSW52
YWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzQ4QkZBQzFCODU3Mjk4MDA5MTJGMzYg
LyogQ2xhc3NDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQ0MwNjU3RTBGM0NFMUI3
MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkNDMDY1ODEwRjND
RTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzNB
OTFFNjFDOTYzQjg4MDBEMUE3RTMgLyogQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NTAzMUI0MDBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZCOTJERjRCMTVGRUQwODcwMDk5NDQzMyAvKiBDbGlwUGF0aE9w
ZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzY1NCw4ICsyNzYyNCw2IEBACiAJCQkJRkRB
MTVFQTIxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQ2hhbm5lbE1lcmdlck5vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZEQTE1RUE0MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0NoYW5uZWxTcGxpdHRlck5v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMUY0MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0No
YXJhY3RlckRhdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDQzA2NTg4MEYzQ0UyQTcwMENEMkQ4
NyAvKiBKU0NsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDQzA2NThBMEYzQ0UyQTcw
MENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzZEMDMz
MjFEQThBMTQyMDBGRkQ5NkIgLyogSlNDbGlwYm9hcmRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTFGQjU1MDQxMTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTU4NEZFM0MxODY0RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElIb3N0
LmggaW4gSGVhZGVycyAqLywKQEAgLTMwNjcwLDggKzMwNjM4LDYgQEAKIAkJCQlBQkFGMjIwODBD
MDNCMUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBODE0
RDYxQzZERUU4RDAwQkY4NUFDIC8qIENsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTgzNDhCRkFCMUI4NTcyOTgwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNDMDY1N0QwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVu
dFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNDMDY1ODAwRjNDRTFCNzAwQ0QyRDg3IC8q
IENsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjNGMEE0NEVGQzcw
MEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1ODAzNzE2
MTFBNjZGMDBBMDBCQUY1MTkgLyogQ2xpcFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RF
QTc2MzUxNDYwQjcxQTAwOEIzMUYxIC8qIENsb2NrLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzE2
MjAsOCArMzE1ODYsNiBAQAogCQkJCUZEQTE1RUExMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0NoYW5u
ZWxNZXJnZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RUEzMTJCMDNFRTEwMDNB
NTgzQSAvKiBKU0NoYW5uZWxTcGxpdHRlck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVE
RjMxRjMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTQ2hhcmFjdGVyRGF0YS5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlCQ0MwNjU4NzBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUJDQzA2NTg5MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzNkQwMzMxMURBOEExM0YwMEZGRDk2QiAvKiBK
U0NsaXBib2FyZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRkI1NTA1MTEzRTNFOTEw
MDgyMTE3NiAvKiBKU0Nsb3NlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU4NEZFM0Ix
ODY0RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElIb3N0LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMzIwMDgsNyArMzE5NzIsNyBAQAogCQkJCTdDMzMwQTA3MURGOUY5NTEwMEQzMzk1QyAv
KiBKU1Bvc2l0aW9uT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzFGRjA5RDFD
QzYwMDAwQkUzMjUgLyogSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTQ0NjEzRUQwQ0Q2ODFCQTAwRkFEQTc1IC8qIEpTUHJvZ3Jlc3NFdmVudC5jcHAgaW4g
U291cmNlcyAqLywKLSAgICAgICAgICAgICAgICBBNTc4RjQzQjFERTAxNDIxMDAzREZDNkEgLyog
SlNQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTU3OEY0M0Ix
REUwMTQyMTAwM0RGQzZBIC8qIEpTUHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA3NzY2NEZDMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNrVGltZVBsdWdpblJl
cGxhY2VtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI2NThGRkExMTUyMkVGM0EwMERENTU5
NSAvKiBKU1JhZGlvTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMyMDEwOUQx
Q0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
ZW50UmVjdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhNjRlNzU1MTBmZjg1
ODQyM2I3MTdlZDc2ZWEwZjliMjEwYTI5ZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaWVu
dFJlY3QuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1DbGllbnRSZWN0OjpDbGllbnRSZWN0
KCkKLXsKLX0KLQotQ2xpZW50UmVjdDo6Q2xpZW50UmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQot
ICAgIDogbV9yZWN0KHJlY3QpCi17Ci19Ci0KLUNsaWVudFJlY3Q6OkNsaWVudFJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQotICAgIDogbV9yZWN0KHJlY3QpCi17Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyZTllZmI1Yjc0MGEzYmJmMDE5NmRiMGM5OTk4MjI4ZWQ0N2M3MzlmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9DbGllbnRSZWN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQot
I2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgotI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBJbnRSZWN0OyAKLQotICAgIGNsYXNzIENsaWVudFJl
Y3QgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxDbGllbnRSZWN0
PiB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJlY3Q+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xpZW50UmVjdCk7IH0KLSAgICAgICAgc3RhdGljIFJl
ZjxDbGllbnRSZWN0PiBjcmVhdGUoY29uc3QgSW50UmVjdCYgcmVjdCkgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDbGllbnRSZWN0KHJlY3QpKTsgfQotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJl
Y3Q+IGNyZWF0ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q2xpZW50UmVjdChyZWN0KSk7IH0KLQotICAgICAgICBmbG9hdCB0b3AoKSBjb25zdCB7IHJldHVy
biBtX3JlY3QueSgpOyB9Ci0gICAgICAgIGZsb2F0IHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9y
ZWN0Lm1heFgoKTsgfQotICAgICAgICBmbG9hdCBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX3Jl
Y3QubWF4WSgpOyB9Ci0gICAgICAgIGZsb2F0IGxlZnQoKSBjb25zdCB7IHJldHVybiBtX3JlY3Qu
eCgpOyB9Ci0gICAgICAgIGZsb2F0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LndpZHRo
KCk7IH0KLSAgICAgICAgZmxvYXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LmhlaWdo
dCgpOyB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBXRUJDT1JFX0VYUE9SVCBDbGllbnRSZWN0
KCk7Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IENsaWVudFJlY3QoY29uc3QgSW50
UmVjdCYpOwotICAgICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBDbGllbnRSZWN0KGNvbnN0
IEZsb2F0UmVjdCYpOwotCi0gICAgICAgIEZsb2F0UmVjdCBtX3JlY3Q7Ci0gICAgfTsgCi0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGll
bnRSZWN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0LmlkbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2Q5OTQwYTlkZjFkMTBhZjI4YjUzZGFhNjhmYzc3MzNhNTM1
MjdhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi1b
Ci0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLSAgICBFeHBvcnRNYWNybz1XRUJDT1JF
X0VYUE9SVCwKLV0gaW50ZXJmYWNlIENsaWVudFJlY3QgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnJlc3RyaWN0ZWQgZmxvYXQgdG9wOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3Ry
aWN0ZWQgZmxvYXQgcmlnaHQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBm
bG9hdCBib3R0b207Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBmbG9hdCBs
ZWZ0OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZmxvYXQgd2lkdGg7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBmbG9hdCBoZWlnaHQ7Ci0KLSAgICBz
ZXJpYWxpemVyID0geyBhdHRyaWJ1dGUgfTsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ2xpZW50UmVjdExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RM
aXN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU0ZTNjYzU4NzEzMmIwNjQ0
ZGE5NWUzMGQ2MmNlN2NlYWFkZmEyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsaWVu
dFJlY3RMaXN0LmgiCi0KLSNpbmNsdWRlICJDbGllbnRSZWN0LmgiCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotQ2xpZW50UmVjdExpc3Q6OkNsaWVudFJlY3RMaXN0KCkKLXsKLX0KLQotQ2xpZW50
UmVjdExpc3Q6OkNsaWVudFJlY3RMaXN0KGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykK
LXsKLSAgICBtX2xpc3QucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShxdWFkcy5zaXplKCkpOwotICAg
IGZvciAoYXV0byYgcXVhZCA6IHF1YWRzKQotICAgICAgICBtX2xpc3QudW5jaGVja2VkQXBwZW5k
KENsaWVudFJlY3Q6OmNyZWF0ZShxdWFkLmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpKTsKLX0KLQot
Q2xpZW50UmVjdExpc3Q6OkNsaWVudFJlY3RMaXN0KFZlY3RvcjxSZWY8Q2xpZW50UmVjdD4+JiYg
cmVjdHMpCi0gICAgOiBtX2xpc3QoV1RGTW92ZShyZWN0cykpCi17Ci19Ci0KLUNsaWVudFJlY3RM
aXN0Ojp+Q2xpZW50UmVjdExpc3QoKQotewotfQotCi11bnNpZ25lZCBDbGllbnRSZWN0TGlzdDo6
bGVuZ3RoKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9saXN0LnNpemUoKTsKLX0KLQotQ2xpZW50
UmVjdCogQ2xpZW50UmVjdExpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpCi17Ci0gICAgaWYgKGlu
ZGV4ID49IG1fbGlzdC5zaXplKCkpIHsKLSAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIHRo
cm93IGFuIElOREVYX1NJWkVfRVJSIGV4Y2VwdGlvbj8KLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgfQotICAgIHJldHVybiBtX2xpc3RbaW5kZXhdLnB0cigpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExp
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiYTFjZDcxMzIzNDQ4MzEyNDc5ZGYxYTQzNDE1NWM0ODU0Y2Q3OTI1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJGbG9hdFF1YWQuaCIKLSNpbmNsdWRlIDx3dGYvUmVmLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIENsaWVudFJlY3Q7Ci0KLSAgICBjbGFz
cyBDbGllbnRSZWN0TGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPENsaWVudFJlY3RMaXN0PiB7Ci0g
ICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJlY3RMaXN0PiBjcmVhdGUoKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IENsaWVudFJlY3RMaXN0KTsgfQotICAgICAgICBzdGF0aWMg
UmVmPENsaWVudFJlY3RMaXN0PiBjcmVhdGUoY29uc3QgVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRz
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENsaWVudFJlY3RMaXN0KHF1YWRzKSk7IH0KLSAgICAg
ICAgc3RhdGljIFJlZjxDbGllbnRSZWN0TGlzdD4gY3JlYXRlKFZlY3RvcjxSZWY8Q2xpZW50UmVj
dD4+JiYgcmVjdHMpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xpZW50UmVjdExpc3QoV1RGTW92
ZShyZWN0cykpKTsgfQotICAgICAgICBXRUJDT1JFX0VYUE9SVCB+Q2xpZW50UmVjdExpc3QoKTsK
LQotICAgICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKLSAgICAgICAgQ2xpZW50UmVjdCog
aXRlbSh1bnNpZ25lZCBpbmRleCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBXRUJDT1JFX0VY
UE9SVCBDbGllbnRSZWN0TGlzdCgpOwotICAgICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBD
bGllbnRSZWN0TGlzdChjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYpOwotICAgICAgICBXRUJDT1JF
X0VYUE9SVCBleHBsaWNpdCBDbGllbnRSZWN0TGlzdChWZWN0b3I8UmVmPENsaWVudFJlY3Q+PiYm
KTsKLQotICAgICAgICBWZWN0b3I8UmVmPENsaWVudFJlY3Q+PiBtX2xpc3Q7Ci0gICAgfTsgCi0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGllbnRSZWN0TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuaWRs
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNWRiY2Y2NzFmNWE0YWNiNDFiMDliODcx
MDZkOTBhMWE3ZDM1MjNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwKKysrIC9kZXYvbnVs
bApAQCAtMSwzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICoKLSAqLwotCi1bCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLSAgICBFeHBv
cnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKLV0gaW50ZXJmYWNlIENsaWVudFJlY3RMaXN0IHsKLSAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgZ2V0dGVyIENs
aWVudFJlY3QgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKLSAgICAvLyBGSVhNRTogRml4IGxp
c3QgYmVoYXZpb3IgdG8gYWxsb3cgY3VzdG9tIGV4Y2VwdGlvbnMgdG8gYmUgdGhyb3duLgotfTsK
LQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggMjcwZTQxNjY4ZDIyOGM0NmE5YWZi
ZTQyZGY0ZWY5NzcxYzQwMmE4MS4uMGEwNTQyMTliNjg4YjA1ZTJmM2ZlODM2NWRlNzYxNmI3NGE2
NWNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0zNyw4ICszNyw2IEBACiAj
aW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHAiCiAjaW5jbHVkZSAiQ2hpbGROb2Rl
TGlzdC5jcHAiCiAjaW5jbHVkZSAiQ2xhc3NDb2xsZWN0aW9uLmNwcCIKLSNpbmNsdWRlICJDbGll
bnRSZWN0LmNwcCIKLSNpbmNsdWRlICJDbGllbnRSZWN0TGlzdC5jcHAiCiAjaW5jbHVkZSAiQ2xp
cGJvYXJkRXZlbnQuY3BwIgogI2luY2x1ZGUgIkNvbGxlY3Rpb25JbmRleENhY2hlLmNwcCIKICNp
bmNsdWRlICJDb21tZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA4MTg5MjQzYzY0
ZjQ0YjcxODY3MWM3MDAxMWM4MzRkYTI4Mzc0YTEzLi44MWJjNzMxYmMwOTQ5ODIxYzhlNDZiZTNj
OGRhM2U5YmU0ZjMwYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMyw4ICszMyw2IEBA
CiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaCIKLSNpbmNsdWRlICJDbGllbnRSZWN0LmgiCi0j
aW5jbHVkZSAiQ2xpZW50UmVjdExpc3QuaCIKICNpbmNsdWRlICJDb21wb3NlZFRyZWVBbmNlc3Rv
ckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCIKICNpbmNs
dWRlICJDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMDY3NzIwN2RlYmFkNTMyYzZiM2YzNzM2OTg2YzViNDZm
YTdhYzYwYS4uODlmOGVkYjE4MzVkOWQ2MjJkMzcwNGYxNDZiOTFiN2JhZTRlMTAxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0zNSw4ICszNSw2IEBACiAj
aW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMu
aCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJDbGllbnRSZWN0LmgiCi0j
aW5jbHVkZSAiQ2xpZW50UmVjdExpc3QuaCIKICNpbmNsdWRlICJDb21tb25WTS5oIgogI2luY2x1
ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbi5jcHAKaW5kZXggZTY4ODQ4MDk3YThjNDk5
OTU3NDAzNGVlYTIwYjU4ZjJiNTViNDZmZi4uNTIxNGE3OTVlNjE4MDcwZTViYzU1MmYzYjU4ZDJm
OWU5ZGVjYzdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcApAQCAt
MzQsNyArMzQsNiBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiQ2xp
ZW50UmVjdC5oIgogI2luY2x1ZGUgIkRPTVJlY3QuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3Qu
aCIKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJdGVyYXRvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmNwcAppbmRleCAxM2ZlYTAzOTBiZWM5MTQxYWQ4MDk5OTdjNmMyYTgyMTAy
ODMzNmU4Li41ZGM5YmQ0MWU4ZjgzNWE3YzRhMDdlYWI3NjZlMDMxZDhjNjYzNGVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKICNpbmNsdWRl
ICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50RnJhZ21lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpz
CmluZGV4IDVmY2JlYzFkOTQ3NzU2Yjg1YjA5YTNlMDcyMjkyOGM4MWZiMjZmMzAuLmZjOTVmYTQw
MjJmYTA2MzY4YzIwYTNiNzMyN2NhZmNhM2Y5ZTIxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2
ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcwpAQCAtNjk2LDExICs2OTYsNiBAQCBXZWJJbnNwZWN0b3Iu
TmF0aXZlUHJvdG90eXBlRnVuY3Rpb25QYXJhbWV0ZXJzID0gewogICAgICAgICBfX3Byb3RvX186
IG51bGwsCiAgICAgfSwKIAotICAgIENsaWVudFJlY3RMaXN0OiB7Ci0gICAgICAgIGl0ZW06ICJb
aW5kZXhdIiwKLSAgICAgICAgX19wcm90b19fOiBudWxsLAotICAgIH0sCi0KICAgICBDb21tYW5k
TGluZUFQSUhvc3Q6IHsKICAgICAgICAgY29weVRleHQ6ICJ0ZXh0IiwKICAgICAgICAgZGF0YWJh
c2VJZDogImRhdGFiYXNlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNsaWVudFJlY3QuY3BwCmluZGV4IDJkNzFlOGU1MmY3Yzg1NjA4MjQzMmVjMDVmMTdmZDMyYzNi
NmFlOWUuLjRmODdlMGI2YzAxZTI4N2JkZWFkYTlkYjcxZTM5YWYwNWM2OGEyZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NQ2xpZW50UmVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNwcApAQCAtMzUs
MTIgKzM1LDEyIEBACiAjZGVmaW5lIFdFQktJVF9ET01fQ0xJRU5UX1JFQ1RfR0VUX1BSSVZBVEUo
b2JqKSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUob2JqLCBXRUJLSVRfRE9NX1RZUEVfQ0xJ
RU5UX1JFQ1QsIFdlYktpdERPTUNsaWVudFJlY3RQcml2YXRlKQogCiB0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUgewotICAgIFJlZlB0cjxXZWJDb3JlOjpDbGllbnRS
ZWN0PiBjb3JlT2JqZWN0OworICAgIFJlZlB0cjxXZWJDb3JlOjpET01SZWN0PiBjb3JlT2JqZWN0
OwogfSBXZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LVdlYktpdERPTUNsaWVudFJlY3QqIGtpdChXZWJDb3JlOjpDbGllbnRSZWN0KiBvYmopCitXZWJL
aXRET01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6RE9NUmVjdCogb2JqKQogewogICAgIGlmICgh
b2JqKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTUxLDEyICs1MSwxMiBAQCBXZWJLaXRE
T01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6Q2xpZW50UmVjdCogb2JqKQogICAgIHJldHVybiB3
cmFwQ2xpZW50UmVjdChvYmopOwogfQogCi1XZWJDb3JlOjpDbGllbnRSZWN0KiBjb3JlKFdlYktp
dERPTUNsaWVudFJlY3QqIHJlcXVlc3QpCitXZWJDb3JlOjpET01SZWN0KiBjb3JlKFdlYktpdERP
TUNsaWVudFJlY3QqIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpDbGllbnRSZWN0Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVP
YmplY3QpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gcmVxdWVzdCA/IHN0YXRpY19jYXN0PFdlYkNv
cmU6OkRPTVJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCkgOiBu
dWxscHRyOwogfQogCi1XZWJLaXRET01DbGllbnRSZWN0KiB3cmFwQ2xpZW50UmVjdChXZWJDb3Jl
OjpDbGllbnRSZWN0KiBjb3JlT2JqZWN0KQorV2ViS2l0RE9NQ2xpZW50UmVjdCogd3JhcENsaWVu
dFJlY3QoV2ViQ29yZTo6RE9NUmVjdCogY29yZU9iamVjdCkKIHsKICAgICBBU1NFUlQoY29yZU9i
amVjdCk7CiAgICAgcmV0dXJuIFdFQktJVF9ET01fQ0xJRU5UX1JFQ1QoZ19vYmplY3RfbmV3KFdF
QktJVF9ET01fVFlQRV9DTElFTlRfUkVDVCwgImNvcmUtb2JqZWN0IiwgY29yZU9iamVjdCwgbnVs
bHB0cikpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fY2xpZW50
X3JlY3RfY29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQogICAgIEdfT0JKRUNUX0NMQVNTKHdl
YmtpdF9kb21fY2xpZW50X3JlY3RfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0ZWQob2JqZWN0KTsK
IAogICAgIFdlYktpdERPTUNsaWVudFJlY3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX0RPTV9DTElF
TlRfUkVDVF9HRVRfUFJJVkFURShvYmplY3QpOwotICAgIHByaXYtPmNvcmVPYmplY3QgPSBzdGF0
aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRSZWN0Kj4oV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+
Y29yZU9iamVjdCk7CisgICAgcHJpdi0+Y29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6
OkRPTVJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpLT5jb3JlT2JqZWN0KTsKICAgICBX
ZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpwdXQocHJpdi0+Y29yZU9iamVjdC5nZXQoKSwgb2JqZWN0
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVu
dFJlY3RMaXN0LmNwcAppbmRleCAxNjAxOTk3N2FiYmZmMDA4NzRmNjBkMzY0M2RlNDI2MWY5NDUz
MGZiLi4xYmJhMTBjZjIyZTZlNGM5NjdmMzA1YzIzZmQwMGVkMjY5MjIwZDE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNsaWVudFJlY3RMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmNwcApA
QCAtMzUsMzIgKzM1LDQ0IEBACiAKICNkZWZpbmUgV0VCS0lUX0RPTV9DTElFTlRfUkVDVF9MSVNU
X0dFVF9QUklWQVRFKG9iaikgR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKG9iaiwgV0VCS0lU
X0RPTV9UWVBFX0NMSUVOVF9SRUNUX0xJU1QsIFdlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0
ZSkKIAorY2xhc3MgQ2xpZW50UmVjdExpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxDbGllbnRSZWN0
TGlzdD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q2xpZW50UmVjdExpc3Q+IGNyZWF0ZShX
VEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiYgaXRlbXMpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDbGllbnRSZWN0TGlzdChXVEZNb3ZlKGl0ZW1zKSkpOwor
ICAgIH0KKworICAgIGNvbnN0IFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mIGl0
ZW1zKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtczsgfQorCitwcml2YXRlOgorICAgIENsaWVudFJl
Y3RMaXN0KFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mJiBpdGVtcykKKyAgICAg
ICAgOiBtX2l0ZW1zKFdURk1vdmUoaXRlbXMpKQorICAgIHsgfQorCisgICAgV1RGOjpWZWN0b3I8
UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiBtX2l0ZW1zOworfTsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZSB7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkNsaWVu
dFJlY3RMaXN0PiBjb3JlT2JqZWN0OworICAgIFJlZlB0cjxDbGllbnRSZWN0TGlzdD4gY29yZU9i
amVjdDsKIH0gV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRlOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIGtpdChXZWJDb3JlOjpDbGllbnRSZWN0
TGlzdCogb2JqKQorV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIGtpdChXVEY6OlZlY3RvcjxSZWY8
V2ViQ29yZTo6RE9NUmVjdD4+JiYgb2JqKQogewotICAgIGlmICghb2JqKQotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLQotICAgIGlmIChncG9pbnRlciByZXQgPSBET01PYmplY3RDYWNoZTo6Z2V0
KG9iaikpCi0gICAgICAgIHJldHVybiBXRUJLSVRfRE9NX0NMSUVOVF9SRUNUX0xJU1QocmV0KTsK
LQotICAgIHJldHVybiB3cmFwQ2xpZW50UmVjdExpc3Qob2JqKTsKKyAgICByZXR1cm4gd3JhcENs
aWVudFJlY3RMaXN0KFdURk1vdmUob2JqKSk7CiB9CiAKLVdlYkNvcmU6OkNsaWVudFJlY3RMaXN0
KiBjb3JlKFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiByZXF1ZXN0KQorc3RhdGljIENsaWVudFJl
Y3RMaXN0KiBjb3JlKFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiByZXF1ZXN0KQogewotICAgIHJl
dHVybiByZXF1ZXN0ID8gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqPihXRUJL
SVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCkgOiBudWxscHRyOworICAgIHJldHVy
biByZXF1ZXN0ID8gc3RhdGljX2Nhc3Q8Q2xpZW50UmVjdExpc3QqPihXRUJLSVRfRE9NX09CSkVD
VChyZXF1ZXN0KS0+Y29yZU9iamVjdCkgOiBudWxscHRyOwogfQogCi1XZWJLaXRET01DbGllbnRS
ZWN0TGlzdCogd3JhcENsaWVudFJlY3RMaXN0KFdlYkNvcmU6OkNsaWVudFJlY3RMaXN0KiBjb3Jl
T2JqZWN0KQorV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHdyYXBDbGllbnRSZWN0TGlzdChXVEY6
OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiYgY29yZU9iamVjdCkKIHsKICAgICBBU1NF
UlQoY29yZU9iamVjdCk7Ci0gICAgcmV0dXJuIFdFQktJVF9ET01fQ0xJRU5UX1JFQ1RfTElTVChn
X29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX0NMSUVOVF9SRUNUX0xJU1QsICJjb3JlLW9iamVj
dCIsIGNvcmVPYmplY3QsIG51bGxwdHIpKTsKKyAgICBhdXRvIGxpc3QgPSBDbGllbnRSZWN0TGlz
dDo6Y3JlYXRlKFdURk1vdmUoY29yZU9iamVjdCkpOworICAgIHJldHVybiBXRUJLSVRfRE9NX0NM
SUVOVF9SRUNUX0xJU1QoZ19vYmplY3RfbmV3KFdFQktJVF9ET01fVFlQRV9DTElFTlRfUkVDVF9M
SVNULCAiY29yZS1vYmplY3QiLCBsaXN0LnB0cigpLCBudWxscHRyKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApAQCAtMTAxLDggKzExMyw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21f
Y2xpZW50X3JlY3RfbGlzdF9jb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAgICAgR19PQkpF
Q1RfQ0xBU1Mod2Via2l0X2RvbV9jbGllbnRfcmVjdF9saXN0X3BhcmVudF9jbGFzcyktPmNvbnN0
cnVjdGVkKG9iamVjdCk7CiAKICAgICBXZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUqIHBy
aXYgPSBXRUJLSVRfRE9NX0NMSUVOVF9SRUNUX0xJU1RfR0VUX1BSSVZBVEUob2JqZWN0KTsKLSAg
ICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q2xpZW50UmVjdExpc3Qq
PihXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpLT5jb3JlT2JqZWN0KTsKLSAgICBXZWJLaXQ6OkRP
TU9iamVjdENhY2hlOjpwdXQocHJpdi0+Y29yZU9iamVjdC5nZXQoKSwgb2JqZWN0KTsKKyAgICBw
cml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2xpZW50UmVjdExpc3QqPihXRUJLSVRfRE9N
X09CSkVDVChvYmplY3QpLT5jb3JlT2JqZWN0KTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X2Rv
bV9jbGllbnRfcmVjdF9saXN0X2NsYXNzX2luaXQoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RDbGFz
cyogcmVxdWVzdENsYXNzKQpAQCAtMTM1LDggKzE0Niw4IEBAIFdlYktpdERPTUNsaWVudFJlY3Qq
IHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9pdGVtKFdlYktpdERPTUNsaWVudFJlY3RMaXN0
KiBzCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfQ0xJRU5UX1JFQ1RfTElTVChzZWxmKSwg
bnVsbHB0cik7Ci0gICAgV2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkNsaWVudFJlY3Q+IGdvYmplY3RSZXN1bHQg
PSBXVEY6OmdldFB0cihpdGVtLT5pdGVtKGluZGV4KSk7CisgICAgYXV0byYgbGlzdCA9IFdlYktp
dDo6Y29yZShzZWxmKS0+aXRlbXMoKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6RE9NUmVjdD4gZ29i
amVjdFJlc3VsdCA9IGluZGV4ID49IGxpc3Quc2l6ZSgpID8gbnVsbHB0ciA6IGxpc3RbaW5kZXhd
LnB0cigpOwogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0K
IApAQCAtMTQ0LDUgKzE1NSw1IEBAIGd1bG9uZyB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xpc3Rf
Z2V0X2xlbmd0aChXZWJLaXRET01DbGllbnRSZWN0TGlzdCogc2VsZikKIHsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0RPTV9JU19DTElFTlRfUkVDVF9MSVNUKHNlbGYpLCAwKTsKLSAgICByZXR1cm4gV2Vi
S2l0Ojpjb3JlKHNlbGYpLT5sZW5ndGgoKTsKKyAgICByZXR1cm4gV2ViS2l0Ojpjb3JlKHNlbGYp
LT5pdGVtcygpLnNpemUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5oCmluZGV4IDNiYzViNGJlMTMzZmE3
NjU0NDhmYzkyNmE2Nzc0YjMyMjM5OGYwMmQuLmQyMTIyYmE3NzJhZGVmZjczODAxMDEwNzgxMWFm
YTZlZjU4NTJiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUuaApAQCAtMTksMTEgKzE5LDExIEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRSZWN0TGlzdC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRE9NUmVjdC5oPgogI2luY2x1ZGUgPHdlYmtpdGRvbS9XZWJLaXRET01DbGll
bnRSZWN0TGlzdC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7Ci1XZWJLaXRET01DbGllbnRSZWN0TGlzdCogd3JhcENsaWVudFJlY3RMaXN0KFdlYkNvcmU6
OkNsaWVudFJlY3RMaXN0Kik7Ci1XZWJLaXRET01DbGllbnRSZWN0TGlzdCoga2l0KFdlYkNvcmU6
OkNsaWVudFJlY3RMaXN0Kik7Ci1XZWJDb3JlOjpDbGllbnRSZWN0TGlzdCogY29yZShXZWJLaXRE
T01DbGllbnRSZWN0TGlzdCopOworV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHdyYXBDbGllbnRS
ZWN0TGlzdChXVEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiYpOworV2ViS2l0RE9N
Q2xpZW50UmVjdExpc3QqIGtpdChXVEY6OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+JiYp
OwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNsaWVudFJlY3RQcml2YXRlLmgKaW5kZXggZGE4OGQ0OTU4NWU4YWQ5NWUw
ODE2YzNmYWQ1N2RkMDNjMDMyYThlYi4uZDdlY2MwZTJiY2E2ODY3NTIxMGUxZWU3MjE0NjhmZDQ0
NGYxMGFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q2xpZW50UmVjdFByaXZhdGUuaApAQCAtMTksMTEgKzE5LDExIEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9ET01S
ZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTUNsaWVudFJlY3QuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7Ci1XZWJLaXRET01DbGllbnRSZWN0KiB3cmFwQ2xpZW50UmVjdChXZWJD
b3JlOjpDbGllbnRSZWN0Kik7Ci1XZWJLaXRET01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6Q2xp
ZW50UmVjdCopOwotV2ViQ29yZTo6Q2xpZW50UmVjdCogY29yZShXZWJLaXRET01DbGllbnRSZWN0
Kik7CitXZWJLaXRET01DbGllbnRSZWN0KiB3cmFwQ2xpZW50UmVjdChXZWJDb3JlOjpET01SZWN0
Kik7CitXZWJLaXRET01DbGllbnRSZWN0KiBraXQoV2ViQ29yZTo6RE9NUmVjdCopOworV2ViQ29y
ZTo6RE9NUmVjdCogY29yZShXZWJLaXRET01DbGllbnRSZWN0Kik7CiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwCmlu
ZGV4IDczYTZlYTFhZTA3ODFlZTk2NzQ1NTRhMjI0ZTQ3NTJiNzdlOWM4YTUuLjU5YTE1ZDMzOWQ0
OTRmMmUyM2ZiNTBlMjg0MTU1NWFkNGM4NzBlZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01FbGVtZW50LmNwcApAQCAtMjIsOCArMjIsNiBAQAogCiAjaW5jbHVkZSA8
V2ViQ29yZS9DU1NJbXBvcnRSdWxlLmg+CiAjaW5jbHVkZSAiRE9NT2JqZWN0Q2FjaGUuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL0NsaWVudFJlY3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudFJl
Y3RMaXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01SZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uQ29kZS5oPgpAQCAtMTIy
NiwyNyArMTIyNCwxMiBAQCBnbG9uZyB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3Njcm9sbF9oZWln
aHQoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0
aWMgUmVmPFdlYkNvcmU6OkNsaWVudFJlY3Q+IHRvQ2xpZW50UmVjdChXZWJDb3JlOjpET01SZWN0
JiByZWN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpDbGllbnRSZWN0OjpjcmVhdGUoV2ViQ29y
ZTo6RmxvYXRSZWN0KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdo
dCgpKSk7Ci19Ci0KIFdlYktpdERPTUNsaWVudFJlY3QqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRf
Ym91bmRpbmdfY2xpZW50X3JlY3QoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKIHsKICAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCBudWxscHRyKTsKICAgICBXZWJDb3JlOjpF
bGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGF1dG8gY2xpZW50UmVjdCA9
IHRvQ2xpZW50UmVjdChpdGVtLT5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7Ci0gICAgcmV0dXJu
IFdlYktpdDo6a2l0KGNsaWVudFJlY3QucHRyKCkpOwotfQotCi1zdGF0aWMgVmVjdG9yPFJlZjxX
ZWJDb3JlOjpDbGllbnRSZWN0Pj4gdG9DbGllbnRSZWN0VmVjdG9yKFZlY3RvcjxSZWY8V2ViQ29y
ZTo6RE9NUmVjdD4+JiYgcmVjdHMpCi17Ci0gICAgVmVjdG9yPFJlZjxXZWJDb3JlOjpDbGllbnRS
ZWN0Pj4gY2xpZW50UmVjdHM7Ci0gICAgY2xpZW50UmVjdHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eShyZWN0cy5zaXplKCkpOwotICAgIGZvciAoYXV0byYgcmVjdCA6IHJlY3RzKQotICAgICAgICBj
bGllbnRSZWN0cy51bmNoZWNrZWRBcHBlbmQodG9DbGllbnRSZWN0KHJlY3QpKTsKLSAgICByZXR1
cm4gY2xpZW50UmVjdHM7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGl0ZW0tPmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpLnB0cigpKTsKIH0KIAogV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHdlYmtp
dF9kb21fZWxlbWVudF9nZXRfY2xpZW50X3JlY3RzKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCkBA
IC0xMjU0LDggKzEyMzcsNyBAQCBXZWJLaXRET01DbGllbnRSZWN0TGlzdCogd2Via2l0X2RvbV9l
bGVtZW50X2dldF9jbGllbnRfcmVjdHMoV2ViS2l0RE9NRWxlbWVudCogcwogICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIG51bGxwdHIpOwogICAgIFdlYkNvcmU6OkVsZW1l
bnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgYXV0byBjbGllbnRSZWN0cyA9IFdl
YkNvcmU6OkNsaWVudFJlY3RMaXN0OjpjcmVhdGUodG9DbGllbnRSZWN0VmVjdG9yKGl0ZW0tPmdl
dENsaWVudFJlY3RzKCkpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoY2xpZW50UmVjdHMucHRy
KCkpOworICAgIHJldHVybiBXZWJLaXQ6OmtpdChpdGVtLT5nZXRDbGllbnRSZWN0cygpKTsKIH0K
IAogV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfcGFyZW50
KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308700</attachid>
            <date>2017-04-30 14:37:03 -0700</date>
            <delta_ts>2017-04-30 17:44:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171418-20170430143701.patch</filename>
            <type>text/plain</type>
            <size>41586</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBhNTBiNTU1OWQ0YWJk
NGNlZjMxZmEyMGIyOGI4OTcxZTFmYjEwZi4uZmQ1N2VmNGQ5ODE4OWJhMDIzZTY4YThhMGVkZmI5
MDU0NjQwNDA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTA0LTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBzdXBwb3J0IGZvciBs
ZWdhY3kgQ2xpZW50UmVjdCAvIENsaWVudFJlY3RMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0MTgKKworICAgICAgICBSZXZpZXdlZCBieSBT
YW0gV2VpbmlnLgorCisgICAgICAgIERyb3Agc3VwcG9ydCBmb3IgbGVnYWN5IENsaWVudFJlY3Qg
LyBDbGllbnRSZWN0TGlzdCB0eXBlcyBub3cgd2UgdXNlCisgICAgICAgIERPTVJlY3QgZXZlcnl3
aGVyZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vQ2xpZW50UmVjdC5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogZG9tL0NsaWVudFJlY3QuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBkb20vQ2xpZW50UmVjdC5pZGw6IFJlbW92ZWQuCisgICAgICAgICogZG9tL0NsaWVudFJl
Y3RMaXN0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vQ2xpZW50UmVjdExpc3QuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBkb20vQ2xpZW50UmVjdExpc3QuaWRsOiBSZW1vdmVkLgorICAgICAg
ICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC90cmFjay9W
VFRSZWdpb24uY3BwOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorCiAyMDE3
LTA0LTMwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgVHJpZWQg
dG8gZml4IHRoZSBpT1MgYnVpbGQgYWZ0ZXIgcjIxNTk5MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cK
aW5kZXggMDA0MTZlZjE3Zjk1NmZlNmZiOGQ1OGE1YzhiYmFlNTQwYmU2MGE5Yi4uNGNjNGY0MWU2
YWVlNzdiMGE1ZjEwZWY2MTQ4OTkxNTYwOGM5NmNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDQtMjggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBEcm9wIHN1cHBvcnQgZm9yIGxlZ2FjeSBDbGllbnRSZWN0IC8gQ2xp
ZW50UmVjdExpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3MTQxOAorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAg
RHJvcCBDbGllbnRSZWN0TGlzdC1yZWxhdGVkIGNvZGUuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanM6CisKIDIwMTctMDQtMjcgIEZ1
amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW0dUS10g
V2ViIEluc3BlY3RvcjogQWRkIG5ldyBHVEsrIGljb25zIGZvciBkaWZmZXJlbnQgU2NyaXB0IFRp
bWVsaW5lIFZpZXdzIChFdmVudHMgYW5kIENhbGwgVHJlZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzQ5ZTI0
MjkwNTEzZDMwMDA2NjNlMWUzMjFiNzMyMTRlMGJlNjAxOC4uYTgyMmU3MjhhNTZjMmEwMjQ4ZDBm
MzI5YzdiYjNmODRjNjVlNjg4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTA0
LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBzdXBw
b3J0IGZvciBsZWdhY3kgQ2xpZW50UmVjdCAvIENsaWVudFJlY3RMaXN0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE0MTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgIEdUSyBidWlsZCBmaXguCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJl
Y3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpraXQpOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToK
KyAgICAgICAgKFdlYktpdDo6d3JhcENsaWVudFJlY3QpOgorICAgICAgICAod2Via2l0X2RvbV9j
bGllbnRfcmVjdF9jb25zdHJ1Y3RlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5jcHA6CisgICAgICAgIChD
bGllbnRSZWN0TGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKENsaWVudFJlY3RMaXN0OjppdGVtcyk6
CisgICAgICAgIChDbGllbnRSZWN0TGlzdDo6Q2xpZW50UmVjdExpc3QpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExp
c3RQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHA6CisgICAgICAg
ICh3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2JvdW5kaW5nX2NsaWVudF9yZWN0KToKKyAgICAgICAg
KHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2xpZW50X3JlY3RzKToKKwogMjAxNy0wNC0zMCAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9yZSBmaXhpbmcgYWZ0
ZXIgcjIxNTk5MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5ZjAyOWRhODFhZTc3MWJmMTg0MmFj
NzBjNzRjNGFlZGRiYzE2MmI1Li40MGY2NGUwNGQyOTk5NGFkMTVhZGE1Y2QzMjEzNGQ2ZWNkODYy
YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDA2LDggKzQwNiw2IEBAIHNldChXZWJDb3Jl
X05PTl9TVkdfSURMX0ZJTEVTCiAgICAgZG9tL0NEQVRBU2VjdGlvbi5pZGwKICAgICBkb20vQ2hh
cmFjdGVyRGF0YS5pZGwKICAgICBkb20vQ2hpbGROb2RlLmlkbAotICAgIGRvbS9DbGllbnRSZWN0
LmlkbAotICAgIGRvbS9DbGllbnRSZWN0TGlzdC5pZGwKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQu
aWRsCiAgICAgZG9tL0NvbW1lbnQuaWRsCiAgICAgZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRsCkBA
IC0xNDQ3LDggKzE0NDUsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0NoaWxkTGlz
dE11dGF0aW9uU2NvcGUuY3BwCiAgICAgZG9tL0NoaWxkTm9kZUxpc3QuY3BwCiAgICAgZG9tL0Ns
YXNzQ29sbGVjdGlvbi5jcHAKLSAgICBkb20vQ2xpZW50UmVjdC5jcHAKLSAgICBkb20vQ2xpZW50
UmVjdExpc3QuY3BwCiAgICAgZG9tL0NsaXBib2FyZEV2ZW50LmNwcAogICAgIGRvbS9Db2xsZWN0
aW9uSW5kZXhDYWNoZS5jcHAKICAgICBkb20vQ29tbWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLmNwcAppbmRleCBiZDhiNzgyMjdmOGJiYTEyYmY4NTc5NmVkMjYxNWZiOTU4YzExZDI0Li41
YTY2MWYxNjExNDE0ZjY4ZDY2OWU0NjhkZDBiN2IxNmQ3ZTExNzY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCkBAIC0xMDcsOCArMTA3LDYgQEAKICNlbmRpZgogI2luY2x1ZGUgIkpTQ0RB
VEFTZWN0aW9uLmNwcCIKICNpbmNsdWRlICJKU0NoYXJhY3RlckRhdGEuY3BwIgotI2luY2x1ZGUg
IkpTQ2xpZW50UmVjdC5jcHAiCi0jaW5jbHVkZSAiSlNDbGllbnRSZWN0TGlzdC5jcHAiCiAjaW5j
bHVkZSAiSlNDbG9zZUV2ZW50LmNwcCIKICNpbmNsdWRlICJKU0NvbW1hbmRMaW5lQVBJSG9zdC5j
cHAiCiAjaW5jbHVkZSAiSlNDb21tZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDdjNTc0NzBmMWYzYzI5ODlmOWJjMTgyNmU0NzI0ODNkNTY5YWJlZTkuLjBhY2QyOWMx
M2QzNjA0YzJlZmQ2Zjc3ODNjNGEyZjljNjhmZmUxMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMzQyLDggKzM0Miw2IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdl
YkNvcmUpL2RvbS9DREFUQVNlY3Rpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9DaGFyYWN0
ZXJEYXRhLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQ2hpbGROb2RlLmlkbCBcCi0gICAgJChX
ZWJDb3JlKS9kb20vQ2xpZW50UmVjdC5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL0NsaWVudFJl
Y3RMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQ2xpcGJvYXJkRXZlbnQuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2RvbS9Db21tZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQ29tcG9z
aXRpb25FdmVudC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGI5N2I3NjM4NjVlZjg2ZTQwMTcxMzgxOTI5OWMxMGYyMDI5
OTI1MTguLjM0MTZjYTQwYjk5NTE4MDI5Yzg0NDY4NzFhMTg1OWVkYzFiOTEyYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3
OTQsMTQgKzU3OTQsNiBAQAogCQlCQ0JEMjFBQjBFNDE3QUQ0MDBBMDcwRjIgLyogVVJMSGFzaC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCRDIxQUEw
RTQxN0FENDAwQTA3MEYyIC8qIFVSTEhhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0JGQjUzQzBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01X
aW5kb3dTaGVsbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0JGQjUzQTBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAgKi87
IH07CiAJCUJDQkZCNTNEMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JGQjUzQjBEQ0Qy
OUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBD
bGllbnRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDQzA2NTc3MEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCAqLzsgfTsKLQkJ
QkNDMDY1N0UwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTc4MEYzQ0UxQjcwMENEMkQ4NyAv
KiBDbGllbnRSZWN0LmggKi87IH07Ci0JCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGll
bnRSZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0MwNjU3QTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuY3BwICovOyB9
OwotCQlCQ0MwNjU4MTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTdCMEYzQ0UxQjcw
MENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5oICovOyB9OwotCQlCQ0MwNjU4NzBGM0NFMkE3MDBD
RDJEODcgLyogSlNDbGllbnRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDQzA2NTgzMEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3Qu
Y3BwICovOyB9OwotCQlCQ0MwNjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwNjU4NDBG
M0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0LmggKi87IH07Ci0JCUJDQzA2NTg5MEYzQ0Uy
QTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzA2NTg1MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0Ns
aWVudFJlY3RMaXN0LmNwcCAqLzsgfTsKLQkJQkNDMDY1OEEwRjNDRTJBNzAwQ0QyRDg3IC8qIEpT
Q2xpZW50UmVjdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDQzA2NTg2MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmggKi87
IH07CiAJCUJDQzBFODc1MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMEU4NzMx
QkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5jcHAgKi87IH07CiAJCUJDQzBF
ODc2MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzBFODc0MUJGRTcwRTkwMDhGN0Y1
MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkNDNUJFMDAwQzBFOTMxMTAwMTFD
MkRCIC8qIEpTQ1NTU3R5bGVTaGVldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0M1QkRGRTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNo
ZWV0LmNwcCAqLzsgfTsKQEAgLTE0MjMzLDE2ICsxNDIyNSw2IEBACiAJCUJDQkQyMUFBMEU0MTdB
RDQwMEEwNzBGMiAvKiBVUkxIYXNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVSTEhhc2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCRkI1M0EwRENEMjlD
RjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hlbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNET01XaW5kb3dTaGVsbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDQkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NV2luZG93U2hlbGwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1NzcwRjNDRTFCNzAwQ0QyRDg3IC8qIENs
aWVudFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xpZW50
UmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzA2NTc4MEYzQ0UxQjcw
MENEMkQ4NyAvKiBDbGllbnRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENsaWVudFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1NzkwRjND
RTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENs
aWVudFJlY3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0MwNjU3QTBGM0NF
MUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ2xpZW50UmVjdExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlCQ0MwNjU3QjBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xpZW50UmVjdExpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1N0MwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJl
Y3RMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDbGllbnRSZWN0TGlzdC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzA2NTgzMEYzQ0UyQTcwMENEMkQ4NyAvKiBK
U0NsaWVudFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlND
bGllbnRSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDMDY1ODQwRjND
RTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0NsaWVudFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkND
MDY1ODUwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDbGllbnRSZWN0TGlzdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzA2NTg2MEYzQ0UyQTcwMENEMkQ4NyAvKiBKU0NsaWVu
dFJlY3RMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ2xpZW50UmVj
dExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDMEU4NzMxQkZFNzBFOTAw
OEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBIVE1MUGljdHVyZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQ0MwRTg3NDFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQaWN0dXJlRWxlbWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M1QkRGRTBDMEU5MzExMDAxMUMyREIg
LyogSlNDU1NTdHlsZVNoZWV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0NTU1N0eWxlU2hlZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjE4MzksMTAgKzIxODIxLDYgQEAKIAkJQTgzQjc5MEUwQ0NBRkY5NzAwMEIwODI1IC8qIENTUyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQkNDMDY1ODMw
RjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdC5jcHAgKi8sCi0JCQkJQkNDMDY1ODQwRjND
RTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdC5oICovLAotCQkJCUJDQzA2NTg1MEYzQ0UyQTcw
MENEMkQ4NyAvKiBKU0NsaWVudFJlY3RMaXN0LmNwcCAqLywKLQkJCQlCQ0MwNjU4NjBGM0NFMkE3
MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5oICovLAogCQkJCUJDNDZDMUYyMEMwRERDOEYw
MDIwQ0ZDMyAvKiBKU0NTU0ZvbnRGYWNlUnVsZS5jcHAgKi8sCiAJCQkJQkM0NkMxRjMwQzBEREM4
RjAwMjBDRkMzIC8qIEpTQ1NTRm9udEZhY2VSdWxlLmggKi8sCiAJCQkJQkM0NkMxRjQwQzBEREM4
RjAwMjBDRkMzIC8qIEpTQ1NTSW1wb3J0UnVsZS5jcHAgKi8sCkBAIC0yNTQzOSwxMiArMjU0MTcs
NiBAQAogCQkJCUE4MTg3MjE1MDk3N0QzQzAwMDU4MjZEOSAvKiBDaGlsZE5vZGVMaXN0LmggKi8s
CiAJCQkJODM0OEJGQTkxQjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5jcHAgKi8s
CiAJCQkJODM0OEJGQUExQjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oICovLAot
CQkJCUJDQzA2NTc3MEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCAqLywKLQkJCQlC
Q0MwNjU3ODBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oICovLAotCQkJCUJDQzA2NTc5
MEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmlkbCAqLywKLQkJCQlCQ0MwNjU3QTBGM0NF
MUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuY3BwICovLAotCQkJCUJDQzA2NTdCMEYzQ0Ux
QjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5oICovLAotCQkJCUJDQzA2NTdDMEYzQ0UxQjcw
MENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5pZGwgKi8sCiAJCQkJODUwMzFCMjkwQTQ0RUZDNzAw
Rjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIyQTBBNDRFRkM3MDBG
OTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuaCAqLywKIAkJCQk4MzZEMDMyNzFEQTg5QjczMDBGRkQ5
NkIgLyogQ2xpcGJvYXJkRXZlbnQuaWRsICovLApAQCAtMjY1ODksOCArMjY1NjEsNiBAQAogCQkJ
CTE0RDgyNDA4MEFGOTNBRUIwMDA0RjA1NyAvKiBDaHJvbWVDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUU0QTgxNEQ0MUM2REVDNDAwMEJGODVBQyAvKiBDbGFzc0NoYW5nZUludmFsaWRhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM0OEJGQUMxQjg1NzI5ODAwOTEyRjM2IC8qIENsYXNz
Q29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkNDMDY1N0UwRjNDRTFCNzAwQ0QyRDg3
IC8qIENsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDQzA2NTgxMEYzQ0UxQjcwMENE
MkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzQTkxRTYxQzk2
M0I4ODAwRDFBN0UzIC8qIENsaXBib2FyZEFjY2Vzc1BvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODUwMzFCNDAwQTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGQjkyREY0QjE1RkVEMDg3MDA5OTQ0MzMgLyogQ2xpcFBhdGhPcGVyYXRpb24u
aCBpbiBIZWFkZXJzICovLApAQCAtMjc2NDQsOCArMjc2MTQsNiBAQAogCQkJCUZEQTE1RUEyMTJC
MDNFRTEwMDNBNTgzQSAvKiBKU0NoYW5uZWxNZXJnZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGREExNUVBNDEyQjAzRUUxMDAzQTU4M0EgLyogSlNDaGFubmVsU3BsaXR0ZXJOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2NURGMzFGNDA5RDFDQzYwMDAwQkUzMjUgLyogSlNDaGFyYWN0ZXJE
YXRhLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQ0MwNjU4ODBGM0NFMkE3MDBDRDJEODcgLyogSlND
bGllbnRSZWN0LmggaW4gSGVhZGVycyAqLywKLQkJCQlCQ0MwNjU4QTBGM0NFMkE3MDBDRDJEODcg
LyogSlNDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2RDAzMzIxREE4QTE0
MjAwRkZEOTZCIC8qIEpTQ2xpcGJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRkI1
NTA0MTEzRTNFOTEwMDgyMTE3NiAvKiBKU0Nsb3NlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE1ODRGRTNDMTg2NEUyRDgwMDg0M0IxMCAvKiBKU0NvbW1hbmRMaW5lQVBJSG9zdC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zMDY2MCw4ICszMDYyOCw2IEBACiAJCQkJQUJBRjIyMDgwQzAzQjFDNzAw
QjBCQ0YwIC8qIENocm9tZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUU0QTgxNEQ2MUM2REVF
OEQwMEJGODVBQyAvKiBDbGFzc0NoYW5nZUludmFsaWRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4MzQ4QkZBQjFCODU3Mjk4MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRS
ZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMUIzRjBBNDRFRkM3MDBGOTkyRTAg
LyogQ2xpcGJvYXJkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTgwMzcxNjExQTY2RjAw
QTAwQkFGNTE5IC8qIENsaXBSZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERUE3NjM1MTQ2
MEI3MUEwMDhCMzFGMSAvKiBDbG9jay5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxNjA4LDggKzMx
NTc0LDYgQEAKIAkJCQlGREExNUVBMTEyQjAzRUUxMDAzQTU4M0EgLyogSlNDaGFubmVsTWVyZ2Vy
Tm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUVBMzEyQjAzRUUxMDAzQTU4M0EgLyog
SlNDaGFubmVsU3BsaXR0ZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMUYzMDlE
MUNDNjAwMDBCRTMyNSAvKiBKU0NoYXJhY3RlckRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QkNDMDY1ODcwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdC5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlCQ0MwNjU4OTBGM0NFMkE3MDBDRDJEODcgLyogSlNDbGllbnRSZWN0TGlzdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk4MzZEMDMzMTFEQThBMTNGMDBGRkQ5NkIgLyogSlNDbGlwYm9h
cmRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUZCNTUwNTExM0UzRTkxMDA4MjExNzYg
LyogSlNDbG9zZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1ODRGRTNCMTg2NEUyRDgw
MDg0M0IxMCAvKiBKU0NvbW1hbmRMaW5lQVBJSG9zdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9DbGllbnRSZWN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGE2NGU3
NTUxMGZmODU4NDIzYjcxN2VkNzZlYTBmOWIyMTBhMjlmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiQ2xpZW50UmVjdC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUNsaWVudFJlY3Q6OkNs
aWVudFJlY3QoKQotewotfQotCi1DbGllbnRSZWN0OjpDbGllbnRSZWN0KGNvbnN0IEludFJlY3Qm
IHJlY3QpCi0gICAgOiBtX3JlY3QocmVjdCkKLXsKLX0KLQotQ2xpZW50UmVjdDo6Q2xpZW50UmVj
dChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCi0gICAgOiBtX3JlY3QocmVjdCkKLXsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVu
dFJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDJlOWVmYjViNzQwYTNiYmYwMTk2ZGIwYzk5OTgyMjhlZDQ3YzczOWYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0NsaWVudFJlY3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxl
LmgiCi0jaW5jbHVkZSA8d3RmL1JlZi5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIEludFJlY3Q7IAotCi0gICAgY2xhc3Mg
Q2xpZW50UmVjdCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBSZWZDb3VudGVkPENs
aWVudFJlY3Q+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8Q2xpZW50UmVjdD4g
Y3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDbGllbnRSZWN0KTsgfQotICAgICAgICBz
dGF0aWMgUmVmPENsaWVudFJlY3Q+IGNyZWF0ZShjb25zdCBJbnRSZWN0JiByZWN0KSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IENsaWVudFJlY3QocmVjdCkpOyB9Ci0gICAgICAgIHN0YXRpYyBSZWY8
Q2xpZW50UmVjdD4gY3JlYXRlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDbGllbnRSZWN0KHJlY3QpKTsgfQotCi0gICAgICAgIGZsb2F0IHRvcCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVjdC55KCk7IH0KLSAgICAgICAgZmxvYXQgcmlnaHQoKSBjb25zdCB7IHJl
dHVybiBtX3JlY3QubWF4WCgpOyB9Ci0gICAgICAgIGZsb2F0IGJvdHRvbSgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVjdC5tYXhZKCk7IH0KLSAgICAgICAgZmxvYXQgbGVmdCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVjdC54KCk7IH0KLSAgICAgICAgZmxvYXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3Jl
Y3Qud2lkdGgoKTsgfQotICAgICAgICBmbG9hdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX3Jl
Y3QuaGVpZ2h0KCk7IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIENs
aWVudFJlY3QoKTsKLSAgICAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgQ2xpZW50UmVjdChj
b25zdCBJbnRSZWN0Jik7Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IENsaWVudFJl
Y3QoY29uc3QgRmxvYXRSZWN0Jik7Ci0KLSAgICAgICAgRmxvYXRSZWN0IG1fcmVjdDsKLSAgICB9
OyAKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NsaWVudFJlY3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuaWRsCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDk5NDBhOWRmMWQxMGFmMjhiNTNkYWE2OGZj
NzczM2E1MzUyN2FhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0LmlkbAorKysgL2Rldi9udWxsCkBAIC0x
LDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKgot
ICovCi0KLVsKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotICAgIEV4cG9ydE1hY3Jv
PVdFQkNPUkVfRVhQT1JULAotXSBpbnRlcmZhY2UgQ2xpZW50UmVjdCB7Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVucmVzdHJpY3RlZCBmbG9hdCB0b3A7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVucmVzdHJpY3RlZCBmbG9hdCByaWdodDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0
cmljdGVkIGZsb2F0IGJvdHRvbTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVk
IGZsb2F0IGxlZnQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBmbG9hdCB3
aWR0aDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGZsb2F0IGhlaWdodDsK
LQotICAgIHNlcmlhbGl6ZXIgPSB7IGF0dHJpYnV0ZSB9OwotfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
ZW50UmVjdExpc3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNTRlM2NjNTg3
MTMyYjA2NDRkYTk1ZTMwZDYyY2U3Y2VhYWRmYTJhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiQ2xpZW50UmVjdExpc3QuaCIKLQotI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1DbGllbnRSZWN0TGlzdDo6Q2xpZW50UmVjdExpc3QoKQotewotfQot
Ci1DbGllbnRSZWN0TGlzdDo6Q2xpZW50UmVjdExpc3QoY29uc3QgVmVjdG9yPEZsb2F0UXVhZD4m
IHF1YWRzKQotewotICAgIG1fbGlzdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHF1YWRzLnNpemUo
KSk7Ci0gICAgZm9yIChhdXRvJiBxdWFkIDogcXVhZHMpCi0gICAgICAgIG1fbGlzdC51bmNoZWNr
ZWRBcHBlbmQoQ2xpZW50UmVjdDo6Y3JlYXRlKHF1YWQuZW5jbG9zaW5nQm91bmRpbmdCb3goKSkp
OwotfQotCi1DbGllbnRSZWN0TGlzdDo6Q2xpZW50UmVjdExpc3QoVmVjdG9yPFJlZjxDbGllbnRS
ZWN0Pj4mJiByZWN0cykKLSAgICA6IG1fbGlzdChXVEZNb3ZlKHJlY3RzKSkKLXsKLX0KLQotQ2xp
ZW50UmVjdExpc3Q6On5DbGllbnRSZWN0TGlzdCgpCi17Ci19Ci0KLXVuc2lnbmVkIENsaWVudFJl
Y3RMaXN0OjpsZW5ndGgoKSBjb25zdAotewotICAgIHJldHVybiBtX2xpc3Quc2l6ZSgpOwotfQot
Ci1DbGllbnRSZWN0KiBDbGllbnRSZWN0TGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkKLXsKLSAg
ICBpZiAoaW5kZXggPj0gbV9saXN0LnNpemUoKSkgewotICAgICAgICAvLyBGSVhNRTogU2hvdWxk
IHRoaXMgdGhyb3cgYW4gSU5ERVhfU0laRV9FUlIgZXhjZXB0aW9uPwotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIG1fbGlzdFtpbmRleF0ucHRyKCk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGll
bnRSZWN0TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0LmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhMWNkNzEzMjM0NDgzMTI0NzlkZjFhNDM0MTU1YzQ4
NTRjZDc5MjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1
NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICoKLSAq
LwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgotI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgQ2xpZW50UmVjdDsKLQot
ICAgIGNsYXNzIENsaWVudFJlY3RMaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8Q2xpZW50UmVjdExp
c3Q+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8Q2xpZW50UmVjdExpc3Q+IGNy
ZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xpZW50UmVjdExpc3QpOyB9Ci0gICAgICAg
IHN0YXRpYyBSZWY8Q2xpZW50UmVjdExpc3Q+IGNyZWF0ZShjb25zdCBWZWN0b3I8RmxvYXRRdWFk
PiYgcXVhZHMpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2xpZW50UmVjdExpc3QocXVhZHMpKTsg
fQotICAgICAgICBzdGF0aWMgUmVmPENsaWVudFJlY3RMaXN0PiBjcmVhdGUoVmVjdG9yPFJlZjxD
bGllbnRSZWN0Pj4mJiByZWN0cykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDbGllbnRSZWN0TGlz
dChXVEZNb3ZlKHJlY3RzKSkpOyB9Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIH5DbGllbnRSZWN0
TGlzdCgpOwotCi0gICAgICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwotICAgICAgICBDbGll
bnRSZWN0KiBpdGVtKHVuc2lnbmVkIGluZGV4KTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIFdF
QkNPUkVfRVhQT1JUIENsaWVudFJlY3RMaXN0KCk7Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIGV4
cGxpY2l0IENsaWVudFJlY3RMaXN0KGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+Jik7Ci0gICAgICAg
IFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IENsaWVudFJlY3RMaXN0KFZlY3RvcjxSZWY8Q2xpZW50
UmVjdD4+JiYpOwotCi0gICAgICAgIFZlY3RvcjxSZWY8Q2xpZW50UmVjdD4+IG1fbGlzdDsKLSAg
ICB9OyAKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0NsaWVudFJlY3RMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0
TGlzdC5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1ZGJjZjY3MWY1YTRhY2I0
MWIwOWI4NzEwNmQ5MGExYTdkMzUyM2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0LmlkbAorKysg
L2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKgotICovCi0KLVsKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAot
ICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAotXSBpbnRlcmZhY2UgQ2xpZW50UmVjdExp
c3QgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICBn
ZXR0ZXIgQ2xpZW50UmVjdCBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwotICAgIC8vIEZJWE1F
OiBGaXggbGlzdCBiZWhhdmlvciB0byBhbGxvdyBjdXN0b20gZXhjZXB0aW9ucyB0byBiZSB0aHJv
d24uCi19OwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCAyNzBlNDE2NjhkMjI4
YzQ2YTlhZmJlNDJkZjRlZjk3NzFjNDAyYTgxLi4wYTA1NDIxOWI2ODhiMDVlMmYzZmU4MzY1ZGU3
NjE2Yjc0YTY1Y2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTM3LDggKzM3
LDYgQEAKICNpbmNsdWRlICJDaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcCIKICNpbmNsdWRlICJD
aGlsZE5vZGVMaXN0LmNwcCIKICNpbmNsdWRlICJDbGFzc0NvbGxlY3Rpb24uY3BwIgotI2luY2x1
ZGUgIkNsaWVudFJlY3QuY3BwIgotI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmNwcCIKICNpbmNs
dWRlICJDbGlwYm9hcmRFdmVudC5jcHAiCiAjaW5jbHVkZSAiQ29sbGVjdGlvbkluZGV4Q2FjaGUu
Y3BwIgogI2luY2x1ZGUgIkNvbW1lbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDgx
ODkyNDNjNjRmNDRiNzE4NjcxYzcwMDExYzgzNGRhMjgzNzRhMTMuLjgxYmM3MzFiYzA5NDk4MjFj
OGU0NmJlM2M4ZGEzZTliZTRmMzBhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTMzLDgg
KzMzLDYgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIK
ICNpbmNsdWRlICJDbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIgotI2luY2x1ZGUgIkNsaWVudFJl
Y3QuaCIKLSNpbmNsdWRlICJDbGllbnRSZWN0TGlzdC5oIgogI2luY2x1ZGUgIkNvbXBvc2VkVHJl
ZUFuY2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJDb250YWluZXJOb2RlQWxnb3JpdGhtcy5o
IgogI2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAwNjc3MjA3ZGViYWQ1MzJjNmIzZjM3MzY5
ODZjNWI0NmZhN2FjNjBhLi44OWY4ZWRiMTgzNWQ5ZDYyMmQzNzA0ZjE0NmI5MWI3YmFlNGUxMDFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTM1LDggKzM1
LDYgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVL
ZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkNsaWVudFJl
Y3QuaCIKLSNpbmNsdWRlICJDbGllbnRSZWN0TGlzdC5oIgogI2luY2x1ZGUgIkNvbW1vblZNLmgi
CiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiQ29udGVudFR5
cGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uLmNwcAppbmRleCBlNjg4NDgw
OTdhOGM0OTk5NTc0MDM0ZWVhMjBiNThmMmI1NWI0NmZmLi41MjE0YTc5NWU2MTgwNzBlNWJjNTUy
ZjNiNThkMmY5ZTlkZWNjN2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZUVFJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb24u
Y3BwCkBAIC0zNCw3ICszNCw2IEBACiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNs
dWRlICJDbGllbnRSZWN0LmgiCiAjaW5jbHVkZSAiRE9NUmVjdC5oIgogI2luY2x1ZGUgIkRPTVRv
a2VuTGlzdC5oIgogI2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9yLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDEzZmVhMDM5MGJlYzkxNDFhZDgwOTk5N2M2
YzJhODIxMDI4MzM2ZTguLjVkYzliZDQxZThmODM1YTdjNGEwN2VhYjc2NmUwMzFkOGM2NjM0ZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0zMiw3ICszMiw2IEBA
CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ2xpZW50UmVjdC5oIgog
I2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRGcmFnbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFt
ZXRlcnMuanMKaW5kZXggNWZjYmVjMWQ5NDc3NTZiODViMDlhM2UwNzIyOTI4YzgxZmIyNmYzMC4u
ZmM5NWZhNDAyMmZhMDYzNjhjMjBhM2I3MzI3Y2FmY2EzZjllMjEwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFy
YW1ldGVycy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvTmF0aXZlRnVuY3Rpb25QYXJhbWV0ZXJzLmpzCkBAIC02OTYsMTEgKzY5Niw2IEBAIFdlYklu
c3BlY3Rvci5OYXRpdmVQcm90b3R5cGVGdW5jdGlvblBhcmFtZXRlcnMgPSB7CiAgICAgICAgIF9f
cHJvdG9fXzogbnVsbCwKICAgICB9LAogCi0gICAgQ2xpZW50UmVjdExpc3Q6IHsKLSAgICAgICAg
aXRlbTogIltpbmRleF0iLAotICAgICAgICBfX3Byb3RvX186IG51bGwsCi0gICAgfSwKLQogICAg
IENvbW1hbmRMaW5lQVBJSG9zdDogewogICAgICAgICBjb3B5VGV4dDogInRleHQiLAogICAgICAg
ICBkYXRhYmFzZUlkOiAiZGF0YWJhc2UiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NQ2xpZW50UmVjdC5jcHAKaW5kZXggMmQ3MWU4ZTUyZjdjODU2MDgyNDMyZWMwNWYx
N2ZkMzJjM2I2YWU5ZS4uNGY4N2UwYjZjMDFlMjg3YmRlYWRhOWRiNzFlMzlhZjA1YzY4YTJkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3QuY3Bw
CkBAIC0zNSwxMiArMzUsMTIgQEAKICNkZWZpbmUgV0VCS0lUX0RPTV9DTElFTlRfUkVDVF9HRVRf
UFJJVkFURShvYmopIEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURShvYmosIFdFQktJVF9ET01f
VFlQRV9DTElFTlRfUkVDVCwgV2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUpCiAKIHR5cGVkZWYg
c3RydWN0IF9XZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZSB7Ci0gICAgUmVmUHRyPFdlYkNvcmU6
OkNsaWVudFJlY3Q+IGNvcmVPYmplY3Q7CisgICAgUmVmUHRyPFdlYkNvcmU6OkRPTVJlY3Q+IGNv
cmVPYmplY3Q7CiB9IFdlYktpdERPTUNsaWVudFJlY3RQcml2YXRlOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotV2ViS2l0RE9NQ2xpZW50UmVjdCoga2l0KFdlYkNvcmU6OkNsaWVudFJlY3QqIG9i
aikKK1dlYktpdERPTUNsaWVudFJlY3QqIGtpdChXZWJDb3JlOjpET01SZWN0KiBvYmopCiB7CiAg
ICAgaWYgKCFvYmopCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNTEsMTIgKzUxLDEyIEBA
IFdlYktpdERPTUNsaWVudFJlY3QqIGtpdChXZWJDb3JlOjpDbGllbnRSZWN0KiBvYmopCiAgICAg
cmV0dXJuIHdyYXBDbGllbnRSZWN0KG9iaik7CiB9CiAKLVdlYkNvcmU6OkNsaWVudFJlY3QqIGNv
cmUoV2ViS2l0RE9NQ2xpZW50UmVjdCogcmVxdWVzdCkKK1dlYkNvcmU6OkRPTVJlY3QqIGNvcmUo
V2ViS2l0RE9NQ2xpZW50UmVjdCogcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gcmVxdWVzdCA/IHN0
YXRpY19jYXN0PFdlYkNvcmU6OkNsaWVudFJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1ZXN0
KS0+Y29yZU9iamVjdCkgOiBudWxscHRyOworICAgIHJldHVybiByZXF1ZXN0ID8gc3RhdGljX2Nh
c3Q8V2ViQ29yZTo6RE9NUmVjdCo+KFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2Jq
ZWN0KSA6IG51bGxwdHI7CiB9CiAKLVdlYktpdERPTUNsaWVudFJlY3QqIHdyYXBDbGllbnRSZWN0
KFdlYkNvcmU6OkNsaWVudFJlY3QqIGNvcmVPYmplY3QpCitXZWJLaXRET01DbGllbnRSZWN0KiB3
cmFwQ2xpZW50UmVjdChXZWJDb3JlOjpET01SZWN0KiBjb3JlT2JqZWN0KQogewogICAgIEFTU0VS
VChjb3JlT2JqZWN0KTsKICAgICByZXR1cm4gV0VCS0lUX0RPTV9DTElFTlRfUkVDVChnX29iamVj
dF9uZXcoV0VCS0lUX0RPTV9UWVBFX0NMSUVOVF9SRUNULCAiY29yZS1vYmplY3QiLCBjb3JlT2Jq
ZWN0LCBudWxscHRyKSk7CkBAIC0xMjAsNyArMTIwLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X2Rv
bV9jbGllbnRfcmVjdF9jb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAgICAgR19PQkpFQ1Rf
Q0xBU1Mod2Via2l0X2RvbV9jbGllbnRfcmVjdF9wYXJlbnRfY2xhc3MpLT5jb25zdHJ1Y3RlZChv
YmplY3QpOwogCiAgICAgV2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUqIHByaXYgPSBXRUJLSVRf
RE9NX0NMSUVOVF9SRUNUX0dFVF9QUklWQVRFKG9iamVjdCk7Ci0gICAgcHJpdi0+Y29yZU9iamVj
dCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkNsaWVudFJlY3QqPihXRUJLSVRfRE9NX09CSkVDVChv
YmplY3QpLT5jb3JlT2JqZWN0KTsKKyAgICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6RE9NUmVjdCo+KFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmplY3Qp
OwogICAgIFdlYktpdDo6RE9NT2JqZWN0Q2FjaGU6OnB1dChwcml2LT5jb3JlT2JqZWN0LmdldCgp
LCBvYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NQ2xpZW50UmVjdExpc3QuY3BwCmluZGV4IDE2MDE5OTc3YWJiZmYwMDg3NGY2MGQzNjQzZGU0
MjYxZjk0NTMwZmIuLjFiYmExMGNmMjJlNmU0Yzk2N2YzMDVjMjNmZDAwZWQyNjkyMjBkMTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExp
c3QuY3BwCkBAIC0zNSwzMiArMzUsNDQgQEAKIAogI2RlZmluZSBXRUJLSVRfRE9NX0NMSUVOVF9S
RUNUX0xJU1RfR0VUX1BSSVZBVEUob2JqKSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUob2Jq
LCBXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JFQ1RfTElTVCwgV2ViS2l0RE9NQ2xpZW50UmVjdExp
c3RQcml2YXRlKQogCitjbGFzcyBDbGllbnRSZWN0TGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPENs
aWVudFJlY3RMaXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDbGllbnRSZWN0TGlzdD4g
Y3JlYXRlKFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mJiBpdGVtcykKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENsaWVudFJlY3RMaXN0KFdURk1vdmUoaXRl
bXMpKSk7CisgICAgfQorCisgICAgY29uc3QgV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJl
Y3Q+PiYgaXRlbXMoKSBjb25zdCB7IHJldHVybiBtX2l0ZW1zOyB9CisKK3ByaXZhdGU6CisgICAg
Q2xpZW50UmVjdExpc3QoV1RGOjpWZWN0b3I8UmVmPFdlYkNvcmU6OkRPTVJlY3Q+PiYmIGl0ZW1z
KQorICAgICAgICA6IG1faXRlbXMoV1RGTW92ZShpdGVtcykpCisgICAgeyB9CisKKyAgICBXVEY6
OlZlY3RvcjxSZWY8V2ViQ29yZTo6RE9NUmVjdD4+IG1faXRlbXM7Cit9OworCiB0eXBlZGVmIHN0
cnVjdCBfV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRlIHsKLSAgICBSZWZQdHI8V2ViQ29y
ZTo6Q2xpZW50UmVjdExpc3Q+IGNvcmVPYmplY3Q7CisgICAgUmVmUHRyPENsaWVudFJlY3RMaXN0
PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZhdGU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1XZWJLaXRET01DbGllbnRSZWN0TGlzdCoga2l0KFdlYkNvcmU6OkNs
aWVudFJlY3RMaXN0KiBvYmopCitXZWJLaXRET01DbGllbnRSZWN0TGlzdCoga2l0KFdURjo6VmVj
dG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mJiBvYmopCiB7Ci0gICAgaWYgKCFvYmopCi0gICAg
ICAgIHJldHVybiBudWxscHRyOwotCi0gICAgaWYgKGdwb2ludGVyIHJldCA9IERPTU9iamVjdENh
Y2hlOjpnZXQob2JqKSkKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fQ0xJRU5UX1JFQ1RfTElT
VChyZXQpOwotCi0gICAgcmV0dXJuIHdyYXBDbGllbnRSZWN0TGlzdChvYmopOworICAgIHJldHVy
biB3cmFwQ2xpZW50UmVjdExpc3QoV1RGTW92ZShvYmopKTsKIH0KIAotV2ViQ29yZTo6Q2xpZW50
UmVjdExpc3QqIGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHJlcXVlc3QpCitzdGF0aWMg
Q2xpZW50UmVjdExpc3QqIGNvcmUoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHJlcXVlc3QpCiB7
Ci0gICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRSZWN0TGlz
dCo+KFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KSA6IG51bGxwdHI7Cisg
ICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxDbGllbnRSZWN0TGlzdCo+KFdFQktJVF9E
T01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KSA6IG51bGxwdHI7CiB9CiAKLVdlYktpdERP
TUNsaWVudFJlY3RMaXN0KiB3cmFwQ2xpZW50UmVjdExpc3QoV2ViQ29yZTo6Q2xpZW50UmVjdExp
c3QqIGNvcmVPYmplY3QpCitXZWJLaXRET01DbGllbnRSZWN0TGlzdCogd3JhcENsaWVudFJlY3RM
aXN0KFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mJiBjb3JlT2JqZWN0KQogewog
ICAgIEFTU0VSVChjb3JlT2JqZWN0KTsKLSAgICByZXR1cm4gV0VCS0lUX0RPTV9DTElFTlRfUkVD
VF9MSVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9NX1RZUEVfQ0xJRU5UX1JFQ1RfTElTVCwgImNv
cmUtb2JqZWN0IiwgY29yZU9iamVjdCwgbnVsbHB0cikpOworICAgIGF1dG8gbGlzdCA9IENsaWVu
dFJlY3RMaXN0OjpjcmVhdGUoV1RGTW92ZShjb3JlT2JqZWN0KSk7CisgICAgcmV0dXJuIFdFQktJ
VF9ET01fQ0xJRU5UX1JFQ1RfTElTVChnX29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX0NMSUVO
VF9SRUNUX0xJU1QsICJjb3JlLW9iamVjdCIsIGxpc3QucHRyKCksIG51bGxwdHIpKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkBAIC0xMDEsOCArMTEzLDcgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X2RvbV9jbGllbnRfcmVjdF9saXN0X2NvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKICAg
ICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xpc3RfcGFyZW50X2NsYXNz
KS0+Y29uc3RydWN0ZWQob2JqZWN0KTsKIAogICAgIFdlYktpdERPTUNsaWVudFJlY3RMaXN0UHJp
dmF0ZSogcHJpdiA9IFdFQktJVF9ET01fQ0xJRU5UX1JFQ1RfTElTVF9HRVRfUFJJVkFURShvYmpl
Y3QpOwotICAgIHByaXYtPmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDbGllbnRS
ZWN0TGlzdCo+KFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmplY3QpOwotICAgIFdl
YktpdDo6RE9NT2JqZWN0Q2FjaGU6OnB1dChwcml2LT5jb3JlT2JqZWN0LmdldCgpLCBvYmplY3Qp
OworICAgIHByaXYtPmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxDbGllbnRSZWN0TGlzdCo+KFdF
QktJVF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmplY3QpOwogfQogCiBzdGF0aWMgdm9pZCB3
ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xpc3RfY2xhc3NfaW5pdChXZWJLaXRET01DbGllbnRSZWN0
TGlzdENsYXNzKiByZXF1ZXN0Q2xhc3MpCkBAIC0xMzUsOCArMTQ2LDggQEAgV2ViS2l0RE9NQ2xp
ZW50UmVjdCogd2Via2l0X2RvbV9jbGllbnRfcmVjdF9saXN0X2l0ZW0oV2ViS2l0RE9NQ2xpZW50
UmVjdExpc3QqIHMKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19DTElFTlRfUkVDVF9MSVNU
KHNlbGYpLCBudWxscHRyKTsKLSAgICBXZWJDb3JlOjpDbGllbnRSZWN0TGlzdCogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6Q2xpZW50UmVjdD4gZ29iamVj
dFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPml0ZW0oaW5kZXgpKTsKKyAgICBhdXRvJiBsaXN0
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpLT5pdGVtcygpOworICAgIFJlZlB0cjxXZWJDb3JlOjpET01S
ZWN0PiBnb2JqZWN0UmVzdWx0ID0gaW5kZXggPj0gbGlzdC5zaXplKCkgPyBudWxscHRyIDogbGlz
dFtpbmRleF0ucHRyKCk7CiAgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0
KCkpOwogfQogCkBAIC0xNDQsNSArMTU1LDUgQEAgZ3Vsb25nIHdlYmtpdF9kb21fY2xpZW50X3Jl
Y3RfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBzZWxmKQogewogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfRE9NX0lTX0NMSUVOVF9SRUNUX0xJU1Qoc2VsZiksIDApOwotICAgIHJl
dHVybiBXZWJLaXQ6OmNvcmUoc2VsZiktPmxlbmd0aCgpOworICAgIHJldHVybiBXZWJLaXQ6OmNv
cmUoc2VsZiktPml0ZW1zKCkuc2l6ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0
TGlzdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RQcml2YXRlLmgKaW5kZXggM2JjNWI0
YmUxMzNmYTc2NTQ0OGZjOTI2YTY3NzRiMzIyMzk4ZjAyZC4uZDIxMjJiYTc3MmFkZWZmNzM4MDEw
MTA3ODExYWZhNmVmNTg1MmJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdFByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5oCkBAIC0xOSwxMSArMTksMTEg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudFJlY3RMaXN0Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9ET01SZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktp
dERPTUNsaWVudFJlY3RMaXN0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKLVdlYktpdERPTUNsaWVudFJlY3RMaXN0KiB3cmFwQ2xpZW50UmVjdExpc3Qo
V2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqKTsKLVdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBraXQo
V2ViQ29yZTo6Q2xpZW50UmVjdExpc3QqKTsKLVdlYkNvcmU6OkNsaWVudFJlY3RMaXN0KiBjb3Jl
KFdlYktpdERPTUNsaWVudFJlY3RMaXN0Kik7CitXZWJLaXRET01DbGllbnRSZWN0TGlzdCogd3Jh
cENsaWVudFJlY3RMaXN0KFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01SZWN0Pj4mJik7CitX
ZWJLaXRET01DbGllbnRSZWN0TGlzdCoga2l0KFdURjo6VmVjdG9yPFJlZjxXZWJDb3JlOjpET01S
ZWN0Pj4mJik7CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50
UmVjdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGUuaAppbmRleCBkYTg4ZDQ5NTg1
ZThhZDk1ZTA4MTZjM2ZhZDU3ZGQwM2MwMzJhOGViLi5kN2VjYzBlMmJjYTY4Njc1MjEwZTFlZTcy
MTQ2OGZkNDQ0ZjEwYWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01DbGllbnRSZWN0UHJpdmF0ZS5oCkBAIC0xOSwxMSArMTksMTEgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0RPTVJlY3QuaD4KICNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NQ2xpZW50UmVjdC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLVdlYktpdERPTUNsaWVudFJlY3QqIHdyYXBDbGllbnRS
ZWN0KFdlYkNvcmU6OkNsaWVudFJlY3QqKTsKLVdlYktpdERPTUNsaWVudFJlY3QqIGtpdChXZWJD
b3JlOjpDbGllbnRSZWN0Kik7Ci1XZWJDb3JlOjpDbGllbnRSZWN0KiBjb3JlKFdlYktpdERPTUNs
aWVudFJlY3QqKTsKK1dlYktpdERPTUNsaWVudFJlY3QqIHdyYXBDbGllbnRSZWN0KFdlYkNvcmU6
OkRPTVJlY3QqKTsKK1dlYktpdERPTUNsaWVudFJlY3QqIGtpdChXZWJDb3JlOjpET01SZWN0Kik7
CitXZWJDb3JlOjpET01SZWN0KiBjb3JlKFdlYktpdERPTUNsaWVudFJlY3QqKTsKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVu
dC5jcHAKaW5kZXggNzNhNmVhMWFlMDc4MWVlOTY3NDU1NGEyMjRlNDc1MmI3N2U5YzhhNS4uNTlh
MTVkMzM5ZDQ5NGYyZTIzZmI1MGUyODQxNTU1YWQ0Yzg3MGVkZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwCkBAIC0yMiw4ICsyMiw2IEBACiAKICNp
bmNsdWRlIDxXZWJDb3JlL0NTU0ltcG9ydFJ1bGUuaD4KICNpbmNsdWRlICJET01PYmplY3RDYWNo
ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50UmVjdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
Q2xpZW50UmVjdExpc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTVJlY3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Db2RlLmg+
CkBAIC0xMjI2LDI3ICsxMjI0LDEyIEBAIGdsb25nIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfc2Ny
b2xsX2hlaWdodChXZWJLaXRET01FbGVtZW50KiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLXN0YXRpYyBSZWY8V2ViQ29yZTo6Q2xpZW50UmVjdD4gdG9DbGllbnRSZWN0KFdlYkNvcmU6
OkRPTVJlY3QmIHJlY3QpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OkNsaWVudFJlY3Q6OmNyZWF0
ZShXZWJDb3JlOjpGbG9hdFJlY3QocmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJl
Y3QuaGVpZ2h0KCkpKTsKLX0KLQogV2ViS2l0RE9NQ2xpZW50UmVjdCogd2Via2l0X2RvbV9lbGVt
ZW50X2dldF9ib3VuZGluZ19jbGllbnRfcmVjdChXZWJLaXRET01FbGVtZW50KiBzZWxmKQogewog
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIG51bGxwdHIpOwogICAgIFdl
YkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgYXV0byBjbGll
bnRSZWN0ID0gdG9DbGllbnRSZWN0KGl0ZW0tPmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTsKLSAg
ICByZXR1cm4gV2ViS2l0OjpraXQoY2xpZW50UmVjdC5wdHIoKSk7Ci19Ci0KLXN0YXRpYyBWZWN0
b3I8UmVmPFdlYkNvcmU6OkNsaWVudFJlY3Q+PiB0b0NsaWVudFJlY3RWZWN0b3IoVmVjdG9yPFJl
ZjxXZWJDb3JlOjpET01SZWN0Pj4mJiByZWN0cykKLXsKLSAgICBWZWN0b3I8UmVmPFdlYkNvcmU6
OkNsaWVudFJlY3Q+PiBjbGllbnRSZWN0czsKLSAgICBjbGllbnRSZWN0cy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KHJlY3RzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvJiByZWN0IDogcmVjdHMpCi0g
ICAgICAgIGNsaWVudFJlY3RzLnVuY2hlY2tlZEFwcGVuZCh0b0NsaWVudFJlY3QocmVjdCkpOwot
ICAgIHJldHVybiBjbGllbnRSZWN0czsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoaXRlbS0+Z2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkucHRyKCkpOwogfQogCiBXZWJLaXRET01DbGllbnRSZWN0TGlz
dCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfcmVjdHMoV2ViS2l0RE9NRWxlbWVudCog
c2VsZikKQEAgLTEyNTQsOCArMTIzNyw3IEBAIFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiB3ZWJr
aXRfZG9tX2VsZW1lbnRfZ2V0X2NsaWVudF9yZWN0cyhXZWJLaXRET01FbGVtZW50KiBzCiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgbnVsbHB0cik7CiAgICAgV2ViQ29y
ZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBhdXRvIGNsaWVudFJl
Y3RzID0gV2ViQ29yZTo6Q2xpZW50UmVjdExpc3Q6OmNyZWF0ZSh0b0NsaWVudFJlY3RWZWN0b3Io
aXRlbS0+Z2V0Q2xpZW50UmVjdHMoKSkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChjbGllbnRS
ZWN0cy5wdHIoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGl0ZW0tPmdldENsaWVudFJlY3Rz
KCkpOwogfQogCiBXZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNl
dF9wYXJlbnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZikK
</data>

          </attachment>
      

    </bug>

</bugzilla>