<?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>96268</bug_id>
          
          <creation_ts>2012-09-10 06:15:48 -0700</creation_ts>
          <short_desc>[chromium] MediaStream API: Remove the Descriptor postfix</short_desc>
          <delta_ts>2012-09-10 08:50:30 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>80589</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tommy Widenflycht">tommyw</reporter>
          <assigned_to name="Tommy Widenflycht">tommyw</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>716007</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-10 06:15:48 -0700</bug_when>
    <thetext>After consideration I realized that there is no need whatsoever in using the Descriptor prefix in the WekKit embedder API.
Remove from WebRTCSessionDescription and WebRTCICECandidate to start with.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716010</commentid>
    <comment_count>1</comment_count>
      <attachid>163111</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-10 06:21:37 -0700</bug_when>
    <thetext>Created attachment 163111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716012</commentid>
    <comment_count>2</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-10 06:22:19 -0700</bug_when>
    <thetext>No code changes except for the two renames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716015</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-10 06:24:51 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716117</commentid>
    <comment_count>4</comment_count>
      <attachid>163111</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-10 08:41:19 -0700</bug_when>
    <thetext>Comment on attachment 163111
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716127</commentid>
    <comment_count>5</comment_count>
      <attachid>163111</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-10 08:50:27 -0700</bug_when>
    <thetext>Comment on attachment 163111
Patch

Clearing flags on attachment: 163111

Committed r128064: &lt;http://trac.webkit.org/changeset/128064&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716128</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-10 08:50:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163111</attachid>
            <date>2012-09-10 06:21:37 -0700</date>
            <delta_ts>2012-09-10 08:50:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96268-20120910152112.patch</filename>
            <type>text/plain</type>
            <size>52274</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAxZmQ0NzhhZWVlYjQ0
