<?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>93016</bug_id>
          
          <creation_ts>2012-08-02 12:08:07 -0700</creation_ts>
          <short_desc>The generic bindings shouldn&apos;t use templates</short_desc>
          <delta_ts>2012-08-02 13:49:52 -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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>75793</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>arv</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>685651</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-02 12:08:07 -0700</bug_when>
    <thetext>The generic bindings shouldn&apos;t use templates</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685655</commentid>
    <comment_count>1</comment_count>
      <attachid>156136</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-02 12:12:01 -0700</bug_when>
    <thetext>Created attachment 156136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685663</commentid>
    <comment_count>2</comment_count>
      <attachid>156136</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-02 12:21:45 -0700</bug_when>
    <thetext>Comment on attachment 156136
Patch

LGTM, but where is JSC/BindingState?  Does JSC not use this yet?  Your ChangeLog is not clear on this part of the history.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685702</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-02 13:03:06 -0700</bug_when>
    <thetext>&gt; LGTM, but where is JSC/BindingState?  Does JSC not use this yet?  Your ChangeLog is not clear on this part of the history.

JSC doesn&apos;t use this yet.  I&apos;m hoping to change that as part of this process, starting by making the code more attractive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685770</commentid>
    <comment_count>4</comment_count>
      <attachid>156136</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-02 13:49:27 -0700</bug_when>
    <thetext>Comment on attachment 156136
Patch

Clearing flags on attachment: 156136

Committed r124492: &lt;http://trac.webkit.org/changeset/124492&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685771</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-02 13:49:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156136</attachid>
            <date>2012-08-02 12:12:01 -0700</date>
            <delta_ts>2012-08-02 13:49:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93016-20120802121142.patch</filename>
            <type>text/plain</type>
            <size>77544</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk4NWZhYmRhMGY0MWFl
