<?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>131295</bug_id>
          
          <creation_ts>2014-04-07 01:15:00 -0700</creation_ts>
          <short_desc>Split CSS Selectors pseudo class and pseudo elements</short_desc>
          <delta_ts>2019-05-02 09:46:33 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=178867</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>998099</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-07 01:15:00 -0700</bug_when>
    <thetext>Split CSS Selectors pseudo class and pseudo elements</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998104</commentid>
    <comment_count>1</comment_count>
      <attachid>228723</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-07 01:22:48 -0700</bug_when>
    <thetext>Created attachment 228723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998171</commentid>
    <comment_count>2</comment_count>
      <attachid>228723</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-04-07 10:09:42 -0700</bug_when>
    <thetext>Comment on attachment 228723
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998224</commentid>
    <comment_count>3</comment_count>
      <attachid>228723</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-07 13:27:06 -0700</bug_when>
    <thetext>Comment on attachment 228723
Patch

Clearing flags on attachment: 228723

Committed r166883: &lt;http://trac.webkit.org/changeset/166883&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998225</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-07 13:27:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228723</attachid>
            <date>2014-04-07 01:22:48 -0700</date>
            <delta_ts>2014-04-07 13:27:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131295-20140407012226.patch</filename>
            <type>text/plain</type>
            <size>41454</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2ODY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTM0ZjhmNGYzZGQzMWM3