ZTMzNTNiNTJlNjNiYTU4OGNjOWY5MGFlNjM2Li43OTE1OTk5ZmFjOWNkMjZkM2Y5ZTUyZThjNWVk
YzNhZjJhNjdlYzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMi0wOS0xMCAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21p
dW1dIE1lZGlhU3RyZWFtIEFQSTogUmVtb3ZlIHRoZSBEZXNjcmlwdG9yIHBvc3RmaXgKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MjY4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgY29uc2lkZXJh
dGlvbiBJIHJlYWxpemVkIHRoYXQgdGhlcmUgaXMgbm8gbmVlZCB3aGF0c29ldmVyIGluIHVzaW5n
IHRoZSBEZXNjcmlwdG9yIHByZWZpeAorICAgICAgICBpbiB0aGUgV2VrS2l0IGVtYmVkZGVyIEFQ
SS4gUmVtb3ZlZCBmcm9tIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBhbmQgV2ViUlRDSUNFQ2Fu
ZGlkYXRlIHRvIHN0YXJ0IHdpdGguCisKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYlJUQ0lDRUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJUQ0lDRUNhbmRpZGF0ZTo6V2ViUlRDSUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUlRDSUNFQ2FuZGlkYXRlOjp+V2ViUlRDSUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUlRDSUNFQ2FuZGlkYXRlOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViS2l0OjpXZWJS
VENJQ0VDYW5kaWRhdGU6OmlzTnVsbCk6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdl
YlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dl
YlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCk6CisgICAgICAgICogY2hy
b21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJSVENTZXNzaW9uRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTZXNz
aW9uRGVzY3JpcHRpb246OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6fldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6b3BlcmF0b3I9KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjppc051bGwpOgorICAg
ICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdCk6CisKIDIwMTItMDktMDkgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbY2hyb21pdW1dIEV4cG9ydCBXZWJGaWx0ZXJPcGVyYXRpb24oRmlsdGVy
VHlwZSwgU2tTY2FsYXJbMjBdKSBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZhMjQ5MTNjODg1
MzVjZDkxN2IwMDJjOWE3ZTQ4MzYwMTczYTg4NTUuLjEwY2I4MDM3NGVkODUzYmU0NzJhNWJmZTQ0
YTQ2ZGQ5NzRmNDQ2MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMi0wOS0xMCAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21p
dW1dIE1lZGlhU3RyZWFtIEFQSTogUmVtb3ZlIHRoZSBEZXNjcmlwdG9yIHBvc3RmaXgKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MjY4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgY29uc2lkZXJh
dGlvbiBJIHJlYWxpemVkIHRoYXQgdGhlcmUgaXMgbm8gbmVlZCB3aGF0c29ldmVyIGluIHVzaW5n
IHRoZSBEZXNjcmlwdG9yIHByZWZpeAorICAgICAgICBpbiB0aGUgV2VrS2l0IGVtYmVkZGVyIEFQ
SS4gUmVtb3ZlZCBmcm9tIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBhbmQgV2ViUlRDSUNFQ2Fu
ZGlkYXRlIHRvIHN0YXJ0IHdpdGguCisKKyAgICAgICAgTm8gY29kZSBjaGFuZ2VzIHRoYXQgYWZm
ZWN0cyBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDSUNFQ2FuZGlkYXRlLmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDSUNF
Q2FuZGlkYXRlRGVzY3JpcHRvci5jcHAuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSVENJQ0VDYW5kaWRhdGU6OldlYlJUQ0lDRUNhbmRpZGF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJUQ0lDRUNhbmRpZGF0ZTo6YXNzaWduKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UlRDSUNFQ2FuZGlkYXRlOjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ0lDRUNhbmRp
ZGF0ZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ0lDRUNhbmRpZGF0ZTo6
b3BlcmF0b3IgUGFzc1JlZlB0cjxXZWJDb3JlOjpSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPik6
CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ0lDRUNhbmRpZGF0ZTo6Y2FuZGlkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUlRDSUNFQ2FuZGlkYXRlOjpzZHBNaWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSVENJQ0VDYW5kaWRhdGU6OnNkcE1MaW5lSW5kZXgpOgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb246OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6YXNzaWduKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpyZXNldCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6b3BlcmF0b3IgV1RGOjpQYXNz
UmVmUHRyPFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjppbml0aWFsaXplKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjp0eXBlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpzZXRUeXBlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpzZHApOgorICAgICAgICAoV2ViS2l0OjpXZWJS
VENTZXNzaW9uRGVzY3JpcHRpb246OnNldFNEUCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vc3VwcG9ydC9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6cmVxdWVzdFN1Y2NlZWRl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2hyb21pdW06OmRpZEdlbmVyYXRlSUNFQ2FuZGlkYXRlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
aHJvbWl1bS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNocm9taXVtKToKKwogMjAxMi0wOS0xMCAgS2V2aW4gRnVuayAgPGtldmluLmZ1bmtA
a2RhYi5jb20+CiAKICAgICAgICAgUmVwbGFjZSBjYWxscyB0byBRU3RyaW5nOjpmcm9tQXNjaWkg
d2hpY2ggaXMgZGVwcmVjYXRlZCBpbiBRdDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9Q
bGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKaW5kZXggNmZhMzk0
ZWM5OWJlYWJlNzY2ODAyZmEzMzVhYWVjYmUwNmMyNTRmZS4uOTUwZDE1YzU5MWYwNDhlM2YwNjBl
NDk0MGE0Y2EwOGY0YjVkNTk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL1BsYXRmb3Jt
Lmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKQEAgLTEwNSwxMCArMTA1
LDEwIEBACiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlByaXZhdGVPd25QdHIuaCcs
CiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlByaXZhdGVQdHIuaCcsCiAgICAgICAg
ICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ0NvbmZpZ3VyYXRpb24uaCcsCi0gICAgICAgICAg
ICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3IuaCcsCisgICAg
ICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ0lDRUNhbmRpZGF0ZS5oJywKICAgICAgICAg
ICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgnLAogICAg
ICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGll
bnQuaCcsCi0gICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IuaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nl
c3Npb25EZXNjcmlwdGlvbi5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJs
aWMvV2ViUlRDVm9pZFJlcXVlc3QuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dl
YlJlY3QuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YlJUQ0lDRUNhbmRpZGF0ZS5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJS
VENJQ0VDYW5kaWRhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjcyZjQwNWJlZWU1YjhkYmI3NWIwNTAyYTUz
MWVjY2M2NmUzODUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVt
L3B1YmxpYy9XZWJSVENJQ0VDYW5kaWRhdGUuaApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJS
VENJQ0VDYW5kaWRhdGVfaAorI2RlZmluZSBXZWJSVENJQ0VDYW5kaWRhdGVfaAorCisjaW5jbHVk
ZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViUHJpdmF0ZVB0ci5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU3RyaW5nOworCitjbGFzcyBXZWJSVENJQ0VDYW5kaWRh
dGUgeworcHVibGljOgorICAgIFdlYlJUQ0lDRUNhbmRpZGF0ZSgpIHsgfQorICAgIFdlYlJUQ0lD
RUNhbmRpZGF0ZShjb25zdCBXZWJSVENJQ0VDYW5kaWRhdGUmIG90aGVyKSB7IGFzc2lnbihvdGhl
cik7IH0KKyAgICB+V2ViUlRDSUNFQ2FuZGlkYXRlKCkgeyByZXNldCgpOyB9CisKKyAgICBXZWJS
VENJQ0VDYW5kaWRhdGUmIG9wZXJhdG9yPShjb25zdCBXZWJSVENJQ0VDYW5kaWRhdGUmIG90aGVy
KQorICAgIHsKKyAgICAgICAgYXNzaWduKG90aGVyKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOwor
ICAgIH0KKworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViUlRDSUNFQ2Fu
ZGlkYXRlJik7CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJT
dHJpbmcmIGNhbmRpZGF0ZSwgY29uc3QgV2ViU3RyaW5nJiBzZHBNaWQsIHVuc2lnbmVkIHNob3J0
IHNkcE1MaW5lSW5kZXgpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworICAgIGJv
b2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlLmlzTnVsbCgpOyB9CisKKyAgICBX
RUJLSVRfRVhQT1JUIFdlYlN0cmluZyBjYW5kaWRhdGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQ
T1JUIFdlYlN0cmluZyBzZHBNaWQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHVuc2lnbmVk
IHNob3J0IHNkcE1MaW5lSW5kZXgoKSBjb25zdDsKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElP
TgorICAgIFdlYlJUQ0lDRUNhbmRpZGF0ZShXZWJDb3JlOjpSVENJY2VDYW5kaWRhdGVEZXNjcmlw
dG9yKik7CisgICAgV2ViUlRDSUNFQ2FuZGlkYXRlKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpS
VENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPik7CisKKyAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQ
dHI8V2ViQ29yZTo6UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4oKSBjb25zdDsKKyNlbmRpZgor
Citwcml2YXRlOgorICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6UlRDSWNlQ2FuZGlkYXRlRGVz
Y3JpcHRvcj4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBXZWJSVENJQ0VDYW5kaWRhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJSVENJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3IuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjA5N2MxMzVlMGUwYjYxMmEyMDg5YmU0M2IxMTM0
YzIyNGE4ZTJiMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ0lDRUNhbmRpZGF0ZURlc2Ny
aXB0b3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlJUQ0lDRUNh
bmRpZGF0ZURlc2NyaXB0b3JfaAotI2RlZmluZSBXZWJSVENJQ0VDYW5kaWRhdGVEZXNjcmlwdG9y
X2gKLQotI2luY2x1ZGUgIldlYkNvbW1vbi5oIgotI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjsK
LX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlN0cmluZzsKLQotY2xhc3MgV2Vi
UlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvciB7Ci1wdWJsaWM6Ci0gICAgV2ViUlRDSUNFQ2FuZGlk
YXRlRGVzY3JpcHRvcigpIHsgfQotICAgIFdlYlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3IoY29u
c3QgV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvciYgb3RoZXIpIHsgYXNzaWduKG90aGVyKTsg
fQotICAgIH5XZWJSVENJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yKCkgeyByZXNldCgpOyB9Ci0KLSAg
ICBXZWJSVENJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yJiBvcGVyYXRvcj0oY29uc3QgV2ViUlRDSUNF
Q2FuZGlkYXRlRGVzY3JpcHRvciYgb3RoZXIpCi0gICAgewotICAgICAgICBhc3NpZ24ob3RoZXIp
OwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgV0VCS0lUX0VYUE9SVCB2b2lk
IGFzc2lnbihjb25zdCBXZWJSVENJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yJik7Ci0KLSAgICBXRUJL
SVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJTdHJpbmcmIGNhbmRpZGF0ZSwgY29u
c3QgV2ViU3RyaW5nJiBzZHBNaWQsIHVuc2lnbmVkIHNob3J0IHNkcE1MaW5lSW5kZXgpOwotICAg
IFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwotICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyBy
ZXR1cm4gbV9wcml2YXRlLmlzTnVsbCgpOyB9Ci0KLSAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmlu
ZyBjYW5kaWRhdGUoKSBjb25zdDsKLSAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBzZHBNaWQo
KSBjb25zdDsKLSAgICBXRUJLSVRfRVhQT1JUIHVuc2lnbmVkIHNob3J0IHNkcE1MaW5lSW5kZXgo
KSBjb25zdDsKLQotI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgotICAgIFdlYlJUQ0lDRUNhbmRp
ZGF0ZURlc2NyaXB0b3IoV2ViQ29yZTo6UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciopOwotICAg
IFdlYlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3IoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJU
Q0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KTsKLQotICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPigpIGNvbnN0OwotI2VuZGlmCi0K
LXByaXZhdGU6Ci0gICAgV2ViUHJpdmF0ZVB0cjxXZWJDb3JlOjpSVENJY2VDYW5kaWRhdGVEZXNj
cmlwdG9yPiBtX3ByaXZhdGU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlm
IC8vIFdlYlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBiL1Nv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmgKaW5kZXggOWE2ZWE5MTcyMzg5YWVjMDFkY2EyMWYzOWEzN2ZkMTllMDhjOTMzMi4uODIzNDY2
YTUyZTcxYWEzODMwNGMxNjU4ZmViODdjZDgwOGQ2NTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAorKysg
Yi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlci5oCkBAIC0zNSw5ICszNSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViTWVk
aWFDb25zdHJhaW50czsKIGNsYXNzIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIGNsYXNzIFdl
YlJUQ0NvbmZpZ3VyYXRpb247Ci1jbGFzcyBXZWJSVENJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yOwor
Y2xhc3MgV2ViUlRDSUNFQ2FuZGlkYXRlOwogY2xhc3MgV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyQ2xpZW50OwotY2xhc3MgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjsKK2Ns
YXNzIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbjsKIGNsYXNzIFdlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3Q7CiBjbGFzcyBXZWJSVENWb2lkUmVxdWVzdDsKIApAQCAtNDksMTIgKzQ5LDEy
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPZmZlcihjb25zdCBXZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiwgY29uc3QgV2ViTWVkaWFDb25zdHJhaW50cyYpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQW5zd2VyKGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3QmLCBjb25zdCBXZWJNZWRpYUNvbnN0cmFpbnRzJikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBzZXRMb2NhbERlc2NyaXB0aW9uKGNvbnN0IFdlYlJUQ1ZvaWRSZXF1ZXN0Jiwg
Y29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciYpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRpb24oY29uc3QgV2ViUlRDVm9pZFJlcXVlc3QmLCBj
b25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yJikgPSAwOwotICAgIHZpcnR1
YWwgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciBsb2NhbERlc2NyaXB0aW9uKCkg
PSAwOwotICAgIHZpcnR1YWwgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciByZW1v
dGVEZXNjcmlwdGlvbigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxEZXNjcmlwdGlv
bihjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYsIGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
biYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRpb24oY29uc3QgV2Vi
UlRDVm9pZFJlcXVlc3QmLCBjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb24mKSA9IDA7Cisg
ICAgdmlydHVhbCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb24gbG9jYWxEZXNjcmlwdGlvbigpID0g
MDsKKyAgICB2aXJ0dWFsIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbiByZW1vdGVEZXNjcmlwdGlv
bigpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlSUNFKGNvbnN0IFdlYlJUQ0NvbmZpZ3Vy
YXRpb24mLCBjb25zdCBXZWJNZWRpYUNvbnN0cmFpbnRzJikgPSAwOwotICAgIHZpcnR1YWwgYm9v
bCBhZGRJQ0VDYW5kaWRhdGUoY29uc3QgV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvciYpID0g
MDsKKyAgICB2aXJ0dWFsIGJvb2wgYWRkSUNFQ2FuZGlkYXRlKGNvbnN0IFdlYlJUQ0lDRUNhbmRp
ZGF0ZSYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3Ry
ZWFtRGVzY3JpcHRvciYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZVN0cmVhbShjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5o
IGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDbGllbnQuaAppbmRleCBjM2RiYjUxNzA2YzZhYzYzOGE5MjU4OWIzMjczMTRjYzRlY2Yx
MDc0Li44MTU5ODFkODdlNjFkM2U2OTQ5OWVjYjEzMGY3YjQ2NTRlY2QzZmJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNsaWVudC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmgKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiBjbGFzcyBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3I7Ci1jbGFzcyBXZWJS
VENJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yOworY2xhc3MgV2ViUlRDSUNFQ2FuZGlkYXRlOwogCiBj
bGFzcyBXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQgewogcHVibGljOgpAQCAtNTgs
NyArNTgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5XZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDbGllbnQoKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkaWRHZW5lcmF0ZUlDRUNhbmRp
ZGF0ZShjb25zdCBXZWJSVENJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yJikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBkaWRHZW5lcmF0ZUlDRUNhbmRpZGF0ZShjb25zdCBXZWJSVENJQ0VDYW5kaWRhdGUm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVJlYWR5U3RhdGUoUmVhZHlTdGF0ZSkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VJQ0VTdGF0ZShJQ0VTdGF0ZSkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRSZW1vdGVTdHJlYW0oY29uc3QgV2ViTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1
YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb24uaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWExZjFlNDVl
MGZiYmEzMjI3MmU2MTIzYTkzNTA2OGM2Nzg4NjUxYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmgKQEAg
LTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uX2gKKyNkZWZpbmUg
V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uX2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2lu
Y2x1ZGUgIldlYk5vbkNvcHlhYmxlLmgiCisjaW5jbHVkZSAiV2ViUHJpdmF0ZVB0ci5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlN0cmluZzsKKworLy8gIEluIG9y
ZGVyIHRvIGVzdGFibGlzaCB0aGUgbWVkaWEgcGxhbmUsIFBlZXJDb25uZWN0aW9uIG5lZWRzIHNw
ZWNpZmljCisvLyAgcGFyYW1ldGVycyB0byBpbmRpY2F0ZSB3aGF0IHRvIHRyYW5zbWl0IHRvIHRo
ZSByZW1vdGUgc2lkZSwgYXMgd2VsbAorLy8gIGFzIGhvdyB0byBoYW5kbGUgdGhlIG1lZGlhIHRo
YXQgaXMgcmVjZWl2ZWQuIFRoZXNlIHBhcmFtZXRlcnMgYXJlCisvLyAgZGV0ZXJtaW5lZCBieSB0
aGUgZXhjaGFuZ2Ugb2Ygc2Vzc2lvbiBkZXNjcmlwdGlvbnMgaW4gb2ZmZXJzIGFuZAorLy8gIGFu
c3dlcnMsIGFuZCB0aGVyZSBhcmUgY2VydGFpbiBkZXRhaWxzIHRvIHRoaXMgcHJvY2VzcyB0aGF0
IG11c3QgYmUKKy8vICBoYW5kbGVkIGluIHRoZSBKU0VQIEFQSXMuCisvLworLy8gIFdoZXRoZXIg
YSBzZXNzaW9uIGRlc2NyaXB0aW9uIHdhcyBzZW50IG9yIHJlY2VpdmVkIGFmZmVjdHMgdGhlCisv
LyAgbWVhbmluZyBvZiB0aGF0IGRlc2NyaXB0aW9uLiBGb3IgZXhhbXBsZSwgdGhlIGxpc3Qgb2Yg
Y29kZWNzIHNlbnQgdG8KKy8vICBhIHJlbW90ZSBwYXJ0eSBpbmRpY2F0ZXMgd2hhdCB0aGUgbG9j
YWwgc2lkZSBpcyB3aWxsaW5nIHRvIGRlY29kZSwKKy8vICBhbmQgd2hhdCB0aGUgcmVtb3RlIHBh
cnR5IHNob3VsZCBzZW5kLgorCitjbGFzcyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb24geworcHVi
bGljOgorICAgIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbigpIHsgfQorICAgIFdlYlJUQ1Nlc3Np
b25EZXNjcmlwdGlvbihjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb24mIG90aGVyKSB7IGFz
c2lnbihvdGhlcik7IH0KKyAgICB+V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKCkgeyByZXNldCgp
OyB9CisKKyAgICBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb24mIG9wZXJhdG9yPShjb25zdCBXZWJS
VENTZXNzaW9uRGVzY3JpcHRpb24mIG90aGVyKQorICAgIHsKKyAgICAgICAgYXNzaWduKG90aGVy
KTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCBhc3NpZ24oY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJik7CisKKyAgICBXRUJLSVRf
RVhQT1JUIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJTdHJpbmcmIHR5cGUsIGNvbnN0IFdlYlN0
cmluZyYgc2RwKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKKyAgICBib29sIGlz
TnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5pc051bGwoKTsgfQorCisgICAgV0VCS0lU
X0VYUE9SVCBXZWJTdHJpbmcgdHlwZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBz
ZXRUeXBlKGNvbnN0IFdlYlN0cmluZyYpOworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHNk
cCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRTRFAoY29uc3QgV2ViU3RyaW5n
Jik7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJSVENTZXNzaW9uRGVzY3Jp
cHRpb24oY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3I+Jik7CisKKyAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4oKSBjb25zdDsKKyNlbmRpZgorCitwcml2
YXRlOgorICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvcj4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgg
Yi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3IuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzc0NjBlMGE0N2Vi
MWU3MmNiNzM1ZmJlZjEwMTBlMzg4YWVhYjUxMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDkzICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAq
Ci0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3JfaAotI2RlZmlu
ZSBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yX2gKLQotI2luY2x1ZGUgIldlYkNv
bW1vbi5oIgotI2luY2x1ZGUgIldlYk5vbkNvcHlhYmxlLmgiCi0jaW5jbHVkZSAiV2ViUHJpdmF0
ZVB0ci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYlN0cmluZzsK
LQotLy8gIEluIG9yZGVyIHRvIGVzdGFibGlzaCB0aGUgbWVkaWEgcGxhbmUsIFBlZXJDb25uZWN0
aW9uIG5lZWRzIHNwZWNpZmljCi0vLyAgcGFyYW1ldGVycyB0byBpbmRpY2F0ZSB3aGF0IHRvIHRy
YW5zbWl0IHRvIHRoZSByZW1vdGUgc2lkZSwgYXMgd2VsbAotLy8gIGFzIGhvdyB0byBoYW5kbGUg
dGhlIG1lZGlhIHRoYXQgaXMgcmVjZWl2ZWQuIFRoZXNlIHBhcmFtZXRlcnMgYXJlCi0vLyAgZGV0
ZXJtaW5lZCBieSB0aGUgZXhjaGFuZ2Ugb2Ygc2Vzc2lvbiBkZXNjcmlwdGlvbnMgaW4gb2ZmZXJz
IGFuZAotLy8gIGFuc3dlcnMsIGFuZCB0aGVyZSBhcmUgY2VydGFpbiBkZXRhaWxzIHRvIHRoaXMg
cHJvY2VzcyB0aGF0IG11c3QgYmUKLS8vICBoYW5kbGVkIGluIHRoZSBKU0VQIEFQSXMuCi0vLwot
Ly8gIFdoZXRoZXIgYSBzZXNzaW9uIGRlc2NyaXB0aW9uIHdhcyBzZW50IG9yIHJlY2VpdmVkIGFm
ZmVjdHMgdGhlCi0vLyAgbWVhbmluZyBvZiB0aGF0IGRlc2NyaXB0aW9uLiBGb3IgZXhhbXBsZSwg
dGhlIGxpc3Qgb2YgY29kZWNzIHNlbnQgdG8KLS8vICBhIHJlbW90ZSBwYXJ0eSBpbmRpY2F0ZXMg
d2hhdCB0aGUgbG9jYWwgc2lkZSBpcyB3aWxsaW5nIHRvIGRlY29kZSwKLS8vICBhbmQgd2hhdCB0
aGUgcmVtb3RlIHBhcnR5IHNob3VsZCBzZW5kLgotCi0vLyBGSVhNRTogSW52ZW50IGxlc3MgY29u
dm9sdXRlZCBuYW1lLgotY2xhc3MgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciB7
Ci1wdWJsaWM6Ci0gICAgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcigpIHsgfQot
ICAgIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IoY29uc3QgV2ViUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uRGVzY3JpcHRvciYgb3RoZXIpIHsgYXNzaWduKG90aGVyKTsgfQotICAgIH5X
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKCkgeyByZXNldCgpOyB9Ci0KLSAgICBX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yJiBvcGVyYXRvcj0oY29uc3QgV2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciYgb3RoZXIpCi0gICAgewotICAgICAgICBhc3Np
Z24ob3RoZXIpOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgV0VCS0lUX0VY
UE9SVCB2b2lkIGFzc2lnbihjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
Jik7Ci0KLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJTdHJpbmcm
IHR5cGUsIGNvbnN0IFdlYlN0cmluZyYgc2RwKTsKLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVz
ZXQoKTsKLSAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5pc051bGwo
KTsgfQotCi0gICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgdHlwZSgpIGNvbnN0OwotICAgIFdF
QktJVF9FWFBPUlQgdm9pZCBzZXRUeXBlKGNvbnN0IFdlYlN0cmluZyYpOwotICAgIFdFQktJVF9F
WFBPUlQgV2ViU3RyaW5nIHNkcCgpIGNvbnN0OwotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRT
RFAoY29uc3QgV2ViU3RyaW5nJik7Ci0KLSNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KLSAgICBX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiYpOwotCi0gICAgb3BlcmF0
b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3I+KCkgY29uc3Q7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBXZWJQcml2YXRlUHRyPFdlYkNv
cmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IG1fcHJpdmF0ZTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
RGVzY3JpcHRvcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJv
bWl1bS9wdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oCmluZGV4IDM5YjRl
MTM4MDljMDQyYWMxMGIxYjNkNzQyYjY5MTI5YTI1ZWY5ZTQuLmRjNjM1NjVkNzZlMTFjOTYwZGY3
NmViYzM2NjBhMWFkYTQ1NmVhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5o
CkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q7CiB9
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvcjsKK2NsYXNzIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbjsKIAogY2xhc3MgV2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCB7CiBwdWJsaWM6CkBAIC02NSw3ICs2NSw3IEBAIHB1
YmxpYzoKICAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKICAgICBib29sIGlzTnVsbCgp
IGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5pc051bGwoKTsgfQogCi0gICAgV0VCS0lUX0VYUE9S
VCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvciYpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXF1ZXN0U3VjY2VlZGVk
KGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYpIGNvbnN0OwogICAgIFdFQktJVF9FWFBP
UlQgdm9pZCByZXF1ZXN0RmFpbGVkKGNvbnN0IFdlYlN0cmluZyYgZXJyb3IpIGNvbnN0OwogCiAg
ICAgLy8gRXh0cmEgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyBvYmplY3QuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggOGNlOGU3Y2MyMzU1NDQ5MGRhNmZjN2E0MzhiODMxNTAxYTBhYzAyNC4uMDMyMzdm
NmZjMmZhODBkYWExZGE1MDRjNWQ5MWFjMDRmOTQzZmQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAt
ODM2MSw4ICs4MzYxLDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYk1lZGlhU3RyZWFtU291cmNlc1JlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9jaHJvbWl1bS9zdXBwb3J0L1dlYlByZXJlbmRlci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDQ29uZmlndXJhdGlvbi5jcHAnLAotICAgICAgICAg
ICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRv
ci5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2No
cm9taXVtL3N1cHBvcnQvV2ViUlRDSUNFQ2FuZGlkYXRlLmNwcCcsCisgICAgICAgICAgICAncGxh
dGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYlJUQ1ZvaWRSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0v
c3VwcG9ydC9XZWJTY3JvbGxiYXJUaGVtZUdlb21ldHJ5TmF0aXZlLmNwcCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ0lDRUNhbmRp
ZGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJU
Q0lDRUNhbmRpZGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjYxOWJiZmE3Yzk0YmFjNTI4NzYzMDNjZGFj
YTdmOGFlZGMzNmQ2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDSUNFQ2FuZGlkYXRlLmNwcApAQCAtMCwwICsxLDk1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1
ZGUgPHB1YmxpYy9XZWJSVENJQ0VDYW5kaWRhdGUuaD4KKworI2luY2x1ZGUgIlJUQ0ljZUNhbmRp
ZGF0ZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlIDxwdWJsaWMvV2ViU3RyaW5nLmg+CisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViUlRDSUNFQ2Fu
ZGlkYXRlOjpXZWJSVENJQ0VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciogaWNl
Q2FuZGlkYXRlKQorICAgIDogbV9wcml2YXRlKGljZUNhbmRpZGF0ZSkKK3sKK30KKworV2ViUlRD
SUNFQ2FuZGlkYXRlOjpXZWJSVENJQ0VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yPiBpY2VDYW5kaWRhdGUpCisgICAgOiBtX3ByaXZhdGUoaWNlQ2FuZGlkYXRl
KQoreworfQorCit2b2lkIFdlYlJUQ0lDRUNhbmRpZGF0ZTo6YXNzaWduKGNvbnN0IFdlYlJUQ0lD
RUNhbmRpZGF0ZSYgb3RoZXIpCit7CisgICAgbV9wcml2YXRlID0gb3RoZXIubV9wcml2YXRlOwor
fQorCit2b2lkIFdlYlJUQ0lDRUNhbmRpZGF0ZTo6cmVzZXQoKQoreworICAgIG1fcHJpdmF0ZS5y
ZXNldCgpOworfQorCit2b2lkIFdlYlJUQ0lDRUNhbmRpZGF0ZTo6aW5pdGlhbGl6ZShjb25zdCBX
ZWJTdHJpbmcmIGNhbmRpZGF0ZSwgY29uc3QgV2ViU3RyaW5nJiBzZHBNaWQsIHVuc2lnbmVkIHNo
b3J0IHNkcE1MaW5lSW5kZXgpCit7CisgICAgbV9wcml2YXRlID0gUlRDSWNlQ2FuZGlkYXRlRGVz
Y3JpcHRvcjo6Y3JlYXRlKGNhbmRpZGF0ZSwgc2RwTWlkLCBzZHBNTGluZUluZGV4KTsKK30KKwor
V2ViUlRDSUNFQ2FuZGlkYXRlOjpvcGVyYXRvciBQYXNzUmVmUHRyPFdlYkNvcmU6OlJUQ0ljZUNh
bmRpZGF0ZURlc2NyaXB0b3I+KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgp
OworfQorCitXZWJTdHJpbmcgV2ViUlRDSUNFQ2FuZGlkYXRlOjpjYW5kaWRhdGUoKSBjb25zdAor
eworICAgIEFTU0VSVCghbV9wcml2YXRlLmlzTnVsbCgpKTsKKyAgICByZXR1cm4gbV9wcml2YXRl
LT5jYW5kaWRhdGUoKTsKK30KKworV2ViU3RyaW5nIFdlYlJUQ0lDRUNhbmRpZGF0ZTo6c2RwTWlk
KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7CisgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+c2RwTWlkKCk7Cit9CisKK3Vuc2lnbmVkIHNob3J0IFdlYlJUQ0lDRUNhbmRp
ZGF0ZTo6c2RwTUxpbmVJbmRleCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNO
dWxsKCkpOworICAgIHJldHVybiBtX3ByaXZhdGUtPnNkcE1MaW5lSW5kZXgoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJU
Q0lDRUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vc3VwcG9ydC9XZWJSVENJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzIyNGIxZDdiNzkxODZjZTAwMWUwYThmZGQwMDU0Mzg5Zjk0
OGFjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ0lDRUNhbmRpZGF0ZURl
c2NyaXB0b3IuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRp
b24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0g
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlIDxwdWJsaWMvV2Vi
UlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvci5oPgotCi0jaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRl
RGVzY3JpcHRvci5oIgotI2luY2x1ZGUgPHB1YmxpYy9XZWJTdHJpbmcuaD4KLQotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJSVENJQ0VDYW5kaWRh
dGVEZXNjcmlwdG9yOjpXZWJSVENJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yKFJUQ0ljZUNhbmRpZGF0
ZURlc2NyaXB0b3IqIGljZUNhbmRpZGF0ZSkKLSAgICA6IG1fcHJpdmF0ZShpY2VDYW5kaWRhdGUp
Ci17Ci19Ci0KLVdlYlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3I6OldlYlJUQ0lDRUNhbmRpZGF0
ZURlc2NyaXB0b3IoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiBpY2VDYW5k
aWRhdGUpCi0gICAgOiBtX3ByaXZhdGUoaWNlQ2FuZGlkYXRlKQotewotfQotCi12b2lkIFdlYlJU
Q0lDRUNhbmRpZGF0ZURlc2NyaXB0b3I6OmFzc2lnbihjb25zdCBXZWJSVENJQ0VDYW5kaWRhdGVE
ZXNjcmlwdG9yJiBvdGhlcikKLXsKLSAgICBtX3ByaXZhdGUgPSBvdGhlci5tX3ByaXZhdGU7Ci19
Ci0KLXZvaWQgV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvcjo6cmVzZXQoKQotewotICAgIG1f
cHJpdmF0ZS5yZXNldCgpOwotfQotCi12b2lkIFdlYlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3I6
OmluaXRpYWxpemUoY29uc3QgV2ViU3RyaW5nJiBjYW5kaWRhdGUsIGNvbnN0IFdlYlN0cmluZyYg
c2RwTWlkLCB1bnNpZ25lZCBzaG9ydCBzZHBNTGluZUluZGV4KQotewotICAgIG1fcHJpdmF0ZSA9
IFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I6OmNyZWF0ZShjYW5kaWRhdGUsIHNkcE1pZCwgc2Rw
TUxpbmVJbmRleCk7Ci19Ci0KLVdlYlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3I6Om9wZXJhdG9y
IFBhc3NSZWZQdHI8V2ViQ29yZTo6UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4oKSBjb25zdAot
ewotICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7Ci19Ci0KLVdlYlN0cmluZyBXZWJSVENJQ0VD
YW5kaWRhdGVEZXNjcmlwdG9yOjpjYW5kaWRhdGUoKSBjb25zdAotewotICAgIEFTU0VSVCghbV9w
cml2YXRlLmlzTnVsbCgpKTsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5jYW5kaWRhdGUoKTsKLX0K
LQotV2ViU3RyaW5nIFdlYlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3I6OnNkcE1pZCgpIGNvbnN0
Ci17Ci0gICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOwotICAgIHJldHVybiBtX3ByaXZh
dGUtPnNkcE1pZCgpOwotfQotCi11bnNpZ25lZCBzaG9ydCBXZWJSVENJQ0VDYW5kaWRhdGVEZXNj
cmlwdG9yOjpzZHBNTGluZUluZGV4KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoIW1fcHJpdmF0ZS5p
c051bGwoKSk7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2RwTUxpbmVJbmRleCgpOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTc3
Nzk3ODAyMzBiY2YzYjI1YmRmYjBlM2YwYjY1ZjBlYmM4Y2IzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb24uY3BwCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNj
cmlwdGlvbi5oPgorCisjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5o
IgorI2luY2x1ZGUgPHB1YmxpYy9XZWJTdHJpbmcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJSVENTZXNzaW9uRGVzY3JpcHRpb246Oldl
YlJUQ1Nlc3Npb25EZXNjcmlwdGlvbihjb25zdCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3I+JiBzZXNzaW9uRGVzY3JpcHRpb24pCisgICAgOiBtX3ByaXZhdGUoc2Vz
c2lvbkRlc2NyaXB0aW9uKQoreworfQorCit2b2lkIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6
YXNzaWduKGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYgb3RoZXIpCit7CisgICAgbV9w
cml2YXRlID0gb3RoZXIubV9wcml2YXRlOworfQorCit2b2lkIFdlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbjo6cmVzZXQoKQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgpOworfQorCitXZWJSVENTZXNz
aW9uRGVzY3JpcHRpb246Om9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSVENTZXNz
aW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0
ZS5nZXQoKTsKK30KKwordm9pZCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb246OmluaXRpYWxpemUo
Y29uc3QgV2ViU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJTdHJpbmcmIHNkcCkKK3sKKyAgICBtX3By
aXZhdGUgPSBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpjcmVhdGUodHlwZSwgc2Rw
KTsKK30KKworV2ViU3RyaW5nIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6dHlwZSgpIGNvbnN0
Cit7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOworICAgIHJldHVybiBtX3ByaXZh
dGUuZ2V0KCktPnR5cGUoKTsKK30KKwordm9pZCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb246OnNl
dFR5cGUoY29uc3QgV2ViU3RyaW5nJiB0eXBlKQoreworICAgIEFTU0VSVCghbV9wcml2YXRlLmlz
TnVsbCgpKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpLT5zZXRUeXBlKHR5cGUpOworfQor
CitXZWJTdHJpbmcgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpzZHAoKSBjb25zdAoreworICAg
IEFTU0VSVCghbV9wcml2YXRlLmlzTnVsbCgpKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgp
LT5zZHAoKTsKK30KKwordm9pZCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb246OnNldFNEUChjb25z
dCBXZWJTdHJpbmcmIHNkcCkKK3sKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7Cisg
ICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKS0+c2V0U2RwKHNkcCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3YTJiODJlMjJhMTg0MzhlNmQyOGM3ODNkYTljOWJj
NWQ0MmM4YzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSA8
cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaD4KLQotI2luY2x1ZGUg
IlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCIKLSNpbmNsdWRlIDxwdWJsaWMvV2Vi
U3RyaW5nLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6V2ViUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvcihjb25zdCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3I+JiBzZXNzaW9uRGVzY3JpcHRpb24pCi0gICAgOiBtX3ByaXZhdGUoc2Vzc2lv
bkRlc2NyaXB0aW9uKQotewotfQotCi12b2lkIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2Ny
aXB0b3I6OmFzc2lnbihjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yJiBv
dGhlcikKLXsKLSAgICBtX3ByaXZhdGUgPSBvdGhlci5tX3ByaXZhdGU7Ci19Ci0KLXZvaWQgV2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6cmVzZXQoKQotewotICAgIG1fcHJpdmF0
ZS5yZXNldCgpOwotfQotCi1XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpvcGVy
YXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvcj4oKSBjb25zdAotewotICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7Ci19Ci0KLXZvaWQg
V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6aW5pdGlhbGl6ZShjb25zdCBXZWJT
dHJpbmcmIHR5cGUsIGNvbnN0IFdlYlN0cmluZyYgc2RwKQotewotICAgIG1fcHJpdmF0ZSA9IFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OmNyZWF0ZSh0eXBlLCBzZHApOwotfQotCi1X
ZWJTdHJpbmcgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6dHlwZSgpIGNvbnN0
Ci17Ci0gICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOwotICAgIHJldHVybiBtX3ByaXZh
dGUuZ2V0KCktPnR5cGUoKTsKLX0KLQotdm9pZCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yOjpzZXRUeXBlKGNvbnN0IFdlYlN0cmluZyYgdHlwZSkKLXsKLSAgICBBU1NFUlQoIW1f
cHJpdmF0ZS5pc051bGwoKSk7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKS0+c2V0VHlwZSh0
eXBlKTsKLX0KLQotV2ViU3RyaW5nIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6
OnNkcCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOwotICAgIHJl
dHVybiBtX3ByaXZhdGUuZ2V0KCktPnNkcCgpOwotfQotCi12b2lkIFdlYlJUQ1Nlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3I6OnNldFNEUChjb25zdCBXZWJTdHJpbmcmIHNkcCkKLXsKLSAgICBB
U1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKS0+
c2V0U2RwKHNkcCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NUUkVBTSkKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdC5jcHAKaW5kZXggNWFjOGRmNzFmZDJjZDI0YjJmYjkxZDZkZjEwYWY4NTc0
NTg3ODY4ZC4uMDBkN2U2Yjg2MzNmZjZiMGJiMzdhNDQ4MTJhMTQ1Y2NjMTNjZTBhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuY3BwCkBAIC0z
Niw3ICszNiw3IEBACiAKICNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
LmgiCiAjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oIgotI2luY2x1ZGUg
PHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8
cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTgsNyArNTgsNyBAQCB2b2lk
IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OnJlc2V0KCkKICAgICBtX3ByaXZhdGUu
cmVzZXQoKTsKIH0KIAotdm9pZCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OjpyZXF1
ZXN0U3VjY2VlZGVkKGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImIHNl
c3Npb25EZXNjcmlwdGlvbikgY29uc3QKK3ZvaWQgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdDo6cmVxdWVzdFN1Y2NlZWRlZChjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb24mIHNl
c3Npb25EZXNjcmlwdGlvbikgY29uc3QKIHsKICAgICBBU1NFUlQobV9wcml2YXRlLmdldCgpKTsK
ICAgICBtX3ByaXZhdGUtPnJlcXVlc3RTdWNjZWVkZWQoc2Vzc2lvbkRlc2NyaXB0aW9uKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVt
LmNwcAppbmRleCA0MWU5YWFhYjNhYjIwOWE4ZTc3Yzk2NDhkODlhNTFlNzQ0OWIwYjg1Li40YWM0
YWZjNDQ5MGFjNGJjNjFjMDExYmNmMzM1YjBlM2EwNDYzOWUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwCkBAIC00NSw4
ICs0NSw4IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhQ29uc3RyYWludHMuaD4KICNpbmNs
dWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8cHVibGlj
L1dlYlJUQ0NvbmZpZ3VyYXRpb24uaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDSUNFQ2FuZGlk
YXRlRGVzY3JpcHRvci5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ0lDRUNhbmRpZGF0ZS5oPgor
I2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb24uaD4KICNpbmNsdWRlIDxw
dWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJSVENWb2lkUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBAIC0x
NjQsNyArMTY0LDcgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6c3Rv
cCgpCiAgICAgbV93ZWJIYW5kbGVyLT5zdG9wKCk7CiB9CiAKLXZvaWQgUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyQ2hyb21pdW06OmRpZEdlbmVyYXRlSUNFQ2FuZGlkYXRlKGNvbnN0IFdlYktpdDo6
V2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvciYgaWNlQ2FuZGlkYXRlKQordm9pZCBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6ZGlkR2VuZXJhdGVJQ0VDYW5kaWRhdGUoY29uc3Qg
V2ViS2l0OjpXZWJSVENJQ0VDYW5kaWRhdGUmIGljZUNhbmRpZGF0ZSkKIHsKICAgICBtX2NsaWVu
dC0+ZGlkR2VuZXJhdGVJY2VDYW5kaWRhdGUoaWNlQ2FuZGlkYXRlKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oCmluZGV4IGVk
NDc0NzViZGZhYTJlMTVhZGVkZjM1MWE0ODU3OGRhNWIwNDFmOGEuLjg0OGZlM2RjOTQ0OGI2MjZi
YzBkODJlYTM2ODZiMGY3NzM2MDBjZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVt
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaApAQCAtNDIsNyArNDIsNyBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKLWNsYXNzIFdl
YlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3I7CitjbGFzcyBXZWJSVENJQ0VDYW5kaWRhdGU7CiB9
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJLaXQ6OldlYlJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkR2VuZXJhdGVJQ0VDYW5kaWRhdGUoY29uc3QgV2ViS2l0OjpXZWJSVENJQ0VDYW5kaWRhdGVE
ZXNjcmlwdG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEdlbmVyYXRlSUNFQ2Fu
ZGlkYXRlKGNvbnN0IFdlYktpdDo6V2ViUlRDSUNFQ2FuZGlkYXRlJikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGRpZENoYW5nZVJlYWR5U3RhdGUoV2ViS2l0OjpXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDbGllbnQ6OlJlYWR5U3RhdGUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDaGFuZ2VJQ0VTdGF0ZShXZWJLaXQ6OldlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudDo6SUNFU3RhdGUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRSZW1vdGVT
dHJlYW0oY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKSBPVkVSUklERTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwMmE3
ZDg1NjQyNzE3NzY4NWE0MjE2Y2VmNThlNjBlNzFlNmZmMGVjLi5hOTg3NDRmMDkxODM0N2ZmMTNi
MTA1YWRmMTgyYTM3NzA2ZTgwNjNhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDktMTAgIFRvbW15IFdpZGVu
Zmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBNZWRpYVN0
cmVhbSBBUEk6IFJlbW92ZSB0aGUgRGVzY3JpcHRvciBwb3N0Zml4CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjI2OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFmdGVyIGNvbnNpZGVyYXRpb24gSSByZWFs
aXplZCB0aGF0IHRoZXJlIGlzIG5vIG5lZWQgd2hhdHNvZXZlciBpbiB1c2luZyB0aGUgRGVzY3Jp
cHRvciBwcmVmaXgKKyAgICAgICAgaW4gdGhlIFdla0tpdCBlbWJlZGRlciBBUEkuIFJlbW92ZWQg
ZnJvbSBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb24gYW5kIFdlYlJUQ0lDRUNhbmRpZGF0ZSB0byBz
dGFydCB3aXRoLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHA6CisgICAgICAgIChSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0U3VjY2VkZWRUYXNrOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0U3VjY2Vk
ZWRUYXNrKToKKyAgICAgICAgKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmNyZWF0
ZU9mZmVyKToKKyAgICAgICAgKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmNyZWF0
ZUFuc3dlcik6CisgICAgICAgIChNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpzZXRM
b2NhbERlc2NyaXB0aW9uKToKKyAgICAgICAgKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXI6OnNldFJlbW90ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKE1vY2tXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXI6OmxvY2FsRGVzY3JpcHRpb24pOgorICAgICAgICAoTW9ja1dlYlJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlcjo6cmVtb3RlRGVzY3JpcHRpb24pOgorICAgICAgICAoTW9ja1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6YWRkSUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6Cisg
ICAgICAgIChNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKToKKwogMjAxMi0wOS0xMCAg
Q2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAg
IFtXSzJdIE5ldyBmYXN0L2Zvcm1zL251bWJlci9udW1iZXItaW50ZXJhY3RpdmUtdmFsaWRhdGlv
bi1yZXF1aXJlZC5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCmlu
ZGV4IDljNTI1N2JjNjRkNjA0MWNkYTQyYzhlYjA3OWI5NDFhMjhjN2Y5YzQuLmYzMTEyMDIwOTI4
YjdjOWFjYjBjNzVhYjlmNDUyMTAxMzM1M2NiOWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAKICNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFD
b25zdHJhaW50cy5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJDbGllbnQuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvci5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb24uaD4K
ICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oPgogI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJSVENWb2lkUmVxdWVzdC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJT
dHJpbmcuaD4KQEAgLTQ1LDcgKzQ1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogY2xh
c3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdFN1Y2NlZGVkVGFzayA6IHB1YmxpYyBNZXRo
b2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+IHsKIHB1YmxpYzoKLSAgICBS
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0U3VjY2VkZWRUYXNrKE1vY2tXZWJSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXIqIG9iamVjdCwgY29uc3QgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3ImIHJlc3VsdCkKKyAgICBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
U3VjY2VkZWRUYXNrKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqIG9iamVjdCwgY29u
c3QgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYgcmVzdWx0KQogICAgICAgICA6IE1l
dGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4ob2JqZWN0KQogICAgICAg
ICAsIG1fcmVxdWVzdChyZXF1ZXN0KQogICAgICAgICAsIG1fcmVzdWx0KHJlc3VsdCkKQEAgLTU5
LDcgKzU5LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFdlYktpdDo6V2ViUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uUmVxdWVzdCBtX3JlcXVlc3Q7Ci0gICAgV2ViS2l0OjpXZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yIG1fcmVzdWx0OworICAgIFdlYktpdDo6V2ViUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uIG1fcmVzdWx0OwogfTsKIAogY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEZhaWxlZFRhc2sgOiBwdWJsaWMgTWV0aG9kVGFzazxNb2NrV2ViUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyPiB7CkBAIC0xNTMsNyArMTUzLDcgQEAgdm9pZCBNb2NrV2ViUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyOjpjcmVhdGVPZmZlcihjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRp
b24KIHsKICAgICBXZWJTdHJpbmcgc2hvdWxkU3VjY2VlZDsKICAgICBpZiAoY29uc3RyYWludHMu
Z2V0TWFuZGF0b3J5Q29uc3RyYWludFZhbHVlKCJzdWNjZWVkIiwgc2hvdWxkU3VjY2VlZCkgJiYg
c2hvdWxkU3VjY2VlZCA9PSAidHJ1ZSIpIHsKLSAgICAgICAgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvciBzZXNzaW9uRGVzY3JpcHRpb247CisgICAgICAgIFdlYlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbiBzZXNzaW9uRGVzY3JpcHRpb247CiAgICAgICAgIHNlc3Npb25EZXNjcmlwdGlv
bi5pbml0aWFsaXplKCJvZmZlciIsICJsb2NhbCIpOwogICAgICAgICBwb3N0VGFzayhuZXcgUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdFN1Y2NlZGVkVGFzayh0aGlzLCByZXF1ZXN0LCBzZXNz
aW9uRGVzY3JpcHRpb24pKTsKICAgICB9IGVsc2UKQEAgLTE2MywxNCArMTYzLDE0IEBAIHZvaWQg
TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6Y3JlYXRlT2ZmZXIoY29uc3QgV2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uCiB2b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6
OmNyZWF0ZUFuc3dlcihjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBXZWJNZWRpYUNvbnN0cmFpbnRzJikKIHsKICAgICBpZiAoIW1fcmVtb3RlRGVz
Y3JpcHRpb24uaXNOdWxsKCkpIHsKLSAgICAgICAgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvciBzZXNzaW9uRGVzY3JpcHRpb247CisgICAgICAgIFdlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbiBzZXNzaW9uRGVzY3JpcHRpb247CiAgICAgICAgIHNlc3Npb25EZXNjcmlwdGlvbi5pbml0
aWFsaXplKCJhbnN3ZXIiLCAibG9jYWwiKTsKICAgICAgICAgcG9zdFRhc2sobmV3IFJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RTdWNjZWRlZFRhc2sodGhpcywgcmVxdWVzdCwgc2Vzc2lvbkRl
c2NyaXB0aW9uKSk7CiAgICAgfSBlbHNlCiAgICAgICAgIHBvc3RUYXNrKG5ldyBSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0RmFpbGVkVGFzayh0aGlzLCByZXF1ZXN0KSk7CiB9CiAKLXZvaWQg
TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6c2V0TG9jYWxEZXNjcmlwdGlvbihjb25z
dCBXZWJSVENWb2lkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvciYgbG9jYWxEZXNjcmlwdGlvbikKK3ZvaWQgTW9ja1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlcjo6c2V0TG9jYWxEZXNjcmlwdGlvbihjb25zdCBXZWJSVENWb2lkUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiBsb2NhbERlc2NyaXB0
aW9uKQogewogICAgIGlmICghbG9jYWxEZXNjcmlwdGlvbi5pc051bGwoKSAmJiBsb2NhbERlc2Ny
aXB0aW9uLnNkcCgpID09ICJsb2NhbCIpIHsKICAgICAgICAgbV9sb2NhbERlc2NyaXB0aW9uID0g
bG9jYWxEZXNjcmlwdGlvbjsKQEAgLTE3OSw3ICsxNzksNyBAQCB2b2lkIE1vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXI6OnNldExvY2FsRGVzY3JpcHRpb24oY29uc3QgV2ViUlRDVm9pZFJl
cXVlcwogICAgICAgICBwb3N0VGFzayhuZXcgUlRDVm9pZFJlcXVlc3RUYXNrKHRoaXMsIHJlcXVl
c3QsIGZhbHNlKSk7CiB9CiAKLXZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6
c2V0UmVtb3RlRGVzY3JpcHRpb24oY29uc3QgV2ViUlRDVm9pZFJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImIHJlbW90ZURlc2NyaXB0aW9u
KQordm9pZCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpzZXRSZW1vdGVEZXNjcmlw
dGlvbihjb25zdCBXZWJSVENWb2lkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uJiByZW1vdGVEZXNjcmlwdGlvbikKIHsKICAgICBpZiAoIXJlbW90ZURlc2Ny
aXB0aW9uLmlzTnVsbCgpICYmIHJlbW90ZURlc2NyaXB0aW9uLnNkcCgpID09ICJyZW1vdGUiKSB7
CiAgICAgICAgIG1fcmVtb3RlRGVzY3JpcHRpb24gPSByZW1vdGVEZXNjcmlwdGlvbjsKQEAgLTE4
OCwxMiArMTg4LDEyIEBAIHZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6c2V0
UmVtb3RlRGVzY3JpcHRpb24oY29uc3QgV2ViUlRDVm9pZFJlcXVlCiAgICAgICAgIHBvc3RUYXNr
KG5ldyBSVENWb2lkUmVxdWVzdFRhc2sodGhpcywgcmVxdWVzdCwgZmFsc2UpKTsKIH0KIAotV2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyOjpsb2NhbERlc2NyaXB0aW9uKCkKK1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBNb2Nr
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpsb2NhbERlc2NyaXB0aW9uKCkKIHsKICAgICBy
ZXR1cm4gbV9sb2NhbERlc2NyaXB0aW9uOwogfQogCi1XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OnJlbW90ZURlc2NyaXB0
aW9uKCkKK1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyOjpyZW1vdGVEZXNjcmlwdGlvbigpCiB7CiAgICAgcmV0dXJuIG1fcmVtb3RlRGVzY3Jp
cHRpb247CiB9CkBAIC0yMDQsNyArMjA0LDcgQEAgYm9vbCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyOjp1cGRhdGVJQ0UoY29uc3QgV2ViUlRDQ29uZmlndXJhdGlvbiYsIGNvbnMKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
OjphZGRJQ0VDYW5kaWRhdGUoY29uc3QgV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvciYgaWNl
Q2FuZGlkYXRlKQorYm9vbCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjphZGRJQ0VD
YW5kaWRhdGUoY29uc3QgV2ViUlRDSUNFQ2FuZGlkYXRlJiBpY2VDYW5kaWRhdGUpCiB7CiAgICAg
bV9jbGllbnQtPmRpZEdlbmVyYXRlSUNFQ2FuZGlkYXRlKGljZUNhbmRpZGF0ZSk7CiAgICAgcmV0
dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2Nr
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKaW5kZXggMGM4ZjllZDdkOGYw
YWE4MzgwMmUxMjg5M2M5MTExZTM2ZDg2YjM0My4uMmJmMTM5YWZhYTdhYzg4ODVkZmRiZmU0Yzlm
NDE1MmUzMGNiNDQxYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaApAQCAtMzUsNyAr
MzUsNyBAQAogCiAjaW5jbHVkZSAiVGFzay5oIgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3Jp
cHRpb24uaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUwLDEyICs1MCwxMiBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2ZmZXIoY29uc3QgV2ViS2l0OjpXZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0JiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFuc3dlcihjb25zdCBXZWJLaXQ6Oldl
YlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QmLCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhQ29u
c3RyYWludHMmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxEZXNjcmlwdGlv
bihjb25zdCBXZWJLaXQ6OldlYlJUQ1ZvaWRSZXF1ZXN0JiwgY29uc3QgV2ViS2l0OjpXZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHNldFJlbW90ZURlc2NyaXB0aW9uKGNvbnN0IFdlYktpdDo6V2ViUlRDVm9pZFJlcXVlc3QmLCBj
b25zdCBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
ciBsb2NhbERlc2NyaXB0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJLaXQ6OldlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IgcmVtb3RlRGVzY3JpcHRpb24oKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxEZXNjcmlwdGlvbihjb25zdCBXZWJLaXQ6Oldl
YlJUQ1ZvaWRSZXF1ZXN0JiwgY29uc3QgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb24m
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRpb24oY29uc3Qg
V2ViS2l0OjpXZWJSVENWb2lkUmVxdWVzdCYsIGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbiBsb2NhbERlc2NyaXB0aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJL
aXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbiByZW1vdGVEZXNjcmlwdGlvbigpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJQ0UoY29uc3QgV2ViS2l0OjpXZWJSVENDb25maWd1
cmF0aW9uJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIGFkZElDRUNhbmRpZGF0ZShjb25zdCBXZWJLaXQ6OldlYlJUQ0lDRUNh
bmRpZGF0ZURlc2NyaXB0b3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgYWRkSUNFQ2Fu
ZGlkYXRlKGNvbnN0IFdlYktpdDo6V2ViUlRDSUNFQ2FuZGlkYXRlJikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIGFkZFN0cmVhbShjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtRGVzY3Jp
cHRvciYsIGNvbnN0IFdlYktpdDo6V2ViTWVkaWFDb25zdHJhaW50cyYpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVTdHJlYW0oY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbURl
c2NyaXB0b3ImKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOwpA
QCAtNjgsOCArNjgsOCBAQCBwcml2YXRlOgogCiAgICAgV2ViS2l0OjpXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDbGllbnQqIG1fY2xpZW50OwogICAgIFRhc2tMaXN0IG1fdGFza0xpc3Q7Ci0g
ICAgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yIG1fbG9jYWxEZXNj
cmlwdGlvbjsKLSAgICBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3Ig
bV9yZW1vdGVEZXNjcmlwdGlvbjsKKyAgICBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
biBtX2xvY2FsRGVzY3JpcHRpb247CisgICAgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRp
b24gbV9yZW1vdGVEZXNjcmlwdGlvbjsKIH07CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>