NGEzN2QwNjcyNWY2YzhjYjMxMGEwY2YyYi4uOGVjYmE1MDUyOGE3ODA5YmE3ZWQxNDY1MmU5YWZi
ZmU0NzVmY2ZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNSBAQAorMjAxMi0wOC0wMiAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFRoZSBnZW5lcmljIGJpbmRp
bmdzIHNob3VsZG4ndCB1c2UgdGVtcGxhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MzAxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlIG9yaWdpbmFsbHkgY3JlYXRlZCB0aGUgZ2VuZXJpYyBiaW5k
aW5ncyB0byBzaGFyZSBjb2RlIGJldHdlZW4gdGhlCisgICAgICAgIEphdmFTY3JpcHRDb3JlIGFu
ZCBWOCBiaW5kaW5ncy4gSG93ZXZlciwgdGhlIGNvZGUgY2FtZSBvdXQgc29ydCBvZiB1Z2x5Cisg
ICAgICAgIGJlY2F1c2Ugd2UgdXNlZCB0ZW1wbGF0ZXMgKHdpdGggdGhlIGlkZWEgdGhhdCB0ZW1w
bGF0ZXMgd291bGQgbGV0IHVzCisgICAgICAgIHVzZSBtb3JlIHRoYW4gb25lIHNjcmlwdGluZyBl
bmdpbmUpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmlwcyBvdXQgdGhlIHRlbXBsYXRlcyBpbiBh
biBhdHRlbXB0IHRvIG1ha2UgdGhlIGNvZGUKKyAgICAgICAgcHJldHRpZXIgYW5kIHRoZXJlZm9y
ZSBlYXNpZXIgdG8gdXNlIGluIGJvdGggVjggYW5kIEpTQy4gSSd2ZSB0cmllZCB0bworICAgICAg
ICBrZWVwIHRoaXMgcGF0Y2ggc21hbGwgYnkgcmVtYW5pbmcgdGhpbmdzIG1vc3RseSBpbiBwbGFj
ZS4gSW4gdGhlIG5leHQKKyAgICAgICAgcGF0Y2gsIEknbGwgbW92ZSBhIGJ1bmNoIG9mIGNvZGUg
b3V0IG9mIGhlYWRlcnMgYW5kIGludG8gY3BwIGZpbGVzLgorCisgICAgICAgIE5vIGJlaGF2aW9y
IGNoYW5nZS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFVzZVY4LmNt
YWtlOgorICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5l
cmljL0JpbmRpbmdTZWN1cml0eS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChCaW5k
aW5nU2VjdXJpdHkpOgorICAgICAgICAoV2ViQ29yZTo6QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nl
c3NXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NG
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNj
ZXNzVG9Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpbmRpbmdTZWN1cml0eTo6YWxsb3dQb3BV
cCk6CisgICAgICAgIChXZWJDb3JlOjpCaW5kaW5nU2VjdXJpdHk6OmFsbG93U2V0dGluZ0ZyYW1l
U3JjVG9KYXZhc2NyaXB0VXJsKToKKyAgICAgICAgKFdlYkNvcmU6OkJpbmRpbmdTZWN1cml0eTo6
YWxsb3dTZXR0aW5nU3JjVG9KYXZhc2NyaXB0VVJMKToKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5l
cmljL0dlbmVyaWNCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpjb21wbGV0ZVVSTCk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChH
ZW5lcmF0ZURvbWFpblNhZmVGdW5jdGlvbkdldHRlcik6CisgICAgICAgIChHZW5lcmF0ZU5vcm1h
bEF0dHJHZXR0ZXIpOgorICAgICAgICAoR2VuZXJhdGVSZXBsYWNlYWJsZUF0dHJTZXR0ZXIpOgor
ICAgICAgICAoR2VuZXJhdGVGdW5jdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKEdlbmVyYXRlSW1w
bGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0
NjRBcnJheS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFj
dGl2ZURPTU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0QWN0aXZlRE9NT2JqZWN0
VjhJbnRlcm5hbDo6ZXhjaXRpbmdGdW5jdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlRlc3RBY3RpdmVET01PYmplY3RWOEludGVybmFsOjpwb3N0TWVzc2FnZUF0dHJHZXR0ZXIpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRl
ci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29u
c3RydWN0b3IuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RF
dmVudFRhcmdldC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEV4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRl
cm5hbDo6Y29udGVudERvY3VtZW50QXR0ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0
T2JqVjhJbnRlcm5hbDo6Z2V0U1ZHRG9jdW1lbnRDYWxsYmFjayk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5j
cHA6CisgICAgICAgICogYmluZGluZ3MvdjgvQmluZGluZ1N0YXRlLmNwcDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRl
LmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6QmluZGluZ1N0YXRl
OjppbnN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjphY3RpdmVXaW5kb3cpOgorICAgICAgICAo
V2ViQ29yZTo6Zmlyc3RXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6YWN0aXZlRnJhbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6Zmlyc3RGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjppbW1lZGlh
dGVseVJlcG9ydFVuc2FmZUFjY2Vzc1RvKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9CaW5kaW5n
U3RhdGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxp
emF0aW9uL1Y4QmluZGluZ1N0YXRlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEJp
bmRpbmdTdGF0ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpjYW5BY2Nlc3NGcm9tQ3VycmVu
dE9yaWdpbik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9W
OFV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWxsaW5nT3JFbnRlcmVkRnJhbWUp
OgorICAgICAgICAoV2ViQ29yZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dT
ZXRUaW1lb3V0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvdzo6ZXZlbnRBY2Nl
c3NvckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvdzo6ZXZlbnRBY2Nlc3Nv
clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvdzo6bG9jYXRpb25BY2Nlc3Nv
clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvdzo6b3BlbmVyQWNjZXNzb3JT
ZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXJD
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0
ZW5lckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93OjpzaG93TW9kYWxE
aWFsb2dDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvdzo6b3BlbkNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93OjpuYW1lZFNlY3VyaXR5Q2hlY2sp
OgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3c6OmluZGV4ZWRTZWN1cml0eUNoZWNrKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhEb2N1bWVudExvY2F0aW9uQ3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RG9jdW1lbnQ6OmxvY2F0aW9uQWNjZXNzb3JTZXR0ZXIp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEVudHJ5Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhFbnRyeVN5bmNDdXN0b20uY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxGcmFtZUVsZW1lbnRDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VjhIVE1MRnJhbWVFbGVtZW50Ojpsb2NhdGlvbkFjY2Vzc29yU2V0dGVyKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIaXN0b3J5Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4SGlzdG9yeTo6aW5kZXhlZFNlY3VyaXR5Q2hlY2spOgorICAgICAgICAo
V2ViQ29yZTo6VjhIaXN0b3J5OjpuYW1lZFNlY3VyaXR5Q2hlY2spOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHA6CisgICAgICAgICog
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkluamVjdGVkU2NyaXB0TWFuYWdlcjo6Y2FuQWNjZXNzSW5zcGVjdGVkV2luZG93
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpWOExvY2F0aW9uOjpoYXNoQWNjZXNzb3JTZXR0ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6VjhMb2NhdGlvbjo6aG9zdEFjY2Vzc29yU2V0dGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4TG9jYXRpb246Omhvc3RuYW1lQWNjZXNzb3JTZXR0ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6VjhMb2NhdGlvbjo6aHJlZkFjY2Vzc29yU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4TG9jYXRpb246OnBhdGhuYW1lQWNjZXNzb3JTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
VjhMb2NhdGlvbjo6cG9ydEFjY2Vzc29yU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TG9j
YXRpb246OnByb3RvY29sQWNjZXNzb3JTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhMb2Nh
dGlvbjo6c2VhcmNoQWNjZXNzb3JTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhMb2NhdGlv
bjo6cmVsb2FkQWNjZXNzb3JHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VjhMb2NhdGlvbjo6
cmVwbGFjZUFjY2Vzc29yR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TG9jYXRpb246OmFz
c2lnbkFjY2Vzc29yR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TG9jYXRpb246OnJlbG9h
ZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpWOExvY2F0aW9uOjphc3NpZ25DYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpWOExvY2F0aW9uOjp0b1N0cmluZ0NhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4TG9jYXRpb246OmluZGV4ZWRTZWN1cml0eUNoZWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4TG9jYXRpb246Om5hbWVkU2VjdXJpdHlDaGVjayk6CisgICAgICAgICogYmluZGluZ3Mv
djgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhOb2RlQ3VzdG9tLmNwcDoKKwogMjAxMi0wOC0wMiAgQWxleGFuZGVyIFBhdmxv
diAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE1vdmUg
RE9NIGJyZWFrcG9pbnRzLXJlbGF0ZWQgY29udGV4dCBtZW51IGl0ZW1zIGludG8gYSBzdWJtZW51
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGQzYzY1MjI3OTgwMTY1NGJkMThmNzhkYmJm
N2JlMzY4ODg5Njk4YzguLmY4ZTI1N2I3Mjc4NTJiOGE0ZDQ4MWViMmQ3MjQ1Njc1NTYzZWFhYmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDgtMDIg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBUaGUgZ2VuZXJpYyBi
aW5kaW5ncyBzaG91bGRuJ3QgdXNlIHRlbXBsYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMwMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgI2luY2x1ZGUuCisKKyAgICAgICAgKiBzcmMv
V2ViQmluZGluZ3MuY3BwOgorCiAyMDEyLTA4LTAyICBQZXRlciBCZXZlcmxvbyAgPHBldGVyQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFRvZ2dsZSB0aGUgdHlwZSBvZiBhbnQg
Y29tcGlsZSBmb3Igd2Via2l0X3VuaXRfdGVzdHMgYW5kIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KaW5kZXggZTA5YTg5M2EwZDQ5OWFiNjliM2VhM2ZiYzdmNjMwMzY1MTk3YjZiZi4u
YzU5MmQwNjYxYmQ2ZGZlM2ZjNWM5NTRkYzhmNmVjMzEzNDdhYjAwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KQEAgLTI2LDcgKzI2LDYgQEAgd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNyY2Rp
cikvU291cmNlL1dlYkNvcmUvYmluZGluZ3MgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2dlbmVyaWMgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzIFwKLQktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9zcGVjaWFsaXph
dGlvbiBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvYnJpZGdlIFwKIAktSSQoc3JjZGly
KS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUv
YnJpZGdlL2puaS9qc2MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQppbmRleCA4NjkwYWIyMzg4NDllMjllOWI2OWY1
NGM3YjU5NjFiZTZkZDM3ZTk4Li4yMDM4ZTU0ZjcyMDVjMGNkNjNiOWMzNTMyZDU1OTRiYjY0Yjkx
MjQxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Vc2VWOC5jbWFrZQpAQCAtNCw3ICs0LDYgQEAgQUREX0RFRklOSVRJT05TKC1EV1RG
X0NIQU5HRVM9MSkKIExJU1QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAg
ICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncy92OCIKICAgICAiJHtXRUJDT1JFX0RJUn0vYmluZGlu
Z3MvdjgvY3VzdG9tIgotICAgICIke1dFQkNPUkVfRElSfS9iaW5kaW5ncy92OC9zcGVjaWFsaXph
dGlvbiIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3J1bnRpbWUiCiApCiAKQEAgLTE3LDYg
KzE2LDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9JRExfSU5DTFVERVMKICkKIAogTElTVChBUFBF
TkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgYmluZGluZ3MvdjgvQmluZGluZ1N0YXRlLmNwcAogICAg
IGJpbmRpbmdzL3Y4L0RPTURhdGEuY3BwCiAgICAgYmluZGluZ3MvdjgvRE9NRGF0YVN0b3JlLmNw
cAogICAgIGJpbmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5jcHAKQEAgLTE2MCw4ICsxNjAsNiBA
QCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhY
TUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhN
TEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhTTFRQcm9j
ZXNzb3JDdXN0b20uY3BwCi0KLSAgICBiaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRp
bmdTdGF0ZS5jcHAKICkKIAogTElTVChBUFBFTkQgV2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJDRVMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKaW5kZXggMzRhZDkyMjY0NWM2N2Yz
ZTI0YWE4NGUyMmJlMDFmYjJkNjY3MGEwOC4uOTdlYWFmNDY0YjA5Zjk2MDdlMThjZDY0YTkzNGFk
YzQxYzEyMWFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29y
ZS5neXAKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAgLTc2
LDcgKzc2LDYgQEAKICAgICAgICcuLi9iaW5kaW5ncy9nZW5lcmljJywKICAgICAgICcuLi9iaW5k
aW5ncy92OCcsCiAgICAgICAnLi4vYmluZGluZ3MvdjgvY3VzdG9tJywKLSAgICAgICcuLi9iaW5k
aW5ncy92OC9zcGVjaWFsaXphdGlvbicsCiAgICAgICAnLi4vYnJpZGdlJywKICAgICAgICcuLi9i
cmlkZ2Uvam5pJywKICAgICAgICcuLi9icmlkZ2Uvam5pL3Y4JywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCA5MDA1MTZlYzViYzMwODFmYTZmNjk2YTI2N2YyODdlZTc5MWMyYTU4Li45NGE3YjM5ZDIzNmVj
NzEyMDA3MTkyMmRmOGZiNDM1YmEzOGM4NmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMTYyLDYg
KzIxNjIsOCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1t
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9BcnJheVZhbHVlLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvQXJyYXlWYWx1ZS5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9C
aW5kaW5nU3RhdGUuY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9CaW5kaW5nU3RhdGUu
aCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NRGF0YS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L0RPTURhdGEuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NRGF0
YVN0b3JlLmNwcCcsCkBAIC0yNDA0LDggKzI0MDYsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFhTTFRQcm9jZXNzb3JDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9ucHJ1bnRpbWUuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9ucHJ1bnRp
bWVfcHJpdi5oJywKLSAgICAgICAgICAgICdiaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJp
bmRpbmdTdGF0ZS5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9u
L1Y4QmluZGluZ1N0YXRlLmgnLAogICAgICAgICAgICAgJ2JyaWRnZS9JZGVudGlmaWVyUmVwLmNw
cCcsCiAgICAgICAgICAgICAnYnJpZGdlL05QX2pzb2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAn
YnJpZGdlL05QX2pzb2JqZWN0LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCBjMGE2MzM1ZWMwOWUxZmMz
OGZkYTUwNTUyM2Q2NGU2ZThjYjEzMjk4Li4yYTU5ZGMwMzE3OTAzZWI3NWM1M2E4ZjExZjRlMjU1
OTE1Mzg3YTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtOTgsNyArOTgsNiBAQCBJTkNMVURFUEFUSCAr
PSBcCiBJTkNMVURFUEFUSCArPSBcCiAgICAgJCRTT1VSQ0VfRElSL2JyaWRnZS9qc2MgXAogICAg
ICQkU09VUkNFX0RJUi9iaW5kaW5ncy9qcyBcCi0gICAgJCRTT1VSQ0VfRElSL2JpbmRpbmdzL2pz
L3NwZWNpYWxpemF0aW9uIFwKICAgICAkJFNPVVJDRV9ESVIvYnJpZGdlL2MgXAogICAgICQkU09V
UkNFX0RJUi90ZXN0aW5nL2pzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5l
cmljL0JpbmRpbmdTZWN1cml0eS5oCmluZGV4IDdlNWZmN2RlNWMyNzYyMGFkNTJkMjk3ODZlMmQ5
ZTdiN2E2ZjAyZTcuLmY3ZThhN2E3NjkyY2NmMjI1NTdiMjg1NTJjOWI1ZTUxMWI1NDljYTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHku
aApAQCAtNDgsNDUgKzQ4LDI1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERPTVdpbmRv
dzsKIGNsYXNzIE5vZGU7CiAKLS8vIFNlY3VyaXR5IGZ1bmN0aW9ucyBzaGFyZWQgYnkgdmFyaW91
cyBsYW5ndWFnZSBiaW5kaW5ncy4KLXRlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgogY2xhc3MgQmlu
ZGluZ1NlY3VyaXR5IDogcHVibGljIEJpbmRpbmdTZWN1cml0eUJhc2UgewogcHVibGljOgotICAg
IC8vIENoZWNrIGlmIHRoZSBhY3RpdmUgZXhlY3V0aW9uIGNvbnRleHQgY2FuIGFjY2VzcyB0aGUg
dGFyZ2V0IGZyYW1lLgotICAgIHN0YXRpYyBib29sIGNhbkFjY2Vzc0ZyYW1lKFN0YXRlPEJpbmRp
bmc+KiwgRnJhbWUqLCBib29sIHJlcG9ydEVycm9yKTsKLQotICAgIC8vIENoZWNrIGlmIGl0IGlz
IHNhZmUgdG8gYWNjZXNzIHRoZSBnaXZlbiBub2RlIGZyb20gdGhlCi0gICAgLy8gY3VycmVudCBz
ZWN1cml0eSBjb250ZXh0LgotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93QWNjZXNzVG9Ob2Rl
KFN0YXRlPEJpbmRpbmc+KiwgTm9kZSogdGFyZ2V0KTsKLQotICAgIHN0YXRpYyBib29sIGFsbG93
UG9wVXAoU3RhdGU8QmluZGluZz4qKTsKLSAgICBzdGF0aWMgYm9vbCBhbGxvd1NldHRpbmdGcmFt
ZVNyY1RvSmF2YXNjcmlwdFVybChTdGF0ZTxCaW5kaW5nPiosIEhUTUxGcmFtZUVsZW1lbnRCYXNl
KiwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7Ci0gICAgc3RhdGljIGJvb2wgYWxsb3dTZXR0aW5nU3Jj
VG9KYXZhc2NyaXB0VVJMKFN0YXRlPEJpbmRpbmc+KiwgRWxlbWVudCosIGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CisgICAgc3RhdGljIGJvb2wgY2FuQWNjZXNzRnJh
bWUoQmluZGluZ1N0YXRlKiwgRnJhbWUqLCBib29sIHJlcG9ydEVycm9yKTsKKyAgICBzdGF0aWMg
Ym9vbCBzaG91bGRBbGxvd0FjY2Vzc1RvTm9kZShCaW5kaW5nU3RhdGUqLCBOb2RlKiB0YXJnZXQp
OworICAgIHN0YXRpYyBib29sIGFsbG93UG9wVXAoQmluZGluZ1N0YXRlKik7CisgICAgc3RhdGlj
IGJvb2wgYWxsb3dTZXR0aW5nRnJhbWVTcmNUb0phdmFzY3JpcHRVcmwoQmluZGluZ1N0YXRlKiwg
SFRNTEZyYW1lRWxlbWVudEJhc2UqLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICBzdGF0aWMg
Ym9vbCBhbGxvd1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoQmluZGluZ1N0YXRlKiwgRWxlbWVu
dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAKIHByaXZhdGU6
Ci0gICAgZXhwbGljaXQgQmluZGluZ1NlY3VyaXR5KCkge30KLSAgICB+QmluZGluZ1NlY3VyaXR5
KCk7Ci0KLSAgICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCBET01XaW5kb3cncyBzZWN1cml0eSBj
b250ZXh0IGNhbiBhY2Nlc3MgdGhlIHRhcmdldAotICAgIC8vIERPTVdpbmRvdy4gIFRoaXMgZnVu
Y3Rpb24gZG9lcyBub3QgcmVwb3J0IGVycm9ycywgc28gbW9zdCBjYWxsZXJzIHNob3VsZAotICAg
IC8vIHVzZSBjYW5BY2Nlc3NGcmFtZSBpbnN0ZWFkLgotICAgIHN0YXRpYyBib29sIGNhbkFjY2Vz
c1dpbmRvdyhTdGF0ZTxCaW5kaW5nPiosIERPTVdpbmRvdyogdGFyZ2V0KTsKKyAgICBzdGF0aWMg
Ym9vbCBjYW5BY2Nlc3NXaW5kb3coQmluZGluZ1N0YXRlKiwgRE9NV2luZG93KiB0YXJnZXQpOwog
fTsKIAotLy8gSW1wbGVtZW50YXRpb25zIG9mIHRlbXBsYXRlZCBtZXRob2RzIG11c3QgYmUgaW4g
dGhpcyBmaWxlLgotCi10ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KLWJvb2wgQmluZGluZ1NlY3Vy
aXR5PEJpbmRpbmc+OjpjYW5BY2Nlc3NXaW5kb3coU3RhdGU8QmluZGluZz4qIHN0YXRlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBET01XaW5kb3cqIHRh
cmdldFdpbmRvdykKK2lubGluZSBib29sIEJpbmRpbmdTZWN1cml0eTo6Y2FuQWNjZXNzV2luZG93
KEJpbmRpbmdTdGF0ZSogc3RhdGUsIERPTVdpbmRvdyogdGFyZ2V0V2luZG93KQogewotICAgIERP
TVdpbmRvdyogYWN0aXZlV2luZG93ID0gc3RhdGUtPmFjdGl2ZVdpbmRvdygpOwotICAgIHJldHVy
biBjYW5BY2Nlc3MoYWN0aXZlV2luZG93LCB0YXJnZXRXaW5kb3cpOworICAgIERPTVdpbmRvdyog
YWN0aXZlID0gYWN0aXZlV2luZG93KHN0YXRlKTsKKyAgICByZXR1cm4gY2FuQWNjZXNzKGFjdGl2
ZSwgdGFyZ2V0V2luZG93KTsKIH0KIAotdGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+Ci1ib29sIEJp
bmRpbmdTZWN1cml0eTxCaW5kaW5nPjo6Y2FuQWNjZXNzRnJhbWUoU3RhdGU8QmluZGluZz4qIHN0
YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1l
KiB0YXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCByZXBvcnRFcnJvcikKK2lubGluZSBib29sIEJpbmRpbmdTZWN1cml0eTo6Y2FuQWNjZXNz
RnJhbWUoQmluZGluZ1N0YXRlKiBzdGF0ZSwgRnJhbWUqIHRhcmdldCwgYm9vbCByZXBvcnRFcnJv
cikKIHsKICAgICAvLyBUaGUgc3ViamVjdCBpcyBkZXRhY2hlZCBmcm9tIGEgZnJhbWUsIGRlbnkg
YWNjZXNzZXMuCiAgICAgaWYgKCF0YXJnZXQpCkBAIC05NCw0MCArNzQsMzYgQEAgYm9vbCBCaW5k
aW5nU2VjdXJpdHk8QmluZGluZz46OmNhbkFjY2Vzc0ZyYW1lKFN0YXRlPEJpbmRpbmc+KiBzdGF0
ZSwKIAogICAgIGlmICghY2FuQWNjZXNzV2luZG93KHN0YXRlLCBnZXRET01XaW5kb3codGFyZ2V0
KSkpIHsKICAgICAgICAgaWYgKHJlcG9ydEVycm9yKQotICAgICAgICAgICAgc3RhdGUtPmltbWVk
aWF0ZWx5UmVwb3J0VW5zYWZlQWNjZXNzVG8odGFyZ2V0KTsKKyAgICAgICAgICAgIGltbWVkaWF0
ZWx5UmVwb3J0VW5zYWZlQWNjZXNzVG8oc3RhdGUsIHRhcmdldCk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXRlbXBsYXRlIDxjbGFzcyBCaW5k
aW5nPgotYm9vbCBCaW5kaW5nU2VjdXJpdHk8QmluZGluZz46OnNob3VsZEFsbG93QWNjZXNzVG9O
b2RlKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgTm9kZSogbm9kZSkKK2lubGluZSBib29sIEJpbmRp
bmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb05vZGUoQmluZGluZ1N0YXRlKiBzdGF0ZSwg
Tm9kZSogbm9kZSkKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIEZyYW1lKiB0YXJnZXQgPSBnZXRGcmFtZShub2RlKTsKLQogICAgIGlmICghdGFyZ2V0KQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gY2FuQWNjZXNzRnJhbWUoc3RhdGUs
IHRhcmdldCwgdHJ1ZSk7CiB9CiAKLXRlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgotYm9vbCBCaW5k
aW5nU2VjdXJpdHk8QmluZGluZz46OmFsbG93UG9wVXAoU3RhdGU8QmluZGluZz4qIHN0YXRlKQor
aW5saW5lIGJvb2wgQmluZGluZ1NlY3VyaXR5OjphbGxvd1BvcFVwKEJpbmRpbmdTdGF0ZSogc3Rh
dGUpCiB7CiAgICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRlLT5maXJz
dEZyYW1lKCk7CisgICAgRnJhbWUqIGZyYW1lID0gZmlyc3RGcmFtZShzdGF0ZSk7CiAgICAgQVNT
RVJUKGZyYW1lKTsKICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBmcmFtZS0+c2V0dGluZ3MoKTsK
ICAgICByZXR1cm4gc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmphdmFTY3JpcHRDYW5PcGVuV2luZG93
c0F1dG9tYXRpY2FsbHkoKTsKIH0KIAotdGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+Ci1ib29sIEJp
bmRpbmdTZWN1cml0eTxCaW5kaW5nPjo6YWxsb3dTZXR0aW5nRnJhbWVTcmNUb0phdmFzY3JpcHRV
cmwoU3RhdGU8QmluZGluZz4qIHN0YXRlLCBIVE1MRnJhbWVFbGVtZW50QmFzZSogZnJhbWUsIGNv
bnN0IFN0cmluZyYgdmFsdWUpCitpbmxpbmUgYm9vbCBCaW5kaW5nU2VjdXJpdHk6OmFsbG93U2V0
dGluZ0ZyYW1lU3JjVG9KYXZhc2NyaXB0VXJsKEJpbmRpbmdTdGF0ZSogc3RhdGUsIEhUTUxGcmFt
ZUVsZW1lbnRCYXNlKiBmcmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAocHJv
dG9jb2xJc0phdmFTY3JpcHQoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHZhbHVl
KSkpIHsKICAgICAgICAgTm9kZSogY29udGVudERvYyA9IGZyYW1lLT5jb250ZW50RG9jdW1lbnQo
KTsKQEAgLTEzNyw4ICsxMTMsNyBAQCBib29sIEJpbmRpbmdTZWN1cml0eTxCaW5kaW5nPjo6YWxs
b3dTZXR0aW5nRnJhbWVTcmNUb0phdmFzY3JpcHRVcmwoU3RhdGU8QmluZGluZwogICAgIHJldHVy
biB0cnVlOwogfQogCi10ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KLWJvb2wgQmluZGluZ1NlY3Vy
aXR5PEJpbmRpbmc+OjphbGxvd1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoU3RhdGU8QmluZGlu
Zz4qIHN0YXRlLCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgdmFsdWUpCitpbmxpbmUgYm9vbCBCaW5kaW5nU2VjdXJpdHk6OmFsbG93U2V0dGluZ1Ny
Y1RvSmF2YXNjcmlwdFVSTChCaW5kaW5nU3RhdGUqIHN0YXRlLCBFbGVtZW50KiBlbGVtZW50LCBj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKChlbGVt
ZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aWZyYW1lVGFnKSB8fCBlbGVtZW50LT5oYXNUYWdO
YW1lKEhUTUxOYW1lczo6ZnJhbWVUYWcpKSAmJiBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAic3Jj
IikpCiAgICAgICAgIHJldHVybiBhbGxvd1NldHRpbmdGcmFtZVNyY1RvSmF2YXNjcmlwdFVybChz
dGF0ZSwgc3RhdGljX2Nhc3Q8SFRNTEZyYW1lRWxlbWVudEJhc2UqPihlbGVtZW50KSwgdmFsdWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmlu
ZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5o
CmluZGV4IDY5ZDMxZmEwYTJhMzlmNDdmZjBjZjlmODlmZTA1OWUwZGYwMTMxMDAuLmZkMTE4MWY5
ZjkyM2U5YzhlYmU0M2Y1MGFkMDk1ZjI2OGQ1YjM4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2dlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9nZW5lcmljL0dlbmVyaWNCaW5kaW5nLmgKQEAgLTMxLDMyICszMSwxNSBAQAog
I2lmbmRlZiBHZW5lcmljQmluZGluZ19oCiAjZGVmaW5lIEdlbmVyaWNCaW5kaW5nX2gKIAorI2lu
Y2x1ZGUgIkJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLS8vIFVzZWQgdG8gaW5zdGFudGlhdGUgYmluZGluZyB0ZW1wbGF0ZXMgZm9yIGFueSBtZXRo
b2RzIHNoYXJlZCBhbW9uZyBhbGwKLS8vIGxhbmd1YWdlIGJpbmRpbmdzLgotY2xhc3MgR2VuZXJp
Y0JpbmRpbmcge307Ci0KLS8vIENsYXNzIHRvIHJlcHJlc2VudCBleGVjdXRpb24gc3RhdGUgZm9y
IGVhY2ggbGFuZ3VhZ2UgYmluZGluZy4KLXRlbXBsYXRlIDxjbGFzcyBUPgotY2xhc3MgU3RhdGUg
e307Ci0KLS8vIENvbW1vbiBub3Rpb24gb2YgZXhlY3V0aW9uIHN0YXRlIGZvciBsYW5ndWFnZSBi
aW5kaW5ncy4KLXRlbXBsYXRlIDw+Ci1jbGFzcyBTdGF0ZTxHZW5lcmljQmluZGluZz4gewotICAg
IC8vIEFueSBtZXRob2RzIHNoYXJlZCBhY3Jvc3MgYmluZGluZ3MgY2FuIGdvIGhlcmUuCi19Owot
Ci10ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KLUtVUkwgY29tcGxldGVVUkwoU3RhdGU8QmluZGlu
Zz4qIHN0YXRlLCBjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMKQoraW5saW5lIEtVUkwgY29tcGxl
dGVVUkwoQmluZGluZ1N0YXRlKiBzdGF0ZSwgY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKIHsK
LSAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB3ZSBuZWVkIHRvIGNvbXBsZXRlIHRoZSBV
UkwgdXNpbmcgdGhlCi0gICAgLy8gZHluYW1pYyBmcmFtZS4KLSAgICBGcmFtZSogZnJhbWUgPSBz
dGF0ZS0+Zmlyc3RGcmFtZSgpOworICAgIEZyYW1lKiBmcmFtZSA9IGZpcnN0RnJhbWUoc3RhdGUp
OwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiBLVVJMKCk7CiAgICAgcmV0dXJuIGZy
YW1lLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChyZWxhdGl2ZVVSTCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IGE0MTky
YmZhMzJkNWE1M2M0MWJjZjg0MjNlMmQyZjYwNzIyOTE3ZTUuLjRiOWUxZjhiMTJhYTU5YzJjODRi
ZjNkN2IxZWIyY2M3MDE4ZWM1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC03NjgsNyArNzY4LDcgQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiAke2Z1bmNOYW1lfUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpT
dHJpbmc+IG5hbWUsIGMKICAgICAgICAgcmV0dXJuIHByaXZhdGVUZW1wbGF0ZS0+R2V0RnVuY3Rp
b24oKTsKICAgICB9CiAgICAgJHtpbXBsQ2xhc3NOYW1lfSogaW1wID0gJHtjbGFzc05hbWV9Ojp0
b05hdGl2ZShob2xkZXIpOwotICAgIGlmICghVjhCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vzc0Zy
YW1lKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGltcC0+ZnJhbWUoKSwgZmFsc2UpKSB7CisgICAg
aWYgKCFCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vzc0ZyYW1lKEJpbmRpbmdTdGF0ZTo6aW5zdGFu
Y2UoKSwgaW1wLT5mcmFtZSgpLCBmYWxzZSkpIHsKICAgICAgICAgc3RhdGljIHY4OjpQZXJzaXN0
ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBzaGFyZWRUZW1wbGF0ZSA9IHY4OjpQZXJzaXN0ZW50
PHY4OjpGdW5jdGlvblRlbXBsYXRlPjo6TmV3KCRuZXdUZW1wbGF0ZVN0cmluZyk7CiAgICAgICAg
IHJldHVybiBzaGFyZWRUZW1wbGF0ZS0+R2V0RnVuY3Rpb24oKTsKICAgICB9CkBAIC05MDQsNyAr
OTA0LDcgQEAgRU5ECiAKICAgICAjIEdlbmVyYXRlIHNlY3VyaXR5IGNoZWNrcyBpZiBuZWNlc3Nh
cnkKICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q2hlY2tTZWN1cml0eUZvck5vZGUifSkgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xz
LCAiICAgIGlmICghVjhCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9Ob2RlKFY4
QmluZGluZ1N0YXRlOjpPbmx5KCksIGltcC0+IiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFt
ZSAuICIoKSkpXG4gICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4odjg6Ok51bGwo
aW5mby5HZXRJc29sYXRlKCkpKTtcblxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVj
bHMsICIgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9Ob2RlKEJp
bmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSwgaW1wLT4iIC4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5u
YW1lIC4gIigpKSlcbiAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPih2ODo6TnVs
bChpbmZvLkdldElzb2xhdGUoKSkpO1xuXG4iKTsKICAgICB9CiAKICAgICBteSAkdXNlRXhjZXB0
aW9ucyA9IDEgaWYgQHskYXR0cmlidXRlLT5nZXR0ZXJFeGNlcHRpb25zfTsKQEAgLTEwOTMsNyAr
MTA5Myw3IEBAIEVORAogICAgIGlmICgkaW1wbENsYXNzTmFtZSBlcSAiRE9NV2luZG93IiB8fCAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5In0pIHsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOwogICAgICR7aW1wbENsYXNzTmFtZX0q
IGltcCA9IFY4JHtpbXBsQ2xhc3NOYW1lfTo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAg
aWYgKCFWOEJpbmRpbmdTZWN1cml0eTo6Y2FuQWNjZXNzRnJhbWUoVjhCaW5kaW5nU3RhdGU6Ok9u
bHkoKSwgaW1wLT5mcmFtZSgpLCB0cnVlKSkKKyAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6Y2Fu
QWNjZXNzRnJhbWUoQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpLCBpbXAtPmZyYW1lKCksIHRydWUp
KQogICAgICAgICByZXR1cm47CiBFTkQKICAgICB9CkBAIC0xNTAwLDcgKzE1MDAsNyBAQCBFTkQK
ICAgICAgICAgJiYgISRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
RG9Ob3RDaGVja1NlY3VyaXR5In0pIHsKICAgICAgICAgIyBXZSBoYXZlIG5vdCBmaW5kIHJlYWwg
dXNlIGNhc2VzIHlldC4KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOwot
ICAgIGlmICghVjhCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vzc0ZyYW1lKFY4QmluZGluZ1N0YXRl
OjpPbmx5KCksIGltcC0+ZnJhbWUoKSwgdHJ1ZSkpCisgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6
OmNhbkFjY2Vzc0ZyYW1lKEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSwgaW1wLT5mcmFtZSgpLCB0
cnVlKSkKICAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogRU5ECiAgICAg
fQpAQCAtMTUyNCw3ICsxNTI0LDcgQEAgRU5ECiAgICAgfQogCiAgICAgaWYgKCRmdW5jdGlvbi0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1cml0eUZvck5vZGUifSkg
ewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlmICghVjhCaW5kaW5nU2Vj
dXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9Ob2RlKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGlt
cC0+IiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIihlYykpKVxuIik7CisgICAgICAg
IHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3Vs
ZEFsbG93QWNjZXNzVG9Ob2RlKEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSwgaW1wLT4iIC4gJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKGVjKSkpXG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgIiAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPih2ODo6
TnVsbChhcmdzLkdldElzb2xhdGUoKSkpO1xuIik7CiBFTkQKICAgICB9CkBAIC0yNDk3LDExICsy
NDk3LDExIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgIyAtIEFkZCBkZWZhdWx0
IGhlYWRlciB0ZW1wbGF0ZQogICAgIHB1c2goQGltcGxGaXhlZEhlYWRlciwgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbkNvbnRlbnRIZWFkZXIoJGRhdGFOb2RlKSk7CiAKLSAgICBBZGRUb0ltcGxJbmNs
dWRlcygiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIik7CisgICAgQWRkVG9JbXBsSW5jbHVkZXMo
IkJpbmRpbmdTdGF0ZS5oIik7CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkNvbnRleHRGZWF0dXJl
cy5oIik7CisgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIp
OwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOFByb3h5LmgiKTsKICAgICBBZGRUb0ltcGxJbmNs
dWRlcygiVjhCaW5kaW5nLmgiKTsKLSAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhCaW5kaW5nU3Rh
dGUuaCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOERPTVdyYXBwZXIuaCIpOwogICAgIEFk
ZFRvSW1wbEluY2x1ZGVzKCJWOElzb2xhdGVkQ29udGV4dC5oIik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXku
Y3BwCmluZGV4IGQ1MWM5ZmFhNjhhNjBiNzdiMDg3NTdlYmU1OGQ4NTJlYzk5MmY5MGYuLjUyYmM5
MzM4MjM1NzIyNTc0NTBhMmViNDA5ZWNhOWU4NWRiMGQ0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNw
cApAQCAtMjEsMTMgKzIxLDEzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVjhG
bG9hdDY0QXJyYXkuaCIKIAorI2luY2x1ZGUgIkJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIkNv
bnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJS
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiVjhBcnJheUJ1ZmZlclZpZXcuaCIK
ICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOEJpbmRpbmdNYWNyb3MuaCIKLSNp
bmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgogI2lu
Y2x1ZGUgIlY4RmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiVjhJbnQzMkFycmF5LmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0
aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IDBhOWI4OGFkYTdlNzM1NDgwZjZjYmEx
M2QwZjQxMDFiOTEzMTVlODYuLjYyZDA2NWY3MjI3YjZmYjFjYjJkY2Y0ZjQyYmE5YmQzYTlhOWVh
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RBY3RpdmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0yMSwxMiArMjEsMTIg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJWOFRlc3RBY3RpdmVET01PYmplY3Qu
aCIKIAorI2luY2x1ZGUgIkJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJl
cy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5n
TWFjcm9zLmgiCi0jaW5jbHVkZSAiVjhCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJWOERPTVdy
YXBwZXIuaCIKICNpbmNsdWRlICJWOElzb2xhdGVkQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4Tm9k
ZS5oIgpAQCAtNTQsNyArNTQsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGV4Y2l0
aW5nRnVuY3Rpb25DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIGlmIChh
cmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RBY3RpdmVET01PYmpl
Y3QqIGltcCA9IFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
Ci0gICAgaWYgKCFWOEJpbmRpbmdTZWN1cml0eTo6Y2FuQWNjZXNzRnJhbWUoVjhCaW5kaW5nU3Rh
dGU6Ok9ubHkoKSwgaW1wLT5mcmFtZSgpLCB0cnVlKSkKKyAgICBpZiAoIUJpbmRpbmdTZWN1cml0
eTo6Y2FuQWNjZXNzRnJhbWUoQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpLCBpbXAtPmZyYW1lKCks
IHRydWUpKQogICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiAgICAgRVhD
RVBUSU9OX0JMT0NLKE5vZGUqLCBuZXh0Q2hpbGQsIFY4Tm9kZTo6SGFzSW5zdGFuY2UoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOE5vZGU6
OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7CiAgICAgaW1wLT5leGNp
dGluZ0Z1bmN0aW9uKG5leHRDaGlsZCk7CkBAIC04Myw3ICs4Myw3IEBAIHN0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gcG9zdE1lc3NhZ2VBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiBuYW1lLCBjCiAgICAgICAgIHJldHVybiBwcml2YXRlVGVtcGxhdGUtPkdldEZ1bmN0aW9uKCk7
CiAgICAgfQogICAgIFRlc3RBY3RpdmVET01PYmplY3QqIGltcCA9IFY4VGVzdEFjdGl2ZURPTU9i
amVjdDo6dG9OYXRpdmUoaG9sZGVyKTsKLSAgICBpZiAoIVY4QmluZGluZ1NlY3VyaXR5OjpjYW5B
Y2Nlc3NGcmFtZShWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBpbXAtPmZyYW1lKCksIGZhbHNlKSkg
eworICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShCaW5kaW5nU3RhdGU6
Omluc3RhbmNlKCksIGltcC0+ZnJhbWUoKSwgZmFsc2UpKSB7CiAgICAgICAgIHN0YXRpYyB2ODo6
UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gc2hhcmVkVGVtcGxhdGUgPSB2ODo6UGVy
c2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT46Ok5ldyh2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6
TmV3KFRlc3RBY3RpdmVET01PYmplY3RWOEludGVybmFsOjpwb3N0TWVzc2FnZUNhbGxiYWNrLCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKSwgdjg6OlNpZ25hdHVyZTo6TmV3KFY4VGVzdEFjdGl2ZURP
TU9iamVjdDo6R2V0UmF3VGVtcGxhdGUoKSkpKTsKICAgICAgICAgcmV0dXJuIHNoYXJlZFRlbXBs
YXRlLT5HZXRGdW5jdGlvbigpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuY3BwCmluZGV4IDE4MGQ2ZmQ4YzcwMjEzOTMzNzg2OWUyMmIwYzMxOTAyODUxODRkMmEuLjNi
N2U4NDIyMTU0NTA1ZGI2Yjc1ZWUyZmE0ZDQ0NDU2ZTJmNWJiNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEN1c3RvbU5hbWVkR2V0dGVyLmNwcApAQCAtMjEsMTIgKzIxLDEyIEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaCIKIAorI2luY2x1ZGUg
IkJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nTWFjcm9zLmgiCi0jaW5j
bHVkZSAiVjhCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKICNpbmNs
dWRlICJWOElzb2xhdGVkQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRleCA4ZGRhOTI1MmVjNmVhMmNkNTk3NzQ5Zjkx
NzQzZDhhY2NkZWJmMTEwLi45OWE4MGM4NGMzYmYyYmE4YzY2ZjEzMjI1MzQxNzEyMDViMzYwNDdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC0yMSwxMiArMjEsMTIg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJWOFRlc3RFdmVudENvbnN0cnVjdG9y
LmgiCiAKKyNpbmNsdWRlICJCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJDb250ZXh0RmVhdHVy
ZXMuaCIKICNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4QmluZGluZ01h
Y3Jvcy5oIgotI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVjhET01XcmFw
cGVyLmgiCiAjaW5jbHVkZSAiVjhJc29sYXRlZENvbnRleHQuaCIKICNpbmNsdWRlICJWOFByb3h5
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCBjNWJkYmViNGUyM2NlOWQ1MDE5N2Fl
ZWJhNDM0NmQ2OGY0ZTVhNTFmLi5kZWM2OWU5NjI0ZTE2NTZhYzllOWY2Yzc5YjA4YWUzOGQ1MDY4
YTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAKQEAgLTIxLDEyICsyMSwxMiBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlY4VGVzdEV2ZW50VGFyZ2V0LmgiCiAKKyNpbmNs
dWRlICJCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
IgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4QmluZGluZ01hY3Jvcy5oIgot
I2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVjhDb2xsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiVjhET01XcmFwcGVyLmgiCiAjaW5jbHVkZSAiVjhFdmVudC5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhj
ZXB0aW9uLmNwcAppbmRleCBlMmM4ZTk2ZWM4YjdjYmFjNzU3MjllODg1OTk3M2FkZGExNjgxMjE2
Li5hMTc0MmNiYmVjYmExZTgwY2NmNTc3YjZiYjFiOTJlY2VmNGFmZTJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhjZXB0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhj
ZXB0aW9uLmNwcApAQCAtMjEsMTAgKzIxLDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiVjhUZXN0RXhjZXB0aW9uLmgiCiAKKyNpbmNsdWRlICJCaW5kaW5nU3RhdGUuaCIKICNp
bmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jaW5jbHVkZSAiVjhCaW5kaW5nU3RhdGUu
aCIKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJWOElzb2xhdGVkQ29udGV4
dC5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKaW5kZXggMWQ3
ZGNiNTM0NmJlNWU3ODUyM2Q5MDM3ZDhiYmFkNzc4YjdhMWY5ZC4uNDMyMDAxZGRlYmI2MTk2NDBl
NmM0OWQwZTVmYjA0YjM3MzAzODNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKQEAgLTIzLDEz
ICsyMywxMyBAQAogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24y
KQogCisjaW5jbHVkZSAiQmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVz
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIKICNpbmNsdWRlICJUZXN0U3VwcGxlbWVudGFsLmgiCiAjaW5jbHVkZSAiVjhC
aW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nTWFjcm9zLmgiCi0jaW5jbHVkZSAiVjhCaW5k
aW5nU3RhdGUuaCIKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJWOElzb2xh
dGVkQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4Tm9kZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDljMGMwZDgxNDA2OGE3YmQwZWQxZWRjYTY4
ZTQ4YmMwNmU2MzJmNGUuLjM3YjIxZDgwMWU1NGViYTZiOGJiNjZlOGVhMzY1ODc4NTk0ZmIyMzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTIx
LDEzICsyMSwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlY4VGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuaCIKIAorI2luY2x1ZGUgIkJpbmRpbmdTdGF0ZS5oIgogI2luY2x1
ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4QmluZGluZ01h
Y3Jvcy5oIgotI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVjhET01XcmFw
cGVyLmgiCiAjaW5jbHVkZSAiVjhJc29sYXRlZENvbnRleHQuaCIKICNpbmNsdWRlICJWOFByb3h5
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYWQ4NWNjZTIyMmU4
YTViMzZkMzNiY2NiY2ZmMTk0NzNiZTE0YjdlZi4uY2JjN2I2YmI2OTdjYjcyNGU1OGVlOTU4NjJi
ZmM0NGIxZDg1ZDgzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcApAQCAt
MjEsMTIgKzIxLDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVjhUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5oIgogCisjaW5jbHVkZSAiQmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAi
Q29udGV4dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
IlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNs
dWRlICJWOEJpbmRpbmdNYWNyb3MuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgogI2lu
Y2x1ZGUgIlY4RE9NV3JhcHBlci5oIgogI2luY2x1ZGUgIlY4SXNvbGF0ZWRDb250ZXh0LmgiCiAj
aW5jbHVkZSAiVjhQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwCmluZGV4IGNlMzdlMDAyZjI1YmU1OTc1ZjEx
NmQ5OTU3YmRlMTgxNTUxMGRlZDcuLmFmYzUyMzgwZTljMWFlMzZjYWI4YWFlNzYzNDlhYzNmNzM3
YmQyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3ROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0Tm9kZS5jcHAKQEAgLTIxLDEwICsyMSwxMCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlY4VGVzdE5vZGUuaCIKIAorI2luY2x1ZGUgIkJpbmRpbmdTdGF0ZS5o
IgogI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmdT
dGF0ZS5oIgogI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgogI2luY2x1ZGUgIlY4SXNvbGF0ZWRD
b250ZXh0LmgiCiAjaW5jbHVkZSAiVjhOb2RlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDJkYmI5N2IzMDYz
N2Y3NTA1N2Q3NWVjNWY2YjRjOGM4NWNjMDEwM2IuLjk3NTRmYWU3ZmMxYTZjYTMzM2JmM2ExNDA1
YWRmNzc5OGQzZTE0MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiVjhUZXN0T2JqLmgiCiAKKyNpbmNsdWRlICJCaW5kaW5nU3Rh
dGUuaCIKICNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJET01TdHJpbmdM
aXN0LmgiCiAjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgpAQCAtMzgsNyArMzksNiBAQAogI2luY2x1
ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2lu
Y2x1ZGUgIlY4QmluZGluZ01hY3Jvcy5oIgotI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCiAj
aW5jbHVkZSAiVjhET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiVjhET01XcmFwcGVyLmgiCiAj
aW5jbHVkZSAiVjhEb2N1bWVudC5oIgpAQCAtOTMwLDcgKzkzMCw3IEBAIHN0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gY29udGVudERvY3VtZW50QXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5jb250ZW50RG9jdW1lbnQu
X2dldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xk
ZXIoKSk7Ci0gICAgaWYgKCFWOEJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb05v
ZGUoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgaW1wLT5jb250ZW50RG9jdW1lbnQoKSkpCisgICAg
aWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9Ob2RlKEJpbmRpbmdTdGF0
ZTo6aW5zdGFuY2UoKSwgaW1wLT5jb250ZW50RG9jdW1lbnQoKSkpCiAgICAgICAgIHJldHVybiB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4odjg6Ok51bGwoaW5mby5HZXRJc29sYXRlKCkpKTsKIAogICAg
IHJldHVybiB0b1Y4KGltcC0+Y29udGVudERvY3VtZW50KCksIGluZm8uR2V0SXNvbGF0ZSgpKTsK
QEAgLTE4MDgsNyArMTgwOCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZ2V0U1ZH
RG9jdW1lbnRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIFRlc3RPYmoq
IGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7CiAgICAgewotICAgIGlmICghVjhCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFs
bG93QWNjZXNzVG9Ob2RlKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGltcC0+Z2V0U1ZHRG9jdW1l
bnQoZWMpKSkKKyAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb05v
ZGUoQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpLCBpbXAtPmdldFNWR0RvY3VtZW50KGVjKSkpCiAg
ICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4odjg6Ok51bGwoYXJncy5HZXRJc29s
YXRlKCkpKTsKICAgICBSZWZQdHI8U1ZHRG9jdW1lbnQ+IHJlc3VsdCA9IGltcC0+Z2V0U1ZHRG9j
dW1lbnQoZWMpOwogICAgIGlmIChVTkxJS0VMWShlYykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDNiMGYyZjY3ZDYx
MDAyZjg3ODlmYTQ2MTZjMGZlN2M5NjY3ZTU1MTEuLmZmODZmYzhhZmViMTJiZDc2MGIyZjBhMTNm
NGM1NDFlMmVmYWU4MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCiAKKyNpbmNsdWRlICJCaW5kaW5nU3Rh
dGUuaCIKICNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25D
b2RlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKQEAgLTMwLDcgKzMxLDYgQEAKICNpbmNs
dWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNp
bmNsdWRlICJWOEJpbmRpbmdNYWNyb3MuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgog
I2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgogI2luY2x1ZGUgIlY4SXNvbGF0ZWRDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiVjhNZXNzYWdlUG9ydC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvQmluZGluZ1N0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L0JpbmRpbmdTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODFhZDhlZGUxOWYxOTM5Y2QyNjMwNTk5ODRj
NmRmN2ZhYmJlNGEyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L0JpbmRpbmdTdGF0ZS5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJCaW5kaW5nU3RhdGUuaCIKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlY4UHJveHkuaCIKKyNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQmluZGluZ1N0YXRl
KiBCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEJp
bmRpbmdTdGF0ZSwgYmluZGluZ1N0YXRlRm9yVjgsICgpKTsKKyAgICByZXR1cm4gJmJpbmRpbmdT
dGF0ZUZvclY4OworfQorCitET01XaW5kb3cqIGFjdGl2ZVdpbmRvdyhCaW5kaW5nU3RhdGUqKQor
eworICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gYWN0aXZlQ29udGV4dCA9IHY4OjpDb250ZXh0
OjpHZXRDYWxsaW5nKCk7CisgICAgaWYgKGFjdGl2ZUNvbnRleHQuSXNFbXB0eSgpKSB7CisgICAg
ICAgIC8vIFRoZXJlIGlzIGEgc2luZ2xlIGFjdGl2YXRpb24gcmVjb3JkIG9uIHRoZSBzdGFjaywg
c28gdGhhdCBtdXN0CisgICAgICAgIC8vIGJlIHRoZSBhY3RpdmVDb250ZXh0LgorICAgICAgICBh
Y3RpdmVDb250ZXh0ID0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKTsKKyAgICB9CisgICAgcmV0
dXJuIFY4UHJveHk6OnJldHJpZXZlV2luZG93KGFjdGl2ZUNvbnRleHQpOworfQorCitET01XaW5k
b3cqIGZpcnN0V2luZG93KEJpbmRpbmdTdGF0ZSopCit7CisgICAgcmV0dXJuIFY4UHJveHk6OnJl
dHJpZXZlV2luZG93KHY4OjpDb250ZXh0OjpHZXRFbnRlcmVkKCkpOworfQorCitGcmFtZSogYWN0
aXZlRnJhbWUoQmluZGluZ1N0YXRlKikKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBWOFByb3h5Ojpy
ZXRyaWV2ZUZyYW1lRm9yQ2FsbGluZ0NvbnRleHQoKTsKKyAgICBpZiAoIWZyYW1lKSB7CisgICAg
ICAgIC8vIFVuZm9ydHVuYXRlbHksIHdoZW4gcHJvY2Vzc2luZyBzY3JpcHQgZnJvbSBhIHBsdWct
aW4sIHdlIG1pZ2h0IG5vdAorICAgICAgICAvLyBoYXZlIGEgY2FsbGluZyBjb250ZXh0LiBJbiB0
aG9zZSBjYXNlcywgd2UgZmFsbCBiYWNrIHRvIHRoZQorICAgICAgICAvLyBlbnRlcmVkIGNvbnRl
eHQgZm9yIHNlY3VyaXR5IGNoZWNrcy4KKyAgICAgICAgLy8gRklYTUU6IFdlIG5lZWQgYSBiZXR0
ZXIgQVBJIGZvciByZXRyaWV2aW5nIGZyYW1lcyB0aGF0IGFic3RyYWN0cworICAgICAgICAvLyAg
ICAgICAgYXdheSB0aGlzIGNvbmNlcm4uCisgICAgICAgIGZyYW1lID0gVjhQcm94eTo6cmV0cmll
dmVGcmFtZUZvckVudGVyZWRDb250ZXh0KCk7CisgICAgfQorICAgIHJldHVybiBmcmFtZTsKK30K
KworRnJhbWUqIGZpcnN0RnJhbWUoQmluZGluZ1N0YXRlKikKK3sKKyAgICByZXR1cm4gVjhQcm94
eTo6cmV0cmlldmVGcmFtZUZvckVudGVyZWRDb250ZXh0KCk7Cit9CisKK3ZvaWQgaW1tZWRpYXRl
bHlSZXBvcnRVbnNhZmVBY2Nlc3NUbyhCaW5kaW5nU3RhdGUqLCBGcmFtZSogdGFyZ2V0KQorewor
ICAgIFY4UHJveHk6OnJlcG9ydFVuc2FmZUFjY2Vzc1RvKHRhcmdldCk7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0JpbmRpbmdTdGF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvQmluZGluZ1N0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRmY2E3NThm
NDVmMDkyMjkzZDFmYmJiMjI3ZDk5OGFmODg3ODE1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0JpbmRpbmdTdGF0ZS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIEJpbmRpbmdTdGF0ZV9oCisjZGVmaW5lIEJpbmRpbmdTdGF0ZV9oCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRE9NV2luZG93OworY2xhc3MgRnJhbWU7CisKK2NsYXNzIEJpbmRp
bmdTdGF0ZSB7CitwdWJsaWM6CisgICAgLy8gQ3VycmVudGx5LCBWOCB1c2VzIGEgc2luZ2xldG9u
IGZvciBpdCdzIHN0YXRlLgorICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIHY4OjpJc29sYXRl
IGFzIHRoZSBCaW5kaW5nU3RhdGU/CisgICAgc3RhdGljIEJpbmRpbmdTdGF0ZSogaW5zdGFuY2Uo
KTsKK307CisKK0RPTVdpbmRvdyogYWN0aXZlV2luZG93KEJpbmRpbmdTdGF0ZSopOworRE9NV2lu
ZG93KiBmaXJzdFdpbmRvdyhCaW5kaW5nU3RhdGUqKTsKKworRnJhbWUqIGFjdGl2ZUZyYW1lKEJp
bmRpbmdTdGF0ZSopOworRnJhbWUqIGZpcnN0RnJhbWUoQmluZGluZ1N0YXRlKik7CisKK3ZvaWQg
aW1tZWRpYXRlbHlSZXBvcnRVbnNhZmVBY2Nlc3NUbyhCaW5kaW5nU3RhdGUqLCBGcmFtZSopOwor
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2Ny
aXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250
cm9sbGVyLmNwcAppbmRleCAxNGMwNTBhNzY3ZmZjZDg0NDAxYTk5Y2M0MjFkMGYwYjA0MjE5YjU4
Li45ZGNhNGU0ODNiYTEwNWY0YjY1ZjJiMjVmNzNlYTQ3MWFjZWY5NGQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzIsNyArMzIs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIK
IAotI2luY2x1ZGUgIlBsYXRmb3JtU3VwcG9ydC5oIgorI2luY2x1ZGUgIkJpbmRpbmdTdGF0ZS5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAj
aW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgpAQCAtNDksMTMgKzQ5LDEzIEBACiAj
aW5jbHVkZSAibnBydW50aW1lX2ltcGwuaCIKICNpbmNsdWRlICJucHJ1bnRpbWVfcHJpdi5oIgog
I2luY2x1ZGUgIk5QVjhPYmplY3QuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKICNp
bmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgi
CiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nTWFjcm9zLmgiCi0j
aW5jbHVkZSAiVjhCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJWOERPTVdpbmRvdy5oIgogI2lu
Y2x1ZGUgIlY4RXZlbnQuaCIKICNpbmNsdWRlICJWOEhpZGRlblByb3BlcnR5TmFtZS5oIgpAQCAt
OTcsNyArOTcsNyBAQCBGcmFtZSogU2NyaXB0Q29udHJvbGxlcjo6cmV0cmlldmVGcmFtZUZvckN1
cnJlbnRDb250ZXh0KCkKIAogYm9vbCBTY3JpcHRDb250cm9sbGVyOjpjYW5BY2Nlc3NGcm9tQ3Vy
cmVudE9yaWdpbihGcmFtZSAqZnJhbWUpCiB7Ci0gICAgcmV0dXJuICF2ODo6Q29udGV4dDo6SW5D
b250ZXh0KCkgfHwgVjhCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vzc0ZyYW1lKFY4QmluZGluZ1N0
YXRlOjpPbmx5KCksIGZyYW1lLCB0cnVlKTsKKyAgICByZXR1cm4gIXY4OjpDb250ZXh0OjpJbkNv
bnRleHQoKSB8fCBCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vzc0ZyYW1lKEJpbmRpbmdTdGF0ZTo6
aW5zdGFuY2UoKSwgZnJhbWUsIHRydWUpOwogfQogCiBTY3JpcHRDb250cm9sbGVyOjpTY3JpcHRD
b250cm9sbGVyKEZyYW1lKiBmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4QmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5n
LmgKaW5kZXggNDMzNmYzZjEwODRkZjk3Y2M1N2ZiOTc1MTgwZDgyMmYyODIwMjNiNy4uOGVhZDU2
M2JmODZhMDY0MTk2NTJmYTNkZDg3ZDJiMDdmZDk3NTliZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhCaW5kaW5nLmgKQEAgLTUyLDExICs1Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBFeHRlcm5hbFN0cmluZ1Zpc2l0b3I7CiAgICAgY2xhc3MgTWVtb3J5T2JqZWN0
SW5mbzsKIAotICAgIC8vIEZJWE1FOiBSZW1vdmUgVjhCaW5kaW5nLgotICAgIGNsYXNzIFY4Qmlu
ZGluZyB7Ci0gICAgfTsKLSAgICB0eXBlZGVmIEJpbmRpbmdTZWN1cml0eTxWOEJpbmRpbmc+IFY4
QmluZGluZ1NlY3VyaXR5OwotCiAgICAgY2xhc3MgU3RyaW5nQ2FjaGUgewogICAgIHB1YmxpYzoK
ICAgICAgICAgU3RyaW5nQ2FjaGUoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggMDU2MjM5YjRmZDEwM2ZjZTQ2OWE4ZTc1MjMx
MjU0MTQ4MTBiYTFiYy4uNDY5Y2VmNGI3NTFmODI5M2EyZGFhMTA4ZWRmMmY2ZmY1MzNlYmJjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAK
QEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJWOERPTVdp
bmRvd1NoZWxsLmgiCiAKLSNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKKyNpbmNsdWRlICJC
aW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJEYXRlRXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtMzksNiArMzksNyBAQAogI2lu
Y2x1ZGUgIk1lbW9yeVVzYWdlU3VwcG9ydC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQYWdlR3JvdXAuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJS
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2FmZUFsbG9jYXRpb24uaCIKICNp
bmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKQEAgLTQ5LDcgKzUwLDYgQEAKICNpbmNsdWRlICJT
dHlsZVByb3BlcnR5U2V0LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhC
aW5kaW5nUGVyQ29udGV4dERhdGEuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgogI2lu
Y2x1ZGUgIlY4Q29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5jbHVkZSAi
VjhET01XaW5kb3cuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKaW5kZXgg
NTg4NDZlYTU4YmVhYTU0OGM5YjVlN2M3OGUzNTQxOTAzYWRlNTkwZS4uNTFkMmQwMzk3MjdjN2Iw
NGQxMzExMTIxNmQ4NTBhNzdlNmMxNDRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQ
cm94eS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJWOFByb3h5LmgiCiAKKyNpbmNsdWRlICJCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJDYWNo
ZWRNZXRhZGF0YS5oIgogI2luY2x1ZGUgIkRhdGVFeHRlbnNpb24uaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgpAQCAtNDksNyArNTAsNiBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgotI2luY2x1ZGUg
IlY4QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVjhDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAi
VjhET01Db3JlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiVjhET01NYXAuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcAppbmRleCA1N2QxMzBhN2MyZjI1ODA3ODdh
N2FlZjY3ZmZhM2ZmZjNjYjZhZGMzLi4xYWJhN2E4ZDkxYzA2YzY3OTZiNmQzOTE4YWRlY2MzMjQ0
Zjc3YjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGll
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCkBA
IC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVjhVdGlsaXRp
ZXMuaCIKIAotI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgorI2luY2x1ZGUgIkJpbmRpbmdT
dGF0ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC00MCwxNSArNDAsMTMgQEAKICNpbmNsdWRlICJTY3Jp
cHRTdGF0ZS5oIgogI2luY2x1ZGUgIlY4QXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJWOEJpbmRp
bmcuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIlY4TWVzc2FnZVBv
cnQuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgog
I2luY2x1ZGUgIldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIgotCi0jaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KLQogI2luY2x1ZGUgPHY4Lmg+CisjaW5jbHVkZSA8d3RmL0FycmF5QnVm
ZmVyLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC0xNzEsMTIgKzE2OSwxMiBAQCB2b2lkIHRyYW5zZmVySGlkZGVuRGVwZW5kZW5jeSh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCwKIAogRnJhbWUqIGNhbGxpbmdPckVudGVyZWRG
cmFtZSgpCiB7Ci0gICAgcmV0dXJuIFY4QmluZGluZ1N0YXRlOjpPbmx5KCktPmFjdGl2ZUZyYW1l
KCk7CisgICAgcmV0dXJuIGFjdGl2ZUZyYW1lKEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSk7CiB9
CiAKIEtVUkwgY29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKIHsKLSAgICBy
ZXR1cm4gY29tcGxldGVVUkwoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgcmVsYXRpdmVVUkwpOwor
ICAgIHJldHVybiBjb21wbGV0ZVVSTChCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCksIHJlbGF0aXZl
VVJMKTsKIH0KIAogU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogZ2V0U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhE
T01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCAwZGNjMjk5NTJlN2RhODY3MmVmYzQxZjE1MDc4YWEz
YjY3MzgyMGIwLi42NTEwNjQzYjE3ZGU4ZjI0MmIyOTUyZmRjMTMxYzcxNDk0Mzg1ODgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRv
d0N1c3RvbS5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJWOERPTVdpbmRvdy5oIgogCi0jaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+CisjaW5j
bHVkZSAiQmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ29u
dGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRE9NVGltZXIuaCIKQEAgLTU3LDcgKzU3
LDYgQEAKICNpbmNsdWRlICJTdG9yYWdlLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5j
bHVkZSAiVjhCaW5kaW5nTWFjcm9zLmgiCi0jaW5jbHVkZSAiVjhCaW5kaW5nU3RhdGUuaCIKICNp
bmNsdWRlICJWOEV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJWOEdDRm9yQ29udGV4dERpc3Bv
c2UuaCIKICNpbmNsdWRlICJWOEhpZGRlblByb3BlcnR5TmFtZS5oIgpAQCAtNjYsNiArNjUsNyBA
QAogI2luY2x1ZGUgIlY4UHJveHkuaCIKICNpbmNsdWRlICJWOFV0aWxpdGllcy5oIgogI2luY2x1
ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTA3LDcgKzEwNyw3IEBAIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBXaW5kb3dTZXRUaW1lb3V0SW1wbChjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBib29s
IHNpbmdsCiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPj0gMikKICAgICAgICAgdGltZW91dCA9IGFy
Z3NbMV0tPkludDMyVmFsdWUoKTsKIAotICAgIGlmICghVjhCaW5kaW5nU2VjdXJpdHk6OmNhbkFj
Y2Vzc0ZyYW1lKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGltcC0+ZnJhbWUoKSwgdHJ1ZSkpCisg
ICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vzc0ZyYW1lKEJpbmRpbmdTdGF0ZTo6aW5z
dGFuY2UoKSwgaW1wLT5mcmFtZSgpLCB0cnVlKSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmlu
ZWQoKTsKIAogICAgIGludCBpZDsKQEAgLTE1Miw3ICsxNTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhET01XaW5kb3c6OmV2ZW50QWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogCiAgICAgRnJhbWUqIGZy
YW1lID0gVjhET01XaW5kb3c6OnRvTmF0aXZlKGhvbGRlciktPmZyYW1lKCk7Ci0gICAgaWYgKCFW
OEJpbmRpbmdTZWN1cml0eTo6Y2FuQWNjZXNzRnJhbWUoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwg
ZnJhbWUsIHRydWUpKQorICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShC
aW5kaW5nU3RhdGU6Omluc3RhbmNlKCksIGZyYW1lLCB0cnVlKSkKICAgICAgICAgcmV0dXJuIHY4
OjpVbmRlZmluZWQoKTsKIAogICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCA9IFY4
UHJveHk6OmNvbnRleHQoZnJhbWUpOwpAQCAtMTczLDcgKzE3Myw3IEBAIHZvaWQgVjhET01XaW5k
b3c6OmV2ZW50QWNjZXNzb3JTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpM
b2NhbDx2ODo6CiAgICAgICAgIHJldHVybjsKIAogICAgIEZyYW1lKiBmcmFtZSA9IFY4RE9NV2lu
ZG93Ojp0b05hdGl2ZShob2xkZXIpLT5mcmFtZSgpOwotICAgIGlmICghVjhCaW5kaW5nU2VjdXJp
dHk6OmNhbkFjY2Vzc0ZyYW1lKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGZyYW1lLCB0cnVlKSkK
KyAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6Y2FuQWNjZXNzRnJhbWUoQmluZGluZ1N0YXRlOjpp
bnN0YW5jZSgpLCBmcmFtZSwgdHJ1ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHY4OjpMb2Nh
bDx2ODo6Q29udGV4dD4gY29udGV4dCA9IFY4UHJveHk6OmNvbnRleHQoZnJhbWUpOwpAQCAtMTg3
LDI1ICsxODcsMjUgQEAgdm9pZCBWOERPTVdpbmRvdzo6ZXZlbnRBY2Nlc3NvclNldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjoKIHZvaWQgVjhET01XaW5kb3c6
OmxvY2F0aW9uQWNjZXNzb3JTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpM
b2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewog
ICAgIERPTVdpbmRvdyogaW1wID0gVjhET01XaW5kb3c6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OwotICAgIFN0YXRlPFY4QmluZGluZz4qIHN0YXRlID0gVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKTsK
KyAgICBCaW5kaW5nU3RhdGUqIHN0YXRlID0gQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpOwogCi0g
ICAgRE9NV2luZG93KiBhY3RpdmVXaW5kb3cgPSBzdGF0ZS0+YWN0aXZlV2luZG93KCk7Ci0gICAg
aWYgKCFhY3RpdmVXaW5kb3cpCisgICAgRE9NV2luZG93KiBhY3RpdmUgPSBhY3RpdmVXaW5kb3co
c3RhdGUpOworICAgIGlmICghYWN0aXZlKQogICAgICAgcmV0dXJuOwogCi0gICAgRE9NV2luZG93
KiBmaXJzdFdpbmRvdyA9IHN0YXRlLT5maXJzdFdpbmRvdygpOwotICAgIGlmICghZmlyc3RXaW5k
b3cpCisgICAgRE9NV2luZG93KiBmaXJzdCA9IGZpcnN0V2luZG93KHN0YXRlKTsKKyAgICBpZiAo
IWZpcnN0KQogICAgICAgcmV0dXJuOwogCiAgICAgaWYgKExvY2F0aW9uKiBsb2NhdGlvbiA9IGlt
cC0+bG9jYXRpb24oKSkKLSAgICAgICAgbG9jYXRpb24tPnNldEhyZWYodG9XZWJDb3JlU3RyaW5n
KHZhbHVlKSwgYWN0aXZlV2luZG93LCBmaXJzdFdpbmRvdyk7CisgICAgICAgIGxvY2F0aW9uLT5z
ZXRIcmVmKHRvV2ViQ29yZVN0cmluZyh2YWx1ZSksIGFjdGl2ZSwgZmlyc3QpOwogfQogCiB2b2lk
IFY4RE9NV2luZG93OjpvcGVuZXJBY2Nlc3NvclNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCiB7CiAgICAgRE9NV2luZG93KiBpbXAgPSBWOERPTVdpbmRvdzo6dG9OYXRpdmUoaW5m
by5Ib2xkZXIoKSk7CiAKLSAgICBpZiAoIVY4QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFt
ZShWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBpbXAtPmZyYW1lKCksIHRydWUpKQorICAgIGlmICgh
QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCks
IGltcC0+ZnJhbWUoKSwgdHJ1ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE9wZW5lciBj
YW4gYmUgc2hhZG93ZWQgaWYgaXQgaXMgaW4gdGhlIHNhbWUgZG9tYWluLgpAQCAtMjM0LDcgKzIz
NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5l
ckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmCiAKICAgICBET01XaW5kb3cqIGltcCA9IFY4
RE9NV2luZG93Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKIAotICAgIGlmICghVjhCaW5kaW5n
U2VjdXJpdHk6OmNhbkFjY2Vzc0ZyYW1lKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGltcC0+ZnJh
bWUoKSwgdHJ1ZSkpCisgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vzc0ZyYW1lKEJp
bmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSwgaW1wLT5mcmFtZSgpLCB0cnVlKSkKICAgICAgICAgcmV0
dXJuIHY4OjpVbmRlZmluZWQoKTsKIAogICAgIERvY3VtZW50KiBkb2MgPSBpbXAtPmRvY3VtZW50
KCk7CkBAIC0yNjcsNyArMjY3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RE9NV2luZG93
OjpyZW1vdmVFdmVudExpc3RlbmVyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW4KIAogICAgIERP
TVdpbmRvdyogaW1wID0gVjhET01XaW5kb3c6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogCi0g
ICAgaWYgKCFWOEJpbmRpbmdTZWN1cml0eTo6Y2FuQWNjZXNzRnJhbWUoVjhCaW5kaW5nU3RhdGU6
Ok9ubHkoKSwgaW1wLT5mcmFtZSgpLCB0cnVlKSkKKyAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6
Y2FuQWNjZXNzRnJhbWUoQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpLCBpbXAtPmZyYW1lKCksIHRy
dWUpKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogCiAgICAgRG9jdW1lbnQqIGRv
YyA9IGltcC0+ZG9jdW1lbnQoKTsKQEAgLTQzNCw4ICs0MzQsOCBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhET01XaW5kb3c6OnNob3dNb2RhbERpYWxvZ0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmCiB7CiAgICAgSU5DX1NUQVRTKCJET00uRE9NV2luZG93LnNob3dNb2RhbERpYWxvZygp
Iik7CiAgICAgRE9NV2luZG93KiBpbXBsID0gVjhET01XaW5kb3c6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIFY4QmluZGluZ1N0YXRlKiBzdGF0ZSA9IFY4QmluZGluZ1N0YXRlOjpPbmx5
KCk7Ci0gICAgaWYgKCFWOEJpbmRpbmdTZWN1cml0eTo6Y2FuQWNjZXNzRnJhbWUoc3RhdGUsIGlt
cGwtPmZyYW1lKCksIHRydWUpKQorICAgIEJpbmRpbmdTdGF0ZSogc3RhdGUgPSBCaW5kaW5nU3Rh
dGU6Omluc3RhbmNlKCk7CisgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vzc0ZyYW1l
KHN0YXRlLCBpbXBsLT5mcmFtZSgpLCB0cnVlKSkKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmlu
ZWQoKTsKIAogICAgIC8vIEZJWE1FOiBIYW5kbGUgZXhjZXB0aW9ucyBwcm9wZXJseS4KQEAgLTQ0
Myw5ICs0NDMsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhET01XaW5kb3c6OnNob3dNb2Rh
bERpYWxvZ0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmCiAgICAgRGlhbG9nSGFuZGxlciBo
YW5kbGVyKGFyZ3NbMV0pOwogICAgIFN0cmluZyBkaWFsb2dGZWF0dXJlc1N0cmluZyA9IHRvV2Vi
Q29yZVN0cmluZ1dpdGhOdWxsT3JVbmRlZmluZWRDaGVjayhhcmdzWzJdKTsKIAotICAgIERPTVdp
bmRvdyogYWN0aXZlV2luZG93ID0gc3RhdGUtPmFjdGl2ZVdpbmRvdygpOwotICAgIERPTVdpbmRv
dyogZmlyc3RXaW5kb3cgPSBzdGF0ZS0+Zmlyc3RXaW5kb3coKTsKLSAgICBpbXBsLT5zaG93TW9k
YWxEaWFsb2codXJsU3RyaW5nLCBkaWFsb2dGZWF0dXJlc1N0cmluZywgYWN0aXZlV2luZG93LCBm
aXJzdFdpbmRvdywgc2V0VXBEaWFsb2csICZoYW5kbGVyKTsKKyAgICBpbXBsLT5zaG93TW9kYWxE
aWFsb2codXJsU3RyaW5nLCBkaWFsb2dGZWF0dXJlc1N0cmluZywgYWN0aXZlV2luZG93KHN0YXRl
KSwgZmlyc3RXaW5kb3coc3RhdGUpLCBzZXRVcERpYWxvZywgJmhhbmRsZXIpOwogCiAgICAgcmV0
dXJuIGhhbmRsZXIucmV0dXJuVmFsdWUoKTsKIH0KQEAgLTQ1NCw4ICs0NTIsOCBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhET01XaW5kb3c6Om9wZW5DYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLkRPTVdpbmRvdy5vcGVuKCkiKTsKICAg
ICBET01XaW5kb3cqIGltcGwgPSBWOERPTVdpbmRvdzo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
Ci0gICAgVjhCaW5kaW5nU3RhdGUqIHN0YXRlID0gVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKTsKLSAg
ICBpZiAoIVY4QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShzdGF0ZSwgaW1wbC0+ZnJh
bWUoKSwgdHJ1ZSkpCisgICAgQmluZGluZ1N0YXRlKiBzdGF0ZSA9IEJpbmRpbmdTdGF0ZTo6aW5z
dGFuY2UoKTsKKyAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6Y2FuQWNjZXNzRnJhbWUoc3RhdGUs
IGltcGwtPmZyYW1lKCksIHRydWUpKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwog
CiAgICAgLy8gRklYTUU6IEhhbmRsZSBleGNlcHRpb25zIHByb3Blcmx5LgpAQCAtNDYzLDkgKzQ2
MSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERPTVdpbmRvdzo6b3BlbkNhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgQXRvbWljU3RyaW5nIGZyYW1lTmFtZSA9IChh
cmdzWzFdLT5Jc1VuZGVmaW5lZCgpIHx8IGFyZ3NbMV0tPklzTnVsbCgpKSA/ICJfYmxhbmsiIDog
QXRvbWljU3RyaW5nKHRvV2ViQ29yZVN0cmluZyhhcmdzWzFdKSk7CiAgICAgU3RyaW5nIHdpbmRv
d0ZlYXR1cmVzU3RyaW5nID0gdG9XZWJDb3JlU3RyaW5nV2l0aE51bGxPclVuZGVmaW5lZENoZWNr
KGFyZ3NbMl0pOwogCi0gICAgRE9NV2luZG93KiBhY3RpdmVXaW5kb3cgPSBzdGF0ZS0+YWN0aXZl
V2luZG93KCk7Ci0gICAgRE9NV2luZG93KiBmaXJzdFdpbmRvdyA9IHN0YXRlLT5maXJzdFdpbmRv
dygpOwotICAgIFJlZlB0cjxET01XaW5kb3c+IG9wZW5lZFdpbmRvdyA9IGltcGwtPm9wZW4odXJs
U3RyaW5nLCBmcmFtZU5hbWUsIHdpbmRvd0ZlYXR1cmVzU3RyaW5nLCBhY3RpdmVXaW5kb3csIGZp
cnN0V2luZG93KTsKKyAgICBSZWZQdHI8RE9NV2luZG93PiBvcGVuZWRXaW5kb3cgPSBpbXBsLT5v
cGVuKHVybFN0cmluZywgZnJhbWVOYW1lLCB3aW5kb3dGZWF0dXJlc1N0cmluZywgYWN0aXZlV2lu
ZG93KHN0YXRlKSwgZmlyc3RXaW5kb3coc3RhdGUpKTsKICAgICBpZiAoIW9wZW5lZFdpbmRvdykK
ICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIApAQCAtNTc2LDcgKzU3Miw3IEBAIGJv
b2wgVjhET01XaW5kb3c6Om5hbWVkU2VjdXJpdHlDaGVjayh2ODo6TG9jYWw8djg6Ok9iamVjdD4g
aG9zdCwgdjg6OkxvY2FsPHY4OjpWCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
LSAgICByZXR1cm4gVjhCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vzc0ZyYW1lKFY4QmluZGluZ1N0
YXRlOjpPbmx5KCksIHRhcmdldCwgZmFsc2UpOworICAgIHJldHVybiBCaW5kaW5nU2VjdXJpdHk6
OmNhbkFjY2Vzc0ZyYW1lKEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSwgdGFyZ2V0LCBmYWxzZSk7
CiB9CiAKIGJvb2wgVjhET01XaW5kb3c6OmluZGV4ZWRTZWN1cml0eUNoZWNrKHY4OjpMb2NhbDx2
ODo6T2JqZWN0PiBob3N0LCB1aW50MzJfdCBpbmRleCwgdjg6OkFjY2Vzc1R5cGUgdHlwZSwgdjg6
OkxvY2FsPHY4OjpWYWx1ZT4pCkBAIC02MDEsNyArNTk3LDcgQEAgYm9vbCBWOERPTVdpbmRvdzo6
aW5kZXhlZFNlY3VyaXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHVpbnQzMl90
IGluZGUKICAgICBpZiAodHlwZSA9PSB2ODo6QUNDRVNTX0dFVCAmJiBjaGlsZEZyYW1lICYmICFo
b3N0LT5IYXNSZWFsSW5kZXhlZFByb3BlcnR5KGluZGV4KSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKLSAgICByZXR1cm4gVjhCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vzc0ZyYW1lKFY4QmluZGlu
Z1N0YXRlOjpPbmx5KCksIHRhcmdldCwgZmFsc2UpOworICAgIHJldHVybiBCaW5kaW5nU2VjdXJp
dHk6OmNhbkFjY2Vzc0ZyYW1lKEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSwgdGFyZ2V0LCBmYWxz
ZSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KERPTVdpbmRvdyogd2luZG93LCB2
ODo6SXNvbGF0ZSogaXNvbGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOERvY3VtZW50TG9jYXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRMb2NhdGlvbkN1c3RvbS5jcHAKaW5kZXggNGVi
Yjc4Mzg0NzE0MThiMTNmZjY4YWFlOTI3NTQwZDc5ZTU3MGE5OC4uNGMxOTQ5NTk5YTU2MDM4MjE4
MzZiYzlhYjQyOWNjMTM3MjhiN2FjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRMb2NhdGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRMb2NhdGlvbkN1c3RvbS5jcHAKQEAg
LTI0LDExICsyNCwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlY4RG9jdW1l
bnQuaCIKIAorI2luY2x1ZGUgIkJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTG9jYXRpb24uaCIKICNpbmNsdWRlICJW
OEJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIlY4TG9j
YXRpb24uaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAKQEAgLTUwLDE5ICs1MCwxOSBAQCB2b2lk
IFY4RG9jdW1lbnQ6OmxvY2F0aW9uQWNjZXNzb3JTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hbWUsIHY4OjpMb2NhbDx2OAogICAgIGlmICghZG9jdW1lbnQtPmZyYW1lKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFN0YXRlPFY4QmluZGluZz4qIHN0YXRlID0gVjhCaW5kaW5nU3RhdGU6
Ok9ubHkoKTsKKyAgICBCaW5kaW5nU3RhdGUqIHN0YXRlID0gQmluZGluZ1N0YXRlOjppbnN0YW5j
ZSgpOwogCi0gICAgRE9NV2luZG93KiBhY3RpdmVXaW5kb3cgPSBzdGF0ZS0+YWN0aXZlV2luZG93
KCk7Ci0gICAgaWYgKCFhY3RpdmVXaW5kb3cpCi0gICAgICByZXR1cm47CisgICAgRE9NV2luZG93
KiBhY3RpdmUgPSBhY3RpdmVXaW5kb3coc3RhdGUpOworICAgIGlmICghYWN0aXZlKQorICAgICAg
ICByZXR1cm47CiAKLSAgICBET01XaW5kb3cqIGZpcnN0V2luZG93ID0gc3RhdGUtPmZpcnN0V2lu
ZG93KCk7Ci0gICAgaWYgKCFmaXJzdFdpbmRvdykKLSAgICAgIHJldHVybjsKKyAgICBET01XaW5k
b3cqIGZpcnN0ID0gZmlyc3RXaW5kb3coc3RhdGUpOworICAgIGlmICghZmlyc3QpCisgICAgICAg
IHJldHVybjsKIAogICAgIERPTVdpbmRvdyogd2luZG93ID0gZG9jdW1lbnQtPmZyYW1lKCktPmRv
bVdpbmRvdygpOwogICAgIGlmIChMb2NhdGlvbiogbG9jYXRpb24gPSB3aW5kb3ctPmxvY2F0aW9u
KCkpCi0gICAgICAgIGxvY2F0aW9uLT5zZXRIcmVmKHRvV2ViQ29yZVN0cmluZyh2YWx1ZSksIGFj
dGl2ZVdpbmRvdywgZmlyc3RXaW5kb3cpOworICAgICAgICBsb2NhdGlvbi0+c2V0SHJlZih0b1dl
YkNvcmVTdHJpbmcodmFsdWUpLCBhY3RpdmUsIGZpcnN0KTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RW50cnlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RW50
cnlDdXN0b20uY3BwCmluZGV4IGU2Y2Q4MjM0YzZkNjhhYWYzMTJlNmJjMTczYmY0ZGQyZDQwNWM5
ZTkuLmE2MTc5YzJlNTY3OWFlZGUzYTVlOGE5YTg5OTdiNWQyNmYyMjRkMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEVudHJ5Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhFbnRyeUN1c3RvbS5jcHAKQEAg
LTMzLDkgKzMzLDkgQEAKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKIAorI2luY2x1ZGUgIkJp
bmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIlY4QXR0ci5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5o
IgotI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVjhEaXJlY3RvcnlFbnRy
eS5oIgogI2luY2x1ZGUgIlY4RW50cnkuaCIKICNpbmNsdWRlICJWOEZpbGVFbnRyeS5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RW50cnlTeW5jQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEVudHJ5U3luY0N1
c3RvbS5jcHAKaW5kZXggMTI5YWY3YTZiODg0ZTUyMzZkYzVlNzdmNWM1Y2FjNTRkNmUxNDEyMy4u
Yzg5ZTQ4OTc5MzAxNDQ2YzZkZDJmNWI1NjZkZGFiYTMzY2EyMWNiZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RW50cnlTeW5jQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhFbnRyeVN5bmNDdXN0b20uY3Bw
CkBAIC0zMyw5ICszMyw5IEBACiAKICNpZiBFTkFCTEUoRklMRV9TWVNURU0pCiAKKyNpbmNsdWRl
ICJCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJWOEF0dHIuaCIKICNpbmNsdWRlICJWOEJpbmRp
bmcuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIlY4RGlyZWN0b3J5
RW50cnlTeW5jLmgiCiAjaW5jbHVkZSAiVjhFbnRyeVN5bmMuaCIKICNpbmNsdWRlICJWOEZpbGVF
bnRyeVN5bmMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEhUTUxGcmFtZUVsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SFRNTEZyYW1lRWxlbWVudEN1c3RvbS5jcHAKaW5kZXggMzU4MThhZjZkMjYw
NWUzN2Y2ZGIwZjRjZjg1MGQ5YWVjYjI1OGI0NS4uNjQ5Y2IzNWE2YTUzNDc3ZDY3OTYwYmE0ZjQ3
OGE3N2Q5NGUzYjg1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SFRNTEZyYW1lRWxlbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEZyYW1lRWxlbWVudEN1c3RvbS5jcHAKQEAgLTMxLDEwICsz
MSwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlY4SFRNTEZyYW1lRWxlbWVu
dC5oIgogCisjaW5jbHVkZSAiQmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgot
I2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgVjhIVE1MRnJhbWVFbGVtZW50
Ojpsb2NhdGlvbkFjY2Vzc29yU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6
CiAgICAgSFRNTEZyYW1lRWxlbWVudCogZnJhbWUgPSBWOEhUTUxGcmFtZUVsZW1lbnQ6OnRvTmF0
aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFN0cmluZyBsb2NhdGlvblZhbHVlID0gdG9XZWJDb3Jl
U3RyaW5nV2l0aE51bGxDaGVjayh2YWx1ZSk7CiAKLSAgICBpZiAoIVY4QmluZGluZ1NlY3VyaXR5
OjphbGxvd1NldHRpbmdGcmFtZVNyY1RvSmF2YXNjcmlwdFVybChWOEJpbmRpbmdTdGF0ZTo6T25s
eSgpLCBmcmFtZSwgbG9jYXRpb25WYWx1ZSkpCisgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OmFs
bG93U2V0dGluZ0ZyYW1lU3JjVG9KYXZhc2NyaXB0VXJsKEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2Uo
KSwgZnJhbWUsIGxvY2F0aW9uVmFsdWUpKQogICAgICAgICByZXR1cm47CiAKICAgICBmcmFtZS0+
c2V0TG9jYXRpb24obG9jYXRpb25WYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhIaXN0b3J5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOEhpc3RvcnlDdXN0b20uY3BwCmluZGV4IGJjY2RhMGM5ZTRhYmNm
ZTVkZjFhNjhiNmVhNGY1NGRjM2IyNGM0ZWIuLjJmNGQ2NmVmOWVjZjEyZjhkMGU2YTQwNTQ3NzEy
ZjdlZDdhMzY2MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEhpc3RvcnlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEhpc3RvcnlDdXN0b20uY3BwCkBAIC0zMSwxMSArMzEsMTEgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJWOEhpc3RvcnkuaCIKIAorI2luY2x1ZGUgIkJpbmRpbmdTdGF0
ZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIaXN0b3J5LmgiCiAj
aW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgi
Ci0jaW5jbHVkZSAiVjhCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJWOERPTVdpbmRvdy5oIgog
I2luY2x1ZGUgIlY4SGlkZGVuUHJvcGVydHlOYW1lLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgpA
QCAtMTEzLDE0ICsxMTMsMTQgQEAgYm9vbCBWOEhpc3Rvcnk6OmluZGV4ZWRTZWN1cml0eUNoZWNr
KHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBob3N0LCB1aW50MzJfdCBpbmRleCwKIHsKICAgICAvLyBP
bmx5IGFsbG93IHNhbWUgb3JpZ2luIGFjY2Vzcy4KICAgICBIaXN0b3J5KiBoaXN0b3J5ID0gVjhI
aXN0b3J5Ojp0b05hdGl2ZShob3N0KTsKLSAgICByZXR1cm4gVjhCaW5kaW5nU2VjdXJpdHk6OmNh
bkFjY2Vzc0ZyYW1lKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGhpc3RvcnktPmZyYW1lKCksIGZh
bHNlKTsKKyAgICByZXR1cm4gQmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShCaW5kaW5n
U3RhdGU6Omluc3RhbmNlKCksIGhpc3RvcnktPmZyYW1lKCksIGZhbHNlKTsKIH0KIAogYm9vbCBW
OEhpc3Rvcnk6Om5hbWVkU2VjdXJpdHlDaGVjayh2ODo6TG9jYWw8djg6Ok9iamVjdD4gaG9zdCwg
djg6OkxvY2FsPHY4OjpWYWx1ZT4ga2V5LCB2ODo6QWNjZXNzVHlwZSB0eXBlLCB2ODo6TG9jYWw8
djg6OlZhbHVlPikKIHsKICAgICAvLyBPbmx5IGFsbG93IHNhbWUgb3JpZ2luIGFjY2Vzcy4KICAg
ICBIaXN0b3J5KiBoaXN0b3J5ID0gVjhIaXN0b3J5Ojp0b05hdGl2ZShob3N0KTsKLSAgICByZXR1
cm4gVjhCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vzc0ZyYW1lKFY4QmluZGluZ1N0YXRlOjpPbmx5
KCksIGhpc3RvcnktPmZyYW1lKCksIGZhbHNlKTsKKyAgICByZXR1cm4gQmluZGluZ1NlY3VyaXR5
OjpjYW5BY2Nlc3NGcmFtZShCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCksIGhpc3RvcnktPmZyYW1l
KCksIGZhbHNlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0
SG9zdEN1c3RvbS5jcHAKaW5kZXggNjdlOGQyZDU3MzRmMjgxMjAxYjc4YzFhMzYwZDE4MGM1M2Fj
NTljNS4uZDFlOTUxOGY1MDRiZGJjMzgzMTA2ODM2MGM5Mzk4NDRmMGZlZTVkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmpl
Y3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKICNpbmNsdWRlICJWOEluamVjdGVkU2NyaXB0SG9zdC5oIgogCisjaW5jbHVkZSAi
QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJJbmplY3Rl
ZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0SG9zdC5oIgpAQCAtNDAsNyArNDEs
NiBAQAogI2luY2x1ZGUgIlNjcmlwdERlYnVnU2VydmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFs
dWUuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5o
IgogI2luY2x1ZGUgIlY4RGF0YWJhc2UuaCIKICNpbmNsdWRlICJWOEZsb2F0MzJBcnJheS5oIgog
I2luY2x1ZGUgIlY4RmxvYXQ2NEFycmF5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRl
eCA0YzEwM2QyMGRlNDExYjM4MjdiOTc5ZTE5NjY3OWRiNDJjOTEyYjIyLi44OThlODk2ZTg2YTdj
MzRkNzZiYmQyYWYwNjFhOTJkMDI5NWJmNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAK
QEAgLTMyLDEyICszMiwxMiBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAjaW5jbHVkZSAiSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLmgiCiAKKyNpbmNsdWRlICJCaW5kaW5nU3RhdGUuaCIKICNpbmNs
dWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdEhvc3QuaCIKICNpbmNs
dWRlICJTYWZlQWxsb2NhdGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdE9iamVjdC5oIgogI2luY2x1
ZGUgIlY4QmluZGluZy5oIgotI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAi
VjhET01XaW5kb3cuaCIKICNpbmNsdWRlICJWOEluamVjdGVkU2NyaXB0SG9zdC5oIgogI2luY2x1
ZGUgIlY4UmVjdXJzaW9uU2NvcGUuaCIKQEAgLTEyMyw3ICsxMjMsNyBAQCBib29sIEluamVjdGVk
U2NyaXB0TWFuYWdlcjo6Y2FuQWNjZXNzSW5zcGVjdGVkV2luZG93KFNjcmlwdFN0YXRlKiBzY3Jp
cHRTdGF0ZSkKICAgICBGcmFtZSogZnJhbWUgPSBWOERPTVdpbmRvdzo6dG9OYXRpdmUoaG9sZGVy
KS0+ZnJhbWUoKTsKIAogICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUoY29udGV4
dCk7Ci0gICAgcmV0dXJuIFY4QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShWOEJpbmRp
bmdTdGF0ZTo6T25seSgpLCBmcmFtZSwgZmFsc2UpOworICAgIHJldHVybiBCaW5kaW5nU2VjdXJp
dHk6OmNhbkFjY2Vzc0ZyYW1lKEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSwgZnJhbWUsIGZhbHNl
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwCmluZGV4IDM1MDZhMDRh
NGIzZTJlMTY0ZjBkOTJlODcyZjE2MDEyYzQ3NThiYjguLjcyZGNjYzc2N2M1ZTc5Nzg5YzBlOTZi
ZTM0MmIwZDU0MDQwYTkzN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJWOExvY2F0aW9uLmgiCiAKKyNpbmNsdWRlICJCaW5k
aW5nU3RhdGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTM4LDcgKzM5LDYgQEAKICNpbmNsdWRlICJMb2Nh
dGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5n
LmgiCi0jaW5jbHVkZSAiVjhCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJWOERPTVdpbmRvdy5o
IgogI2luY2x1ZGUgIlY4RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgi
CkBAIC01MCw4NSArNTAsODUgQEAgdm9pZCBWOExvY2F0aW9uOjpoYXNoQWNjZXNzb3JTZXR0ZXIo
djg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmEKIHsKICAgICBJTkNf
U1RBVFMoIkRPTS5Mb2NhdGlvbi5oYXNoLl9zZXQiKTsKICAgICBMb2NhdGlvbiogaW1wbCA9IFY4
TG9jYXRpb246OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFN0YXRlPFY4QmluZGluZz4q
IHN0YXRlID0gVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKTsKKyAgICBCaW5kaW5nU3RhdGUqIHN0YXRl
ID0gQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpOwogCiAgICAgLy8gRklYTUU6IEhhbmRsZSBleGNl
cHRpb25zIGNvcnJlY3RseS4KICAgICBTdHJpbmcgaGFzaCA9IHRvV2ViQ29yZVN0cmluZyh2YWx1
ZSk7CiAKLSAgICBpbXBsLT5zZXRIYXNoKGhhc2gsIHN0YXRlLT5hY3RpdmVXaW5kb3coKSwgc3Rh
dGUtPmZpcnN0V2luZG93KCkpOworICAgIGltcGwtPnNldEhhc2goaGFzaCwgYWN0aXZlV2luZG93
KHN0YXRlKSwgZmlyc3RXaW5kb3coc3RhdGUpKTsKIH0KIAogdm9pZCBWOExvY2F0aW9uOjpob3N0
QWNjZXNzb3JTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIElOQ19T
VEFUUygiRE9NLkxvY2F0aW9uLmhvc3QuX3NldCIpOwogICAgIExvY2F0aW9uKiBpbXBsID0gVjhM
b2NhdGlvbjo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgU3RhdGU8VjhCaW5kaW5nPiog
c3RhdGUgPSBWOEJpbmRpbmdTdGF0ZTo6T25seSgpOworICAgIEJpbmRpbmdTdGF0ZSogc3RhdGUg
PSBCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCk7CiAKICAgICAvLyBGSVhNRTogSGFuZGxlIGV4Y2Vw
dGlvbnMgY29ycmVjdGx5LgogICAgIFN0cmluZyBob3N0ID0gdG9XZWJDb3JlU3RyaW5nKHZhbHVl
KTsKIAotICAgIGltcGwtPnNldEhvc3QoaG9zdCwgc3RhdGUtPmFjdGl2ZVdpbmRvdygpLCBzdGF0
ZS0+Zmlyc3RXaW5kb3coKSk7CisgICAgaW1wbC0+c2V0SG9zdChob3N0LCBhY3RpdmVXaW5kb3co
c3RhdGUpLCBmaXJzdFdpbmRvdyhzdGF0ZSkpOwogfQogCiB2b2lkIFY4TG9jYXRpb246Omhvc3Ru
YW1lQWNjZXNzb3JTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIElO
Q19TVEFUUygiRE9NLkxvY2F0aW9uLmhvc3RuYW1lLl9zZXQiKTsKICAgICBMb2NhdGlvbiogaW1w
bCA9IFY4TG9jYXRpb246OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFN0YXRlPFY4Qmlu
ZGluZz4qIHN0YXRlID0gVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKTsKKyAgICBCaW5kaW5nU3RhdGUq
IHN0YXRlID0gQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpOwogCiAgICAgLy8gRklYTUU6IEhhbmRs
ZSBleGNlcHRpb25zIGNvcnJlY3RseS4KICAgICBTdHJpbmcgaG9zdG5hbWUgPSB0b1dlYkNvcmVT
dHJpbmcodmFsdWUpOwogCi0gICAgaW1wbC0+c2V0SG9zdG5hbWUoaG9zdG5hbWUsIHN0YXRlLT5h
Y3RpdmVXaW5kb3coKSwgc3RhdGUtPmZpcnN0V2luZG93KCkpOworICAgIGltcGwtPnNldEhvc3Ru
YW1lKGhvc3RuYW1lLCBhY3RpdmVXaW5kb3coc3RhdGUpLCBmaXJzdFdpbmRvdyhzdGF0ZSkpOwog
fQogCiB2b2lkIFY4TG9jYXRpb246OmhyZWZBY2Nlc3NvclNldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pCiB7CiAgICAgSU5DX1NUQVRTKCJET00uTG9jYXRpb24uaHJlZi5fc2V0Iik7
CiAgICAgTG9jYXRpb24qIGltcGwgPSBWOExvY2F0aW9uOjp0b05hdGl2ZShpbmZvLkhvbGRlcigp
KTsKLSAgICBTdGF0ZTxWOEJpbmRpbmc+KiBzdGF0ZSA9IFY4QmluZGluZ1N0YXRlOjpPbmx5KCk7
CisgICAgQmluZGluZ1N0YXRlKiBzdGF0ZSA9IEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKTsKIAog
ICAgIC8vIEZJWE1FOiBIYW5kbGUgZXhjZXB0aW9ucyBjb3JyZWN0bHkuCiAgICAgU3RyaW5nIGhy
ZWYgPSB0b1dlYkNvcmVTdHJpbmcodmFsdWUpOwogCi0gICAgaW1wbC0+c2V0SHJlZihocmVmLCBz
dGF0ZS0+YWN0aXZlV2luZG93KCksIHN0YXRlLT5maXJzdFdpbmRvdygpKTsKKyAgICBpbXBsLT5z
ZXRIcmVmKGhyZWYsIGFjdGl2ZVdpbmRvdyhzdGF0ZSksIGZpcnN0V2luZG93KHN0YXRlKSk7CiB9
CiAKIHZvaWQgVjhMb2NhdGlvbjo6cGF0aG5hbWVBY2Nlc3NvclNldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nl
c3NvckluZm8mIGluZm8pCiB7CiAgICAgSU5DX1NUQVRTKCJET00uTG9jYXRpb24ucGF0aG5hbWUu
X3NldCIpOwogICAgIExvY2F0aW9uKiBpbXBsID0gVjhMb2NhdGlvbjo6dG9OYXRpdmUoaW5mby5I
b2xkZXIoKSk7Ci0gICAgU3RhdGU8VjhCaW5kaW5nPiogc3RhdGUgPSBWOEJpbmRpbmdTdGF0ZTo6
T25seSgpOworICAgIEJpbmRpbmdTdGF0ZSogc3RhdGUgPSBCaW5kaW5nU3RhdGU6Omluc3RhbmNl
KCk7CiAKICAgICAvLyBGSVhNRTogSGFuZGxlIGV4Y2VwdGlvbnMgY29ycmVjdGx5LgogICAgIFN0
cmluZyBwYXRobmFtZSA9IHRvV2ViQ29yZVN0cmluZyh2YWx1ZSk7CiAKLSAgICBpbXBsLT5zZXRQ
YXRobmFtZShwYXRobmFtZSwgc3RhdGUtPmFjdGl2ZVdpbmRvdygpLCBzdGF0ZS0+Zmlyc3RXaW5k
b3coKSk7CisgICAgaW1wbC0+c2V0UGF0aG5hbWUocGF0aG5hbWUsIGFjdGl2ZVdpbmRvdyhzdGF0
ZSksIGZpcnN0V2luZG93KHN0YXRlKSk7CiB9CiAKIHZvaWQgVjhMb2NhdGlvbjo6cG9ydEFjY2Vz
c29yU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVl
PiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBJTkNfU1RBVFMo
IkRPTS5Mb2NhdGlvbi5wb3J0Ll9zZXQiKTsKICAgICBMb2NhdGlvbiogaW1wbCA9IFY4TG9jYXRp
b246OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFN0YXRlPFY4QmluZGluZz4qIHN0YXRl
ID0gVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKTsKKyAgICBCaW5kaW5nU3RhdGUqIHN0YXRlID0gQmlu
ZGluZ1N0YXRlOjppbnN0YW5jZSgpOwogCiAgICAgLy8gRklYTUU6IEhhbmRsZSBleGNlcHRpb25z
IGNvcnJlY3RseS4KICAgICBTdHJpbmcgcG9ydCA9IHRvV2ViQ29yZVN0cmluZyh2YWx1ZSk7CiAK
LSAgICBpbXBsLT5zZXRQb3J0KHBvcnQsIHN0YXRlLT5hY3RpdmVXaW5kb3coKSwgc3RhdGUtPmZp
cnN0V2luZG93KCkpOworICAgIGltcGwtPnNldFBvcnQocG9ydCwgYWN0aXZlV2luZG93KHN0YXRl
KSwgZmlyc3RXaW5kb3coc3RhdGUpKTsKIH0KIAogdm9pZCBWOExvY2F0aW9uOjpwcm90b2NvbEFj
Y2Vzc29yU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZh
bHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBJTkNfU1RB
VFMoIkRPTS5Mb2NhdGlvbi5wcm90b2NvbC5fc2V0Iik7CiAgICAgTG9jYXRpb24qIGltcGwgPSBW
OExvY2F0aW9uOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBTdGF0ZTxWOEJpbmRpbmc+
KiBzdGF0ZSA9IFY4QmluZGluZ1N0YXRlOjpPbmx5KCk7CisgICAgQmluZGluZ1N0YXRlKiBzdGF0
ZSA9IEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKTsKIAogICAgIC8vIEZJWE1FOiBIYW5kbGUgZXhj
ZXB0aW9ucyBjb3JyZWN0bHkuCiAgICAgU3RyaW5nIHByb3RvY29sID0gdG9XZWJDb3JlU3RyaW5n
KHZhbHVlKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwtPnNldFByb3Rv
Y29sKHByb3RvY29sLCBzdGF0ZS0+YWN0aXZlV2luZG93KCksIHN0YXRlLT5maXJzdFdpbmRvdygp
LCBlYyk7CisgICAgaW1wbC0+c2V0UHJvdG9jb2wocHJvdG9jb2wsIGFjdGl2ZVdpbmRvdyhzdGF0
ZSksIGZpcnN0V2luZG93KHN0YXRlKSwgZWMpOwogICAgIGlmIChVTkxJS0VMWShlYykpCiAgICAg
ICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpOwogfQpA
QCAtMTM3LDEyICsxMzcsMTIgQEAgdm9pZCBWOExvY2F0aW9uOjpzZWFyY2hBY2Nlc3NvclNldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjoKIHsKICAgICBJTkNf
U1RBVFMoIkRPTS5Mb2NhdGlvbi5zZWFyY2guX3NldCIpOwogICAgIExvY2F0aW9uKiBpbXBsID0g
VjhMb2NhdGlvbjo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgU3RhdGU8VjhCaW5kaW5n
Piogc3RhdGUgPSBWOEJpbmRpbmdTdGF0ZTo6T25seSgpOworICAgIEJpbmRpbmdTdGF0ZSogc3Rh
dGUgPSBCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCk7CiAKICAgICAvLyBGSVhNRTogSGFuZGxlIGV4
Y2VwdGlvbnMgY29ycmVjdGx5LgogICAgIFN0cmluZyBzZWFyY2ggPSB0b1dlYkNvcmVTdHJpbmco
dmFsdWUpOwogCi0gICAgaW1wbC0+c2V0U2VhcmNoKHNlYXJjaCwgc3RhdGUtPmFjdGl2ZVdpbmRv
dygpLCBzdGF0ZS0+Zmlyc3RXaW5kb3coKSk7CisgICAgaW1wbC0+c2V0U2VhcmNoKHNlYXJjaCwg
YWN0aXZlV2luZG93KHN0YXRlKSwgZmlyc3RXaW5kb3coc3RhdGUpKTsKIH0KIAogdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4TG9jYXRpb246OnJlbG9hZEFjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQpAQCAtMTU2LDcg
KzE1Niw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOExvY2F0aW9uOjpyZWxvYWRBY2Nlc3Nv
ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtCiAgICAgICAgIHJldHVybiBwcml2YXRl
VGVtcGxhdGUtPkdldEZ1bmN0aW9uKCk7CiAgICAgfQogICAgIExvY2F0aW9uKiBpbXAgPSBWOExv
Y2F0aW9uOjp0b05hdGl2ZShob2xkZXIpOwotICAgIGlmICghVjhCaW5kaW5nU2VjdXJpdHk6OmNh
bkFjY2Vzc0ZyYW1lKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGltcC0+ZnJhbWUoKSwgZmFsc2Up
KSB7CisgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vzc0ZyYW1lKEJpbmRpbmdTdGF0
ZTo6aW5zdGFuY2UoKSwgaW1wLT5mcmFtZSgpLCBmYWxzZSkpIHsKICAgICAgICAgc3RhdGljIHY4
OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBzaGFyZWRUZW1wbGF0ZSA9IHY4OjpQ
ZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPjo6TmV3KHY4OjpGdW5jdGlvblRlbXBsYXRl
OjpOZXcoVjhMb2NhdGlvbjo6cmVsb2FkQ2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6OlZhbHVlPigp
LCB2ODo6U2lnbmF0dXJlOjpOZXcoVjhMb2NhdGlvbjo6R2V0UmF3VGVtcGxhdGUoKSkpKTsKICAg
ICAgICAgcmV0dXJuIHNoYXJlZFRlbXBsYXRlLT5HZXRGdW5jdGlvbigpOwogICAgIH0KQEAgLTE3
NCw3ICsxNzQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhMb2NhdGlvbjo6cmVwbGFjZUFj
Y2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYQogICAgICAgICByZXR1cm4gcHJp
dmF0ZVRlbXBsYXRlLT5HZXRGdW5jdGlvbigpOwogICAgIH0KICAgICBMb2NhdGlvbiogaW1wID0g
VjhMb2NhdGlvbjo6dG9OYXRpdmUoaG9sZGVyKTsKLSAgICBpZiAoIVY4QmluZGluZ1NlY3VyaXR5
OjpjYW5BY2Nlc3NGcmFtZShWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBpbXAtPmZyYW1lKCksIGZh
bHNlKSkgeworICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShCaW5kaW5n
U3RhdGU6Omluc3RhbmNlKCksIGltcC0+ZnJhbWUoKSwgZmFsc2UpKSB7CiAgICAgICAgIHN0YXRp
YyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gc2hhcmVkVGVtcGxhdGUgPSB2
ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT46Ok5ldyh2ODo6RnVuY3Rpb25UZW1w
bGF0ZTo6TmV3KFY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCksIHY4OjpTaWduYXR1cmU6Ok5ldyhWOExvY2F0aW9uOjpHZXRSYXdUZW1wbGF0ZSgpKSkp
OwogICAgICAgICByZXR1cm4gc2hhcmVkVGVtcGxhdGUtPkdldEZ1bmN0aW9uKCk7CiAgICAgfQpA
QCAtMTkzLDcgKzE5Myw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOExvY2F0aW9uOjphc3Np
Z25BY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtCiAgICAgICAgIHJldHVy
biBwcml2YXRlVGVtcGxhdGUtPkdldEZ1bmN0aW9uKCk7CiAgICAgfQogICAgIExvY2F0aW9uKiBp
bXAgPSBWOExvY2F0aW9uOjp0b05hdGl2ZShob2xkZXIpOwotICAgIGlmICghVjhCaW5kaW5nU2Vj
dXJpdHk6OmNhbkFjY2Vzc0ZyYW1lKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGltcC0+ZnJhbWUo
KSwgZmFsc2UpKSB7CisgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vzc0ZyYW1lKEJp
bmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSwgaW1wLT5mcmFtZSgpLCBmYWxzZSkpIHsKICAgICAgICAg
c3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBzaGFyZWRUZW1wbGF0
ZSA9IHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPjo6TmV3KHY4OjpGdW5jdGlv
blRlbXBsYXRlOjpOZXcoVjhMb2NhdGlvbjo6YXNzaWduQ2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6
OlZhbHVlPigpLCB2ODo6U2lnbmF0dXJlOjpOZXcoVjhMb2NhdGlvbjo6R2V0UmF3VGVtcGxhdGUo
KSkpKTsKICAgICAgICAgcmV0dXJuIHNoYXJlZFRlbXBsYXRlLT5HZXRGdW5jdGlvbigpOwogICAg
IH0KQEAgLTIwNCw5ICsyMDQsOSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhMb2NhdGlvbjo6
cmVsb2FkQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RB
VFMoIkRPTS5Mb2NhdGlvbi5yZWxvYWQiKTsKICAgICBMb2NhdGlvbiogaW1wbCA9IFY4TG9jYXRp
b246OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIFN0YXRlPFY4QmluZGluZz4qIHN0YXRl
ID0gVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKTsKKyAgICBCaW5kaW5nU3RhdGUqIHN0YXRlID0gQmlu
ZGluZ1N0YXRlOjppbnN0YW5jZSgpOwogCi0gICAgaW1wbC0+cmVsb2FkKHN0YXRlLT5hY3RpdmVX
aW5kb3coKSk7CisgICAgaW1wbC0+cmVsb2FkKGFjdGl2ZVdpbmRvdyhzdGF0ZSkpOwogICAgIHJl
dHVybiB2ODo6VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTIxNCwxMiArMjE0LDEyIEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOExvY2F0aW9uOjpyZXBsYWNlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5Mb2NhdGlvbi5yZXBsYWNlIik7CiAg
ICAgTG9jYXRpb24qIGltcGwgPSBWOExvY2F0aW9uOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsK
LSAgICBTdGF0ZTxWOEJpbmRpbmc+KiBzdGF0ZSA9IFY4QmluZGluZ1N0YXRlOjpPbmx5KCk7Cisg
ICAgQmluZGluZ1N0YXRlKiBzdGF0ZSA9IEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKTsKIAogICAg
IC8vIEZJWE1FOiBIYW5kbGUgZXhjZXB0aW9ucyBjb3JyZWN0bHkuCiAgICAgU3RyaW5nIHVybFN0
cmluZyA9IHRvV2ViQ29yZVN0cmluZyhhcmdzWzBdKTsKIAotICAgIGltcGwtPnJlcGxhY2UodXJs
U3RyaW5nLCBzdGF0ZS0+YWN0aXZlV2luZG93KCksIHN0YXRlLT5maXJzdFdpbmRvdygpKTsKKyAg
ICBpbXBsLT5yZXBsYWNlKHVybFN0cmluZywgYWN0aXZlV2luZG93KHN0YXRlKSwgZmlyc3RXaW5k
b3coc3RhdGUpKTsKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogfQogCkBAIC0yMjcsMTIg
KzIyNywxMiBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhMb2NhdGlvbjo6YXNzaWduQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5Mb2Nh
dGlvbi5hc3NpZ24iKTsKICAgICBMb2NhdGlvbiogaW1wbCA9IFY4TG9jYXRpb246OnRvTmF0aXZl
KGFyZ3MuSG9sZGVyKCkpOwotICAgIFN0YXRlPFY4QmluZGluZz4qIHN0YXRlID0gVjhCaW5kaW5n
U3RhdGU6Ok9ubHkoKTsKKyAgICBCaW5kaW5nU3RhdGUqIHN0YXRlID0gQmluZGluZ1N0YXRlOjpp
bnN0YW5jZSgpOwogCiAgICAgLy8gRklYTUU6IEhhbmRsZSBleGNlcHRpb25zIGNvcnJlY3RseS4K
ICAgICBTdHJpbmcgdXJsU3RyaW5nID0gdG9XZWJDb3JlU3RyaW5nKGFyZ3NbMF0pOwogCi0gICAg
aW1wbC0+YXNzaWduKHVybFN0cmluZywgc3RhdGUtPmFjdGl2ZVdpbmRvdygpLCBzdGF0ZS0+Zmly
c3RXaW5kb3coKSk7CisgICAgaW1wbC0+YXNzaWduKHVybFN0cmluZywgYWN0aXZlV2luZG93KHN0
YXRlKSwgZmlyc3RXaW5kb3coc3RhdGUpKTsKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwog
fQogCkBAIC0yNTEsNyArMjUxLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TG9jYXRpb246
OnRvU3RyaW5nQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBJTkNfU1RB
VFMoIkRPTS5Mb2NhdGlvbi50b1N0cmluZyIpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
aG9sZGVyID0gYXJncy5Ib2xkZXIoKTsKICAgICBMb2NhdGlvbiogaW1wID0gVjhMb2NhdGlvbjo6
dG9OYXRpdmUoaG9sZGVyKTsKLSAgICBpZiAoIVY4QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NG
cmFtZShWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBpbXAtPmZyYW1lKCksIHRydWUpKQorICAgIGlm
ICghQmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShCaW5kaW5nU3RhdGU6Omluc3RhbmNl
KCksIGltcC0+ZnJhbWUoKSwgdHJ1ZSkpCiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7
CiAgICAgU3RyaW5nIHJlc3VsdCA9IGltcC0+aHJlZigpOwogICAgIHJldHVybiB2OFN0cmluZyhy
ZXN1bHQsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKQEAgLTI2MSwxNCArMjYxLDE0IEBAIGJvb2wgVjhM
b2NhdGlvbjo6aW5kZXhlZFNlY3VyaXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3Qs
IHVpbnQzMl90IGluZGV4CiB7CiAgICAgLy8gT25seSBhbGxvdyBzYW1lIG9yaWdpbiBhY2Nlc3MK
ICAgICBMb2NhdGlvbiogaW1wID0gIFY4TG9jYXRpb246OnRvTmF0aXZlKGhvc3QpOwotICAgIHJl
dHVybiBWOEJpbmRpbmdTZWN1cml0eTo6Y2FuQWNjZXNzRnJhbWUoVjhCaW5kaW5nU3RhdGU6Ok9u
bHkoKSwgaW1wLT5mcmFtZSgpLCBmYWxzZSk7CisgICAgcmV0dXJuIEJpbmRpbmdTZWN1cml0eTo6
Y2FuQWNjZXNzRnJhbWUoQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpLCBpbXAtPmZyYW1lKCksIGZh
bHNlKTsKIH0KIAogYm9vbCBWOExvY2F0aW9uOjpuYW1lZFNlY3VyaXR5Q2hlY2sodjg6OkxvY2Fs
PHY4OjpPYmplY3Q+IGhvc3QsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGtleSwgdjg6OkFjY2Vzc1R5
cGUgdHlwZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4pCiB7CiAgICAgLy8gT25seSBhbGxvdyBzYW1l
IG9yaWdpbiBhY2Nlc3MKICAgICBMb2NhdGlvbiogaW1wID0gVjhMb2NhdGlvbjo6dG9OYXRpdmUo
aG9zdCk7Ci0gICAgcmV0dXJuIFY4QmluZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShWOEJp
bmRpbmdTdGF0ZTo6T25seSgpLCBpbXAtPmZyYW1lKCksIGZhbHNlKTsKKyAgICByZXR1cm4gQmlu
ZGluZ1NlY3VyaXR5OjpjYW5BY2Nlc3NGcmFtZShCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCksIGlt
cC0+ZnJhbWUoKSwgZmFsc2UpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChMb2Nh
dGlvbiogaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcAppbmRl
eCBkMmUzNDgzMzRmYTRhNDkzYzllM2I5N2IxY2ZiOTk5ODYxZmI0MjI0Li43MTUwOTJmYWVjNDlk
YjkxNTU1ZDUxY2ZlYmNmZjdhNGE1YjE2OTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAKQEAgLTMx
LDEwICszMSwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlY4TmFtZWROb2Rl
TWFwLmgiCiAKKyNpbmNsdWRlICJCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJOYW1lZE5vZGVN
YXAuaCIKICNpbmNsdWRlICJWOEF0dHIuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNs
dWRlICJWOEJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIlY4RWxlbWVudC5oIgogI2luY2x1ZGUg
IlY4Tm9kZS5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUN1c3RvbS5jcHAKaW5kZXggMjRjY2MwN2IxNTZiNGQy
MDE2Y2FmNjk3ZDU2NzI5MjE1ZGQ5YmFlYS4uY2UyZGZhMzEzMzg1NjNiMjhlZjFhZjBjOGRlYTNl
MmVkNTU0NTZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4Tm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4Tm9kZUN1c3RvbS5jcHAKQEAgLTMxLDE0ICszMSwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIk5vZGUuaCIKIAorI2luY2x1ZGUgIkJpbmRpbmdTdGF0ZS5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlNo
YWRvd1Jvb3QuaCIKLQogI2luY2x1ZGUgIlY4QWJzdHJhY3RFdmVudExpc3RlbmVyLmgiCiAjaW5j
bHVkZSAiVjhBdHRyLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jaW5jbHVkZSAiVjhCaW5k
aW5nU3RhdGUuaCIKICNpbmNsdWRlICJWOENEQVRBU2VjdGlvbi5oIgogI2luY2x1ZGUgIlY4Q29t
bWVudC5oIgogI2luY2x1ZGUgIlY4RG9jdW1lbnQuaCIKQEAgLTU0LDEzICs1MywxMiBAQAogI2lu
Y2x1ZGUgIlY4UHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgog
I2luY2x1ZGUgIlY4VGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogI2lmIEVOQUJM
RShTVkcpCiAjaW5jbHVkZSAiVjhTVkdFbGVtZW50LmgiCiAjZW5kaWYKIAotI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBUaGlzIGZ1bmN0aW9uIGlz
IGN1c3RvbWl6ZWQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIG9wdGlvbmFsIDR0aCBhcmd1bWVu
dDogc2hvdWxkTGF6eUF0dGFjaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2MTUyZjQ5MmMwYWE3MzYxMDgwODU2NWJhYmUzMzY1OTU0ZTc1ZWEz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
VjhCaW5kaW5nU3RhdGUuaCIKLQotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiU2NyaXB0
Q29udHJvbGxlci5oIgotI2luY2x1ZGUgIlY4UHJveHkuaCIKLSNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU3RhdGU8VjhCaW5kaW5nPiogU3Rh
dGU8VjhCaW5kaW5nPjo6T25seSgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdGF0ZSwg
Z2xvYmFsVjhCaW5kaW5nU3RhdGUsICgpKTsKLSAgICByZXR1cm4gJmdsb2JhbFY4QmluZGluZ1N0
YXRlOwotfQotCi1ET01XaW5kb3cqIFN0YXRlPFY4QmluZGluZz46OmFjdGl2ZVdpbmRvdygpCi17
Ci0gICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBhY3RpdmVDb250ZXh0ID0gdjg6OkNvbnRleHQ6
OkdldENhbGxpbmcoKTsKLSAgICBpZiAoYWN0aXZlQ29udGV4dC5Jc0VtcHR5KCkpIHsKLSAgICAg
ICAgLy8gVGhlcmUgaXMgYSBzaW5nbGUgYWN0aXZhdGlvbiByZWNvcmQgb24gdGhlIHN0YWNrLCBz
byB0aGF0IG11c3QKLSAgICAgICAgLy8gYmUgdGhlIGFjdGl2ZUNvbnRleHQuCi0gICAgICAgIGFj
dGl2ZUNvbnRleHQgPSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpOwotICAgIH0KLSAgICByZXR1
cm4gVjhQcm94eTo6cmV0cmlldmVXaW5kb3coYWN0aXZlQ29udGV4dCk7Ci19Ci0KLURPTVdpbmRv
dyogU3RhdGU8VjhCaW5kaW5nPjo6Zmlyc3RXaW5kb3coKQotewotICAgIHJldHVybiBWOFByb3h5
OjpyZXRyaWV2ZVdpbmRvdyh2ODo6Q29udGV4dDo6R2V0RW50ZXJlZCgpKTsKLX0KLQotRnJhbWUq
IFN0YXRlPFY4QmluZGluZz46OmFjdGl2ZUZyYW1lKCkKLXsKLSAgICBGcmFtZSogZnJhbWUgPSBW
OFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yQ2FsbGluZ0NvbnRleHQoKTsKLSAgICBpZiAoIWZyYW1l
KSB7Ci0gICAgICAgIC8vIFVuZm9ydHVuYXRlbHksIHdoZW4gcHJvY2Vzc2luZyBzY3JpcHQgZnJv
bSBhIHBsdWctaW4sIHdlIG1pZ2h0IG5vdAotICAgICAgICAvLyBoYXZlIGEgY2FsbGluZyBjb250
ZXh0LiAgSW4gdGhvc2UgY2FzZXMsIHdlIGZhbGwgYmFjayB0byB0aGUKLSAgICAgICAgLy8gZW50
ZXJlZCBjb250ZXh0IGZvciBzZWN1cml0eSBjaGVja3MuCi0gICAgICAgIC8vIEZJWE1FOiBXZSBu
ZWVkIGEgYmV0dGVyIEFQSSBmb3IgcmV0cmlldmluZyBmcmFtZXMgdGhhdCBhYnN0cmFjdHMKLSAg
ICAgICAgLy8gICAgICAgIGF3YXkgdGhpcyBjb25jZXJuLgotICAgICAgICBmcmFtZSA9IFY4UHJv
eHk6OnJldHJpZXZlRnJhbWVGb3JFbnRlcmVkQ29udGV4dCgpOwotICAgIH0KLSAgICByZXR1cm4g
ZnJhbWU7Ci19Ci0KLUZyYW1lKiBTdGF0ZTxWOEJpbmRpbmc+OjpmaXJzdEZyYW1lKCkKLXsKLSAg
ICByZXR1cm4gVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckVudGVyZWRDb250ZXh0KCk7Ci19Ci0K
LXZvaWQgU3RhdGU8VjhCaW5kaW5nPjo6aW1tZWRpYXRlbHlSZXBvcnRVbnNhZmVBY2Nlc3NUbyhG
cmFtZSogdGFyZ2V0KQotewotICAgIFY4UHJveHk6OnJlcG9ydFVuc2FmZUFjY2Vzc1RvKHRhcmdl
dCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzY2RhMTVmNDk5MTY0OWRiOGQ3NTY5NjY4MmFlZDkw
NWM1NmY3NTk2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRl
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBWOEJpbmRpbmdTdGF0ZV9o
Ci0jZGVmaW5lIFY4QmluZGluZ1N0YXRlX2gKLQotI2luY2x1ZGUgIkdlbmVyaWNCaW5kaW5nLmgi
Ci0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
RnJhbWU7Ci0KLS8vIFNpbmdsZXRvbiBpbXBsZW1lbnRhdGlvbiBvZiBTdGF0ZTxWOEJpbmRpbmc+
LiAgVXNlcyBWOCdzIGdsb2JhbCBkYXRhCi0vLyBzdHJ1Y3R1cmVzIHRvIHJldHVybiBpbmZvcm1h
dGlvbiBhYm91dCByZWxldmFudCBleGVjdXRpb24gc3RhdGUuCi10ZW1wbGF0ZSA8PgotY2xhc3Mg
U3RhdGU8VjhCaW5kaW5nPiA6IHB1YmxpYyBTdGF0ZTxHZW5lcmljQmluZGluZz4gewotcHVibGlj
OgotICAgIC8vIFNpbmdsZXRvbgotICAgIHN0YXRpYyBTdGF0ZSogT25seSgpOwotCi0gICAgLy8g
UmVwb3J0cyBhbiBlcnJvciBtZXNzYWdlICh3aXRob3V0IGRlbGF5KSBpZiB0aGUgc2VjdXJpdHkg
Y2hlY2sgZmFpbHMuCi0gICAgc3RhdGljIHZvaWQgaW1tZWRpYXRlbHlSZXBvcnRVbnNhZmVBY2Nl
c3NUbyhGcmFtZSopOwotCi0gICAgRE9NV2luZG93KiBhY3RpdmVXaW5kb3coKTsKLSAgICBET01X
aW5kb3cqIGZpcnN0V2luZG93KCk7Ci0KLSAgICBGcmFtZSogYWN0aXZlRnJhbWUoKTsKLSAgICBG
cmFtZSogZmlyc3RGcmFtZSgpOwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFN0YXRlKCkge30K
LSAgICB+U3RhdGUoKTsKLX07Ci0KLXR5cGVkZWYgU3RhdGU8VjhCaW5kaW5nPiBWOEJpbmRpbmdT
dGF0ZTsKLQotfQotCi0jZW5kaWYgLy8gVjhCaW5kaW5nU3RhdGVfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQmluZGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViQmluZGluZ3MuY3BwCmluZGV4IDkyNmRiM2IxMTFjZmU1NzVlNGM4M2E2
YjA1MGQxOGI4MzVlMjcyYjguLmFiMTEzZTRkYTkwZDk3MmQzZWU1OTAxN2Y3YjRlZmY5YTllZTRk
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkJpbmRpbmdzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJCaW5kaW5ncy5jcHAKQEAgLTM1
LDE4ICszNSwxOSBAQAogI2luY2x1ZGUgIm5wcnVudGltZV9wcml2LmgiCiAKICNpZiBVU0UoVjgp
Ci0jaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5oPgorI2luY2x1ZGUgIkJpbmRpbmdTdGF0
ZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIk5QVjhPYmplY3QuaCIgIC8v
IGZvciBQcml2YXRlSWRlbnRpZmllcgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiVjhB
cnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIlY4QXJyYXlCdWZmZXJWaWV3LmgiCi0jaW5jbHVkZSAi
VjhCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJW
OEVsZW1lbnQuaCIKICNpbmNsdWRlICJWOE5QVXRpbHMuaCIKICNpbmNsdWRlICJWOFByb3h5Lmgi
CiAjaW5jbHVkZSAiVjhSYW5nZS5oIgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlclZpZXcuaD4K
Ky8vIEZJWE1FOiBSZW1vdmUgdGhlIFVTRShKU0MpIGlmZGVmcyBiZWNhdXNlIHdlIGRvbid0IHN1
cHBvcnQgVVNFKEpTQykgYW55bW9yZS4KICNlbGlmIFVTRShKU0MpCiAjaW5jbHVkZSAiYnJpZGdl
L2MvY191dGlsaXR5LmgiCiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>