M2U1ODUyNDFlZjU5MTMzODBhNWQxODgyMS4uYzUxY2UyNzMyNzVhNTUzMGM0NDBmNTExZmUyMzVk
OWY2NWVlM2MwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE0LTA0LTA3ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBTcGxpdCBDU1Mg
U2VsZWN0b3JzIHBzZXVkbyBjbGFzcyBhbmQgcHNldWRvIGVsZW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEyOTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGxpdCBwc2V1ZG8gY2xhc3MgYW5k
IHBzZXVkbyBlbGVtZW50IHRvIG1ha2UgaXQgY2xlYXJlciB3aGF0IHBzZXVkbyB0eXBlcworICAg
ICAgICBhcmUgcG9zc2libGUgZm9yIGEgZ2l2ZW4gbWF0Y2ggdHlwZS4KKworICAgICAgICBQc2V1
ZG8gRWxlbWVudCB0eXBlcyBhcmUgc2VwYXJhdGVkIGFuZCBQc2V1ZG8gQ2xhc3MgYXJlIGxlZnQg
aW4gcGxhY2UuIFRoZSBQc2V1ZG8gQ2xhc3MKKyAgICAgICAgd2lsbCBoYXZlIHRvIGJlIHJlbmFt
ZWQgdG9vIGJ1dCB0aGF0IHdpbGwgYmUgZG9uZSBzZXBhcmF0ZWx5IHRvIG1ha2UgdGhpcyBjaGFu
Z2Ugc21hbGxlci4KKworICAgICAgICAqIGNzcy9DU1NHcmFtbWFyLnkuaW46CisgICAgICAgICog
Y3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnJld3JpdGVT
cGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
cmV3cml0ZVNwZWNpZmllcnMpOgorICAgICAgICBVc2UgYSBtZXRob2QgaXNQc2V1ZG9FbGVtZW50
Q3VlRnVuY3Rpb24oKSB0byBhYnN0cmFjdCB0aGUgI2lmZGVmIG91dCBvZiB0aGUgcGFyc2VyLgor
CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXJTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9FbGVtZW50U2VsZWN0b3IpOgorCisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9FbGVtZW50Q3VlRnVuY3Rp
b25TZWxlY3Rvcik6CisgICAgICAgIFJlbmFtZSB0byBzcGVjaWZ5IHRoaXMgaXMgZm9yIHRoZSBw
c2V1ZG8gZWxlbWVudCBjdWUgZnVuY3Rpb24sIG5vdCB0aGUgcHNldWRvIGVsZW1lbnQgY3VlLgor
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9DbGFzc0Fu
ZENvbXBhdGliaWxpdHlFbGVtZW50U2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyU2VsZWN0b3I6OnBhcnNlUHNldWRvQ3VlRnVuY3Rpb25TZWxlY3Rvcik6IERlbGV0ZWQuCisg
ICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyU2VsZWN0b3I6OmlzUHNldWRvRWxlbWVudEN1ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBjc3Mv
Q1NTU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNwZWNpZmlj
aXR5Rm9yT25lU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnBzZXVk
b0lkKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpwYXJzZVBzZXVkb0VsZW1lbnRU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpvcGVyYXRvcj09KToKKyAgICAg
ICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpw
c2V1ZG9UeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpzZXRQc2V1ZG9FbGVt
ZW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6cHNldWRvRWxlbWVudFR5
cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmlzVW5rbm93blBzZXVkb0VsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmlzQ3VzdG9tUHNldWRvRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpwc2V1ZG9DbGFzc0lzUmVsYXRpdmVUb1NpYmxpbmdzKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjppc1NpYmxpbmdTZWxlY3Rvcik6CisgICAg
ICAgICogY3NzL1J1bGVGZWF0dXJlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVGZWF0dXJl
U2V0Ojpjb2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IpOgorICAgICAgICAqIGNzcy9SdWxlU2V0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRldGVybWluZVByb3BlcnR5V2hpdGVsaXN0VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjpmaW5kQmVzdFJ1bGVTZXRBbmRBZGQpOgorICAg
ICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0
b3JDaGVja2VyOjptYXRjaFJlY3Vyc2l2ZWx5KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
Q2hlY2tlcjo6Y2hlY2tPbmUpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpj
aGVja1Njcm9sbGJhclBzZXVkb0NsYXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hl
Y2tlcjo6ZGV0ZXJtaW5lTGlua01hdGNoVHlwZSk6CisgICAgICAgICogY3NzL1NlbGVjdG9yUHNl
dWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbjoKKyAgICAgICAgKiBjc3MvU2Vs
ZWN0b3JQc2V1ZG9FbGVtZW50VHlwZU1hcC5pbjoKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JQc2V1
ZG9UeXBlTWFwLmg6CisgICAgICAgICogY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29t
cGF0aWJpbGl0eUVsZW1lbnRNYXAucHk6CisgICAgICAgICogY3NzL21ha2VTZWxlY3RvclBzZXVk
b0VsZW1lbnRzTWFwLnB5OgorICAgICAgICAoZW51bWVyYWJsZVBzZXVkb1R5cGUpOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Z2V0
TWF0Y2hlZENTU1J1bGVzKToKKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oOgorICAgICAgICBBbGwgdGhlIGZ1bGxzY3JlZW4gcHNldWRvIHR5cGVzIGFy
ZSBwc2V1ZG8gY2xhc3Mgc2VsZWN0b3JzLiBUaGV5IHNob3VsZCBub3QgaGF2ZSBhIHBzZXVkbyBJ
RC4KKwogMjAxNC0wNC0wNiAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgRml4IHRoZSBkZWJ1ZyBib3RzIGFmdGVyIHIxNjY4NjMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTR3JhbW1hci55LmluCmluZGV4IDkxZmUzNWRkNGJhNzMyZmVhZGFhYmM5NDdkZjM4ZTJkYTc5
Mzg5MmIuLjNhNjM0NTE4MWVkNWIwOTk1MjA1NzRhNzc3OThiMmMxOGM0ZjMzZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyYW1tYXIueS5pbgpAQCAtMTIwNCw3ICsxMjA0LDcgQEAgcHNldWRvOgogI2lm
IEVOQUJMRV9WSURFT19UUkFDSwogICAgIC8vIHVzZWQgYnkgOjpjdWUoOnBhc3QvOmZ1dHVyZSkK
ICAgICB8ICc6JyAnOicgQ1VFRlVOQ1RJT04gbWF5YmVfc3BhY2Ugc2ltcGxlX3NlbGVjdG9yX2xp
c3QgbWF5YmVfc3BhY2UgJyknIHsKLSAgICAgICAgJCQgPSBDU1NQYXJzZXJTZWxlY3Rvcjo6cGFy
c2VQc2V1ZG9DdWVGdW5jdGlvblNlbGVjdG9yKCQzLCAkNSk7CisgICAgICAgICQkID0gQ1NTUGFy
c2VyU2VsZWN0b3I6OnBhcnNlUHNldWRvRWxlbWVudEN1ZUZ1bmN0aW9uU2VsZWN0b3IoJDMsICQ1
KTsKICAgICB9CiAjZW5kaWYKICAgICAvLyB1c2UgYnkgOi13ZWJraXQtYW55LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAppbmRleCBlODhmYjM5OWJjODIzYWY3ZWQwZDVhOTdmMWNkMmQ4MDdhN2Q0
MGU4Li4wMGI4ZTE3MmZjNTNmM2Q3OWMyNTg1MzUzMGU1YWY3ZTg1MzM1MmRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcApAQCAtMTEzNDMsOSArMTEzNDMsNyBAQCB2b2lkIENTU1BhcnNlcjo6
cmV3cml0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
c3BhY2VQcgogICAgIGlmICghc3BlY2lmaWVycy5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSkgewog
ICAgICAgICBpZiAodGFnID09IGFueVFOYW1lKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0jaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQotICAgICAgICBpZiAoc3BlY2lmaWVycy5wc2V1ZG9UeXBlKCkg
IT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0N1ZSkKLSNlbmRpZgorICAgICAgICBpZiAoIXNwZWNpZmll
cnMuaXNQc2V1ZG9FbGVtZW50Q3VlRnVuY3Rpb24oKSkKICAgICAgICAgICAgIHNwZWNpZmllcnMu
cHJlcGVuZFRhZ1NlbGVjdG9yKHRhZywgdGFnSXNGb3JOYW1lc3BhY2VSdWxlKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTExMzcyLDExICsxMTM3MCw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpy
ZXdyaXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVz
cGFjZVByCiAKIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gQ1NTUGFyc2VyOjpy
ZXdyaXRlU3BlY2lmaWVycyhzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNwZWNp
ZmllcnMsIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gbmV3U3BlY2lmaWVyKQog
ewotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBpZiAobmV3U3BlY2lmaWVyLT5pc0N1c3Rv
bVBzZXVkb0VsZW1lbnQoKSB8fCBuZXdTcGVjaWZpZXItPnBzZXVkb1R5cGUoKSA9PSBDU1NTZWxl
Y3Rvcjo6UHNldWRvQ3VlKSB7Ci0jZWxzZQotICAgIGlmIChuZXdTcGVjaWZpZXItPmlzQ3VzdG9t
UHNldWRvRWxlbWVudCgpKSB7Ci0jZW5kaWYKKyAgICBpZiAobmV3U3BlY2lmaWVyLT5pc0N1c3Rv
bVBzZXVkb0VsZW1lbnQoKSB8fCBuZXdTcGVjaWZpZXItPmlzUHNldWRvRWxlbWVudEN1ZUZ1bmN0
aW9uKCkpIHsKICAgICAgICAgLy8gVW5rbm93biBwc2V1ZG8gZWxlbWVudCBhbHdheXMgZ29lcyBh
dCB0aGUgdG9wIG9mIHNlbGVjdG9yIGNoYWluLgogICAgICAgICBuZXdTcGVjaWZpZXItPmFwcGVu
ZFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQsIHN0ZDo6bW92ZShzcGVj
aWZpZXJzKSk7CiAgICAgICAgIHJldHVybiBuZXdTcGVjaWZpZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXJWYWx1ZXMuY3BwCmluZGV4IGVhYjE1ZjE1OTI4YTUwNTk1ZDczN2EyNjcxZTVlYzhm
ZTMyOTExY2YuLjU4NDk0MDhhZDJhYjMyYzY2NGM5M2NlODk1MDM0ZmFmMGVkM2FhMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCkBAIC0xNzQsMTkgKzE3NCwxOSBAQCBD
U1NQYXJzZXJTZWxlY3RvciogQ1NTUGFyc2VyU2VsZWN0b3I6OnBhcnNlUHNldWRvRWxlbWVudFNl
bGVjdG9yKENTU1BhcnNlclN0cmluZwogICAgIHBzZXVkb1R5cGVTdHJpbmcubG93ZXIoKTsKICAg
ICBBdG9taWNTdHJpbmcgbmFtZSA9IHBzZXVkb1R5cGVTdHJpbmc7CiAKLSAgICBDU1NTZWxlY3Rv
cjo6UHNldWRvVHlwZSBwc2V1ZG9UeXBlID0gQ1NTU2VsZWN0b3I6OnBhcnNlUHNldWRvRWxlbWVu
dFR5cGUobmFtZSk7Ci0gICAgaWYgKHBzZXVkb1R5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vu
a25vd24pCisgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRUeXBlIHBzZXVkb1R5cGUgPSBD
U1NTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9FbGVtZW50VHlwZShuYW1lKTsKKyAgICBpZiAocHNldWRv
VHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFVua25vd24pCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgYXV0byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFy
c2VyU2VsZWN0b3I+KCk7CiAgICAgc2VsZWN0b3ItPm1fc2VsZWN0b3ItPm1fbWF0Y2ggPSBDU1NT
ZWxlY3Rvcjo6UHNldWRvRWxlbWVudDsKLSAgICBzZWxlY3Rvci0+bV9zZWxlY3Rvci0+bV9wc2V1
ZG9UeXBlID0gcHNldWRvVHlwZTsKKyAgICBzZWxlY3Rvci0+bV9zZWxlY3Rvci0+c2V0UHNldWRv
RWxlbWVudFR5cGUocHNldWRvVHlwZSk7CiAgICAgc2VsZWN0b3ItPm1fc2VsZWN0b3ItPnNldFZh
bHVlKG5hbWUpOwogICAgIHJldHVybiBzZWxlY3Rvci5yZWxlYXNlKCk7CiB9CiAKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCi1DU1NQYXJzZXJTZWxlY3RvciogQ1NTUGFyc2VyU2VsZWN0b3I6OnBh
cnNlUHNldWRvQ3VlRnVuY3Rpb25TZWxlY3Rvcihjb25zdCBDU1NQYXJzZXJTdHJpbmcmIGZ1bmN0
aW9uSWRlbnRpZmllciwgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+
KiBwYXJzZWRTZWxlY3RvclZlY3RvcikKK0NTU1BhcnNlclNlbGVjdG9yKiBDU1NQYXJzZXJTZWxl
Y3Rvcjo6cGFyc2VQc2V1ZG9FbGVtZW50Q3VlRnVuY3Rpb25TZWxlY3Rvcihjb25zdCBDU1NQYXJz
ZXJTdHJpbmcmIGZ1bmN0aW9uSWRlbnRpZmllciwgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQ
YXJzZXJTZWxlY3Rvcj4+KiBwYXJzZWRTZWxlY3RvclZlY3RvcikKIHsKICAgICBBU1NFUlRfVU5V
U0VEKGZ1bmN0aW9uSWRlbnRpZmllciwgU3RyaW5nKGZ1bmN0aW9uSWRlbnRpZmllcikgPT0gImN1
ZSgiKTsKIApAQCAtMTk3LDcgKzE5Nyw3IEBAIENTU1BhcnNlclNlbGVjdG9yKiBDU1NQYXJzZXJT
ZWxlY3Rvcjo6cGFyc2VQc2V1ZG9DdWVGdW5jdGlvblNlbGVjdG9yKGNvbnN0IENTU1BhCiAKICAg
ICBhdXRvIHNlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsK
ICAgICBzZWxlY3Rvci0+bV9zZWxlY3Rvci0+bV9tYXRjaCA9IENTU1NlbGVjdG9yOjpQc2V1ZG9F
bGVtZW50OwotICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5tX3BzZXVkb1R5cGUgPSBDU1NTZWxl
Y3Rvcjo6UHNldWRvQ3VlOworICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5zZXRQc2V1ZG9FbGVt
ZW50VHlwZShDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudEN1ZSk7CiAgICAgc2VsZWN0b3ItPmFk
b3B0U2VsZWN0b3JWZWN0b3IoKnNlbGVjdG9yVmVjdG9yKTsKICAgICByZXR1cm4gc2VsZWN0b3Iu
cmVsZWFzZSgpOwogfQpAQCAtMjEyLDEwICsyMTIsMTAgQEAgQ1NTUGFyc2VyU2VsZWN0b3IqIENT
U1BhcnNlclNlbGVjdG9yOjpwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRT
ZWwKICAgICAgICAgc2VsZWN0b3ItPm1fc2VsZWN0b3ItPm1fcHNldWRvVHlwZSA9IHBzZXVkb1R5
cGUucHNldWRvQ2xhc3M7CiAgICAgICAgIHJldHVybiBzZWxlY3Rvci5yZWxlYXNlKCk7CiAgICAg
fQotICAgIGlmIChwc2V1ZG9UeXBlLmNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50ICE9IENTU1Nl
bGVjdG9yOjpQc2V1ZG9Vbmtub3duKSB7CisgICAgaWYgKHBzZXVkb1R5cGUuY29tcGF0aWJpbGl0
eVBzZXVkb0VsZW1lbnQgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRVbmtub3duKSB7CiAg
ICAgICAgIGF1dG8gc2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPENTU1BhcnNlclNlbGVjdG9y
PigpOwogICAgICAgICBzZWxlY3Rvci0+bV9zZWxlY3Rvci0+bV9tYXRjaCA9IENTU1NlbGVjdG9y
OjpQc2V1ZG9FbGVtZW50OwotICAgICAgICBzZWxlY3Rvci0+bV9zZWxlY3Rvci0+bV9wc2V1ZG9U
eXBlID0gcHNldWRvVHlwZS5jb21wYXRpYmlsaXR5UHNldWRvRWxlbWVudDsKKyAgICAgICAgc2Vs
ZWN0b3ItPm1fc2VsZWN0b3ItPnNldFBzZXVkb0VsZW1lbnRUeXBlKHBzZXVkb1R5cGUuY29tcGF0
aWJpbGl0eVBzZXVkb0VsZW1lbnQpOwogICAgICAgICBBdG9taWNTdHJpbmcgbmFtZSA9IHBzZXVk
b1R5cGVTdHJpbmc7CiAgICAgICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5zZXRWYWx1ZShuYW1l
KTsKICAgICAgICAgcmV0dXJuIHNlbGVjdG9yLnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXJWYWx1ZXMuaAppbmRleCA0OTZkYzI3MGI3YzhlMDJhNTk2YmRhNGZjYWNmMTcwZGQ0MWM0
YmU1Li5hNGVmMGI5YWYzODkyYWE5MzQ3ZGY2YmFhNTBiZjUxMTBlYmZmYTJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCkBAIC0xNzcsNyArMTc3LDcgQEAgY2xhc3MgQ1NTUGFy
c2VyU2VsZWN0b3IgewogcHVibGljOgogICAgIHN0YXRpYyBDU1NQYXJzZXJTZWxlY3RvciogcGFy
c2VQYWdlUHNldWRvU2VsZWN0b3IoY29uc3QgQ1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9UeXBlU3Ry
aW5nKTsKICAgICBzdGF0aWMgQ1NTUGFyc2VyU2VsZWN0b3IqIHBhcnNlUHNldWRvRWxlbWVudFNl
bGVjdG9yKENTU1BhcnNlclN0cmluZyYgcHNldWRvVHlwZVN0cmluZyk7Ci0gICAgc3RhdGljIENT
U1BhcnNlclNlbGVjdG9yKiBwYXJzZVBzZXVkb0N1ZUZ1bmN0aW9uU2VsZWN0b3IoY29uc3QgQ1NT
UGFyc2VyU3RyaW5nJiBmdW5jdGlvbklkZW50aWZpZXIsIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
Q1NTUGFyc2VyU2VsZWN0b3I+Piogc2VsZWN0b3JWZWN0b3IpOworICAgIHN0YXRpYyBDU1NQYXJz
ZXJTZWxlY3RvciogcGFyc2VQc2V1ZG9FbGVtZW50Q3VlRnVuY3Rpb25TZWxlY3Rvcihjb25zdCBD
U1NQYXJzZXJTdHJpbmcmIGZ1bmN0aW9uSWRlbnRpZmllciwgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0
cjxDU1NQYXJzZXJTZWxlY3Rvcj4+KiBzZWxlY3RvclZlY3Rvcik7CiAgICAgc3RhdGljIENTU1Bh
cnNlclNlbGVjdG9yKiBwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTZWxl
Y3RvcihDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcpOwogCiAgICAgQ1NTUGFyc2Vy
U2VsZWN0b3IoKTsKQEAgLTIwMCw2ICsyMDAsMTUgQEAgcHVibGljOgogICAgIENTU1NlbGVjdG9y
OjpQc2V1ZG9UeXBlIHBzZXVkb1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdG9yLT5wc2V1
ZG9UeXBlKCk7IH0KICAgICBib29sIGlzQ3VzdG9tUHNldWRvRWxlbWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2VsZWN0b3ItPmlzQ3VzdG9tUHNldWRvRWxlbWVudCgpOyB9CiAKKyAgICBib29sIGlz
UHNldWRvRWxlbWVudEN1ZUZ1bmN0aW9uKCkgY29uc3QKKyAgICB7CisjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQorICAgICAgICByZXR1cm4gbV9zZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rv
cjo6UHNldWRvRWxlbWVudCAmJiBtX3NlbGVjdG9yLT5wc2V1ZG9FbGVtZW50VHlwZSgpID09IENT
U1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50Q3VlOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworI2VuZGlmCisgICAgfQorCiAgICAgYm9vbCBpc1NpbXBsZSgpIGNvbnN0OwogICAgIGJvb2wg
aGFzU2hhZG93RGVzY2VuZGFudCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNw
cAppbmRleCAzYzZhOTM3YjU3ZjhkMGJmMmYxOTMyMzY1NjFmMjllNjY3MGQzMTU0Li43MDEzNjA0
NmJjYTkyY2ZkNTVlZWNjNzFkMjJmNmNkMDIzMWY3MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvci5jcHAKQEAgLTg4LDIxICs4OCwyNCBAQCBpbmxpbmUgdW5zaWduZWQgQ1NTU2VsZWN0b3I6
OnNwZWNpZmljaXR5Rm9yT25lU2VsZWN0b3IoKSBjb25zdAogICAgIHN3aXRjaCAobV9tYXRjaCkg
ewogICAgIGNhc2UgSWQ6CiAgICAgICAgIHJldHVybiAweDEwMDAwOworCisgICAgY2FzZSBQc2V1
ZG9DbGFzczoKKyAgICAgICAgLy8gRklYTUU6IFBzdWVkb0FueSBzaG91bGQgYmFzZSB0aGUgc3Bl
Y2lmaWNpdHkgb24gdGhlIHN1Yi1zZWxlY3RvcnMuCisgICAgICAgIC8vIFNlZSBodHRwOi8vbGlz
dHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ctc3R5bGUvMjAxMFNlcC8wNTMwLmh0bWwKKyAg
ICAgICAgaWYgKHBzZXVkb1R5cGUoKSA9PSBQc2V1ZG9Ob3QgJiYgc2VsZWN0b3JMaXN0KCkpCisg
ICAgICAgICAgICByZXR1cm4gc2VsZWN0b3JMaXN0KCktPmZpcnN0KCktPnNwZWNpZmljaXR5Rm9y
T25lU2VsZWN0b3IoKTsKKyAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgY2FzZSBFeGFjdDoKICAg
ICBjYXNlIENsYXNzOgogICAgIGNhc2UgU2V0OgogICAgIGNhc2UgTGlzdDoKICAgICBjYXNlIEh5
cGhlbjoKLSAgICBjYXNlIFBzZXVkb0NsYXNzOgogICAgIGNhc2UgUHNldWRvRWxlbWVudDoKICAg
ICBjYXNlIENvbnRhaW46CiAgICAgY2FzZSBCZWdpbjoKICAgICBjYXNlIEVuZDoKLSAgICAgICAg
Ly8gRklYTUU6IFBzdWVkb0FueSBzaG91bGQgYmFzZSB0aGUgc3BlY2lmaWNpdHkgb24gdGhlIHN1
Yi1zZWxlY3RvcnMuCi0gICAgICAgIC8vIFNlZSBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVz
L1B1YmxpYy93d3ctc3R5bGUvMjAxMFNlcC8wNTMwLmh0bWwKLSAgICAgICAgaWYgKHBzZXVkb1R5
cGUoKSA9PSBQc2V1ZG9Ob3QgJiYgc2VsZWN0b3JMaXN0KCkpCi0gICAgICAgICAgICByZXR1cm4g
c2VsZWN0b3JMaXN0KCktPmZpcnN0KCktPnNwZWNpZmljaXR5Rm9yT25lU2VsZWN0b3IoKTsKICAg
ICAgICAgcmV0dXJuIDB4MTAwOworCiAgICAgY2FzZSBUYWc6CiAgICAgICAgIHJldHVybiAodGFn
UU5hbWUoKS5sb2NhbE5hbWUoKSAhPSBzdGFyQXRvbSkgPyAxIDogMDsKICAgICBjYXNlIFVua25v
d246CkBAIC0xNDAsMTAzICsxNDMsMzkgQEAgdW5zaWduZWQgQ1NTU2VsZWN0b3I6OnNwZWNpZmlj
aXR5Rm9yUGFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIHM7CiB9CiAKLVBzZXVkb0lkIENTU1NlbGVj
dG9yOjpwc2V1ZG9JZChQc2V1ZG9UeXBlIHR5cGUpCitQc2V1ZG9JZCBDU1NTZWxlY3Rvcjo6cHNl
dWRvSWQoUHNldWRvRWxlbWVudFR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAg
ICBjYXNlIFBzZXVkb0ZpcnN0TGluZToKKyAgICBjYXNlIFBzZXVkb0VsZW1lbnRGaXJzdExpbmU6
CiAgICAgICAgIHJldHVybiBGSVJTVF9MSU5FOwotICAgIGNhc2UgUHNldWRvRmlyc3RMZXR0ZXI6
CisgICAgY2FzZSBQc2V1ZG9FbGVtZW50Rmlyc3RMZXR0ZXI6CiAgICAgICAgIHJldHVybiBGSVJT
VF9MRVRURVI7Ci0gICAgY2FzZSBQc2V1ZG9TZWxlY3Rpb246CisgICAgY2FzZSBQc2V1ZG9FbGVt
ZW50U2VsZWN0aW9uOgogICAgICAgICByZXR1cm4gU0VMRUNUSU9OOwotICAgIGNhc2UgUHNldWRv
QmVmb3JlOgorICAgIGNhc2UgUHNldWRvRWxlbWVudEJlZm9yZToKICAgICAgICAgcmV0dXJuIEJF
Rk9SRTsKLSAgICBjYXNlIFBzZXVkb0FmdGVyOgorICAgIGNhc2UgUHNldWRvRWxlbWVudEFmdGVy
OgogICAgICAgICByZXR1cm4gQUZURVI7Ci0gICAgY2FzZSBQc2V1ZG9TY3JvbGxiYXI6CisgICAg
Y2FzZSBQc2V1ZG9FbGVtZW50U2Nyb2xsYmFyOgogICAgICAgICByZXR1cm4gU0NST0xMQkFSOwot
ICAgIGNhc2UgUHNldWRvU2Nyb2xsYmFyQnV0dG9uOgorICAgIGNhc2UgUHNldWRvRWxlbWVudFNj
cm9sbGJhckJ1dHRvbjoKICAgICAgICAgcmV0dXJuIFNDUk9MTEJBUl9CVVRUT047Ci0gICAgY2Fz
ZSBQc2V1ZG9TY3JvbGxiYXJDb3JuZXI6CisgICAgY2FzZSBQc2V1ZG9FbGVtZW50U2Nyb2xsYmFy
Q29ybmVyOgogICAgICAgICByZXR1cm4gU0NST0xMQkFSX0NPUk5FUjsKLSAgICBjYXNlIFBzZXVk
b1Njcm9sbGJhclRodW1iOgorICAgIGNhc2UgUHNldWRvRWxlbWVudFNjcm9sbGJhclRodW1iOgog
ICAgICAgICByZXR1cm4gU0NST0xMQkFSX1RIVU1COwotICAgIGNhc2UgUHNldWRvU2Nyb2xsYmFy
VHJhY2s6CisgICAgY2FzZSBQc2V1ZG9FbGVtZW50U2Nyb2xsYmFyVHJhY2s6CiAgICAgICAgIHJl
dHVybiBTQ1JPTExCQVJfVFJBQ0s7Ci0gICAgY2FzZSBQc2V1ZG9TY3JvbGxiYXJUcmFja1BpZWNl
OgorICAgIGNhc2UgUHNldWRvRWxlbWVudFNjcm9sbGJhclRyYWNrUGllY2U6CiAgICAgICAgIHJl
dHVybiBTQ1JPTExCQVJfVFJBQ0tfUElFQ0U7Ci0gICAgY2FzZSBQc2V1ZG9SZXNpemVyOgorICAg
IGNhc2UgUHNldWRvRWxlbWVudFJlc2l6ZXI6CiAgICAgICAgIHJldHVybiBSRVNJWkVSOwotI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICBjYXNlIFBzZXVkb0Z1bGxTY3JlZW46Ci0gICAg
ICAgIHJldHVybiBGVUxMX1NDUkVFTjsKLSAgICBjYXNlIFBzZXVkb0Z1bGxTY3JlZW5Eb2N1bWVu
dDoKLSAgICAgICAgcmV0dXJuIEZVTExfU0NSRUVOX0RPQ1VNRU5UOwotICAgIGNhc2UgUHNldWRv
RnVsbFNjcmVlbkFuY2VzdG9yOgotICAgICAgICByZXR1cm4gRlVMTF9TQ1JFRU5fQU5DRVNUT1I7
Ci0gICAgY2FzZSBQc2V1ZG9BbmltYXRpbmdGdWxsU2NyZWVuVHJhbnNpdGlvbjoKLSAgICAgICAg
cmV0dXJuIEFOSU1BVElOR19GVUxMX1NDUkVFTl9UUkFOU0lUSU9OOwotI2VuZGlmCi0gICAgY2Fz
ZSBQc2V1ZG9Vbmtub3duOgotICAgIGNhc2UgUHNldWRvRW1wdHk6Ci0gICAgY2FzZSBQc2V1ZG9G
aXJzdENoaWxkOgotICAgIGNhc2UgUHNldWRvRmlyc3RPZlR5cGU6Ci0gICAgY2FzZSBQc2V1ZG9M
YXN0Q2hpbGQ6Ci0gICAgY2FzZSBQc2V1ZG9MYXN0T2ZUeXBlOgotICAgIGNhc2UgUHNldWRvT25s
eUNoaWxkOgotICAgIGNhc2UgUHNldWRvT25seU9mVHlwZToKLSAgICBjYXNlIFBzZXVkb050aENo
aWxkOgotICAgIGNhc2UgUHNldWRvTnRoT2ZUeXBlOgotICAgIGNhc2UgUHNldWRvTnRoTGFzdENo
aWxkOgotICAgIGNhc2UgUHNldWRvTnRoTGFzdE9mVHlwZToKLSAgICBjYXNlIFBzZXVkb0xpbms6
Ci0gICAgY2FzZSBQc2V1ZG9WaXNpdGVkOgotICAgIGNhc2UgUHNldWRvQW55OgotICAgIGNhc2Ug
UHNldWRvQW55TGluazoKLSAgICBjYXNlIFBzZXVkb0F1dG9maWxsOgotICAgIGNhc2UgUHNldWRv
SG92ZXI6Ci0gICAgY2FzZSBQc2V1ZG9EcmFnOgotICAgIGNhc2UgUHNldWRvRm9jdXM6Ci0gICAg
Y2FzZSBQc2V1ZG9BY3RpdmU6Ci0gICAgY2FzZSBQc2V1ZG9DaGVja2VkOgotICAgIGNhc2UgUHNl
dWRvRW5hYmxlZDoKLSAgICBjYXNlIFBzZXVkb0Z1bGxQYWdlTWVkaWE6Ci0gICAgY2FzZSBQc2V1
ZG9EZWZhdWx0OgotICAgIGNhc2UgUHNldWRvRGlzYWJsZWQ6Ci0gICAgY2FzZSBQc2V1ZG9PcHRp
b25hbDoKLSAgICBjYXNlIFBzZXVkb1JlcXVpcmVkOgotICAgIGNhc2UgUHNldWRvUmVhZE9ubHk6
Ci0gICAgY2FzZSBQc2V1ZG9SZWFkV3JpdGU6Ci0gICAgY2FzZSBQc2V1ZG9WYWxpZDoKLSAgICBj
YXNlIFBzZXVkb0ludmFsaWQ6Ci0gICAgY2FzZSBQc2V1ZG9JbmRldGVybWluYXRlOgotICAgIGNh
c2UgUHNldWRvVGFyZ2V0OgotICAgIGNhc2UgUHNldWRvTGFuZzoKLSAgICBjYXNlIFBzZXVkb05v
dDoKLSAgICBjYXNlIFBzZXVkb1Jvb3Q6Ci0gICAgY2FzZSBQc2V1ZG9TY29wZToKLSAgICBjYXNl
IFBzZXVkb1Njcm9sbGJhckJhY2s6Ci0gICAgY2FzZSBQc2V1ZG9TY3JvbGxiYXJGb3J3YXJkOgot
ICAgIGNhc2UgUHNldWRvV2luZG93SW5hY3RpdmU6Ci0gICAgY2FzZSBQc2V1ZG9Db3JuZXJQcmVz
ZW50OgotICAgIGNhc2UgUHNldWRvRGVjcmVtZW50OgotICAgIGNhc2UgUHNldWRvSW5jcmVtZW50
OgotICAgIGNhc2UgUHNldWRvSG9yaXpvbnRhbDoKLSAgICBjYXNlIFBzZXVkb1ZlcnRpY2FsOgot
ICAgIGNhc2UgUHNldWRvU3RhcnQ6Ci0gICAgY2FzZSBQc2V1ZG9FbmQ6Ci0gICAgY2FzZSBQc2V1
ZG9Eb3VibGVCdXR0b246Ci0gICAgY2FzZSBQc2V1ZG9TaW5nbGVCdXR0b246Ci0gICAgY2FzZSBQ
c2V1ZG9Ob0J1dHRvbjoKLSAgICBjYXNlIFBzZXVkb0luUmFuZ2U6Ci0gICAgY2FzZSBQc2V1ZG9P
dXRPZlJhbmdlOgotICAgIGNhc2UgUHNldWRvVXNlckFnZW50Q3VzdG9tRWxlbWVudDoKLSAgICBj
YXNlIFBzZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQ6CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQot
ICAgIGNhc2UgUHNldWRvQ3VlOgotICAgIGNhc2UgUHNldWRvRnV0dXJlOgotICAgIGNhc2UgUHNl
dWRvUGFzdDoKKyAgICBjYXNlIFBzZXVkb0VsZW1lbnRDdWU6CiAjZW5kaWYKKyAgICBjYXNlIFBz
ZXVkb0VsZW1lbnRVbmtub3duOgorICAgIGNhc2UgUHNldWRvRWxlbWVudFVzZXJBZ2VudEN1c3Rv
bToKKyAgICBjYXNlIFBzZXVkb0VsZW1lbnRXZWJLaXRDdXN0b206CiAgICAgICAgIHJldHVybiBO
T1BTRVVETzsKICAgICB9CiAKQEAgLTI0NCwxOCArMTgzLDE4IEBAIFBzZXVkb0lkIENTU1NlbGVj
dG9yOjpwc2V1ZG9JZChQc2V1ZG9UeXBlIHR5cGUpCiAgICAgcmV0dXJuIE5PUFNFVURPOwogfQog
Ci1DU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSBDU1NTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9FbGVtZW50
VHlwZShjb25zdCBTdHJpbmcmIG5hbWUpCitDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFR5cGUg
Q1NTU2VsZWN0b3I6OnBhcnNlUHNldWRvRWxlbWVudFR5cGUoY29uc3QgU3RyaW5nJiBuYW1lKQog
ewogICAgIGlmIChuYW1lLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gUHNldWRvVW5rbm93bjsK
KyAgICAgICAgcmV0dXJuIFBzZXVkb0VsZW1lbnRVbmtub3duOwogCi0gICAgUHNldWRvVHlwZSB0
eXBlID0gcGFyc2VQc2V1ZG9FbGVtZW50U3RyaW5nKCpuYW1lLmltcGwoKSk7Ci0gICAgaWYgKHR5
cGUgPT0gUHNldWRvVW5rbm93bikgeworICAgIFBzZXVkb0VsZW1lbnRUeXBlIHR5cGUgPSBwYXJz
ZVBzZXVkb0VsZW1lbnRTdHJpbmcoKm5hbWUuaW1wbCgpKTsKKyAgICBpZiAodHlwZSA9PSBQc2V1
ZG9FbGVtZW50VW5rbm93bikgewogICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKCItd2Via2l0
LSIpKQotICAgICAgICAgICAgdHlwZSA9IFBzZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQ7CisgICAg
ICAgICAgICB0eXBlID0gUHNldWRvRWxlbWVudFdlYktpdEN1c3RvbTsKIAogICAgICAgICBpZiAo
bmFtZS5zdGFydHNXaXRoKCJ4LSIpKQotICAgICAgICAgICAgdHlwZSA9IFBzZXVkb1VzZXJBZ2Vu
dEN1c3RvbUVsZW1lbnQ7CisgICAgICAgICAgICB0eXBlID0gUHNldWRvRWxlbWVudFVzZXJBZ2Vu
dEN1c3RvbTsKICAgICB9CiAgICAgcmV0dXJuIHR5cGU7CiB9CkBAIC0yNzEsNyArMjEwLDcgQEAg
Ym9vbCBDU1NTZWxlY3Rvcjo6b3BlcmF0b3I9PShjb25zdCBDU1NTZWxlY3RvciYgb3RoZXIpIGNv
bnN0CiAgICAgICAgICAgICB8fCBzZWwxLT5yZWxhdGlvbigpICE9IHNlbDItPnJlbGF0aW9uKCkK
ICAgICAgICAgICAgIHx8IHNlbDEtPm1fbWF0Y2ggIT0gc2VsMi0+bV9tYXRjaAogICAgICAgICAg
ICAgfHwgc2VsMS0+dmFsdWUoKSAhPSBzZWwyLT52YWx1ZSgpCi0gICAgICAgICAgICB8fCBzZWwx
LT5wc2V1ZG9UeXBlKCkgIT0gc2VsMi0+cHNldWRvVHlwZSgpCisgICAgICAgICAgICB8fCBzZWwx
LT5tX3BzZXVkb1R5cGUgIT0gc2VsMi0+bV9wc2V1ZG9UeXBlCiAgICAgICAgICAgICB8fCBzZWwx
LT5hcmd1bWVudCgpICE9IHNlbDItPmFyZ3VtZW50KCkpIHsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAppbmRleCA5MGRjZjQyNWQ1
ZWNmZDBmMDFlNWEwODNjNDFmMmJhY2RjNzFjMmRiLi43N2VhNmNhNmNkODM2N2I5ZGMxN2JiYzI2
Mzk2MjAzZDQwNTU4NDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApAQCAtODcsOCArODcs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBQc2V1ZG9MYXN0T2ZUeXBlLAog
ICAgICAgICAgICAgUHNldWRvT25seUNoaWxkLAogICAgICAgICAgICAgUHNldWRvT25seU9mVHlw
ZSwKLSAgICAgICAgICAgIFBzZXVkb0ZpcnN0TGluZSwKLSAgICAgICAgICAgIFBzZXVkb0ZpcnN0
TGV0dGVyLAogICAgICAgICAgICAgUHNldWRvTnRoQ2hpbGQsCiAgICAgICAgICAgICBQc2V1ZG9O
dGhPZlR5cGUsCiAgICAgICAgICAgICBQc2V1ZG9OdGhMYXN0Q2hpbGQsCkBAIC0xMTUsMjEgKzEx
MywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBQc2V1ZG9JbnZhbGlkLAog
ICAgICAgICAgICAgUHNldWRvSW5kZXRlcm1pbmF0ZSwKICAgICAgICAgICAgIFBzZXVkb1Rhcmdl
dCwKLSAgICAgICAgICAgIFBzZXVkb0JlZm9yZSwKLSAgICAgICAgICAgIFBzZXVkb0FmdGVyLAog
ICAgICAgICAgICAgUHNldWRvTGFuZywKICAgICAgICAgICAgIFBzZXVkb05vdCwKLSAgICAgICAg
ICAgIFBzZXVkb1Jlc2l6ZXIsCiAgICAgICAgICAgICBQc2V1ZG9Sb290LAogICAgICAgICAgICAg
UHNldWRvU2NvcGUsCi0gICAgICAgICAgICBQc2V1ZG9TY3JvbGxiYXIsCi0gICAgICAgICAgICBQ
c2V1ZG9TY3JvbGxiYXJCYWNrLAotICAgICAgICAgICAgUHNldWRvU2Nyb2xsYmFyQnV0dG9uLAot
ICAgICAgICAgICAgUHNldWRvU2Nyb2xsYmFyQ29ybmVyLAotICAgICAgICAgICAgUHNldWRvU2Ny
b2xsYmFyRm9yd2FyZCwKLSAgICAgICAgICAgIFBzZXVkb1Njcm9sbGJhclRodW1iLAotICAgICAg
ICAgICAgUHNldWRvU2Nyb2xsYmFyVHJhY2ssCi0gICAgICAgICAgICBQc2V1ZG9TY3JvbGxiYXJU
cmFja1BpZWNlLAogICAgICAgICAgICAgUHNldWRvV2luZG93SW5hY3RpdmUsCiAgICAgICAgICAg
ICBQc2V1ZG9Db3JuZXJQcmVzZW50LAogICAgICAgICAgICAgUHNldWRvRGVjcmVtZW50LApAQCAt
MTQxLDcgKzEyOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFBzZXVkb0Rv
dWJsZUJ1dHRvbiwKICAgICAgICAgICAgIFBzZXVkb1NpbmdsZUJ1dHRvbiwKICAgICAgICAgICAg
IFBzZXVkb05vQnV0dG9uLAotICAgICAgICAgICAgUHNldWRvU2VsZWN0aW9uLAogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKICAgICAgICAgICAgIFBzZXVkb0Z1bGxTY3JlZW4sCiAgICAgICAg
ICAgICBQc2V1ZG9GdWxsU2NyZWVuRG9jdW1lbnQsCkBAIC0xNTAsMTUgKzEzNiwzMyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKICAgICAgICAgICAgIFBzZXVkb0luUmFuZ2UsCiAgICAg
ICAgICAgICBQc2V1ZG9PdXRPZlJhbmdlLAotICAgICAgICAgICAgUHNldWRvVXNlckFnZW50Q3Vz
dG9tRWxlbWVudCwKLSAgICAgICAgICAgIFBzZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQsCiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQotICAgICAgICAgICAgUHNldWRvQ3VlLAogICAgICAgICAgICAg
UHNldWRvRnV0dXJlLAogICAgICAgICAgICAgUHNldWRvUGFzdCwKICNlbmRpZgogICAgICAgICB9
OwogCisgICAgICAgIGVudW0gUHNldWRvRWxlbWVudFR5cGUgeworICAgICAgICAgICAgUHNldWRv
RWxlbWVudFVua25vd24gPSAwLAorICAgICAgICAgICAgUHNldWRvRWxlbWVudEFmdGVyLAorICAg
ICAgICAgICAgUHNldWRvRWxlbWVudEJlZm9yZSwKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisg
ICAgICAgICAgICBQc2V1ZG9FbGVtZW50Q3VlLAorI2VuZGlmCisgICAgICAgICAgICBQc2V1ZG9F
bGVtZW50Rmlyc3RMZXR0ZXIsCisgICAgICAgICAgICBQc2V1ZG9FbGVtZW50Rmlyc3RMaW5lLAor
ICAgICAgICAgICAgUHNldWRvRWxlbWVudFJlc2l6ZXIsCisgICAgICAgICAgICBQc2V1ZG9FbGVt
ZW50U2Nyb2xsYmFyLAorICAgICAgICAgICAgUHNldWRvRWxlbWVudFNjcm9sbGJhckJ1dHRvbiwK
KyAgICAgICAgICAgIFBzZXVkb0VsZW1lbnRTY3JvbGxiYXJDb3JuZXIsCisgICAgICAgICAgICBQ
c2V1ZG9FbGVtZW50U2Nyb2xsYmFyVGh1bWIsCisgICAgICAgICAgICBQc2V1ZG9FbGVtZW50U2Ny
b2xsYmFyVHJhY2ssCisgICAgICAgICAgICBQc2V1ZG9FbGVtZW50U2Nyb2xsYmFyVHJhY2tQaWVj
ZSwKKyAgICAgICAgICAgIFBzZXVkb0VsZW1lbnRTZWxlY3Rpb24sCisgICAgICAgICAgICBQc2V1
ZG9FbGVtZW50VXNlckFnZW50Q3VzdG9tLAorICAgICAgICAgICAgUHNldWRvRWxlbWVudFdlYktp
dEN1c3RvbSwKKyAgICAgICAgfTsKKwogICAgICAgICBlbnVtIFBhZ2VQc2V1ZG9DbGFzc1R5cGUg
ewogICAgICAgICAgICAgUGFnZVBzZXVkb0NsYXNzRmlyc3QgPSAxLAogICAgICAgICAgICAgUGFn
ZVBzZXVkb0NsYXNzTGVmdCwKQEAgLTE4NiwxMSArMTkwLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBQc2V1ZG9UeXBlIHBzZXVkb1R5cGUoKSBjb25zdAogICAgICAgICB7Cisg
ICAgICAgICAgICBBU1NFUlQobV9tYXRjaCA9PSBQc2V1ZG9DbGFzcyk7CiAgICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UHNldWRvVHlwZT4obV9wc2V1ZG9UeXBlKTsKICAgICAgICAgfQog
Ci0gICAgICAgIHN0YXRpYyBQc2V1ZG9UeXBlIHBhcnNlUHNldWRvRWxlbWVudFR5cGUoY29uc3Qg
U3RyaW5nJik7Ci0gICAgICAgIHN0YXRpYyBQc2V1ZG9JZCBwc2V1ZG9JZChQc2V1ZG9UeXBlKTsK
KyAgICAgICAgc3RhdGljIFBzZXVkb0VsZW1lbnRUeXBlIHBhcnNlUHNldWRvRWxlbWVudFR5cGUo
Y29uc3QgU3RyaW5nJik7CisgICAgICAgIHN0YXRpYyBQc2V1ZG9JZCBwc2V1ZG9JZChQc2V1ZG9F
bGVtZW50VHlwZSk7CiAKICAgICAgICAgLy8gU2VsZWN0b3JzIGFyZSBrZXB0IGluIGFuIGFycmF5
IGJ5IENTU1NlbGVjdG9yTGlzdC4gVGhlIG5leHQgY29tcG9uZW50IG9mIHRoZSBzZWxlY3RvciBp
cwogICAgICAgICAvLyB0aGUgbmV4dCBpdGVtIGluIHRoZSBhcnJheS4KQEAgLTIwMyw2ICsyMDgs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJn
dW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1JhcmVEYXRhID8gbV9kYXRhLm1fcmFyZURhdGEt
Pm1fYXJndW1lbnQgOiBudWxsQXRvbTsgfQogICAgICAgICBjb25zdCBDU1NTZWxlY3Rvckxpc3Qq
IHNlbGVjdG9yTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmFyZURhdGEgPyBtX2RhdGEubV9y
YXJlRGF0YS0+bV9zZWxlY3Rvckxpc3QuZ2V0KCkgOiAwOyB9CiAKKyAgICAgICAgdm9pZCBzZXRQ
c2V1ZG9FbGVtZW50VHlwZShQc2V1ZG9FbGVtZW50VHlwZSBwc2V1ZG9FbGVtZW50VHlwZSkgeyBt
X3BzZXVkb1R5cGUgPSBwc2V1ZG9FbGVtZW50VHlwZTsgfQogICAgICAgICB2b2lkIHNldFBhZ2VQ
c2V1ZG9UeXBlKFBhZ2VQc2V1ZG9DbGFzc1R5cGUgcGFnZVBzZXVkb1R5cGUpIHsgbV9wc2V1ZG9U
eXBlID0gcGFnZVBzZXVkb1R5cGU7IH0KICAgICAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBBdG9t
aWNTdHJpbmcmKTsKICAgICAgICAgdm9pZCBzZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGJvb2wgaXNDYXNlSW5zZW5zaXRpdmUpOwpAQCAtMjEyLDYgKzIxOCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBwYXJzZU50aCgpIGNvbnN0OwogICAgICAgICBib29s
IG1hdGNoTnRoKGludCBjb3VudCkgY29uc3Q7CiAKKyAgICAgICAgUHNldWRvRWxlbWVudFR5cGUg
cHNldWRvRWxlbWVudFR5cGUoKSBjb25zdCB7IEFTU0VSVChtX21hdGNoID09IFBzZXVkb0VsZW1l
bnQpOyByZXR1cm4gc3RhdGljX2Nhc3Q8UHNldWRvRWxlbWVudFR5cGU+KG1fcHNldWRvVHlwZSk7
IH0KICAgICAgICAgUGFnZVBzZXVkb0NsYXNzVHlwZSBwYWdlUHNldWRvQ2xhc3NUeXBlKCkgY29u
c3QgeyBBU1NFUlQobV9tYXRjaCA9PSBQYWdlUHNldWRvQ2xhc3MpOyByZXR1cm4gc3RhdGljX2Nh
c3Q8UGFnZVBzZXVkb0NsYXNzVHlwZT4obV9wc2V1ZG9UeXBlKTsgfQogCiAgICAgICAgIGJvb2wg
bWF0Y2hlc1BzZXVkb0VsZW1lbnQoKSBjb25zdDsKQEAgLTI5OSwzMCArMzA2LDM0IEBAIGlubGlu
ZSBib29sIENTU1NlbGVjdG9yOjptYXRjaGVzUHNldWRvRWxlbWVudCgpIGNvbnN0CiAKIGlubGlu
ZSBib29sIENTU1NlbGVjdG9yOjppc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV9tYXRjaCA9PSBQc2V1ZG9FbGVtZW50ICYmIG1fcHNldWRvVHlwZSA9PSBQc2V1
ZG9Vbmtub3duOworICAgIHJldHVybiBtX21hdGNoID09IFBzZXVkb0VsZW1lbnQgJiYgbV9wc2V1
ZG9UeXBlID09IFBzZXVkb0VsZW1lbnRVbmtub3duOwogfQogCiBpbmxpbmUgYm9vbCBDU1NTZWxl
Y3Rvcjo6aXNDdXN0b21Qc2V1ZG9FbGVtZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9tYXRj
aCA9PSBQc2V1ZG9FbGVtZW50ICYmIChtX3BzZXVkb1R5cGUgPT0gUHNldWRvVXNlckFnZW50Q3Vz
dG9tRWxlbWVudCB8fCBtX3BzZXVkb1R5cGUgPT0gUHNldWRvV2ViS2l0Q3VzdG9tRWxlbWVudCk7
CisgICAgcmV0dXJuIG1fbWF0Y2ggPT0gUHNldWRvRWxlbWVudCAmJiAobV9wc2V1ZG9UeXBlID09
IFBzZXVkb0VsZW1lbnRVc2VyQWdlbnRDdXN0b20gfHwgbV9wc2V1ZG9UeXBlID09IFBzZXVkb0Vs
ZW1lbnRXZWJLaXRDdXN0b20pOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcHNldWRvQ2xhc3NJ
c1JlbGF0aXZlVG9TaWJsaW5ncyhDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSB0eXBlKQoreworICAg
IHJldHVybiB0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbXB0eQorICAgICAgICB8fCB0eXBl
ID09IENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJzdENoaWxkCisgICAgICAgIHx8IHR5cGUgPT0gQ1NT
U2VsZWN0b3I6OlBzZXVkb0ZpcnN0T2ZUeXBlCisgICAgICAgIHx8IHR5cGUgPT0gQ1NTU2VsZWN0
b3I6OlBzZXVkb0xhc3RDaGlsZAorICAgICAgICB8fCB0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1
ZG9MYXN0T2ZUeXBlCisgICAgICAgIHx8IHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb09ubHlD
aGlsZAorICAgICAgICB8fCB0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9Pbmx5T2ZUeXBlCisg
ICAgICAgIHx8IHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb050aENoaWxkCisgICAgICAgIHx8
IHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb050aE9mVHlwZQorICAgICAgICB8fCB0eXBlID09
IENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0Q2hpbGQKKyAgICAgICAgfHwgdHlwZSA9PSBDU1NT
ZWxlY3Rvcjo6UHNldWRvTnRoTGFzdE9mVHlwZTsKIH0KIAogaW5saW5lIGJvb2wgQ1NTU2VsZWN0
b3I6OmlzU2libGluZ1NlbGVjdG9yKCkgY29uc3QKIHsKLSAgICBQc2V1ZG9UeXBlIHR5cGUgPSBw
c2V1ZG9UeXBlKCk7CiAgICAgcmV0dXJuIG1fcmVsYXRpb24gPT0gRGlyZWN0QWRqYWNlbnQKICAg
ICAgICAgfHwgbV9yZWxhdGlvbiA9PSBJbmRpcmVjdEFkamFjZW50Ci0gICAgICAgIHx8IHR5cGUg
PT0gUHNldWRvRW1wdHkKLSAgICAgICAgfHwgdHlwZSA9PSBQc2V1ZG9GaXJzdENoaWxkCi0gICAg
ICAgIHx8IHR5cGUgPT0gUHNldWRvRmlyc3RPZlR5cGUKLSAgICAgICAgfHwgdHlwZSA9PSBQc2V1
ZG9MYXN0Q2hpbGQKLSAgICAgICAgfHwgdHlwZSA9PSBQc2V1ZG9MYXN0T2ZUeXBlCi0gICAgICAg
IHx8IHR5cGUgPT0gUHNldWRvT25seUNoaWxkCi0gICAgICAgIHx8IHR5cGUgPT0gUHNldWRvT25s
eU9mVHlwZQotICAgICAgICB8fCB0eXBlID09IFBzZXVkb050aENoaWxkCi0gICAgICAgIHx8IHR5
cGUgPT0gUHNldWRvTnRoT2ZUeXBlCi0gICAgICAgIHx8IHR5cGUgPT0gUHNldWRvTnRoTGFzdENo
aWxkCi0gICAgICAgIHx8IHR5cGUgPT0gUHNldWRvTnRoTGFzdE9mVHlwZTsKKyAgICAgICAgfHwg
KG1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzICYmIHBzZXVkb0NsYXNzSXNSZWxh
dGl2ZVRvU2libGluZ3MocHNldWRvVHlwZSgpKSk7CiB9CiAKIGlubGluZSBib29sIENTU1NlbGVj
dG9yOjppc0F0dHJpYnV0ZVNlbGVjdG9yKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlRmVhdHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZUZlYXR1cmUu
Y3BwCmluZGV4IDkzYThlYzhmMjJjM2Q3NjhjMTk5ODkyN2Q2Y2RiMWY1NWNjZTQ5MGIuLmQzMTQ5
ZjAxMWNiOTVjYjQ2OGUxOGZmMjA4NTA0NWNjZjVhNmZhM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9SdWxlRmVhdHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVG
ZWF0dXJlLmNwcApAQCAtNDEsMTYgKzQxLDE4IEBAIHZvaWQgUnVsZUZlYXR1cmVTZXQ6OmNvbGxl
Y3RGZWF0dXJlc0Zyb21TZWxlY3Rvcihjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCiAgICAg
ICAgIGNsYXNzZXNJblJ1bGVzLmFkZChzZWxlY3Rvci0+dmFsdWUoKS5pbXBsKCkpOwogICAgIGVs
c2UgaWYgKHNlbGVjdG9yLT5pc0F0dHJpYnV0ZVNlbGVjdG9yKCkpCiAgICAgICAgIGF0dHJzSW5S
dWxlcy5hZGQoc2VsZWN0b3ItPmF0dHJpYnV0ZSgpLmxvY2FsTmFtZSgpLmltcGwoKSk7Ci0gICAg
c3dpdGNoIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpKSB7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvRmlyc3RMaW5lOgotICAgICAgICB1c2VzRmlyc3RMaW5lUnVsZXMgPSB0cnVlOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9CZWZvcmU6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvQWZ0ZXI6Ci0gICAgICAgIHVzZXNCZWZvcmVBZnRlclJ1bGVz
ID0gdHJ1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgYnJlYWs7Cisg
ICAgZWxzZSBpZiAoc2VsZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1l
bnQpIHsKKyAgICAgICAgc3dpdGNoIChzZWxlY3Rvci0+cHNldWRvRWxlbWVudFR5cGUoKSkgewor
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50Rmlyc3RMaW5lOgorICAgICAg
ICAgICAgdXNlc0ZpcnN0TGluZVJ1bGVzID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50QmVmb3JlOgorICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50QWZ0ZXI6CisgICAgICAgICAgICB1c2VzQmVmb3Jl
QWZ0ZXJSdWxlcyA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNl
dC5jcHAKaW5kZXggYmQ5YWMxZTM4MDQzZWNmZTdjOWY4MWUyYjRiNGMwZjMyNjAzMDQyYS4uMTg4
NGI2YjkwNGI0MzUzODVmMmZjMzBiM2U2ZTBjMzVlYTkwYWNhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0
LmNwcApAQCAtMTE5LDcgKzExOSw3IEBAIHN0YXRpYyBpbmxpbmUgUHJvcGVydHlXaGl0ZWxpc3RU
eXBlIGRldGVybWluZVByb3BlcnR5V2hpdGVsaXN0VHlwZShjb25zdCBBZGRSdWxlCiAgICAgICAg
IHJldHVybiBQcm9wZXJ0eVdoaXRlbGlzdFJlZ2lvbjsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
CiAgICAgZm9yIChjb25zdCBDU1NTZWxlY3RvciogY29tcG9uZW50ID0gc2VsZWN0b3I7IGNvbXBv
bmVudDsgY29tcG9uZW50ID0gY29tcG9uZW50LT50YWdIaXN0b3J5KCkpIHsKLSAgICAgICAgaWYg
KGNvbXBvbmVudC0+cHNldWRvVHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DdWUgfHwgKGNv
bXBvbmVudC0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudCAmJiBjb21wb25l
bnQtPnZhbHVlKCkgPT0gVGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpKSkKKyAgICAg
ICAgaWYgKGNvbXBvbmVudC0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudCAm
JiAoY29tcG9uZW50LT5wc2V1ZG9FbGVtZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9F
bGVtZW50Q3VlIHx8IGNvbXBvbmVudC0+dmFsdWUoKSA9PSBUZXh0VHJhY2tDdWU6OmN1ZVNoYWRv
d1BzZXVkb0lkKCkpKQogICAgICAgICAgICAgcmV0dXJuIFByb3BlcnR5V2hpdGVsaXN0Q3VlOwog
ICAgIH0KICNlbHNlCkBAIC0xOTIsNyArMTkyLDcgQEAgYm9vbCBSdWxlU2V0OjpmaW5kQmVzdFJ1
bGVTZXRBbmRBZGQoY29uc3QgQ1NTU2VsZWN0b3IqIGNvbXBvbmVudCwgUnVsZURhdGEmIHJ1bGUK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAg
ICBpZiAoY29tcG9uZW50LT5wc2V1ZG9UeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0N1ZSkg
eworICAgIGlmIChjb21wb25lbnQtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1l
bnQgJiYgY29tcG9uZW50LT5wc2V1ZG9FbGVtZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1
ZG9FbGVtZW50Q3VlKSB7CiAgICAgICAgIG1fY3VlUHNldWRvUnVsZXMuYXBwZW5kKHJ1bGVEYXRh
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyLmNwcAppbmRleCAxODgwYzI5NDljODYzNGIxOTEyY2Q2ZDBiYTMzMzY3NmJlOGJlY2Iz
Li42ZjA5ZWQ3NGEwYTNkZmRhMzhhNjJhZGFmYTVkNGE3YzUwY2UyNjU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIFNlbGVjdG9yQ2hl
Y2tlcjo6TWF0Y2ggU2VsZWN0b3JDaGVja2VyOjptYXRjaFJlY3Vyc2l2ZWx5KGNvbnN0IFNlbGVj
dG9yQ2hlY2tpbmdDCiAgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQuZWxlbWVudC0+c2hhZG93
UHNldWRvSWQoKSAhPSBjb250ZXh0LnNlbGVjdG9yLT52YWx1ZSgpKQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0xvY2FsbHk7CiAKLSAgICAgICAgICAgICAgICBpZiAo
Y29udGV4dC5zZWxlY3Rvci0+cHNldWRvVHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9XZWJL
aXRDdXN0b21FbGVtZW50ICYmIHJvb3QtPnR5cGUoKSAhPSBTaGFkb3dSb290OjpVc2VyQWdlbnRT
aGFkb3dSb290KQorICAgICAgICAgICAgICAgIGlmIChjb250ZXh0LnNlbGVjdG9yLT5wc2V1ZG9F
bGVtZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50V2ViS2l0Q3VzdG9tICYm
IHJvb3QtPnR5cGUoKSAhPSBTaGFkb3dSb290OjpVc2VyQWdlbnRTaGFkb3dSb290KQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0xvY2FsbHk7CiAgICAgICAgICAgICB9
IGVsc2UgaWYgKG1fbW9kZSAhPSBTdHlsZUludmFsaWRhdGlvbikKICAgICAgICAgICAgICAgICBy
ZXR1cm4gU2VsZWN0b3JGYWlsc0xvY2FsbHk7CkBAIC0xNjYsNyArMTY2LDcgQEAgU2VsZWN0b3JD
aGVja2VyOjpNYXRjaCBTZWxlY3RvckNoZWNrZXI6Om1hdGNoUmVjdXJzaXZlbHkoY29uc3QgU2Vs
ZWN0b3JDaGVja2luZ0MKICAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0xvY2Fs
bHk7CiAKICAgICAgICAgICAgIC8vIFdoZW4gaW52YWxpZGF0aW5nIHN0eWxlIGFsbCBwc2V1ZG8g
ZWxlbWVudHMgbmVlZCB0byBtYXRjaC4KLSAgICAgICAgICAgIFBzZXVkb0lkIHBzZXVkb0lkID0g
bV9tb2RlID09IFN0eWxlSW52YWxpZGF0aW9uID8gTk9QU0VVRE8gOiBDU1NTZWxlY3Rvcjo6cHNl
dWRvSWQoY29udGV4dC5zZWxlY3Rvci0+cHNldWRvVHlwZSgpKTsKKyAgICAgICAgICAgIFBzZXVk
b0lkIHBzZXVkb0lkID0gbV9tb2RlID09IFN0eWxlSW52YWxpZGF0aW9uID8gTk9QU0VVRE8gOiBD
U1NTZWxlY3Rvcjo6cHNldWRvSWQoY29udGV4dC5zZWxlY3Rvci0+cHNldWRvRWxlbWVudFR5cGUo
KSk7CiAgICAgICAgICAgICBpZiAocHNldWRvSWQgPT0gRklSU1RfTEVUVEVSKQogICAgICAgICAg
ICAgICAgIGNvbnRleHQuZWxlbWVudC0+ZG9jdW1lbnQoKS5zdHlsZVNoZWV0Q29sbGVjdGlvbigp
LnNldFVzZXNGaXJzdExldHRlclJ1bGVzKHRydWUpOwogICAgICAgICAgICAgaWYgKHBzZXVkb0lk
ICE9IE5PUFNFVURPKQpAQCAtMzk1LDEzICszOTUsMTUgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6
OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0KSBjb25zdAog
ICAgICAgICAgICAgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQgc3ViQ29udGV4dChjb250ZXh0KTsK
ICAgICAgICAgICAgIHN1YkNvbnRleHQuaXNTdWJTZWxlY3RvciA9IHRydWU7CiAgICAgICAgICAg
ICBmb3IgKHN1YkNvbnRleHQuc2VsZWN0b3IgPSBzZWxlY3Rvckxpc3QtPmZpcnN0KCk7IHN1YkNv
bnRleHQuc2VsZWN0b3I7IHN1YkNvbnRleHQuc2VsZWN0b3IgPSBzdWJDb250ZXh0LnNlbGVjdG9y
LT50YWdIaXN0b3J5KCkpIHsKLSAgICAgICAgICAgICAgICAvLyA6bm90IGNhbm5vdCBuZXN0LiBJ
IGRvbid0IHJlYWxseSBrbm93IHdoeSB0aGlzIGlzIGEKLSAgICAgICAgICAgICAgICAvLyByZXN0
cmljdGlvbiBpbiBDU1MzLCBidXQgaXQgaXMsIHNvIGxldCdzIGhvbm9yIGl0LgotICAgICAgICAg
ICAgICAgIC8vIHRoZSBwYXJzZXIgZW5mb3JjZXMgdGhhdCB0aGlzIG5ldmVyIG9jY3VycwotICAg
ICAgICAgICAgICAgIEFTU0VSVChzdWJDb250ZXh0LnNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkgIT0g
Q1NTU2VsZWN0b3I6OlBzZXVkb05vdCk7Ci0gICAgICAgICAgICAgICAgLy8gV2Ugc2VsZWN0IGJl
dHdlZW4gOnZpc2l0ZWQgYW5kIDpsaW5rIHdoZW4gYXBwbHlpbmcuIFdlIGRvbid0IGtub3cgd2hp
Y2ggb25lIGFwcGxpZWQgKG9yIG5vdCkgeWV0LgotICAgICAgICAgICAgICAgIGlmIChzdWJDb250
ZXh0LnNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Zpc2l0ZWQg
fHwgKHN1YkNvbnRleHQuc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNl
dWRvTGluayAmJiBzdWJDb250ZXh0LnZpc2l0ZWRNYXRjaFR5cGUgPT0gVmlzaXRlZE1hdGNoRW5h
YmxlZCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAg
IGlmIChzdWJDb250ZXh0LnNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzcykgeworICAgICAgICAgICAgICAgICAgICAvLyA6bm90IGNhbm5vdCBuZXN0LiBJIGRvbid0
IHJlYWxseSBrbm93IHdoeSB0aGlzIGlzIGEKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdHJp
Y3Rpb24gaW4gQ1NTMywgYnV0IGl0IGlzLCBzbyBsZXQncyBob25vciBpdC4KKyAgICAgICAgICAg
ICAgICAgICAgLy8gdGhlIHBhcnNlciBlbmZvcmNlcyB0aGF0IHRoaXMgbmV2ZXIgb2NjdXJzCisg
ICAgICAgICAgICAgICAgICAgIEFTU0VSVChzdWJDb250ZXh0LnNlbGVjdG9yLT5wc2V1ZG9UeXBl
KCkgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb05vdCk7CisgICAgICAgICAgICAgICAgICAgIC8vIFdl
IHNlbGVjdCBiZXR3ZWVuIDp2aXNpdGVkIGFuZCA6bGluayB3aGVuIGFwcGx5aW5nLiBXZSBkb24n
dCBrbm93IHdoaWNoIG9uZSBhcHBsaWVkIChvciBub3QpIHlldC4KKyAgICAgICAgICAgICAgICAg
ICAgaWYgKHN1YkNvbnRleHQuc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6
UHNldWRvVmlzaXRlZCB8fCAoc3ViQ29udGV4dC5zZWxlY3Rvci0+cHNldWRvVHlwZSgpID09IENT
U1NlbGVjdG9yOjpQc2V1ZG9MaW5rICYmIHN1YkNvbnRleHQudmlzaXRlZE1hdGNoVHlwZSA9PSBW
aXNpdGVkTWF0Y2hFbmFibGVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoIWNoZWNrT25lKHN1YkNv
bnRleHQpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0K
QEAgLTczOCw3ICs3NDAsNyBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUoY29uc3Qg
U2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIGVsc2UgaWYgKHNlbGVj
dG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50ICYmIHNlbGVjdG9yLT5w
c2V1ZG9UeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0N1ZSkgeworICAgIGVsc2UgaWYgKHNl
bGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50ICYmIHNlbGVjdG9y
LT5wc2V1ZG9FbGVtZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50Q3VlKSB7
CiAgICAgICAgIFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0IHN1YkNvbnRleHQoY29udGV4dCk7CiAg
ICAgICAgIHN1YkNvbnRleHQuaXNTdWJTZWxlY3RvciA9IHRydWU7CiAKQEAgLTc1Nyw2ICs3NTks
OCBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUoY29uc3QgU2VsZWN0b3JDaGVja2lu
Z0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiAKIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja1Nj
cm9sbGJhclBzZXVkb0NsYXNzKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0
LCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvcikgY29uc3QK
IHsKKyAgICBBU1NFUlQoc2VsZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzKTsKKwogICAgIFJlbmRlclNjcm9sbGJhciogc2Nyb2xsYmFyID0gY29udGV4dC5zY3JvbGxi
YXI7CiAgICAgU2Nyb2xsYmFyUGFydCBwYXJ0ID0gY29udGV4dC5zY3JvbGxiYXJQYXJ0OwogCkBA
IC03NjgsNyArNzcyLDYgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2Nyb2xsYmFyUHNl
dWRvQ2xhc3MoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGMKICAgICBpZiAoIXNjcm9s
bGJhcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgQVNTRVJUKHNlbGVjdG9yLT5tX21h
dGNoID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CiAgICAgc3dpdGNoIChzZWxlY3Rvci0+
cHNldWRvVHlwZSgpKSB7CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRW5hYmxlZDoKICAg
ICAgICAgcmV0dXJuIHNjcm9sbGJhci0+ZW5hYmxlZCgpOwpAQCAtODQzLDMyICs4NDYsMzYgQEAg
dW5zaWduZWQgU2VsZWN0b3JDaGVja2VyOjpkZXRlcm1pbmVMaW5rTWF0Y2hUeXBlKGNvbnN0IENT
U1NlbGVjdG9yKiBzZWxlY3RvcikKICAgICAvLyBTdGF0aWNhbGx5IGRldGVybWluZSBpZiB0aGlz
IHNlbGVjdG9yIHdpbGwgbWF0Y2ggYSBsaW5rIGluIHZpc2l0ZWQsIHVudmlzaXRlZCBvciBhbnkg
c3RhdGUsIG9yIG5ldmVyLgogICAgIC8vIDp2aXNpdGVkIG5ldmVyIG1hdGNoZXMgb3RoZXIgZWxl
bWVudHMgdGhhbiB0aGUgaW5uZXJtb3N0IGxpbmsgZWxlbWVudC4KICAgICBmb3IgKDsgc2VsZWN0
b3I7IHNlbGVjdG9yID0gc2VsZWN0b3ItPnRhZ0hpc3RvcnkoKSkgewotICAgICAgICBzd2l0Y2gg
KHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkpIHsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvTm90OgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIC8vIDpub3QoOnZpc2l0ZWQp
IGlzIGVxdWl2YWxlbnQgdG8gOmxpbmsuIFBhcnNlciBlbmZvcmNlcyB0aGF0IDpub3QgY2FuJ3Qg
bmVzdC4KLSAgICAgICAgICAgICAgICBjb25zdCBDU1NTZWxlY3Rvckxpc3QqIHNlbGVjdG9yTGlz
dCA9IHNlbGVjdG9yLT5zZWxlY3Rvckxpc3QoKTsKLSAgICAgICAgICAgICAgICBpZiAoIXNlbGVj
dG9yTGlzdCkKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmIChzZWxlY3Rv
ci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpIHsKKyAgICAgICAgICAgIHN3
aXRjaCAoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSkgeworICAgICAgICAgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvTm90OgorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
Ly8gOm5vdCg6dmlzaXRlZCkgaXMgZXF1aXZhbGVudCB0byA6bGluay4gUGFyc2VyIGVuZm9yY2Vz
IHRoYXQgOm5vdCBjYW4ndCBuZXN0LgorICAgICAgICAgICAgICAgICAgICBjb25zdCBDU1NTZWxl
Y3Rvckxpc3QqIHNlbGVjdG9yTGlzdCA9IHNlbGVjdG9yLT5zZWxlY3Rvckxpc3QoKTsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCFzZWxlY3Rvckxpc3QpCisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKIAotICAgICAgICAgICAgICAgIGZvciAoY29uc3QgQ1NTU2VsZWN0b3IqIHN1YlNl
bGVjdG9yID0gc2VsZWN0b3JMaXN0LT5maXJzdCgpOyBzdWJTZWxlY3Rvcjsgc3ViU2VsZWN0b3Ig
PSBzdWJTZWxlY3Rvci0+dGFnSGlzdG9yeSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIENTU1Nl
bGVjdG9yOjpQc2V1ZG9UeXBlIHN1YlR5cGUgPSBzdWJTZWxlY3Rvci0+cHNldWRvVHlwZSgpOwot
ICAgICAgICAgICAgICAgICAgICBpZiAoc3ViVHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvVmlz
aXRlZCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtNYXRjaFR5cGUgJj0gflNlbGVjdG9y
Q2hlY2tlcjo6TWF0Y2hWaXNpdGVkOwotICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzdWJU
eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9MaW5rKQotICAgICAgICAgICAgICAgICAgICAgICAg
bGlua01hdGNoVHlwZSAmPSB+U2VsZWN0b3JDaGVja2VyOjpNYXRjaExpbms7CisgICAgICAgICAg
ICAgICAgICAgIGZvciAoY29uc3QgQ1NTU2VsZWN0b3IqIHN1YlNlbGVjdG9yID0gc2VsZWN0b3JM
aXN0LT5maXJzdCgpOyBzdWJTZWxlY3Rvcjsgc3ViU2VsZWN0b3IgPSBzdWJTZWxlY3Rvci0+dGFn
SGlzdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3ViU2VsZWN0b3ItPm1f
bWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgc3ViVHlwZSA9IHN1YlNlbGVjdG9yLT5w
c2V1ZG9UeXBlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YlR5cGUgPT0g
Q1NTU2VsZWN0b3I6OlBzZXVkb1Zpc2l0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxpbmtNYXRjaFR5cGUgJj0gflNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHN1YlR5cGUgPT0gQ1NTU2VsZWN0b3I6
OlBzZXVkb0xpbmspCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtNYXRjaFR5
cGUgJj0gflNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hMaW5rOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGluazoK
KyAgICAgICAgICAgICAgICBsaW5rTWF0Y2hUeXBlICY9IH5TZWxlY3RvckNoZWNrZXI6Ok1hdGNo
VmlzaXRlZDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1Zpc2l0ZWQ6CisgICAgICAgICAgICAgICAgbGlua01hdGNoVHlwZSAmPSB+
U2VsZWN0b3JDaGVja2VyOjpNYXRjaExpbms7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgOmxp
bmsgYW5kIDp2aXNpdGVkIGluc2lkZSA6LXdlYmtpdC1hbnkuCisgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvTGluazoKLSAgICAgICAgICAgIGxpbmtNYXRjaFR5cGUgJj0gflNlbGVj
dG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Zpc2l0ZWQ6Ci0gICAgICAgICAgICBsaW5rTWF0Y2hUeXBl
ICY9IH5TZWxlY3RvckNoZWNrZXI6Ok1hdGNoTGluazsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBkZWZhdWx0OgotICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCA6bGluayBhbmQg
OnZpc2l0ZWQgaW5zaWRlIDotd2Via2l0LWFueS4KLSAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIENTU1NlbGVjdG9yOjpSZWxhdGlvbiByZWxhdGlvbiA9IHNlbGVjdG9yLT5y
ZWxhdGlvbigpOwogICAgICAgICBpZiAocmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVj
dG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvQ2xhc3NB
bmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3Rv
clBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuaW4KaW5kZXggMWY2MjhhMWI5
NTMyZDJhNWVlMzZhZDNkYjNiZGM2OGNhODRlMzhlMC4uNzc5Y2M4OGM2OTAyZDliMmIzOWJiNzVk
NWZiYzBiZWY0Nzk5NjNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9y
UHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmlu
CkBAIC01LDggKzUsOCBAQAogLXdlYmtpdC1kcmFnCiAtd2Via2l0LWZ1bGwtcGFnZS1tZWRpYQog
YWN0aXZlCi1hZnRlciwgUHNldWRvVW5rbm93biwgUHNldWRvQWZ0ZXIKLWJlZm9yZSwgUHNldWRv
VW5rbm93biwgUHNldWRvQmVmb3JlCithZnRlciwgUHNldWRvVW5rbm93biwgUHNldWRvRWxlbWVu
dEFmdGVyCitiZWZvcmUsIFBzZXVkb1Vua25vd24sIFBzZXVkb0VsZW1lbnRCZWZvcmUKIGNoZWNr
ZWQKIGNvcm5lci1wcmVzZW50CiBkZWNyZW1lbnQKQEAgLTE3LDggKzE3LDggQEAgZW1wdHkKIGVu
YWJsZWQKIGVuZAogZmlyc3QtY2hpbGQKLWZpcnN0LWxldHRlciwgUHNldWRvVW5rbm93biwgUHNl
dWRvRmlyc3RMZXR0ZXIKLWZpcnN0LWxpbmUsIFBzZXVkb1Vua25vd24sIFBzZXVkb0ZpcnN0TGlu
ZQorZmlyc3QtbGV0dGVyLCBQc2V1ZG9Vbmtub3duLCBQc2V1ZG9FbGVtZW50Rmlyc3RMZXR0ZXIK
K2ZpcnN0LWxpbmUsIFBzZXVkb1Vua25vd24sIFBzZXVkb0VsZW1lbnRGaXJzdExpbmUKIGZpcnN0
LW9mLXR5cGUKIGZvY3VzCiBob3Jpem9udGFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JQc2V1ZG9FbGVtZW50VHlwZU1hcC5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
ZWxlY3RvclBzZXVkb0VsZW1lbnRUeXBlTWFwLmluCmluZGV4IGVjNmRmZTU0ODU3YzQ3OTg4YjE0
MzUwYWJkMmVjZjdlODQyMjgzZTAuLjIyMGRiODVhMzJhODFlNDdkNWEyMGFjZTA3YTNkYzQ3MjYz
Mjg0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb0VsZW1l
bnRUeXBlTWFwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb0VsZW1l
bnRUeXBlTWFwLmluCkBAIC0xLDcgKzEsNyBAQAogYWZ0ZXIKIGJlZm9yZQogI2lmIEVOQUJMRShW
SURFT19UUkFDSykKLWN1ZSwgUHNldWRvV2ViS2l0Q3VzdG9tRWxlbWVudAorY3VlLCBQc2V1ZG9F
bGVtZW50V2ViS2l0Q3VzdG9tCiAjZW5kaWYKIGZpcnN0LWxldHRlcgogZmlyc3QtbGluZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5oCmluZGV4IDhlNzE1ZjU1ZjI2
M2VkNGU4M2ZmZDI5YWNiMGZmNmJkYjE0M2NiYWIuLjgyM2U2NjA1MTllMDkxYTQyYmIwNjgyMGUw
MGU3ZmE5ZmRjYWU4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBz
ZXVkb1R5cGVNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9UeXBl
TWFwLmgKQEAgLTMzLDExICszMywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBQ
c2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnQgewogICAgIENTU1NlbGVjdG9y
OjpQc2V1ZG9UeXBlIHBzZXVkb0NsYXNzOwotICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIGNv
bXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50OworICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50
VHlwZSBjb21wYXRpYmlsaXR5UHNldWRvRWxlbWVudDsKIH07CiAKIFBzZXVkb0NsYXNzT3JDb21w
YXRpYmlsaXR5UHNldWRvRWxlbWVudCBwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVs
ZW1lbnRTdHJpbmcoY29uc3QgQ1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9UeXBlU3RyaW5nKTsKLUNT
U1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHBhcnNlUHNldWRvRWxlbWVudFN0cmluZyhjb25zdCBTdHJp
bmdJbXBsJiBwc2V1ZG9UeXBlU3RyaW5nKTsKK0NTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50VHlw
ZSBwYXJzZVBzZXVkb0VsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nSW1wbCYgcHNldWRvVHlwZVN0
cmluZyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRN
YXAucHkgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21w
YXRpYmlsaXR5RWxlbWVudE1hcC5weQppbmRleCA1YzJjNDNkNDdiZDRhYjY4OTAxYTgxZDEzNTFk
NWRlMjUwNTgzYmQ4Li5lY2VmOGFlY2M2MjE2MzJmMWUzZTIyNjdiNzE5OGZhOTJlN2U1NzRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRD
b21wYXRpYmlsaXR5RWxlbWVudE1hcC5weQorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNl
bGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5weQpAQCAtMTA3LDcg
KzEwNyw3IEBAIHN0cnVjdCBTZWxlY3RvclBzZXVkb0NsYXNzT3JDb21wYXRpYmlsaXR5UHNldWRv
RWxlbWVudEVudHJ5IHsKIAogJX0KICVzdHJ1Y3QtdHlwZQotJWRlZmluZSBpbml0aWFsaXplci1z
dWZmaXggLHtDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bixDU1NTZWxlY3Rvcjo6UHNldWRvVW5r
bm93bn0KKyVkZWZpbmUgaW5pdGlhbGl6ZXItc3VmZml4ICx7Q1NTU2VsZWN0b3I6OlBzZXVkb1Vu
a25vd24sQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRVbmtub3dufQogJWRlZmluZSBjbGFzcy1u
YW1lIFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcEhhc2gKICVv
bWl0LXN0cnVjdC10eXBlCiAlbGFuZ3VhZ2U9QysrCkBAIC0xNDksNyArMTQ5LDcgQEAgZm9yIGxp
bmUgaW4gaW5wdXRfZmlsZToKICAgICBrZXl3b3JkX2RlZmluaXRpb24gPSBsaW5lLnNwbGl0KCcs
JykKICAgICBpZiBsZW4oa2V5d29yZF9kZWZpbml0aW9uKSA9PSAxOgogICAgICAgICBrZXl3b3Jk
ID0ga2V5d29yZF9kZWZpbml0aW9uWzBdLnN0cmlwKCkKLSAgICAgICAgb3V0cHV0X2ZpbGUud3Jp
dGUoJyIlcyIsIHslcywgQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd259XG4nICUgKGtleXdvcmQs
IGVudW1lcmFibGVQc2V1ZG9UeXBlKGtleXdvcmQpKSkKKyAgICAgICAgb3V0cHV0X2ZpbGUud3Jp
dGUoJyIlcyIsIHslcywgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRVbmtub3dufVxuJyAlIChr
ZXl3b3JkLCBlbnVtZXJhYmxlUHNldWRvVHlwZShrZXl3b3JkKSkpCiAgICAgZWxzZToKICAgICAg
ICAgb3V0cHV0X2ZpbGUud3JpdGUoJyIlcyIsIHtDU1NTZWxlY3Rvcjo6JXMsIENTU1NlbGVjdG9y
Ojolc31cbicgJSAoa2V5d29yZF9kZWZpbml0aW9uWzBdLnN0cmlwKCksIGtleXdvcmRfZGVmaW5p
dGlvblsxXS5zdHJpcCgpLCBrZXl3b3JkX2RlZmluaXRpb25bMl0uc3RyaXAoKSkpCiAKQEAgLTE5
Myw3ICsxOTMsNyBAQCBQc2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnQgcGFy
c2VQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50UwogCiAgICAgaWYgKGVudHJ5KQog
ICAgICAgICByZXR1cm4gZW50cnktPnBzZXVkb1R5cGVzOwotICAgIHJldHVybiB7IENTU1NlbGVj
dG9yOjpQc2V1ZG9Vbmtub3duLCBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93biB9OworICAgIHJl
dHVybiB7IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duLCBDU1NTZWxlY3Rvcjo6UHNldWRvRWxl
bWVudFVua25vd24gfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0VsZW1lbnRzTWFwLnB5IGIvU291
cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0VsZW1lbnRzTWFwLnB5CmluZGV4IDBj
NDZlMzczODk4YjhjMDMxN2FhOThjNTI5ZjAyYTM2NmNlZjUwMDQuLmZmODE0YjBmYmZmNDFiNTVl
NTdiYjZmZmM4MGY0ZDJiNDBkZTJjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9t
YWtlU2VsZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weQorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWFrZVNlbGVjdG9yUHNldWRvRWxlbWVudHNNYXAucHkKQEAgLTI4LDcgKzI4LDcgQEAgaW1wb3J0
IHN5cwogCiAKIGRlZiBlbnVtZXJhYmxlUHNldWRvVHlwZShzdHJpbmdQc2V1ZG9UeXBlKToKLSAg
ICBvdXRwdXQgPSBbJ0NTU1NlbGVjdG9yOjpQc2V1ZG8nXQorICAgIG91dHB1dCA9IFsnQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0VsZW1lbnQnXQogCiAgICAgaWYgc3RyaW5nUHNldWRvVHlwZS5lbmRzd2l0
aCgnKCcpOgogICAgICAgICBzdHJpbmdQc2V1ZG9UeXBlID0gc3RyaW5nUHNldWRvVHlwZVs6LTFd
CkBAIC0xMDIsMTIgKzEwMiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBTZWxl
Y3RvclBzZXVkb1R5cGVFbnRyeSB7CiAgICAgY29uc3QgY2hhciogbmFtZTsKLSAgICBDU1NTZWxl
Y3Rvcjo6UHNldWRvVHlwZSB0eXBlOworICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50VHlw
ZSB0eXBlOwogfTsKIAogJX0KICVzdHJ1Y3QtdHlwZQotJWRlZmluZSBpbml0aWFsaXplci1zdWZm
aXggLENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duCislZGVmaW5lIGluaXRpYWxpemVyLXN1ZmZp
eCAsQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRVbmtub3duCiAlZGVmaW5lIGNsYXNzLW5hbWUg
U2VsZWN0b3JQc2V1ZG9FbGVtZW50VHlwZU1hcEhhc2gKICVvbWl0LXN0cnVjdC10eXBlCiAlbGFu
Z3VhZ2U9QysrCkBAIC0xNTgsMjYgKzE1OCwyNiBAQCBmb3IgbGluZSBpbiBpbnB1dF9maWxlOgog
CiBvdXRwdXRfZmlsZS53cml0ZSgiIiIlJQogCi1zdGF0aWMgaW5saW5lIENTU1NlbGVjdG9yOjpQ
c2V1ZG9UeXBlIHBhcnNlUHNldWRvRWxlbWVudFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVy
cywgdW5zaWduZWQgbGVuZ3RoKQorc3RhdGljIGlubGluZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxl
bWVudFR5cGUgcGFyc2VQc2V1ZG9FbGVtZW50U3RyaW5nKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJz
LCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgaWYgKGNvbnN0IFNlbGVjdG9yUHNldWRvVHlwZUVu
dHJ5KiBlbnRyeSA9IFNlbGVjdG9yUHNldWRvRWxlbWVudFR5cGVNYXBIYXNoOjppbl93b3JkX3Nl
dChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihjaGFyYWN0ZXJzKSwgbGVuZ3RoKSkKICAg
ICAgICAgcmV0dXJuIGVudHJ5LT50eXBlOwotICAgIHJldHVybiBDU1NTZWxlY3Rvcjo6UHNldWRv
VW5rbm93bjsKKyAgICByZXR1cm4gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRVbmtub3duOwog
fSIiIikKIAogb3V0cHV0X2ZpbGUud3JpdGUoIiIiCiAKLXN0YXRpYyBpbmxpbmUgQ1NTU2VsZWN0
b3I6OlBzZXVkb1R5cGUgcGFyc2VQc2V1ZG9FbGVtZW50U3RyaW5nKGNvbnN0IFVDaGFyKiBjaGFy
YWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCitzdGF0aWMgaW5saW5lIENTU1NlbGVjdG9yOjpQc2V1
ZG9FbGVtZW50VHlwZSBwYXJzZVBzZXVkb0VsZW1lbnRTdHJpbmcoY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBjb25zdCB1bnNpZ25lZCBtYXhLZXl3b3Jk
TGVuZ3RoID0gJXM7CiAgICAgTENoYXIgYnVmZmVyW21heEtleXdvcmRMZW5ndGhdOwogICAgIGlm
IChsZW5ndGggPiBtYXhLZXl3b3JkTGVuZ3RoKQotICAgICAgICByZXR1cm4gQ1NTU2VsZWN0b3I6
OlBzZXVkb1Vua25vd247CisgICAgICAgIHJldHVybiBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVu
dFVua25vd247CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsK
ICAgICAgICAgVUNoYXIgY2hhcmFjdGVyID0gY2hhcmFjdGVyc1tpXTsKICAgICAgICAgaWYgKGNo
YXJhY3RlciAmIH4weGZmKQotICAgICAgICAgICAgcmV0dXJuIENTU1NlbGVjdG9yOjpQc2V1ZG9V
bmtub3duOworICAgICAgICAgICAgcmV0dXJuIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50VW5r
bm93bjsKIAogICAgICAgICBidWZmZXJbaV0gPSBzdGF0aWNfY2FzdDxMQ2hhcj4oY2hhcmFjdGVy
KTsKICAgICB9CkBAIC0xODYsNyArMTg2LDcgQEAgc3RhdGljIGlubGluZSBDU1NTZWxlY3Rvcjo6
UHNldWRvVHlwZSBwYXJzZVBzZXVkb0VsZW1lbnRTdHJpbmcoY29uc3QgVUNoYXIqIGNoYXIKICIi
IiAlIGxvbmdlc3Rfa2V5d29yZCkKIAogb3V0cHV0X2ZpbGUud3JpdGUoIiIiCi1DU1NTZWxlY3Rv
cjo6UHNldWRvVHlwZSBwYXJzZVBzZXVkb0VsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nSW1wbCYg
cHNldWRvVHlwZVN0cmluZykKK0NTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50VHlwZSBwYXJzZVBz
ZXVkb0VsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nSW1wbCYgcHNldWRvVHlwZVN0cmluZykKIHsK
ICAgICBpZiAocHNldWRvVHlwZVN0cmluZy5pczhCaXQoKSkKICAgICAgICAgcmV0dXJuIHBhcnNl
UHNldWRvRWxlbWVudFN0cmluZyhwc2V1ZG9UeXBlU3RyaW5nLmNoYXJhY3RlcnM4KCksIHBzZXVk
b1R5cGVTdHJpbmcubGVuZ3RoKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDZl
MzAxZDI3ODA0YWRkMDBkNTcyMzJiNzIxNzQxNzNmMWQ5ODJiNGUuLmNiYzM1NTQzODQ2ZmIxODRh
YjQxMzg5ZTRlY2NjYWM4MjliNzE1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAg
LTEzNjksOCArMTM2OSw4IEBAIFBhc3NSZWZQdHI8Q1NTUnVsZUxpc3Q+IERPTVdpbmRvdzo6Z2V0
TWF0Y2hlZENTU1J1bGVzKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFN0CiAgICAgICAgIHJldHVy
biAwOwogCiAgICAgdW5zaWduZWQgY29sb25TdGFydCA9IHBzZXVkb0VsZW1lbnRbMF0gPT0gJzon
ID8gKHBzZXVkb0VsZW1lbnRbMV0gPT0gJzonID8gMiA6IDEpIDogMDsKLSAgICBDU1NTZWxlY3Rv
cjo6UHNldWRvVHlwZSBwc2V1ZG9UeXBlID0gQ1NTU2VsZWN0b3I6OnBhcnNlUHNldWRvRWxlbWVu
dFR5cGUocHNldWRvRWxlbWVudC5zdWJzdHJpbmdTaGFyaW5nSW1wbChjb2xvblN0YXJ0KSk7Ci0g
ICAgaWYgKHBzZXVkb1R5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24gJiYgIXBzZXVk
b0VsZW1lbnQuaXNFbXB0eSgpKQorICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50VHlwZSBw
c2V1ZG9UeXBlID0gQ1NTU2VsZWN0b3I6OnBhcnNlUHNldWRvRWxlbWVudFR5cGUocHNldWRvRWxl
bWVudC5zdWJzdHJpbmdTaGFyaW5nSW1wbChjb2xvblN0YXJ0KSk7CisgICAgaWYgKHBzZXVkb1R5
cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRVbmtub3duICYmICFwc2V1ZG9FbGVtZW50
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICB1bnNpZ25lZCBydWxlc1RvSW5j
bHVkZSA9IFN0eWxlUmVzb2x2ZXI6OkF1dGhvckNTU1J1bGVzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCBhOGIy
MzE5YTg4YzY5ZTI5NmE0YzYwOTQ3ZmZhNjhjZGE0ZWZlZWUyLi5mMDE1ZDc0MjZlYmQyNmNmNzdj
YTljNTJkM2E5MzA3NzA5NmYwNzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtNzQsNyArNzQsNiBAQCBlbnVt
IFBzZXVkb0lkIHsKICAgICAvLyBJbnRlcm5hbCBJRHMgZm9sbG93OgogICAgIFNDUk9MTEJBUl9U
SFVNQiwgU0NST0xMQkFSX0JVVFRPTiwgU0NST0xMQkFSX1RSQUNLLCBTQ1JPTExCQVJfVFJBQ0tf
UElFQ0UsIFNDUk9MTEJBUl9DT1JORVIsIFJFU0laRVIsCiAgICAgQUZURVJfTEFTVF9JTlRFUk5B
TF9QU0VVRE9JRCwKLSAgICBGVUxMX1NDUkVFTiwgRlVMTF9TQ1JFRU5fRE9DVU1FTlQsIEZVTExf
U0NSRUVOX0FOQ0VTVE9SLCBBTklNQVRJTkdfRlVMTF9TQ1JFRU5fVFJBTlNJVElPTiwKICAgICBG
SVJTVF9QVUJMSUNfUFNFVURPSUQgPSBGSVJTVF9MSU5FLAogICAgIEZJUlNUX0lOVEVSTkFMX1BT
RVVET0lEID0gU0NST0xMQkFSX1RIVU1CLAogICAgIFBVQkxJQ19QU0VVRE9JRF9NQVNLID0gKCgx
IDw8IEZJUlNUX0lOVEVSTkFMX1BTRVVET0lEKSAtIDEpICYgfigoMSA8PCBGSVJTVF9QVUJMSUNf
UFNFVURPSUQpIC0gMSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>