<?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>108458</bug_id>
          
          <creation_ts>2013-01-31 04:19:23 -0800</creation_ts>
          <short_desc>[chromium] MediaStream API: Rename WebMediaStreamDescriptor and WebMediaStreamComponent to WebMediaStream and WebMediaStreamTrack</short_desc>
          <delta_ts>2013-02-01 01:26:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</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>56459</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>hta</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>821369</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-01-31 04:19:23 -0800</bug_when>
    <thetext>[chromium] MediaStream API: Rename WebMediaStreamDescriptor and WebMediaStreamComponent to WebMediaStream and WebMediaStreamTrack</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821370</commentid>
    <comment_count>1</comment_count>
      <attachid>185744</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-01-31 04:21:19 -0800</bug_when>
    <thetext>Created attachment 185744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821373</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 04:24:06 -0800</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>821375</commentid>
    <comment_count>3</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-01-31 04:25:18 -0800</bug_when>
    <thetext>Only renames in the patch. I have a corresponding Chromium patch lined up which does the rename there which will be committed as soon as this change is rolled in.

The main reason is that the old names confused other developers who have no idea what a &quot;Descriptor&quot; or &quot;Component&quot; is; and concludes the cleanup of the WebKit names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821668</commentid>
    <comment_count>4</comment_count>
      <attachid>185744</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-31 10:50:06 -0800</bug_when>
    <thetext>Comment on attachment 185744
Patch

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

&gt; Source/Platform/chromium/public/WebMediaStreamComponent.h:36
&gt; +// The name WebMediaStreamComponent is EXTREMELY DEPRECATED.

EXTREMELY DEPRECATED!!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821695</commentid>
    <comment_count>5</comment_count>
      <attachid>185744</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 11:03:05 -0800</bug_when>
    <thetext>Comment on attachment 185744
Patch

Clearing flags on attachment: 185744

Committed r141444: &lt;http://trac.webkit.org/changeset/141444&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821696</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 11:03:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822479</commentid>
    <comment_count>7</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-02-01 01:26:20 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 185744 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=185744&amp;action=review
&gt; 
&gt; &gt; Source/Platform/chromium/public/WebMediaStreamComponent.h:36
&gt; &gt; +// The name WebMediaStreamComponent is EXTREMELY DEPRECATED.
&gt; 
&gt; EXTREMELY DEPRECATED!!!

Yes, if someone uses it for new stuff I&apos;ll hit them with a rubber chicken ;)

Hopefully the Chromium rename patch goes asap so that I can remove these two compatibility headers later today.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185744</attachid>
            <date>2013-01-31 04:21:19 -0800</date>
            <delta_ts>2013-01-31 11:03:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108458-20130131131802.patch</filename>
            <type>text/plain</type>
            <size>71883</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3YWNiM2ExNDRlOWI5
YWQ2MTdjZmQ2N2Y1YmQ1OWVjZWUzMTkwNjZkLi45OGY2NTM3N2ZmOTgxN2YyYzliMjFkZjgzOGU5
ZjMzZWJhZGM0MGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAxMy0wMS0zMSAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21p
dW1dIE1lZGlhU3RyZWFtIEFQSTogUmVuYW1lIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciBhbmQg
V2ViTWVkaWFTdHJlYW1Db21wb25lbnQgdG8gV2ViTWVkaWFTdHJlYW0gYW5kIFdlYk1lZGlhU3Ry
ZWFtVHJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwODQ1OAorCisgICAgICAgIE9ubHkgcmVuYW1lcywgbm8gb3RoZXIgY29kZSBjaGFuZ2VzLgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZv
cm0uZ3lwaToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW0uaDogQ29w
aWVkIGZyb20gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVhbURl
c2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKFdlYk1lZGlhU3RyZWFtKToKKyAgICAgICAgKEV4dHJhRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OldlYk1lZGlhU3RyZWFtOjpFeHRyYURhdGE6On5FeHRyYURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJNZWRpYVN0cmVhbTo6V2ViTWVkaWFTdHJlYW0pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJNZWRpYVN0cmVhbTo6fldlYk1lZGlhU3RyZWFtKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFTdHJlYW06Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtOjpp
c051bGwpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVhbUNlbnRlci5o
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYk1lZGlhU3RyZWFtQ2VudGVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1DZW50ZXI6OmRpZEFkZE1lZGlhU3RyZWFtVHJh
Y2spOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbUNlbnRlcjo6ZGlkUmVtb3ZlTWVk
aWFTdHJlYW1UcmFjayk6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFt
Q2VudGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViTWVkaWFTdHJl
YW1DZW50ZXJDbGllbnQpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVh
bUNvbXBvbmVudC5oOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVhbURl
c2NyaXB0b3IuaDoKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1UcmFj
ay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKFdlYk1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVh
bVRyYWNrOjpXZWJNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
dHJlYW1UcmFjazo6fldlYk1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJN
ZWRpYVN0cmVhbVRyYWNrOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0
cmVhbVRyYWNrOjppc051bGwpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQpOgorICAgICAgICAqIGNocm9taXVt
L3B1YmxpYy9XZWJSVENTdGF0c1JlcXVlc3QuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJSVENTdGF0c1JlcXVlc3QpOgorCiAyMDEzLTAxLTMwICBZdXN1ZiBPenV5c2FsICA8eXVz
dWZvQGdvb2dsZS5jb20+CiAKICAgICAgICAgU3RhcnQgc2VuZGluZyBzY3JvbGxUeXBlIGFzIE5v
bkJ1YmJsaW5nR2VzdHVyZSBmb3IgZmxpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTY0MDhhODA5ZmRlYmNl
ZTdlODg3ZTNhMTJkYzc5MTI3MzNjZDE2Mi4uMTAzNWJlY2RmZWI0MTgyOThjYzdhNjY2NDdjMGU4
ZmFkNTZjNzM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEzLTAxLTMxICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0g
TWVkaWFTdHJlYW0gQVBJOiBSZW5hbWUgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yIGFuZCBXZWJN
ZWRpYVN0cmVhbUNvbXBvbmVudCB0byBXZWJNZWRpYVN0cmVhbSBhbmQgV2ViTWVkaWFTdHJlYW1U
cmFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4
NDU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT25s
eSByZW5hbWVzLCBubyBvdGhlciBjb2RlIGNoYW5nZXMuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYVN0cmVhbS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbTo6V2ViTWVkaWFTdHJl
YW0pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW06
OnJlc2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW06OmxhYmVsKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW06OmlkKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFTdHJlYW06OmV4dHJhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtOjpz
ZXRFeHRyYURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbTo6YXVkaW9Tb3Vy
Y2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW06OnZpZGVvU291cmNlcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJNZWRpYVN0cmVhbTo6b3BlcmF0b3IgUGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0
cmVhbURlc2NyaXB0b3I+KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW06Om9wZXJh
dG9yIFdlYkNvcmU6Ok1lZGlhU3RyZWFtRGVzY3JpcHRvciopOgorICAgICAgICAoV2ViS2l0OjpX
ZWJNZWRpYVN0cmVhbTo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3Ry
ZWFtOjphc3NpZ24pOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVk
aWFTdHJlYW1Db21wb25lbnQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlhU3RyZWFtVHJhY2suY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU3RyZWFt
VHJhY2s6OldlYk1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0
cmVhbVRyYWNrOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRy
YWNrOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1UcmFjazo6
cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrOjpvcGVyYXRvciBQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtQ29tcG9uZW50Pik6CisgICAgICAgIChXZWJLaXQ6OldlYk1l
ZGlhU3RyZWFtVHJhY2s6Om9wZXJhdG9yIE1lZGlhU3RyZWFtQ29tcG9uZW50Kik6CisgICAgICAg
IChXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJhY2s6OmlzRW5hYmxlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYk1lZGlhU3RyZWFtVHJhY2s6OmlkKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
dHJlYW1UcmFjazo6c3RyZWFtKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1UcmFj
azo6c291cmNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1UcmFjazo6YXNzaWdu
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1N0YXRzUmVxdWVzdDo6c3RyZWFtKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUlRDU3RhdHNSZXF1ZXN0Ojpjb21wb25lbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL01lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bTo6ZGlkQ3Jl
YXRlTWVkaWFTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1DZW50ZXJDaHJv
bWl1bTo6c3RvcExvY2FsTWVkaWFTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJl
YW1DZW50ZXJDaHJvbWl1bTo6YWRkTWVkaWFTdHJlYW1UcmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVN0cmVhbUNlbnRlckNocm9taXVtOjpyZW1vdmVNZWRpYVN0cmVhbVRyYWNrKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9NZWRpYVN0cmVhbUNlbnRlckNo
cm9taXVtLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoTWVkaWFTdHJlYW1DZW50ZXJD
aHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OmRpZEFkZFJlbW90ZVN0cmVhbSk6CisgICAgICAg
IChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6ZGlkUmVtb3ZlUmVt
b3RlU3RyZWFtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtKToKKwogMjAxMy0wMS0zMSAgS2Vu
dGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBUcmFjZSBu
b3Qgb25seSBtYWpvciBET00gR0NzIGJ1dCBhbHNvIG1pbm9yIERPTSBHQ3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggYmYyMmE3YjJlZDcxYTgzZDk4NGVlYzA1MTI4OThjZDI3NWQ1OTk2
My4uZmZjZWQzOTlkY2ZhYzJmNzc1ZTA4M2RhMGJlNzhmMGY3Mjc4NzgxMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMy0wMS0zMSAgVG9tbXkgV2lkZW5m
bHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIE1lZGlhU3Ry
ZWFtIEFQSTogUmVuYW1lIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciBhbmQgV2ViTWVkaWFTdHJl
YW1Db21wb25lbnQgdG8gV2ViTWVkaWFTdHJlYW0gYW5kIFdlYk1lZGlhU3RyZWFtVHJhY2sKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODQ1OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9ubHkgcmVuYW1l
cywgbm8gb3RoZXIgY29kZSBjaGFuZ2VzLgorCisgICAgICAgICogcHVibGljL1dlYk1lZGlhU3Ry
ZWFtUmVnaXN0cnkuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJNZWRpYVN0cmVh
bVJlZ2lzdHJ5KToKKyAgICAgICAgKiBwdWJsaWMvV2ViVXNlck1lZGlhUmVxdWVzdC5oOgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlVzZXJNZWRpYVJlcXVlc3QpOgorICAgICAgICAq
IHNyYy9XZWJNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFTdHJlYW1SZWdpc3RyeTo6bG9va3VwTWVkaWFTdHJlYW1EZXNjcmlwdG9yKToKKyAgICAgICAg
KiBzcmMvV2ViVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVzZXJN
ZWRpYVJlcXVlc3Q6OnJlcXVlc3RTdWNjZWVkZWQpOgorCiAyMDEzLTAxLTMxICBZdXJ5IFNlbWlr
aGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEJ1bXAg
Q2hyb21pdW0gZGVwZW5kZW5jeSB0byAxNzkzMzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9y
bS9QbGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKaW5kZXggOTc0
OWE1YzA0MmIxMzQ0NTNiZDZmMzY5NDQ4ZjU0Yjc5NWMwM2QyZC4uZTM0YTg5OWU1OGI1YTBjOGQw
MzM3ZmE5ZGM2OWJhNGI0NzRkNDk2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL1BsYXRm
b3JtLmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKQEAgLTg2LDkgKzg2
LDExIEBACiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtQ2VudGVy
LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVhbUNlbnRlckNs
aWVudC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1Db21w
b25lbnQuaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtLmgn
LAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3Iu
aCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtU291cmNlLmgn
LAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVhbVNvdXJjZXNSZXF1
ZXN0LmgnLAorICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVhbVRyYWNr
LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJNZXNzYWdlUG9ydENoYW5uZWwu
aCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbENs
aWVudC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViTWltZVJlZ2lzdHJ5Lmgn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0
cmVhbS5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVhbS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg2N2YxZjMwNmQ3MjQyNmQxNzY3ZDJkOGZhZWZkYTg5N2MxYTM0ZWIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk1lZGlh
U3RyZWFtLmgKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJNZWRp
YVN0cmVhbV9oCisjZGVmaW5lIFdlYk1lZGlhU3RyZWFtX2gKKworI2luY2x1ZGUgIldlYkNvbW1v
bi5oIgorI2luY2x1ZGUgIldlYk5vbkNvcHlhYmxlLmgiCisjaW5jbHVkZSAiV2ViUHJpdmF0ZVB0
ci5oIgorI2luY2x1ZGUgIldlYlZlY3Rvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBNZWRpYVN0cmVhbURlc2NyaXB0b3I7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJNZWRpYVN0cmVhbVRyYWNrOworY2xhc3MgV2ViTWVkaWFTdHJlYW1Tb3VyY2U7CitjbGFz
cyBXZWJTdHJpbmc7CisKK2NsYXNzIFdlYk1lZGlhU3RyZWFtIHsKK3B1YmxpYzoKKyAgICBjbGFz
cyBFeHRyYURhdGEgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+RXh0cmFEYXRhKCkg
eyB9CisgICAgfTsKKworICAgIFdlYk1lZGlhU3RyZWFtKCkgeyB9CisgICAgV2ViTWVkaWFTdHJl
YW0oY29uc3QgV2ViTWVkaWFTdHJlYW0mIG90aGVyKSB7IGFzc2lnbihvdGhlcik7IH0KKyAgICB+
V2ViTWVkaWFTdHJlYW0oKSB7IHJlc2V0KCk7IH0KKworICAgIFdlYk1lZGlhU3RyZWFtJiBvcGVy
YXRvcj0oY29uc3QgV2ViTWVkaWFTdHJlYW0mIG90aGVyKQorICAgIHsKKyAgICAgICAgYXNzaWdu
KG90aGVyKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIFdFQktJVF9FWFBP
UlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViTWVkaWFTdHJlYW0mKTsKKworICAgIFdFQktJVF9FWFBP
UlQgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlN0cmluZyYgbGFiZWwsIGNvbnN0IFdlYlZlY3Rv
cjxXZWJNZWRpYVN0cmVhbVNvdXJjZT4mIGF1ZGlvU291cmNlcywgY29uc3QgV2ViVmVjdG9yPFdl
Yk1lZGlhU3RyZWFtU291cmNlPiYgdmlkZW9Tb3VyY2VzKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgcmVzZXQoKTsKKyAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5p
c051bGwoKTsgfQorCisgICAgLy8gREVQUkVDQVRFRAorICAgIFdFQktJVF9FWFBPUlQgV2ViU3Ry
aW5nIGxhYmVsKCkgY29uc3Q7CisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBpZCgpIGNv
bnN0OworCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGF1ZGlvU291cmNlcyhXZWJWZWN0b3I8V2Vi
TWVkaWFTdHJlYW1UcmFjaz4mKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgdmlkZW9T
b3VyY2VzKFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVRyYWNrPiYpIGNvbnN0OworCisgICAgLy8g
RXh0cmEgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyBXZWJNZWRpYVN0cmVhbS4KKyAgICAvLyBJ
ZiBub24tbnVsbCwgdGhlIGV4dHJhIGRhdGEgcG9pbnRlciB3aWxsIGJlIGRlbGV0ZWQgd2hlbiB0
aGUgb2JqZWN0IGlzIGRlc3Ryb3llZC4KKyAgICAvLyBTZXR0aW5nIHRoZSBleHRyYSBkYXRhIHBv
aW50ZXIgd2lsbCBjYXVzZSBhbnkgZXhpc3Rpbmcgbm9uLW51bGwKKyAgICAvLyBleHRyYSBkYXRh
IHBvaW50ZXIgdG8gYmUgZGVsZXRlZC4KKyAgICBXRUJLSVRfRVhQT1JUIEV4dHJhRGF0YSogZXh0
cmFEYXRhKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEV4dHJhRGF0YShFeHRy
YURhdGEqKTsKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIFdlYk1lZGlhU3RyZWFt
KFdlYkNvcmU6Ok1lZGlhU3RyZWFtRGVzY3JpcHRvciopOworICAgIFdlYk1lZGlhU3RyZWFtKGNv
bnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0cmVhbURlc2NyaXB0b3I+Jik7Cisg
ICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtRGVzY3JpcHRv
cj4oKSBjb25zdDsKKyAgICBvcGVyYXRvciBXZWJDb3JlOjpNZWRpYVN0cmVhbURlc2NyaXB0b3Iq
KCkgY29uc3Q7CisgICAgV2ViTWVkaWFTdHJlYW0mIG9wZXJhdG9yPShjb25zdCBXVEY6OlBhc3NS
ZWZQdHI8V2ViQ29yZTo6TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiYpOworI2VuZGlmCisKK3ByaXZh
dGU6CisgICAgV2ViUHJpdmF0ZVB0cjxXZWJDb3JlOjpNZWRpYVN0cmVhbURlc2NyaXB0b3I+IG1f
cHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViTWVk
aWFTdHJlYW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJNZWRpYVN0cmVhbUNlbnRlci5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJNZWRpYVN0cmVhbUNlbnRlci5oCmluZGV4IDllN2QyOWQwNmE1NmZmODgxMjMzMjVhMGYyYTUw
OTAxNjk4NjM3YmYuLjE4MzQ4YTQ5NTdiZTZmOGUyNGE3ZTc2MmRmNzI0MjA0NzM2MDFkYTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1D
ZW50ZXIuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3Ry
ZWFtQ2VudGVyLmgKQEAgLTM0LDIxICszNCwyMSBAQAogI2luY2x1ZGUgIldlYlN0cmluZy5oIgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYk1lZGlhU3RyZWFtQ29tcG9uZW50OwotY2xh
c3MgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yOworY2xhc3MgV2ViTWVkaWFTdHJlYW07CiBjbGFz
cyBXZWJNZWRpYVN0cmVhbVNvdXJjZXNSZXF1ZXN0OworY2xhc3MgV2ViTWVkaWFTdHJlYW1UcmFj
azsKIAogY2xhc3MgV2ViTWVkaWFTdHJlYW1DZW50ZXIgewogcHVibGljOgogICAgIHZpcnR1YWwg
fldlYk1lZGlhU3RyZWFtQ2VudGVyKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcXVlcnlNZWRp
YVN0cmVhbVNvdXJjZXMoY29uc3QgV2ViTWVkaWFTdHJlYW1Tb3VyY2VzUmVxdWVzdCYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkRW5hYmxlTWVkaWFTdHJlYW1UcmFjayhjb25zdCBXZWJNZWRp
YVN0cmVhbURlc2NyaXB0b3ImLCBjb25zdCBXZWJNZWRpYVN0cmVhbUNvbXBvbmVudCYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzYWJsZU1lZGlhU3RyZWFtVHJhY2soY29uc3QgV2ViTWVk
aWFTdHJlYW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViTWVkaWFTdHJlYW1Db21wb25lbnQmKSA9IDA7
Ci0gICAgdmlydHVhbCBib29sIGRpZEFkZE1lZGlhU3RyZWFtVHJhY2soY29uc3QgV2ViTWVkaWFT
dHJlYW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViTWVkaWFTdHJlYW1Db21wb25lbnQmKSB7IHJldHVy
biBmYWxzZTsgfTsKLSAgICB2aXJ0dWFsIGJvb2wgZGlkUmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhj
b25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImLCBjb25zdCBXZWJNZWRpYVN0cmVhbUNvbXBv
bmVudCYpIHsgcmV0dXJuIGZhbHNlOyB9OwotICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wTG9jYWxN
ZWRpYVN0cmVhbShjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZENyZWF0ZU1lZGlhU3RyZWFtKFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5hYmxlTWVkaWFTdHJlYW1UcmFjayhjb25zdCBX
ZWJNZWRpYVN0cmVhbSYsIGNvbnN0IFdlYk1lZGlhU3RyZWFtVHJhY2smKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGRpZERpc2FibGVNZWRpYVN0cmVhbVRyYWNrKGNvbnN0IFdlYk1lZGlhU3RyZWFt
JiwgY29uc3QgV2ViTWVkaWFTdHJlYW1UcmFjayYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZGlk
QWRkTWVkaWFTdHJlYW1UcmFjayhjb25zdCBXZWJNZWRpYVN0cmVhbSYsIGNvbnN0IFdlYk1lZGlh
U3RyZWFtVHJhY2smKSB7IHJldHVybiBmYWxzZTsgfTsKKyAgICB2aXJ0dWFsIGJvb2wgZGlkUmVt
b3ZlTWVkaWFTdHJlYW1UcmFjayhjb25zdCBXZWJNZWRpYVN0cmVhbSYsIGNvbnN0IFdlYk1lZGlh
U3RyZWFtVHJhY2smKSB7IHJldHVybiBmYWxzZTsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3Rv
cExvY2FsTWVkaWFTdHJlYW0oY29uc3QgV2ViTWVkaWFTdHJlYW0mKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGRpZENyZWF0ZU1lZGlhU3RyZWFtKFdlYk1lZGlhU3RyZWFtJikgPSAwOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYk1lZGlhU3RyZWFtQ2VudGVyQ2xpZW50LmggYi9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtQ2VudGVyQ2xpZW50LmgKaW5kZXggYzY2ODVi
MGZlZTAzYWYxNjE1OTY2YjUzNjgzMjUxYjJmMzE1ZGE5OC4uMzFkMzE2YTgzZjI0YmQ0ODA0ZDcx
MGM1NzYyZjAzZGJjNDNmZGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVt
L3B1YmxpYy9XZWJNZWRpYVN0cmVhbUNlbnRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1DZW50ZXJDbGllbnQuaApAQCAtMzIsMTcg
KzMyLDE2IEBACiAjZGVmaW5lIFdlYk1lZGlhU3RyZWFtQ2VudGVyQ2xpZW50X2gKIAogbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYk1lZGlhU3RyZWFtQ29tcG9uZW50OwotY2xhc3MgV2Vi
TWVkaWFTdHJlYW1EZXNjcmlwdG9yOworY2xhc3MgV2ViTWVkaWFTdHJlYW07CitjbGFzcyBXZWJN
ZWRpYVN0cmVhbVRyYWNrOwogCiBjbGFzcyBXZWJNZWRpYVN0cmVhbUNlbnRlckNsaWVudCB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+V2ViTWVkaWFTdHJlYW1DZW50ZXJDbGllbnQoKSB7IH0KIAot
ICAgIHZpcnR1YWwgdm9pZCBzdG9wTG9jYWxNZWRpYVN0cmVhbShjb25zdCBXZWJNZWRpYVN0cmVh
bURlc2NyaXB0b3ImKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGFkZE1lZGlhU3RyZWFtVHJhY2so
Y29uc3QgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViTWVkaWFTdHJlYW1Db21w
b25lbnQmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZU1lZGlhU3RyZWFtVHJhY2soY29u
c3QgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViTWVkaWFTdHJlYW1Db21wb25l
bnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BMb2NhbE1lZGlhU3RyZWFtKGNvbnN0IFdl
Yk1lZGlhU3RyZWFtJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGRNZWRpYVN0cmVhbVRyYWNr
KGNvbnN0IFdlYk1lZGlhU3RyZWFtJiwgY29uc3QgV2ViTWVkaWFTdHJlYW1UcmFjayYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhjb25zdCBXZWJNZWRpYVN0
cmVhbSYsIGNvbnN0IFdlYk1lZGlhU3RyZWFtVHJhY2smKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViTWVkaWFTdHJlYW1Db21wb25lbnQuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViTWVkaWFTdHJlYW1Db21wb25lbnQuaAppbmRleCA3ZjM3OTA5ZjdkYWVkNzZkY2Y4ZTkw
OTc1ZWM1MWE1ZmVlODdmY2E3Li40ZjJiNzNmODIwMTJhODM2ZjhiNjE4MTAzNTI0MDQ3OWQ5MDlk
YzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk1lZGlh
U3RyZWFtQ29tcG9uZW50LmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJNZWRpYVN0cmVhbUNvbXBvbmVudC5oCkBAIC0zMSw1MiArMzEsOSBAQAogI2lmbmRlZiBXZWJN
ZWRpYVN0cmVhbUNvbXBvbmVudF9oCiAjZGVmaW5lIFdlYk1lZGlhU3RyZWFtQ29tcG9uZW50X2gK
IAotI2luY2x1ZGUgIldlYkNvbW1vbi5oIgotI2luY2x1ZGUgIldlYk5vbkNvcHlhYmxlLmgiCi0j
aW5jbHVkZSAiV2ViUHJpdmF0ZVB0ci5oIgorI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVh
bVRyYWNrLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIE1lZGlhU3RyZWFtQ29tcG9u
ZW50OwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYk1lZGlhU3RyZWFtRGVzY3Jp
cHRvcjsKLWNsYXNzIFdlYk1lZGlhU3RyZWFtU291cmNlOwotY2xhc3MgV2ViU3RyaW5nOwotCi1j
bGFzcyBXZWJNZWRpYVN0cmVhbUNvbXBvbmVudCB7Ci1wdWJsaWM6Ci0gICAgV2ViTWVkaWFTdHJl
YW1Db21wb25lbnQoKSB7IH0KLSAgICBXZWJNZWRpYVN0cmVhbUNvbXBvbmVudChjb25zdCBXZWJN
ZWRpYVN0cmVhbUNvbXBvbmVudCYgb3RoZXIpIHsgYXNzaWduKG90aGVyKTsgfQotICAgIH5XZWJN
ZWRpYVN0cmVhbUNvbXBvbmVudCgpIHsgcmVzZXQoKTsgfQotCi0gICAgV2ViTWVkaWFTdHJlYW1D
b21wb25lbnQmIG9wZXJhdG9yPShjb25zdCBXZWJNZWRpYVN0cmVhbUNvbXBvbmVudCYgb3RoZXIp
Ci0gICAgewotICAgICAgICBhc3NpZ24ob3RoZXIpOwotICAgICAgICByZXR1cm4gKnRoaXM7Ci0g
ICAgfQotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViTWVkaWFTdHJlYW1D
b21wb25lbnQmKTsKLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJN
ZWRpYVN0cmVhbVNvdXJjZSYpOwotICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwotICAg
IGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlLmlzTnVsbCgpOyB9Ci0KLSAg
ICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBpZCgpIGNvbnN0OwotCi0gICAgV0VCS0lUX0VYUE9S
VCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3Igc3RyZWFtKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0VY
UE9SVCBXZWJNZWRpYVN0cmVhbVNvdXJjZSBzb3VyY2UoKSBjb25zdDsKLSAgICBXRUJLSVRfRVhQ
T1JUIGJvb2wgaXNFbmFibGVkKCkgY29uc3Q7Ci0KLSNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04K
LSAgICBXZWJNZWRpYVN0cmVhbUNvbXBvbmVudChXZWJDb3JlOjpNZWRpYVN0cmVhbUNvbXBvbmVu
dCopOwotICAgIFdlYk1lZGlhU3RyZWFtQ29tcG9uZW50JiBvcGVyYXRvcj0oV2ViQ29yZTo6TWVk
aWFTdHJlYW1Db21wb25lbnQqKTsKLSAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29y
ZTo6TWVkaWFTdHJlYW1Db21wb25lbnQ+KCkgY29uc3Q7Ci0gICAgb3BlcmF0b3IgV2ViQ29yZTo6
TWVkaWFTdHJlYW1Db21wb25lbnQqKCkgY29uc3Q7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBX
ZWJQcml2YXRlUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtQ29tcG9uZW50PiBtX3ByaXZhdGU7Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKKy8vIFRoZSBuYW1lIFdlYk1lZGlhU3RyZWFtQ29t
cG9uZW50IGlzIEVYVFJFTUVMWSBERVBSRUNBVEVELgorI2RlZmluZSBXZWJNZWRpYVN0cmVhbUNv
bXBvbmVudCBXZWJNZWRpYVN0cmVhbVRyYWNrCiAKICNlbmRpZiAvLyBXZWJNZWRpYVN0cmVhbUNv
bXBvbmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
Yk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaAppbmRleCBiOGZjZGU5ZTZkNTJjNjkxZTFmMDU2
MjNiY2Y5NDY1YWQyOThiZDJhLi5hZmNlOTdlNDYwMTM4NTU4MDI5OGNkOTc2YWZjYjkzYzFlNmFi
NjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk1lZGlh
U3RyZWFtRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgKQEAgLTI1LDcxICsyNSw5IEBACiAjaWZuZGVmIFdl
Yk1lZGlhU3RyZWFtRGVzY3JpcHRvcl9oCiAjZGVmaW5lIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRv
cl9oCiAKLSNpbmNsdWRlICJXZWJDb21tb24uaCIKLSNpbmNsdWRlICJXZWJOb25Db3B5YWJsZS5o
IgotI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKLSNpbmNsdWRlICJXZWJWZWN0b3IuaCIKKyNp
bmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW0uaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgewot
Y2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
Y2xhc3MgV2ViTWVkaWFTdHJlYW1Db21wb25lbnQ7Ci1jbGFzcyBXZWJNZWRpYVN0cmVhbVNvdXJj
ZTsKLWNsYXNzIFdlYlN0cmluZzsKLQotY2xhc3MgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yIHsK
LXB1YmxpYzoKLSAgICBjbGFzcyBFeHRyYURhdGEgewotICAgIHB1YmxpYzoKLSAgICAgICAgdmly
dHVhbCB+RXh0cmFEYXRhKCkgeyB9Ci0gICAgfTsKLQotICAgIFdlYk1lZGlhU3RyZWFtRGVzY3Jp
cHRvcigpIHsgfQotICAgIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcihjb25zdCBXZWJNZWRpYVN0
cmVhbURlc2NyaXB0b3ImIG90aGVyKSB7IGFzc2lnbihvdGhlcik7IH0KLSAgICB+V2ViTWVkaWFT
dHJlYW1EZXNjcmlwdG9yKCkgeyByZXNldCgpOyB9Ci0KLSAgICBXZWJNZWRpYVN0cmVhbURlc2Ny
aXB0b3ImIG9wZXJhdG9yPShjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImIG90aGVyKQot
ICAgIHsKLSAgICAgICAgYXNzaWduKG90aGVyKTsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAg
IH0KLQotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yJik7Ci0KLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBX
ZWJTdHJpbmcmIGxhYmVsLCBjb25zdCBXZWJWZWN0b3I8V2ViTWVkaWFTdHJlYW1Tb3VyY2U+JiBh
dWRpb1NvdXJjZXMsIGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVNvdXJjZT4mIHZpZGVv
U291cmNlcyk7Ci0gICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlc2V0KCk7Ci0gICAgYm9vbCBpc051
bGwoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUuaXNOdWxsKCk7IH0KLQotICAgIC8vIERFUFJF
Q0FURUQKLSAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBsYWJlbCgpIGNvbnN0OwotCi0gICAg
V0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgaWQoKSBjb25zdDsKLQotICAgIFdFQktJVF9FWFBPUlQg
dm9pZCBhdWRpb1NvdXJjZXMoV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtQ29tcG9uZW50PiYpIGNv
bnN0OwotICAgIFdFQktJVF9FWFBPUlQgdm9pZCB2aWRlb1NvdXJjZXMoV2ViVmVjdG9yPFdlYk1l
ZGlhU3RyZWFtQ29tcG9uZW50PiYpIGNvbnN0OwotCi0gICAgLy8gRXh0cmEgZGF0YSBhc3NvY2lh
dGVkIHdpdGggdGhpcyBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuCi0gICAgLy8gSWYgbm9uLW51
bGwsIHRoZSBleHRyYSBkYXRhIHBvaW50ZXIgd2lsbCBiZSBkZWxldGVkIHdoZW4gdGhlIG9iamVj
dCBpcyBkZXN0cm95ZWQuCi0gICAgLy8gU2V0dGluZyB0aGUgZXh0cmEgZGF0YSBwb2ludGVyIHdp
bGwgY2F1c2UgYW55IGV4aXN0aW5nIG5vbi1udWxsCi0gICAgLy8gZXh0cmEgZGF0YSBwb2ludGVy
IHRvIGJlIGRlbGV0ZWQuCi0gICAgV0VCS0lUX0VYUE9SVCBFeHRyYURhdGEqIGV4dHJhRGF0YSgp
IGNvbnN0OwotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRFeHRyYURhdGEoRXh0cmFEYXRhKik7
Ci0KLSNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KLSAgICBXZWJNZWRpYVN0cmVhbURlc2NyaXB0
b3IoV2ViQ29yZTo6TWVkaWFTdHJlYW1EZXNjcmlwdG9yKik7Ci0gICAgV2ViTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0cmVhbURlc2Ny
aXB0b3I+Jik7Ci0gICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtRGVzY3JpcHRvcj4oKSBjb25zdDsKLSAgICBvcGVyYXRvciBXZWJDb3JlOjpNZWRpYVN0cmVh
bURlc2NyaXB0b3IqKCkgY29uc3Q7Ci0gICAgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiBvcGVy
YXRvcj0oY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtRGVzY3JpcHRv
cj4mKTsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6TWVk
aWFTdHJlYW1EZXNjcmlwdG9yPiBtX3ByaXZhdGU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKy8vIFRoZSBuYW1lIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciBpcyBFWFRSRU1FTFkgREVQ
UkVDQVRFRC4KKyNkZWZpbmUgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yIFdlYk1lZGlhU3RyZWFt
CiAKICNlbmRpZiAvLyBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3JfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVhbVRyYWNrLmggYi9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtVHJhY2suaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wNzI4ZTE4ZjZlZmY1ZGViOWIwNDhiMjNkZmQxZGE0NDhhNzAxYjNhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVhbVRy
YWNrLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJNZWRpYVN0
cmVhbVRyYWNrX2gKKyNkZWZpbmUgV2ViTWVkaWFTdHJlYW1UcmFja19oCisKKyNpbmNsdWRlICJX
ZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJOb25Db3B5YWJsZS5oIgorI2luY2x1ZGUgIldlYlBy
aXZhdGVQdHIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTWVkaWFTdHJlYW1Db21w
b25lbnQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViTWVkaWFTdHJlYW07Citj
bGFzcyBXZWJNZWRpYVN0cmVhbVNvdXJjZTsKK2NsYXNzIFdlYlN0cmluZzsKKworY2xhc3MgV2Vi
TWVkaWFTdHJlYW1UcmFjayB7CitwdWJsaWM6CisgICAgV2ViTWVkaWFTdHJlYW1UcmFjaygpIHsg
fQorICAgIFdlYk1lZGlhU3RyZWFtVHJhY2soY29uc3QgV2ViTWVkaWFTdHJlYW1UcmFjayYgb3Ro
ZXIpIHsgYXNzaWduKG90aGVyKTsgfQorICAgIH5XZWJNZWRpYVN0cmVhbVRyYWNrKCkgeyByZXNl
dCgpOyB9CisKKyAgICBXZWJNZWRpYVN0cmVhbVRyYWNrJiBvcGVyYXRvcj0oY29uc3QgV2ViTWVk
aWFTdHJlYW1UcmFjayYgb3RoZXIpCisgICAgeworICAgICAgICBhc3NpZ24ob3RoZXIpOworICAg
ICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24o
Y29uc3QgV2ViTWVkaWFTdHJlYW1UcmFjayYpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBpbml0
aWFsaXplKGNvbnN0IFdlYk1lZGlhU3RyZWFtU291cmNlJik7CisgICAgV0VCS0lUX0VYUE9SVCB2
b2lkIHJlc2V0KCk7CisgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUu
aXNOdWxsKCk7IH0KKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIGlkKCkgY29uc3Q7CisK
KyAgICBXRUJLSVRfRVhQT1JUIFdlYk1lZGlhU3RyZWFtIHN0cmVhbSgpIGNvbnN0OworICAgIFdF
QktJVF9FWFBPUlQgV2ViTWVkaWFTdHJlYW1Tb3VyY2Ugc291cmNlKCkgY29uc3Q7CisgICAgV0VC
S0lUX0VYUE9SVCBib29sIGlzRW5hYmxlZCgpIGNvbnN0OworCisjaWYgV0VCS0lUX0lNUExFTUVO
VEFUSU9OCisgICAgV2ViTWVkaWFTdHJlYW1UcmFjayhXZWJDb3JlOjpNZWRpYVN0cmVhbUNvbXBv
bmVudCopOworICAgIFdlYk1lZGlhU3RyZWFtVHJhY2smIG9wZXJhdG9yPShXZWJDb3JlOjpNZWRp
YVN0cmVhbUNvbXBvbmVudCopOworICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3Jl
OjpNZWRpYVN0cmVhbUNvbXBvbmVudD4oKSBjb25zdDsKKyAgICBvcGVyYXRvciBXZWJDb3JlOjpN
ZWRpYVN0cmVhbUNvbXBvbmVudCooKSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFdl
YlByaXZhdGVQdHI8V2ViQ29yZTo6TWVkaWFTdHJlYW1Db21wb25lbnQ+IG1fcHJpdmF0ZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViTWVkaWFTdHJlYW1UcmFj
a19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAppbmRleCAyN2QwZWU2NzAxODNhZTAyZWNhYjVm
NDhlMzFjYTI2ZmU3ODdiMWU4Li4zNDQ3M2MyNTRhNzk1MDkyY2YxNjZhMDAxMDNhMGFjOWY1MmYw
NTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJNZWRpYUNvbnN0cmFpbnRzOwotY2xhc3MgV2ViTWVk
aWFTdHJlYW1EZXNjcmlwdG9yOworY2xhc3MgV2ViTWVkaWFTdHJlYW07CiBjbGFzcyBXZWJSVEND
b25maWd1cmF0aW9uOwogY2xhc3MgV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyOwogY2xhc3MgV2Vi
UlRDSUNFQ2FuZGlkYXRlOwpAQCAtNTgsOCArNTgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb24gcmVtb3RlRGVzY3JpcHRpb24oKSA9IDA7CiAgICAgdmly
dHVhbCBib29sIHVwZGF0ZUlDRShjb25zdCBXZWJSVENDb25maWd1cmF0aW9uJiwgY29uc3QgV2Vi
TWVkaWFDb25zdHJhaW50cyYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWRkSUNFQ2FuZGlkYXRl
KGNvbnN0IFdlYlJUQ0lDRUNhbmRpZGF0ZSYpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgYWRkU3Ry
ZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYsIGNvbnN0IFdlYk1lZGlhQ29uc3Ry
YWludHMmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShjb25zdCBXZWJNZWRp
YVN0cmVhbURlc2NyaXB0b3ImKSA9IDA7CisgICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShjb25z
dCBXZWJNZWRpYVN0cmVhbSYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHJlbW92ZVN0cmVhbShjb25zdCBXZWJNZWRpYVN0cmVhbSYpID0gMDsKICAg
ICAvLyBGSVhNRTogUmVtb3ZlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gd2hlbiBjbGllbnRzIGhh
dmUgY2hhbmdlZC4KICAgICB2aXJ0dWFsIHZvaWQgZ2V0U3RhdHMoY29uc3QgV2ViUlRDU3RhdHNS
ZXF1ZXN0JikgeyB9CiAgICAgdmlydHVhbCBXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIqIGNyZWF0
ZURhdGFDaGFubmVsKGNvbnN0IFdlYlN0cmluZyYgbGFiZWwsIGJvb2wgcmVsaWFibGUpIHsgcmV0
dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oCmluZGV4IDBkMzll
YWJmYzk5NzhlMjJkNTQ2Zjk0YWQ3YTU5NzI5MzA5MTRjNjkuLjcwMzJjMzliNTI0ZTkwZmRiNTUx
NjdkZTIyMTFmZWQ2NjFlOGU0OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGll
bnQuaApAQCAtMzIsNyArMzIsNyBAQAogI2RlZmluZSBXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJDbGllbnRfaAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYk1lZGlhU3RyZWFtRGVz
Y3JpcHRvcjsKK2NsYXNzIFdlYk1lZGlhU3RyZWFtOwogY2xhc3MgV2ViUlRDRGF0YUNoYW5uZWxI
YW5kbGVyOwogY2xhc3MgV2ViUlRDSUNFQ2FuZGlkYXRlOwogCkBAIC03MCw4ICs3MCw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2lnbmFsaW5nU3RhdGUoU2lnbmFsaW5n
U3RhdGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VJQ0VHYXRoZXJpbmdTdGF0ZShJ
Q0VHYXRoZXJpbmdTdGF0ZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUlDRUNvbm5l
Y3Rpb25TdGF0ZShJQ0VDb25uZWN0aW9uU3RhdGUpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRB
ZGRSZW1vdGVTdHJlYW0oY29uc3QgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVSZW1vdGVTdHJlYW0oY29uc3QgV2ViTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRSZW1vdGVTdHJlYW0oY29u
c3QgV2ViTWVkaWFTdHJlYW0mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVJlbW90
ZVN0cmVhbShjb25zdCBXZWJNZWRpYVN0cmVhbSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
QWRkUmVtb3RlRGF0YUNoYW5uZWwoV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyKikgeyB9CiAKICAg
ICAvLyBERVBSRUNBVEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYlJUQ1N0YXRzUmVxdWVzdC5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJSVENTdGF0c1JlcXVlc3QuaAppbmRleCA0ZmZmZmRmNmRkMTBkN2I0YmY1MTljY2RhN2Fj
YThkNzQ5OTMyNmFhLi4wOTgwNTAyNDhhYzQ2NmJiYWZjMTA1OTViYWFkOGUxMzlmZThmMjUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1N0YXRzUmVx
dWVzdC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU3RhdHNS
ZXF1ZXN0LmgKQEAgLTQxLDggKzQxLDggQEAgY2xhc3MgUlRDU3RhdHNSZXF1ZXN0OwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViTWVkaWFTdHJlYW1Db21wb25lbnQ7Ci1jbGFzcyBX
ZWJNZWRpYVN0cmVhbURlc2NyaXB0b3I7CitjbGFzcyBXZWJNZWRpYVN0cmVhbVRyYWNrOworY2xh
c3MgV2ViTWVkaWFTdHJlYW07CiBjbGFzcyBXZWJSVENTdGF0c1Jlc3BvbnNlOwogCiAvLyBUaGUg
V2ViUlRDU3RhdHNSZXF1ZXN0IGNsYXNzIHJlcHJlc2VudHMgYSBKYXZhU2NyaXB0IGNhbGwgb24K
QEAgLTg4LDkgKzg4LDkgQEAgcHVibGljOgogICAgIC8vIFRoZSBzdHJlYW0oKSBhbmQgY29tcG9u
ZW50KCkgYWNjZXNzb3JzIGdpdmUgdGhlIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24KICAgICAv
LyByZXF1aXJlZCB0byBsb29rIHVwIGEgTWVkaWFTdHJlYW1UcmFjayBpbXBsZW1lbnRhdGlvbi4K
ICAgICAvLyBJdCBpcyBvbmx5IHVzZWZ1bCB0byBjYWxsIHRoZW0gd2hlbiBoYXNTZWxlY3Rvcigp
IHJldHVybnMgdHJ1ZS4KLSAgICBXRUJLSVRfRVhQT1JUIGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVz
Y3JpcHRvciBzdHJlYW0oKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGNvbnN0IFdlYk1lZGlh
U3RyZWFtIHN0cmVhbSgpIGNvbnN0OwogCi0gICAgV0VCS0lUX0VYUE9SVCBjb25zdCBXZWJNZWRp
YVN0cmVhbUNvbXBvbmVudCBjb21wb25lbnQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIGNv
bnN0IFdlYk1lZGlhU3RyZWFtVHJhY2sgY29tcG9uZW50KCkgY29uc3Q7CiAKICAgICBXRUJLSVRf
RVhQT1JUIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZChjb25zdCBXZWJSVENTdGF0c1Jlc3BvbnNlJikg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1NWIyOWI0Y2U3MzM1M2MxY2MwY2U0ZDcxZTM0
ZDhkNTBhYjRkYWJkLi41NjQxYWMxMDZlNzcwYjMxYTkwOGJmMmY4NjAyMjFlMGYxYTRiMDcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC03MjAyLDEwICs3MjAyLDEwIEBACiAgICAgICAgICAgICAncGxh
dGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJIVFRQQm9keS5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViSFRUUExvYWRJbmZvLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYUNvbnN0cmFpbnRzLmNwcCcsCi0g
ICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYVN0cmVhbUNvbXBv
bmVudC5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVk
aWFTdHJlYW1EZXNjcmlwdG9yLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0v
c3VwcG9ydC9XZWJNZWRpYVN0cmVhbS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1Tb3VyY2UuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlhU3RyZWFtU291cmNlc1JlcXVlc3QuY3BwJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlhU3RyZWFtVHJh
Y2suY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlByZXJl
bmRlci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRD
Q29uZmlndXJhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvV2ViUlRDSUNFQ2FuZGlkYXRlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW0uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc4Zjc0OGQ4MTQzNzBiMjNiMmI1ZGViMWJkM2I2YTQ0YTBhNTA2ODEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlh
U3RyZWFtLmNwcApAQCAtMCwwICsxLDE1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHB1YmxpYy9X
ZWJNZWRpYVN0cmVhbS5oPgorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1Db21wb25lbnQuaCIKKyNp
bmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVNv
dXJjZS5oIgorI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbVNvdXJjZS5oPgorI2luY2x1
ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbVRyYWNrLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlN0
cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgeworCitjbGFzcyBFeHRyYURhdGFD
b250YWluZXIgOiBwdWJsaWMgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpFeHRyYURhdGEgeworcHVi
bGljOgorICAgIEV4dHJhRGF0YUNvbnRhaW5lcihXZWJNZWRpYVN0cmVhbTo6RXh0cmFEYXRhKiBl
eHRyYURhdGEpIDogbV9leHRyYURhdGEoYWRvcHRQdHIoZXh0cmFEYXRhKSkgeyB9CisKKyAgICBX
ZWJNZWRpYVN0cmVhbTo6RXh0cmFEYXRhKiBleHRyYURhdGEoKSB7IHJldHVybiBtX2V4dHJhRGF0
YS5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIE93blB0cjxXZWJNZWRpYVN0cmVhbTo6RXh0cmFE
YXRhPiBtX2V4dHJhRGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlCisKK1dlYk1lZGlhU3RyZWFt
OjpXZWJNZWRpYVN0cmVhbShjb25zdCBQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3RyZWFtRGVz
Y3JpcHRvcj4mIG1lZGlhU3RyZWFtRGVzY3JpcHRvcikKKyAgICA6IG1fcHJpdmF0ZShtZWRpYVN0
cmVhbURlc2NyaXB0b3IpCit7Cit9CisKK1dlYk1lZGlhU3RyZWFtOjpXZWJNZWRpYVN0cmVhbShX
ZWJDb3JlOjpNZWRpYVN0cmVhbURlc2NyaXB0b3IqIG1lZGlhU3RyZWFtRGVzY3JpcHRvcikKKyAg
ICA6IG1fcHJpdmF0ZShtZWRpYVN0cmVhbURlc2NyaXB0b3IpCit7Cit9CisKK3ZvaWQgV2ViTWVk
aWFTdHJlYW06OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQoKTsKK30KKworV2ViU3Ry
aW5nIFdlYk1lZGlhU3RyZWFtOjpsYWJlbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0
ZS0+aWQoKTsKK30KKworV2ViU3RyaW5nIFdlYk1lZGlhU3RyZWFtOjppZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+aWQoKTsKK30KKworV2ViTWVkaWFTdHJlYW06OkV4dHJhRGF0
YSogV2ViTWVkaWFTdHJlYW06OmV4dHJhRGF0YSgpIGNvbnN0Cit7CisgICAgUmVmUHRyPE1lZGlh
U3RyZWFtRGVzY3JpcHRvcjo6RXh0cmFEYXRhPiBkYXRhID0gbV9wcml2YXRlLT5leHRyYURhdGEo
KTsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxFeHRyYURhdGFDb250YWluZXIqPihkYXRhLmdldCgpKS0+ZXh0cmFEYXRhKCk7Cit9CisK
K3ZvaWQgV2ViTWVkaWFTdHJlYW06OnNldEV4dHJhRGF0YShFeHRyYURhdGEqIGV4dHJhRGF0YSkK
K3sKKyAgICBtX3ByaXZhdGUtPnNldEV4dHJhRGF0YShhZG9wdFJlZihuZXcgRXh0cmFEYXRhQ29u
dGFpbmVyKGV4dHJhRGF0YSkpKTsKK30KKwordm9pZCBXZWJNZWRpYVN0cmVhbTo6YXVkaW9Tb3Vy
Y2VzKFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVRyYWNrPiYgd2ViU291cmNlcykgY29uc3QKK3sK
KyAgICBzaXplX3QgbnVtYmVyT2ZTb3VyY2VzID0gbV9wcml2YXRlLT5udW1iZXJPZkF1ZGlvQ29t
cG9uZW50cygpOworICAgIFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVRyYWNrPiByZXN1bHQobnVt
YmVyT2ZTb3VyY2VzKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bWJlck9mU291cmNl
czsgKytpKQorICAgICAgICByZXN1bHRbaV0gPSBtX3ByaXZhdGUtPmF1ZGlvQ29tcG9uZW50KGkp
OworICAgIHdlYlNvdXJjZXMuc3dhcChyZXN1bHQpOworfQorCit2b2lkIFdlYk1lZGlhU3RyZWFt
Ojp2aWRlb1NvdXJjZXMoV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtVHJhY2s+JiB3ZWJTb3VyY2Vz
KSBjb25zdAoreworICAgIHNpemVfdCBudW1iZXJPZlNvdXJjZXMgPSBtX3ByaXZhdGUtPm51bWJl
ck9mVmlkZW9Db21wb25lbnRzKCk7CisgICAgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtVHJhY2s+
IHJlc3VsdChudW1iZXJPZlNvdXJjZXMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVt
YmVyT2ZTb3VyY2VzOyArK2kpCisgICAgICAgIHJlc3VsdFtpXSA9IG1fcHJpdmF0ZS0+dmlkZW9D
b21wb25lbnQoaSk7CisgICAgd2ViU291cmNlcy5zd2FwKHJlc3VsdCk7Cit9CisKK1dlYk1lZGlh
U3RyZWFtJiBXZWJNZWRpYVN0cmVhbTo6b3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8V2ViQ29y
ZTo6TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiYgbWVkaWFTdHJlYW1EZXNjcmlwdG9yKQoreworICAg
IG1fcHJpdmF0ZSA9IG1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKKyAgICByZXR1cm4gKnRoaXM7Cit9
CisKK1dlYk1lZGlhU3RyZWFtOjpvcGVyYXRvciBQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtRGVzY3JpcHRvcj4oKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7Cit9
CisKK1dlYk1lZGlhU3RyZWFtOjpvcGVyYXRvciBXZWJDb3JlOjpNZWRpYVN0cmVhbURlc2NyaXB0
b3IqKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpOworfQorCit2b2lkIFdl
Yk1lZGlhU3RyZWFtOjppbml0aWFsaXplKGNvbnN0IFdlYlN0cmluZyYgbGFiZWwsIGNvbnN0IFdl
YlZlY3RvcjxXZWJNZWRpYVN0cmVhbVNvdXJjZT4mIGF1ZGlvU291cmNlcywgY29uc3QgV2ViVmVj
dG9yPFdlYk1lZGlhU3RyZWFtU291cmNlPiYgdmlkZW9Tb3VyY2VzKQoreworICAgIE1lZGlhU3Ry
ZWFtU291cmNlVmVjdG9yIGF1ZGlvLCB2aWRlbzsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGF1ZGlvU291cmNlcy5zaXplKCk7ICsraSkgeworICAgICAgICBNZWRpYVN0cmVhbVNvdXJjZSog
Y3VyciA9IGF1ZGlvU291cmNlc1tpXTsKKyAgICAgICAgYXVkaW8uYXBwZW5kKGN1cnIpOworICAg
IH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZpZGVvU291cmNlcy5zaXplKCk7ICsraSkg
eworICAgICAgICBNZWRpYVN0cmVhbVNvdXJjZSogY3VyciA9IHZpZGVvU291cmNlc1tpXTsKKyAg
ICAgICAgdmlkZW8uYXBwZW5kKGN1cnIpOworICAgIH0KKyAgICBtX3ByaXZhdGUgPSBNZWRpYVN0
cmVhbURlc2NyaXB0b3I6OmNyZWF0ZShsYWJlbCwgYXVkaW8sIHZpZGVvKTsKK30KKwordm9pZCBX
ZWJNZWRpYVN0cmVhbTo6YXNzaWduKGNvbnN0IFdlYk1lZGlhU3RyZWFtJiBvdGhlcikKK3sKKyAg
ICBtX3ByaXZhdGUgPSBvdGhlci5tX3ByaXZhdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1Db21wb25lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYVN0
cmVhbUNvbXBvbmVudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjOTU3ZGI5
ZGM4ZWZmNWMzNjUxYjNkNTQwYmJhZDA4ZjFmOWIyNzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
c3VwcG9ydC9XZWJNZWRpYVN0cmVhbUNvbXBvbmVudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
MDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0
OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
Ci0KLSNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW1Db21wb25lbnQuaD4KLQotI2luY2x1
ZGUgIk1lZGlhU3RyZWFtQ29tcG9uZW50LmgiCi0jaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3Ry
ZWFtRGVzY3JpcHRvci5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbVNvdXJjZS5o
PgotI2luY2x1ZGUgPHB1YmxpYy9XZWJTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2Vi
TWVkaWFTdHJlYW1Db21wb25lbnQ6OldlYk1lZGlhU3RyZWFtQ29tcG9uZW50KFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtQ29tcG9uZW50KiBtZWRpYVN0cmVhbUNvbXBvbmVudCkKLSAgICA6IG1fcHJpdmF0
ZShtZWRpYVN0cmVhbUNvbXBvbmVudCkKLXsKLX0KLQotV2ViTWVkaWFTdHJlYW1Db21wb25lbnQm
IFdlYk1lZGlhU3RyZWFtQ29tcG9uZW50OjpvcGVyYXRvcj0oV2ViQ29yZTo6TWVkaWFTdHJlYW1D
b21wb25lbnQqIG1lZGlhU3RyZWFtQ29tcG9uZW50KQotewotICAgIG1fcHJpdmF0ZSA9IG1lZGlh
U3RyZWFtQ29tcG9uZW50OwotICAgIHJldHVybiAqdGhpczsKLX0KLQotdm9pZCBXZWJNZWRpYVN0
cmVhbUNvbXBvbmVudDo6aW5pdGlhbGl6ZShjb25zdCBXZWJNZWRpYVN0cmVhbVNvdXJjZSYgc291
cmNlKQotewotICAgIG1fcHJpdmF0ZSA9IE1lZGlhU3RyZWFtQ29tcG9uZW50OjpjcmVhdGUoc291
cmNlKTsKLX0KLQotdm9pZCBXZWJNZWRpYVN0cmVhbUNvbXBvbmVudDo6cmVzZXQoKQotewotICAg
IG1fcHJpdmF0ZS5yZXNldCgpOwotfQotCi1XZWJNZWRpYVN0cmVhbUNvbXBvbmVudDo6b3BlcmF0
b3IgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNvbXBvbmVudD4oKSBjb25zdAotewotICAgIHJldHVy
biBtX3ByaXZhdGUuZ2V0KCk7Ci19Ci0KLVdlYk1lZGlhU3RyZWFtQ29tcG9uZW50OjpvcGVyYXRv
ciBNZWRpYVN0cmVhbUNvbXBvbmVudCooKSBjb25zdAotewotICAgIHJldHVybiBtX3ByaXZhdGUu
Z2V0KCk7Ci19Ci0KLWJvb2wgV2ViTWVkaWFTdHJlYW1Db21wb25lbnQ6OmlzRW5hYmxlZCgpIGNv
bnN0Ci17Ci0gICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOwotICAgIHJldHVybiBtX3By
aXZhdGUtPmVuYWJsZWQoKTsKLX0KLQotV2ViU3RyaW5nIFdlYk1lZGlhU3RyZWFtQ29tcG9uZW50
OjppZCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOwotICAgIHJl
dHVybiBtX3ByaXZhdGUtPmlkKCk7Ci19Ci0KLVdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciBXZWJN
ZWRpYVN0cmVhbUNvbXBvbmVudDo6c3RyZWFtKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoIW1fcHJp
dmF0ZS5pc051bGwoKSk7Ci0gICAgcmV0dXJuIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcihtX3By
aXZhdGUtPnN0cmVhbSgpKTsKLX0KLQotV2ViTWVkaWFTdHJlYW1Tb3VyY2UgV2ViTWVkaWFTdHJl
YW1Db21wb25lbnQ6OnNvdXJjZSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNO
dWxsKCkpOwotICAgIHJldHVybiBXZWJNZWRpYVN0cmVhbVNvdXJjZShtX3ByaXZhdGUtPnNvdXJj
ZSgpKTsKLX0KLQotdm9pZCBXZWJNZWRpYVN0cmVhbUNvbXBvbmVudDo6YXNzaWduKGNvbnN0IFdl
Yk1lZGlhU3RyZWFtQ29tcG9uZW50JiBvdGhlcikKLXsKLSAgICBtX3ByaXZhdGUgPSBvdGhlci5t
X3ByaXZhdGU7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjdhMzEyZmM1N2E4NzhhYmZkMGYwMWI4Yjk0
NzU4MjM2YzM5OTdkMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlhU3Ry
ZWFtRGVzY3JpcHRvci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNTggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0
cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0g
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlIDxwdWJs
aWMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmg+Ci0KLSNpbmNsdWRlICJNZWRpYVN0cmVhbUNv
bXBvbmVudC5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgotI2luY2x1ZGUg
Ik1lZGlhU3RyZWFtU291cmNlLmgiCi0jaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtQ29t
cG9uZW50Lmg+Ci0jaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtU291cmNlLmg+Ci0jaW5j
bHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1uYW1lc3BhY2Ugewot
Ci1jbGFzcyBFeHRyYURhdGFDb250YWluZXIgOiBwdWJsaWMgTWVkaWFTdHJlYW1EZXNjcmlwdG9y
OjpFeHRyYURhdGEgewotcHVibGljOgotICAgIEV4dHJhRGF0YUNvbnRhaW5lcihXZWJNZWRpYVN0
cmVhbURlc2NyaXB0b3I6OkV4dHJhRGF0YSogZXh0cmFEYXRhKSA6IG1fZXh0cmFEYXRhKGFkb3B0
UHRyKGV4dHJhRGF0YSkpIHsgfQotCi0gICAgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpFeHRy
YURhdGEqIGV4dHJhRGF0YSgpIHsgcmV0dXJuIG1fZXh0cmFEYXRhLmdldCgpOyB9Ci0KLXByaXZh
dGU6Ci0gICAgT3duUHRyPFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6RXh0cmFEYXRhPiBtX2V4
dHJhRGF0YTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlCi0KLVdlYk1lZGlhU3RyZWFtRGVzY3JpcHRv
cjo6V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yKGNvbnN0IFBhc3NSZWZQdHI8V2ViQ29yZTo6TWVk
aWFTdHJlYW1EZXNjcmlwdG9yPiYgbWVkaWFTdHJlYW1EZXNjcmlwdG9yKQotICAgIDogbV9wcml2
YXRlKG1lZGlhU3RyZWFtRGVzY3JpcHRvcikKLXsKLX0KLQotV2ViTWVkaWFTdHJlYW1EZXNjcmlw
dG9yOjpXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IoV2ViQ29yZTo6TWVkaWFTdHJlYW1EZXNjcmlw
dG9yKiBtZWRpYVN0cmVhbURlc2NyaXB0b3IpCi0gICAgOiBtX3ByaXZhdGUobWVkaWFTdHJlYW1E
ZXNjcmlwdG9yKQotewotfQotCi12b2lkIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6cmVzZXQo
KQotewotICAgIG1fcHJpdmF0ZS5yZXNldCgpOwotfQotCi1XZWJTdHJpbmcgV2ViTWVkaWFTdHJl
YW1EZXNjcmlwdG9yOjpsYWJlbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+aWQo
KTsKLX0KLQotV2ViU3RyaW5nIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6aWQoKSBjb25zdAot
ewotICAgIHJldHVybiBtX3ByaXZhdGUtPmlkKCk7Ci19Ci0KLVdlYk1lZGlhU3RyZWFtRGVzY3Jp
cHRvcjo6RXh0cmFEYXRhKiBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3I6OmV4dHJhRGF0YSgpIGNv
bnN0Ci17Ci0gICAgUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6RXh0cmFEYXRhPiBkYXRh
ID0gbV9wcml2YXRlLT5leHRyYURhdGEoKTsKLSAgICBpZiAoIWRhdGEpCi0gICAgICAgIHJldHVy
biAwOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxFeHRyYURhdGFDb250YWluZXIqPihkYXRhLmdl
dCgpKS0+ZXh0cmFEYXRhKCk7Ci19Ci0KLXZvaWQgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpz
ZXRFeHRyYURhdGEoRXh0cmFEYXRhKiBleHRyYURhdGEpCi17Ci0gICAgbV9wcml2YXRlLT5zZXRF
eHRyYURhdGEoYWRvcHRSZWYobmV3IEV4dHJhRGF0YUNvbnRhaW5lcihleHRyYURhdGEpKSk7Ci19
Ci0KLXZvaWQgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjphdWRpb1NvdXJjZXMoV2ViVmVjdG9y
PFdlYk1lZGlhU3RyZWFtQ29tcG9uZW50PiYgd2ViU291cmNlcykgY29uc3QKLXsKLSAgICBzaXpl
X3QgbnVtYmVyT2ZTb3VyY2VzID0gbV9wcml2YXRlLT5udW1iZXJPZkF1ZGlvQ29tcG9uZW50cygp
OwotICAgIFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbUNvbXBvbmVudD4gcmVzdWx0KG51bWJlck9m
U291cmNlcyk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1iZXJPZlNvdXJjZXM7ICsr
aSkKLSAgICAgICAgcmVzdWx0W2ldID0gbV9wcml2YXRlLT5hdWRpb0NvbXBvbmVudChpKTsKLSAg
ICB3ZWJTb3VyY2VzLnN3YXAocmVzdWx0KTsKLX0KLQotdm9pZCBXZWJNZWRpYVN0cmVhbURlc2Ny
aXB0b3I6OnZpZGVvU291cmNlcyhXZWJWZWN0b3I8V2ViTWVkaWFTdHJlYW1Db21wb25lbnQ+JiB3
ZWJTb3VyY2VzKSBjb25zdAotewotICAgIHNpemVfdCBudW1iZXJPZlNvdXJjZXMgPSBtX3ByaXZh
dGUtPm51bWJlck9mVmlkZW9Db21wb25lbnRzKCk7Ci0gICAgV2ViVmVjdG9yPFdlYk1lZGlhU3Ry
ZWFtQ29tcG9uZW50PiByZXN1bHQobnVtYmVyT2ZTb3VyY2VzKTsKLSAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG51bWJlck9mU291cmNlczsgKytpKQotICAgICAgICByZXN1bHRbaV0gPSBtX3By
aXZhdGUtPnZpZGVvQ29tcG9uZW50KGkpOwotICAgIHdlYlNvdXJjZXMuc3dhcChyZXN1bHQpOwot
fQotCi1XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjo6
b3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8V2ViQ29yZTo6TWVkaWFTdHJlYW1EZXNjcmlwdG9y
PiYgbWVkaWFTdHJlYW1EZXNjcmlwdG9yKQotewotICAgIG1fcHJpdmF0ZSA9IG1lZGlhU3RyZWFt
RGVzY3JpcHRvcjsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLVdlYk1lZGlhU3RyZWFtRGVzY3Jp
cHRvcjo6b3BlcmF0b3IgUGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRpYVN0cmVhbURlc2NyaXB0b3I+
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpOwotfQotCi1XZWJNZWRpYVN0
cmVhbURlc2NyaXB0b3I6Om9wZXJhdG9yIFdlYkNvcmU6Ok1lZGlhU3RyZWFtRGVzY3JpcHRvcioo
KSBjb25zdAotewotICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7Ci19Ci0KLXZvaWQgV2ViTWVk
aWFTdHJlYW1EZXNjcmlwdG9yOjppbml0aWFsaXplKGNvbnN0IFdlYlN0cmluZyYgbGFiZWwsIGNv
bnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVNvdXJjZT4mIGF1ZGlvU291cmNlcywgY29uc3Qg
V2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtU291cmNlPiYgdmlkZW9Tb3VyY2VzKQotewotICAgIE1l
ZGlhU3RyZWFtU291cmNlVmVjdG9yIGF1ZGlvLCB2aWRlbzsKLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGF1ZGlvU291cmNlcy5zaXplKCk7ICsraSkgewotICAgICAgICBNZWRpYVN0cmVhbVNv
dXJjZSogY3VyciA9IGF1ZGlvU291cmNlc1tpXTsKLSAgICAgICAgYXVkaW8uYXBwZW5kKGN1cnIp
OwotICAgIH0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZpZGVvU291cmNlcy5zaXplKCk7
ICsraSkgewotICAgICAgICBNZWRpYVN0cmVhbVNvdXJjZSogY3VyciA9IHZpZGVvU291cmNlc1tp
XTsKLSAgICAgICAgdmlkZW8uYXBwZW5kKGN1cnIpOwotICAgIH0KLSAgICBtX3ByaXZhdGUgPSBN
ZWRpYVN0cmVhbURlc2NyaXB0b3I6OmNyZWF0ZShsYWJlbCwgYXVkaW8sIHZpZGVvKTsKLX0KLQot
dm9pZCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3I6OmFzc2lnbihjb25zdCBXZWJNZWRpYVN0cmVh
bURlc2NyaXB0b3ImIG90aGVyKQotewotICAgIG1fcHJpdmF0ZSA9IG90aGVyLm1fcHJpdmF0ZTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9XZWJNZWRpYVN0cmVhbVRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1UcmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNiZWYzNWQ3
NDVjMDBkOTM4OWZmNzhmODBkNTRjNGRjZGU0ZDY2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW1UcmFjay5j
cHAKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFT
dHJlYW1UcmFjay5oPgorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1Db21wb25lbnQuaCIKKyNpbmNs
dWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW0uaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFT
dHJlYW1Tb3VyY2UuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViU3RyaW5nLmg+CisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1dlYk1lZGlhU3RyZWFtVHJhY2s6OldlYk1lZGlhU3RyZWFtVHJhY2soV2ViQ29y
ZTo6TWVkaWFTdHJlYW1Db21wb25lbnQqIG1lZGlhU3RyZWFtQ29tcG9uZW50KQorICAgIDogbV9w
cml2YXRlKG1lZGlhU3RyZWFtQ29tcG9uZW50KQoreworfQorCitXZWJNZWRpYVN0cmVhbVRyYWNr
JiBXZWJNZWRpYVN0cmVhbVRyYWNrOjpvcGVyYXRvcj0oV2ViQ29yZTo6TWVkaWFTdHJlYW1Db21w
b25lbnQqIG1lZGlhU3RyZWFtQ29tcG9uZW50KQoreworICAgIG1fcHJpdmF0ZSA9IG1lZGlhU3Ry
ZWFtQ29tcG9uZW50OworICAgIHJldHVybiAqdGhpczsKK30KKwordm9pZCBXZWJNZWRpYVN0cmVh
bVRyYWNrOjppbml0aWFsaXplKGNvbnN0IFdlYk1lZGlhU3RyZWFtU291cmNlJiBzb3VyY2UpCit7
CisgICAgbV9wcml2YXRlID0gTWVkaWFTdHJlYW1Db21wb25lbnQ6OmNyZWF0ZShzb3VyY2UpOwor
fQorCit2b2lkIFdlYk1lZGlhU3RyZWFtVHJhY2s6OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUu
cmVzZXQoKTsKK30KKworV2ViTWVkaWFTdHJlYW1UcmFjazo6b3BlcmF0b3IgUGFzc1JlZlB0cjxN
ZWRpYVN0cmVhbUNvbXBvbmVudD4oKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0
KCk7Cit9CisKK1dlYk1lZGlhU3RyZWFtVHJhY2s6Om9wZXJhdG9yIE1lZGlhU3RyZWFtQ29tcG9u
ZW50KigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsKK30KKworYm9vbCBX
ZWJNZWRpYVN0cmVhbVRyYWNrOjppc0VuYWJsZWQoKSBjb25zdAoreworICAgIEFTU0VSVCghbV9w
cml2YXRlLmlzTnVsbCgpKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5lbmFibGVkKCk7Cit9CisK
K1dlYlN0cmluZyBXZWJNZWRpYVN0cmVhbVRyYWNrOjppZCgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KCFtX3ByaXZhdGUuaXNOdWxsKCkpOworICAgIHJldHVybiBtX3ByaXZhdGUtPmlkKCk7Cit9CisK
K1dlYk1lZGlhU3RyZWFtIFdlYk1lZGlhU3RyZWFtVHJhY2s6OnN0cmVhbSgpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOworICAgIHJldHVybiBXZWJNZWRpYVN0cmVh
bShtX3ByaXZhdGUtPnN0cmVhbSgpKTsKK30KKworV2ViTWVkaWFTdHJlYW1Tb3VyY2UgV2ViTWVk
aWFTdHJlYW1UcmFjazo6c291cmNlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZS5p
c051bGwoKSk7CisgICAgcmV0dXJuIFdlYk1lZGlhU3RyZWFtU291cmNlKG1fcHJpdmF0ZS0+c291
cmNlKCkpOworfQorCit2b2lkIFdlYk1lZGlhU3RyZWFtVHJhY2s6OmFzc2lnbihjb25zdCBXZWJN
ZWRpYVN0cmVhbVRyYWNrJiBvdGhlcikKK3sKKyAgICBtX3ByaXZhdGUgPSBvdGhlci5tX3ByaXZh
dGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL3N1cHBvcnQvV2ViUlRDU3RhdHNSZXF1ZXN0LmNwcAppbmRleCA2M2Q5OWEwY2UyNjk0
YzE1ODJkNTIxMjVmMjg3NTRjY2NlZTllYTY2Li4yNDYyOTliNjJhNDIwNzQ3NGE4YTM0NWE2YWE3
ODhlNTE3MjliNDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9zdXBwb3J0L1dlYlJUQ1N0YXRzUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTdGF0c1JlcXVlc3QuY3BwCkBAIC0xLDQgKzEs
MyBAQAotCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgpAQCAtMzMsMTMgKzMyLDEzIEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogCi0jaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtQ29tcG9uZW50Lmg+Ci0jaW5j
bHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oPgogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJSVENTdGF0c1JlcXVlc3QuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU3RhdHNSZXNw
b25zZS5oPgogCiAjaW5jbHVkZSAiUlRDU3RhdHNSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUlRDU3Rh
dHNSZXNwb25zZS5oIgorI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbS5oPgorI2luY2x1
ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbVRyYWNrLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJU
Q1N0YXRzUmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKQEAgLTcxLDE0ICs3MCwxNCBAQCBib29sIFdlYlJUQ1N0YXRzUmVx
dWVzdDo6aGFzU2VsZWN0b3IoKSBjb25zdAogICAgIHJldHVybiBtX3ByaXZhdGUtPmhhc1NlbGVj
dG9yKCk7CiB9CiAKLWNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciBXZWJSVENTdGF0c1Jl
cXVlc3Q6OnN0cmVhbSgpIGNvbnN0Citjb25zdCBXZWJNZWRpYVN0cmVhbSBXZWJSVENTdGF0c1Jl
cXVlc3Q6OnN0cmVhbSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdlYk1lZGlhU3RyZWFtRGVzY3Jp
cHRvcihtX3ByaXZhdGUtPnN0cmVhbSgpKTsKKyAgICByZXR1cm4gV2ViTWVkaWFTdHJlYW0obV9w
cml2YXRlLT5zdHJlYW0oKSk7CiB9CiAKLWNvbnN0IFdlYk1lZGlhU3RyZWFtQ29tcG9uZW50IFdl
YlJUQ1N0YXRzUmVxdWVzdDo6Y29tcG9uZW50KCkgY29uc3QKK2NvbnN0IFdlYk1lZGlhU3RyZWFt
VHJhY2sgV2ViUlRDU3RhdHNSZXF1ZXN0Ojpjb21wb25lbnQoKSBjb25zdAogewotICAgIHJldHVy
biBXZWJNZWRpYVN0cmVhbUNvbXBvbmVudChtX3ByaXZhdGUtPmNvbXBvbmVudCgpKTsKKyAgICBy
ZXR1cm4gV2ViTWVkaWFTdHJlYW1UcmFjayhtX3ByaXZhdGUtPmNvbXBvbmVudCgpKTsKIH0KIAog
dm9pZCBXZWJSVENTdGF0c1JlcXVlc3Q6OnJlcXVlc3RTdWNjZWVkZWQoY29uc3QgV2ViUlRDU3Rh
dHNSZXNwb25zZSYgcmVzcG9uc2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9NZWRpYVN0cmVhbUNlbnRlckNocm9taXVtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL01lZGlhU3Ry
ZWFtQ2VudGVyQ2hyb21pdW0uY3BwCmluZGV4IDBlNDViZWU5ZTllNTA3ZjhjZTgzMWM4ZjgyYWFi
OTFiYzk2NGFkOGIuLmI2NjU1N2QwOWRkYzg1N2VkMzVjMjNjYWJkYjlkZTA0NjM2N2FmZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL01l
ZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2Nocm9taXVtL01lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0uY3BwCkBAIC0z
NywxMCArMzcsMTAgQEAKICNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKICNpbmNs
dWRlICJNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudC5oIgogI2luY2x1ZGUgPHB1YmxpYy9Q
bGF0Zm9ybS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbS5oPgogI2luY2x1ZGUg
PHB1YmxpYy9XZWJNZWRpYVN0cmVhbUNlbnRlci5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRp
YVN0cmVhbUNvbXBvbmVudC5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbURlc2Ny
aXB0b3IuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW1Tb3VyY2VzUmVxdWVzdC5o
PgorI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbVRyYWNrLmg+CiAjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC0xMDEsMjIg
KzEwMSwyMiBAQCB2b2lkIE1lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW06OmRpZFN0b3BMb2NhbE1l
ZGlhU3RyZWFtKE1lZGlhU3RyZWFtRGVzY3JpcHRvciogcwogdm9pZCBNZWRpYVN0cmVhbUNlbnRl
ckNocm9taXVtOjpkaWRDcmVhdGVNZWRpYVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0b3IqIHN0
cmVhbSkKIHsKICAgICBpZiAobV9wcml2YXRlKSB7Ci0gICAgICAgIFdlYktpdDo6V2ViTWVkaWFT
dHJlYW1EZXNjcmlwdG9yIHdlYlN0cmVhbShzdHJlYW0pOworICAgICAgICBXZWJLaXQ6OldlYk1l
ZGlhU3RyZWFtIHdlYlN0cmVhbShzdHJlYW0pOwogICAgICAgICBtX3ByaXZhdGUtPmRpZENyZWF0
ZU1lZGlhU3RyZWFtKHdlYlN0cmVhbSk7CiAgICAgfQogfQogCi12b2lkIE1lZGlhU3RyZWFtQ2Vu
dGVyQ2hyb21pdW06OnN0b3BMb2NhbE1lZGlhU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFT
dHJlYW1EZXNjcmlwdG9yJiBzdHJlYW0pCit2b2lkIE1lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW06
OnN0b3BMb2NhbE1lZGlhU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW0mIHN0cmVh
bSkKIHsKICAgICBlbmRMb2NhbE1lZGlhU3RyZWFtKHN0cmVhbSk7CiB9CiAKLXZvaWQgTWVkaWFT
dHJlYW1DZW50ZXJDaHJvbWl1bTo6YWRkTWVkaWFTdHJlYW1UcmFjayhjb25zdCBXZWJLaXQ6Oldl
Yk1lZGlhU3RyZWFtRGVzY3JpcHRvciYgc3RyZWFtLCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3Ry
ZWFtQ29tcG9uZW50JiBjb21wb25lbnQpCit2b2lkIE1lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW06
OmFkZE1lZGlhU3RyZWFtVHJhY2soY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbSYgc3RyZWFt
LCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJhY2smIGNvbXBvbmVudCkKIHsKICAgICBN
ZWRpYVN0cmVhbUNlbnRlcjo6YWRkTWVkaWFTdHJlYW1UcmFjayhzdHJlYW0sIGNvbXBvbmVudCk7
CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bTo6cmVtb3ZlTWVkaWFTdHJlYW1U
cmFjayhjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYgc3RyZWFtLCBjb25z
dCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtQ29tcG9uZW50JiBjb21wb25lbnQpCit2b2lkIE1lZGlh
U3RyZWFtQ2VudGVyQ2hyb21pdW06OnJlbW92ZU1lZGlhU3RyZWFtVHJhY2soY29uc3QgV2ViS2l0
OjpXZWJNZWRpYVN0cmVhbSYgc3RyZWFtLCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJh
Y2smIGNvbXBvbmVudCkKIHsKICAgICBNZWRpYVN0cmVhbUNlbnRlcjo6cmVtb3ZlTWVkaWFTdHJl
YW1UcmFjayhzdHJlYW0sIGNvbXBvbmVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9NZWRpYVN0cmVhbUNlbnRlckNocm9taXVt
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9NZWRpYVN0
cmVhbUNlbnRlckNocm9taXVtLmgKaW5kZXggY2MwN2FkMTQyYWM3MTVmZTQ1MzNjNWY4YWJmNDZh
NzU0MTdiOWI4NS4uYzEzYjNmYTVmZTllMzY2M2IzODI4NWQ2ZTRiNTE4ODQzYWQwMjBlMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vTWVk
aWFTdHJlYW1DZW50ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2Nocm9taXVtL01lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0uaApAQCAtNDEsOSAr
NDEsOSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKK2NsYXNzIFdlYk1lZGlhU3RyZWFtOwogY2xhc3MgV2ViTWVkaWFTdHJlYW1DZW50ZXI7
Ci1jbGFzcyBXZWJNZWRpYVN0cmVhbUNvbXBvbmVudDsKLWNsYXNzIFdlYk1lZGlhU3RyZWFtRGVz
Y3JpcHRvcjsKK2NsYXNzIFdlYk1lZGlhU3RyZWFtVHJhY2s7CiB9CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTY2LDkgKzY2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVh
dGVNZWRpYVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0b3IqKSBPVkVSUklERTsKIAogICAgIC8v
IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1DZW50ZXJDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgc3Rv
cExvY2FsTWVkaWFTdHJlYW0oY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3Im
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkTWVkaWFTdHJlYW1UcmFjayhjb25zdCBX
ZWJLaXQ6OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYsIGNvbnN0IFdlYktpdDo6V2ViTWVkaWFT
dHJlYW1Db21wb25lbnQmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTWVkaWFT
dHJlYW1UcmFjayhjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYsIGNvbnN0
IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1Db21wb25lbnQmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgc3RvcExvY2FsTWVkaWFTdHJlYW0oY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbSYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhZGRNZWRpYVN0cmVhbVRyYWNrKGNvbnN0IFdl
YktpdDo6V2ViTWVkaWFTdHJlYW0mLCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJhY2sm
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhjb25z
dCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRy
YWNrJikgT1ZFUlJJREU7CiAKIHByaXZhdGU6CiAgICAgT3duUHRyPFdlYktpdDo6V2ViTWVkaWFT
dHJlYW1DZW50ZXI+IG1fcHJpdmF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVt
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcAppbmRleCBiODljZDQ2MGM3NDViZGViYTE5
ZWUyNDg5NDJhNGZhZmYwZDk1Y2U2Li43ODZlMmQ0NmYxM2JhODhjMTFiMzA5MDNlZjUxZmFkNDFm
NjU4Y2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9j
aHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyQ2hyb21pdW0uY3BwCkBAIC00Niw3ICs0Niw3IEBACiAjaW5jbHVkZSAiUlRDVm9pZFJl
cXVlc3QuaCIKICNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KICNpbmNsdWRlIDxwdWJsaWMv
V2ViTWVkaWFDb25zdHJhaW50cy5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbURl
c2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW0uaD4KICNpbmNsdWRl
IDxwdWJsaWMvV2ViUlRDQ29uZmlndXJhdGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENE
YXRhQ2hhbm5lbEhhbmRsZXIuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDSUNFQ2FuZGlkYXRl
Lmg+CkBAIC0xODgsMTIgKzE4OCwxMiBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNo
cm9taXVtOjpkaWRDaGFuZ2VJQ0VDb25uZWN0aW9uU3RhdGUoV2ViS2l0OjpXZWJSVAogICAgIG1f
Y2xpZW50LT5kaWRDaGFuZ2VJY2VDb25uZWN0aW9uU3RhdGUoc3RhdGljX2Nhc3Q8UlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyQ2xpZW50OjpJY2VDb25uZWN0aW9uU3RhdGU+KHN0YXRlKSk7CiB9CiAK
LXZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OmRpZEFkZFJlbW90ZVN0cmVh
bShjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYgd2ViTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yKQordm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6ZGlkQWRk
UmVtb3RlU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW0mIHdlYk1lZGlhU3RyZWFt
RGVzY3JpcHRvcikKIHsKICAgICBtX2NsaWVudC0+ZGlkQWRkUmVtb3RlU3RyZWFtKHdlYk1lZGlh
U3RyZWFtRGVzY3JpcHRvcik7CiB9CiAKLXZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hy
b21pdW06OmRpZFJlbW92ZVJlbW90ZVN0cmVhbShjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFt
RGVzY3JpcHRvciYgd2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yKQordm9pZCBSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDaHJvbWl1bTo6ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKGNvbnN0IFdlYktpdDo6
V2ViTWVkaWFTdHJlYW0mIHdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcikKIHsKICAgICBtX2NsaWVu
dC0+ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKHdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9S
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0u
aAppbmRleCBmNzQ3YTdhOTcyMmZlYThhZjhlZDNkZTY5NmI4ZjlmYmUzMWU4YzdiLi5iMjU1ZTZm
YWZkNjYwYmY4NDMxZjEwNGI1ZDRkMGM4NGE2MmJhMmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2No
cm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmgKQEAgLTQxLDcgKzQxLDcg
QEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLWNs
YXNzIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKK2NsYXNzIFdlYk1lZGlhU3RyZWFtOwogY2xh
c3MgV2ViUlRDSUNFQ2FuZGlkYXRlOwogfQogCkBAIC03OCw4ICs3OCw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2lnbmFsaW5nU3RhdGUoV2ViS2l0OjpXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDbGllbnQ6OlNpZ25hbGluZ1N0YXRlKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlSUNFR2F0aGVyaW5nU3RhdGUoV2ViS2l0OjpXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDbGllbnQ6OklDRUdhdGhlcmluZ1N0YXRlKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlSUNFQ29ubmVjdGlvblN0YXRlKFdlYktpdDo6V2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OjpJQ0VDb25uZWN0aW9uU3RhdGUpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRSZW1vdGVTdHJlYW0oY29uc3QgV2ViS2l0OjpXZWJN
ZWRpYVN0cmVhbURlc2NyaXB0b3ImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVt
b3ZlUmVtb3RlU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZFJlbW90ZVN0cmVhbShjb25zdCBXZWJL
aXQ6OldlYk1lZGlhU3RyZWFtJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92
ZVJlbW90ZVN0cmVhbShjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtJikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZFJlbW90ZURhdGFDaGFubmVsKFdlYktpdDo6V2ViUlRDRGF0
YUNoYW5uZWxIYW5kbGVyKikgT1ZFUlJJREU7CiAKICAgICBzdGF0aWMgV2ViS2l0OjpXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIqIHRvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKFJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1SZWdpc3RyeS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW1SZWdpc3RyeS5oCmluZGV4IGI2OTI2MWMwNzVkMTUzOWIy
MjY2MjkyZmZiNTlkNjEwZmZmNGUzNjMuLjRmZTAwYTYyMDE0YmJkODJlMzliNmExNDEyNDI4Yjhl
NWFlYTBhNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1l
ZGlhU3RyZWFtUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJNZWRpYVN0cmVhbVJlZ2lzdHJ5LmgKQEAgLTM1LDEyICszNSwxMiBAQAogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotY2xhc3MgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yOworY2xhc3MgV2ViTWVk
aWFTdHJlYW07CiBjbGFzcyBXZWJVUkw7CiAKIGNsYXNzIFdlYk1lZGlhU3RyZWFtUmVnaXN0cnkg
ewogcHVibGljOgotICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYk1lZGlhU3RyZWFtRGVzY3Jp
cHRvciBsb29rdXBNZWRpYVN0cmVhbURlc2NyaXB0b3IoY29uc3QgV2ViVVJMJik7CisgICAgV0VC
S0lUX0VYUE9SVCBzdGF0aWMgV2ViTWVkaWFTdHJlYW0gbG9va3VwTWVkaWFTdHJlYW1EZXNjcmlw
dG9yKGNvbnN0IFdlYlVSTCYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVc2VyTWVkaWFSZXF1ZXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVc2VyTWVkaWFSZXF1ZXN0LmgKaW5k
ZXggMzVjYjJiZjE5MzQ2YzlkOTVjYmNiYWUxYmY1ZmE3NzA3MjNmODMwNy4uYTMzZjc3YmI1MTIw
NWZkMGY2ZmFlNTM2Nzc4ZmI3YzgzYzIzNjk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVXNlck1lZGlhUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlVzZXJNZWRpYVJlcXVlc3QuaApAQCAtNDIsNyArNDIsNyBAQCBj
bGFzcyBVc2VyTWVkaWFSZXF1ZXN0OwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJEb2N1
bWVudDsKIGNsYXNzIFdlYk1lZGlhQ29uc3RyYWludHM7Ci1jbGFzcyBXZWJNZWRpYVN0cmVhbURl
c2NyaXB0b3I7CitjbGFzcyBXZWJNZWRpYVN0cmVhbTsKIGNsYXNzIFdlYk1lZGlhU3RyZWFtU291
cmNlOwogY2xhc3MgV2ViU3RyaW5nOwogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZl
Y3RvcjsKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgIFdFQktJVF9FWFBPUlQgV2ViU2Vj
dXJpdHlPcmlnaW4gc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKICAgICBXRUJLSVRfRVhQT1JUIFdl
YkRvY3VtZW50IG93bmVyRG9jdW1lbnQoKSBjb25zdDsKIAotICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCByZXF1ZXN0U3VjY2VlZGVkKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYpOworICAg
IFdFQktJVF9FWFBPUlQgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKGNvbnN0IFdlYk1lZGlhU3RyZWFt
Jik7CiAKICAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVxdWVzdEZhaWxlZCgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtUmVnaXN0cnkuY3Bw
CmluZGV4IGQxYWQ2MDYyMDhmNWQ2N2Y0NDk2YTNmNDEyOTgwMWE2ODBlYTBhZDQuLmRkNzQ2YjIy
ZGFjNWEzZTZiYjc0MWYxMzcwYWFjNTIyZTZlYzZlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhU3RyZWFtUmVnaXN0cnkuY3BwCkBAIC0zNyw3ICsz
Nyw3IEBACiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtRGVzY3JpcHRv
ci5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtUmVnaXN0cnkuaCIKLSNpbmNsdWRlIDxwdWJsaWMv
V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3Ry
ZWFtLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgogI2luY2x1ZGUgPHB1YmxpYy9X
ZWJVUkwuaD4KIApAQCAtNDUsOSArNDUsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciBXZWJNZWRpYVN0
cmVhbVJlZ2lzdHJ5Ojpsb29rdXBNZWRpYVN0cmVhbURlc2NyaXB0b3IoY29uc3QgV2ViVVJMJiB1
cmwpCitXZWJNZWRpYVN0cmVhbSBXZWJNZWRpYVN0cmVhbVJlZ2lzdHJ5Ojpsb29rdXBNZWRpYVN0
cmVhbURlc2NyaXB0b3IoY29uc3QgV2ViVVJMJiB1cmwpCiB7Ci0gICAgcmV0dXJuIFdlYk1lZGlh
U3RyZWFtRGVzY3JpcHRvcihNZWRpYVN0cmVhbVJlZ2lzdHJ5OjpyZWdpc3RyeSgpLmxvb2t1cE1l
ZGlhU3RyZWFtRGVzY3JpcHRvcihLVVJMKHVybCkuc3RyaW5nKCkpKTsKKyAgICByZXR1cm4gV2Vi
TWVkaWFTdHJlYW0oTWVkaWFTdHJlYW1SZWdpc3RyeTo6cmVnaXN0cnkoKS5sb29rdXBNZWRpYVN0
cmVhbURlc2NyaXB0b3IoS1VSTCh1cmwpLnN0cmluZygpKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVXNlck1l
ZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVc2VyTWVkaWFS
ZXF1ZXN0LmNwcAppbmRleCBmZmVjYjBhZWQzYzgxYzlhY2Y0NTIyODdlNzMyYWZiZDUzN2E4OTM2
Li5iZTg5NDE5ODdhNjc2MzYwNDllOTBjMWY3NjJiZTljMjFkM2NkMmFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtNDMs
NyArNDMsNyBAQAogI2luY2x1ZGUgIldlYkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiV2ViU2VjdXJp
dHlPcmlnaW4uaCIKICNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFDb25zdHJhaW50cy5oPgotI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxwdWJs
aWMvV2ViTWVkaWFTdHJlYW0uaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW1Tb3Vy
Y2UuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViU3RyaW5nLmg+CiAjaW5jbHVkZSA8cHVibGljL1dl
YlZlY3Rvci5oPgpAQCAtOTksNyArOTksNyBAQCBXZWJEb2N1bWVudCBXZWJVc2VyTWVkaWFSZXF1
ZXN0Ojpvd25lckRvY3VtZW50KCkgY29uc3QKICAgICByZXR1cm4gV2ViRG9jdW1lbnQobV9wcml2
YXRlLT5vd25lckRvY3VtZW50KCkpOwogfQogCi12b2lkIFdlYlVzZXJNZWRpYVJlcXVlc3Q6OnJl
cXVlc3RTdWNjZWVkZWQoY29uc3QgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiBzdHJlYW1EZXNj
cmlwdG9yKQordm9pZCBXZWJVc2VyTWVkaWFSZXF1ZXN0OjpyZXF1ZXN0U3VjY2VlZGVkKGNvbnN0
IFdlYk1lZGlhU3RyZWFtJiBzdHJlYW1EZXNjcmlwdG9yKQogewogICAgIEFTU0VSVCghaXNOdWxs
KCkgJiYgIXN0cmVhbURlc2NyaXB0b3IuaXNOdWxsKCkpOwogICAgIG1fcHJpdmF0ZS0+c3VjY2Vl
ZChzdHJlYW1EZXNjcmlwdG9yKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA2YjA2NzJiOWRkYTA1ODNiYjM3MThiMGIxNDRiMjM4YWYwMTBjZDg4
Li4yOTRiNmQwZjQ5NDAwOGVjZDE1YmU1NzExYWYwZWJkYTVhYjIwZWZmIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIw
MTMtMDEtMzEgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CisKKyAgICAg
ICAgW2Nocm9taXVtXSBNZWRpYVN0cmVhbSBBUEk6IFJlbmFtZSBXZWJNZWRpYVN0cmVhbURlc2Ny
aXB0b3IgYW5kIFdlYk1lZGlhU3RyZWFtQ29tcG9uZW50IHRvIFdlYk1lZGlhU3RyZWFtIGFuZCBX
ZWJNZWRpYVN0cmVhbVRyYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDg0NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBPbmx5IHJlbmFtZXMsIG5vIG90aGVyIGNvZGUgY2hhbmdlcy4KKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJNZWRpYVN0cmVhbUNlbnRlci5jcHA6
CisgICAgICAgIChNb2NrV2ViTWVkaWFTdHJlYW1DZW50ZXI6OmRpZEVuYWJsZU1lZGlhU3RyZWFt
VHJhY2spOgorICAgICAgICAoTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyOjpkaWREaXNhYmxlTWVk
aWFTdHJlYW1UcmFjayk6CisgICAgICAgIChNb2NrV2ViTWVkaWFTdHJlYW1DZW50ZXI6OmRpZEFk
ZE1lZGlhU3RyZWFtVHJhY2spOgorICAgICAgICAoTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyOjpk
aWRSZW1vdmVNZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKE1vY2tXZWJNZWRpYVN0cmVhbUNl
bnRlcjo6ZGlkU3RvcExvY2FsTWVkaWFTdHJlYW0pOgorICAgICAgICAoTW9ja1dlYk1lZGlhU3Ry
ZWFtQ2VudGVyOjpkaWRDcmVhdGVNZWRpYVN0cmVhbSk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyLmg6CisgICAgICAgIChNb2NrV2Vi
TWVkaWFTdHJlYW1DZW50ZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01v
Y2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwOgorICAgICAgICAoTW9ja1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlcjo6YWRkU3RyZWFtKToKKyAgICAgICAgKE1vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXI6OnJlbW92ZVN0cmVhbSk6CisgICAgICAgIChNb2NrV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyOjpnZXRTdGF0cyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAoTW9j
a1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVXNlck1lZGlhQ2xpZW50TW9jay5jcHA6CisgICAgICAgIChVc2VyTWVkaWFS
ZXF1ZXN0VGFzazo6VXNlck1lZGlhUmVxdWVzdFRhc2spOgorICAgICAgICAoV2ViVXNlck1lZGlh
Q2xpZW50TW9jazo6cmVxdWVzdFVzZXJNZWRpYSk6CisKIDIwMTMtMDEtMzEgIEpvY2hlbiBFaXNp
bmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBtb3ZlIHBv
c3RNZXNzYWdlIHJlbGF0ZWQgbWV0aG9kcyB0byBUZXN0UnVubmVyIGxpYnJhcnkKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJNZWRpYVN0cmVhbUNlbnRl
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViTWVkaWFTdHJlYW1D
ZW50ZXIuY3BwCmluZGV4IGU0YmM3YWYwZGM1YzRjYTBkYTVmNmMyZWNhMjVhMmYwMDE5OTMyYjMu
LjkzZGM2YTZkNzU4NjZlYWRjYjY4MTQ0YmQyYTdhNThiZjY5ZDU2NjAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJNZWRpYVN0cmVhbUNlbnRlci5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYk1lZGlhU3RyZWFtQ2Vu
dGVyLmNwcApAQCAtMzQsMTEgKzM0LDExIEBACiAjaW5jbHVkZSAiTW9ja1dlYk1lZGlhU3RyZWFt
Q2VudGVyLmgiCiAKICNpbmNsdWRlIDxwdWJsaWMvV2ViQXVkaW9EZXN0aW5hdGlvbkNvbnN1bWVy
Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtLmg+CiAjaW5jbHVkZSA8cHVibGlj
L1dlYk1lZGlhU3RyZWFtQ2VudGVyQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8cHVibGljL1dlYk1lZGlh
U3RyZWFtQ29tcG9uZW50Lmg+Ci0jaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtRGVzY3Jp
cHRvci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbVNvdXJjZS5oPgogI2luY2x1
ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbVNvdXJjZXNSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8cHVi
bGljL1dlYk1lZGlhU3RyZWFtVHJhY2suaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViVmVjdG9yLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC01MywzNCArNTMsMzQgQEAgdm9pZCBNb2Nr
V2ViTWVkaWFTdHJlYW1DZW50ZXI6OnF1ZXJ5TWVkaWFTdHJlYW1Tb3VyY2VzKGNvbnN0IFdlYk1l
ZGlhU3RyZWFtU291cmMKICAgICByZXF1ZXN0LmRpZENvbXBsZXRlUXVlcnkoYXVkaW9Tb3VyY2Vz
LCB2aWRlb1NvdXJjZXMpOwogfQogCi12b2lkIE1vY2tXZWJNZWRpYVN0cmVhbUNlbnRlcjo6ZGlk
RW5hYmxlTWVkaWFTdHJlYW1UcmFjayhjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImLCBj
b25zdCBXZWJNZWRpYVN0cmVhbUNvbXBvbmVudCYgY29tcG9uZW50KQordm9pZCBNb2NrV2ViTWVk
aWFTdHJlYW1DZW50ZXI6OmRpZEVuYWJsZU1lZGlhU3RyZWFtVHJhY2soY29uc3QgV2ViTWVkaWFT
dHJlYW0mLCBjb25zdCBXZWJNZWRpYVN0cmVhbVRyYWNrJiBjb21wb25lbnQpCiB7CiAgICAgY29t
cG9uZW50LnNvdXJjZSgpLnNldFJlYWR5U3RhdGUoV2ViTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5
U3RhdGVMaXZlKTsKIH0KIAotdm9pZCBNb2NrV2ViTWVkaWFTdHJlYW1DZW50ZXI6OmRpZERpc2Fi
bGVNZWRpYVN0cmVhbVRyYWNrKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYsIGNvbnN0
IFdlYk1lZGlhU3RyZWFtQ29tcG9uZW50JiBjb21wb25lbnQpCit2b2lkIE1vY2tXZWJNZWRpYVN0
cmVhbUNlbnRlcjo6ZGlkRGlzYWJsZU1lZGlhU3RyZWFtVHJhY2soY29uc3QgV2ViTWVkaWFTdHJl
YW0mLCBjb25zdCBXZWJNZWRpYVN0cmVhbVRyYWNrJiBjb21wb25lbnQpCiB7CiAgICAgY29tcG9u
ZW50LnNvdXJjZSgpLnNldFJlYWR5U3RhdGUoV2ViTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3Rh
dGVNdXRlZCk7CiB9CiAKLWJvb2wgTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyOjpkaWRBZGRNZWRp
YVN0cmVhbVRyYWNrKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYsIGNvbnN0IFdlYk1l
ZGlhU3RyZWFtQ29tcG9uZW50JikKK2Jvb2wgTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyOjpkaWRB
ZGRNZWRpYVN0cmVhbVRyYWNrKGNvbnN0IFdlYk1lZGlhU3RyZWFtJiwgY29uc3QgV2ViTWVkaWFT
dHJlYW1UcmFjayYpCiB7CiAgICAgcmV0dXJuIHRydWU7CiB9OwogCi1ib29sIE1vY2tXZWJNZWRp
YVN0cmVhbUNlbnRlcjo6ZGlkUmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhjb25zdCBXZWJNZWRpYVN0
cmVhbURlc2NyaXB0b3ImLCBjb25zdCBXZWJNZWRpYVN0cmVhbUNvbXBvbmVudCYpCitib29sIE1v
Y2tXZWJNZWRpYVN0cmVhbUNlbnRlcjo6ZGlkUmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhjb25zdCBX
ZWJNZWRpYVN0cmVhbSYsIGNvbnN0IFdlYk1lZGlhU3RyZWFtVHJhY2smKQogewogICAgIHJldHVy
biB0cnVlOwogfTsKIAotdm9pZCBNb2NrV2ViTWVkaWFTdHJlYW1DZW50ZXI6OmRpZFN0b3BMb2Nh
bE1lZGlhU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYgc3RyZWFtKQordm9p
ZCBNb2NrV2ViTWVkaWFTdHJlYW1DZW50ZXI6OmRpZFN0b3BMb2NhbE1lZGlhU3RyZWFtKGNvbnN0
IFdlYk1lZGlhU3RyZWFtJiBzdHJlYW0pCiB7Ci0gICAgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFt
Q29tcG9uZW50PiBhdWRpb0NvbXBvbmVudHM7CisgICAgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFt
VHJhY2s+IGF1ZGlvQ29tcG9uZW50czsKICAgICBzdHJlYW0uYXVkaW9Tb3VyY2VzKGF1ZGlvQ29t
cG9uZW50cyk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhdWRpb0NvbXBvbmVudHMuc2l6
ZSgpOyArK2kpCiAgICAgICAgIGF1ZGlvQ29tcG9uZW50c1tpXS5zb3VyY2UoKS5zZXRSZWFkeVN0
YXRlKFdlYk1lZGlhU3RyZWFtU291cmNlOjpSZWFkeVN0YXRlRW5kZWQpOwogCi0gICAgV2ViVmVj
dG9yPFdlYk1lZGlhU3RyZWFtQ29tcG9uZW50PiB2aWRlb0NvbXBvbmVudHM7CisgICAgV2ViVmVj
dG9yPFdlYk1lZGlhU3RyZWFtVHJhY2s+IHZpZGVvQ29tcG9uZW50czsKICAgICBzdHJlYW0udmlk
ZW9Tb3VyY2VzKHZpZGVvQ29tcG9uZW50cyk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2
aWRlb0NvbXBvbmVudHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHZpZGVvQ29tcG9uZW50c1tpXS5z
b3VyY2UoKS5zZXRSZWFkeVN0YXRlKFdlYk1lZGlhU3RyZWFtU291cmNlOjpSZWFkeVN0YXRlRW5k
ZWQpOwpAQCAtOTMsOSArOTMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvbnN1bWVB
dWRpbyhjb25zdCBXZWJWZWN0b3I8Y29uc3QgZmxvYXQqPiYsIHNpemVfdCBudW1iZXJfb2ZfZnJh
bWVzKSBPVkVSUklERSB7IH0KIH07CiAKLXZvaWQgTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyOjpk
aWRDcmVhdGVNZWRpYVN0cmVhbShXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImIHN0cmVhbSkKK3Zv
aWQgTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyOjpkaWRDcmVhdGVNZWRpYVN0cmVhbShXZWJNZWRp
YVN0cmVhbSYgc3RyZWFtKQogewotICAgIFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbUNvbXBvbmVu
dD4gYXVkaW9Db21wb25lbnRzOworICAgIFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVRyYWNrPiBh
dWRpb0NvbXBvbmVudHM7CiAgICAgc3RyZWFtLmF1ZGlvU291cmNlcyhhdWRpb0NvbXBvbmVudHMp
OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXVkaW9Db21wb25lbnRzLnNpemUoKTsgKytp
KSB7CiAgICAgICAgIFdlYk1lZGlhU3RyZWFtU291cmNlIHNvdXJjZSA9IGF1ZGlvQ29tcG9uZW50
c1tpXS5zb3VyY2UoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L01vY2tXZWJNZWRpYVN0cmVhbUNlbnRlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyLmgKaW5kZXggN2Q1MzJlNzQzN2RmYzViNThhNGY4
NTU2NjBhZGMzNTMwNjg4Nzk3Ny4uZWUwZDczYTFiNjZhNTA0YTkxMmJmNGI1OGEzNDBhYzI0MTkx
NzdlNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYk1l
ZGlhU3RyZWFtQ2VudGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9j
a1dlYk1lZGlhU3RyZWFtQ2VudGVyLmgKQEAgLTQzLDEyICs0MywxMiBAQCBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyKFdlYktpdDo6V2ViTWVkaWFTdHJlYW1D
ZW50ZXJDbGllbnQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBxdWVyeU1lZGlhU3RyZWFtU291cmNl
cyhjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtU291cmNlc1JlcXVlc3QmKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkRW5hYmxlTWVkaWFTdHJlYW1UcmFjayhjb25zdCBXZWJLaXQ6
OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYsIGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1D
b21wb25lbnQmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzYWJsZU1lZGlhU3Ry
ZWFtVHJhY2soY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImLCBjb25zdCBX
ZWJLaXQ6OldlYk1lZGlhU3RyZWFtQ29tcG9uZW50JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIGRpZEFkZE1lZGlhU3RyZWFtVHJhY2soY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbURl
c2NyaXB0b3ImLCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtQ29tcG9uZW50JikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIGRpZFJlbW92ZU1lZGlhU3RyZWFtVHJhY2soY29uc3QgV2Vi
S2l0OjpXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImLCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3Ry
ZWFtQ29tcG9uZW50JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFN0b3BMb2NhbE1l
ZGlhU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZU1lZGlhU3RyZWFtKFdlYktpdDo6V2ViTWVk
aWFTdHJlYW1EZXNjcmlwdG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEVuYWJs
ZU1lZGlhU3RyZWFtVHJhY2soY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbSYsIGNvbnN0IFdl
YktpdDo6V2ViTWVkaWFTdHJlYW1UcmFjayYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
aWREaXNhYmxlTWVkaWFTdHJlYW1UcmFjayhjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtJiwg
Y29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbVRyYWNrJikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIGRpZEFkZE1lZGlhU3RyZWFtVHJhY2soY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVh
bSYsIGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1UcmFjayYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCBkaWRSZW1vdmVNZWRpYVN0cmVhbVRyYWNrKGNvbnN0IFdlYktpdDo6V2ViTWVk
aWFTdHJlYW0mLCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtVHJhY2smKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcExvY2FsTWVkaWFTdHJlYW0oY29uc3QgV2ViS2l0OjpX
ZWJNZWRpYVN0cmVhbSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVNZWRp
YVN0cmVhbShXZWJLaXQ6OldlYk1lZGlhU3RyZWFtJikgT1ZFUlJJREU7CiAKIHByaXZhdGU6CiAg
ICAgTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyKCkgeyB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuY3BwCmluZGV4IGFiYjg2OTA4NjlkNDVjZjkyOGQ4YmI4ZmQ3NzU5ZTVhYWM2NGFkMWIu
LjFmYzBjNzljN2Q3MTE0NDU5ZGRiZjY2Y2ZiMzQxNWFlZGY0Mzk2NTAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuY3BwCkBAIC0zNyw4ICszNyw4IEBACiAjaW5jbHVkZSAiTW9ja1dl
YlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIgogI2luY2x1ZGUgIlRhc2suaCIKICNpbmNsdWRlIDxw
dWJsaWMvV2ViTWVkaWFDb25zdHJhaW50cy5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0
cmVhbUNvbXBvbmVudC5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0
b3IuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW0uaD4KKyNpbmNsdWRlIDxwdWJs
aWMvV2ViTWVkaWFTdHJlYW1UcmFjay5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDbGllbnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3QuaD4KQEAgLTI0OCw3ICsyNDgsNyBAQCBib29sIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXI6OmFkZElDRUNhbmRpZGF0ZShjb25zdCBXZWJSVENJQ0VDYW5kaWRhdGUmCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6
YWRkU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYgc3RyZWFtLCBjb25zdCBX
ZWJNZWRpYUNvbnN0cmFpbnRzJikKK2Jvb2wgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
cjo6YWRkU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtJiBzdHJlYW0sIGNvbnN0IFdlYk1lZGlh
Q29uc3RyYWludHMmKQogewogICAgIG1fc3RyZWFtQ291bnQgKz0gMTsKICAgICBtX2NsaWVudC0+
ZGlkQWRkUmVtb3RlU3RyZWFtKHN0cmVhbSk7CkBAIC0yNTYsNyArMjU2LDcgQEAgYm9vbCBNb2Nr
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjphZGRTdHJlYW0oY29uc3QgV2ViTWVkaWFTdHJl
YW1EZXNjcmlwdG9yJgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIE1vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXI6OnJlbW92ZVN0cmVhbShjb25zdCBXZWJNZWRpYVN0cmVhbURlc2Ny
aXB0b3ImIHN0cmVhbSkKK3ZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6cmVt
b3ZlU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtJiBzdHJlYW0pCiB7CiAgICAgbV9zdHJlYW1D
b3VudCAtPSAxOwogICAgIG1fY2xpZW50LT5kaWRSZW1vdmVSZW1vdGVTdHJlYW0oc3RyZWFtKTsK
QEAgLTI2OCw4ICsyNjgsNyBAQCB2b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6
OmdldFN0YXRzKGNvbnN0IFdlYlJUQ1N0YXRzUmVxdWVzdCYgcmVxdWVzdAogICAgIFdlYlJUQ1N0
YXRzUmVzcG9uc2UgcmVzcG9uc2UgPSByZXF1ZXN0LmNyZWF0ZVJlc3BvbnNlKCk7CiAgICAgZG91
YmxlIGN1cnJlbnREYXRlID0gV1RGOjpqc0N1cnJlbnRUaW1lKCk7CiAgICAgaWYgKHJlcXVlc3Qu
aGFzU2VsZWN0b3IoKSkgewotICAgICAgICBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3Igc3RyZWFt
ID0gcmVxdWVzdC5zdHJlYW0oKTsKLSAgICAgICAgV2ViTWVkaWFTdHJlYW1Db21wb25lbnQgY29t
cG9uZW50ID0gcmVxdWVzdC5jb21wb25lbnQoKTsKKyAgICAgICAgV2ViTWVkaWFTdHJlYW0gc3Ry
ZWFtID0gcmVxdWVzdC5zdHJlYW0oKTsKICAgICAgICAgLy8gRklYTUU6IFRoZXJlIGlzIG5vIGNo
ZWNrIHRoYXQgdGhlIGZldGNoZWQgdmFsdWVzIGFyZSB2YWxpZC4KICAgICAgICAgc2l6ZV90IHJl
cG9ydEluZGV4ID0gcmVzcG9uc2UuYWRkUmVwb3J0KCk7CiAgICAgICAgIHJlc3BvbnNlLmFkZEVs
ZW1lbnQocmVwb3J0SW5kZXgsIHRydWUsIGN1cnJlbnREYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXIuaAppbmRleCA5ZDBlZDc5NmQxZTM5M2I2NTE2YWU0YjM0MDg0NmNhMDgxMTYyNDkw
Li44MzU1YjEyNDcwNTYxYjIwYmUzYjllOWE4ZTAyODMzOTJhZjgxNGUyIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlci5oCkBAIC01Nyw4ICs1Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIHJlbW90ZURlc2NyaXB0aW9uKCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIHVwZGF0ZUlDRShjb25zdCBXZWJLaXQ6OldlYlJUQ0Nv
bmZpZ3VyYXRpb24mLCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhQ29uc3RyYWludHMmKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkSUNFQ2FuZGlkYXRlKGNvbnN0IFdlYktpdDo6V2ViUlRD
SUNFQ2FuZGlkYXRlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShjb25z
dCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYsIGNvbnN0IFdlYktpdDo6V2ViTWVk
aWFDb25zdHJhaW50cyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTdHJlYW0o
Y29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW0mLCBjb25z
dCBXZWJLaXQ6OldlYk1lZGlhQ29uc3RyYWludHMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW0mKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0U3RhdHMoY29uc3QgV2ViS2l0OjpXZWJSVENTdGF0c1JlcXVl
c3QmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViUlRDRGF0YUNoYW5uZWxIYW5k
bGVyKiBjcmVhdGVEYXRhQ2hhbm5lbChjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgbGFiZWwsIGJv
b2wgcmVsaWFibGUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJVc2VyTWVkaWFD
bGllbnRNb2NrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlVzZXJNZWRp
YUNsaWVudE1vY2suY3BwCmluZGV4IDM4NzhmZjE2NzdhOWM2ZmJlMDhhNGYxYmEwNGU5NTk2ZjM0
ODdlNjMuLjY2MGFmMTQ0NWI5ZDQ0OGE4NWVjODIyZTM4OTZiMmVjYWUzMDIzNzcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlVzZXJNZWRpYUNsaWVudE1vY2su
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlVzZXJNZWRpYUNsaWVu
dE1vY2suY3BwCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSAiV2ViTWVkaWFTdHJlYW1SZWdp
c3RyeS5oIgogI2luY2x1ZGUgIldlYlVzZXJNZWRpYVJlcXVlc3QuaCIKICNpbmNsdWRlIDxwdWJs
aWMvV2ViTWVkaWFDb25zdHJhaW50cy5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVh
bURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW0uaD4KICNpbmNs
dWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW1Tb3VyY2UuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2Vi
VmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTQ5LDcgKzQ5LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXI7CiAKIGNsYXNzIFVzZXJNZWRpYVJlcXVlc3RU
YXNrIDogcHVibGljIFdlYk1ldGhvZFRhc2s8V2ViVXNlck1lZGlhQ2xpZW50TW9jaz4gewogcHVi
bGljOgotICAgIFVzZXJNZWRpYVJlcXVlc3RUYXNrKFdlYlVzZXJNZWRpYUNsaWVudE1vY2sqIG9i
amVjdCwgY29uc3QgV2ViVXNlck1lZGlhUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViTWVkaWFT
dHJlYW1EZXNjcmlwdG9yIHJlc3VsdCkKKyAgICBVc2VyTWVkaWFSZXF1ZXN0VGFzayhXZWJVc2Vy
TWVkaWFDbGllbnRNb2NrKiBvYmplY3QsIGNvbnN0IFdlYlVzZXJNZWRpYVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFdlYk1lZGlhU3RyZWFtIHJlc3VsdCkKICAgICAgICAgOiBXZWJNZXRob2RUYXNr
PFdlYlVzZXJNZWRpYUNsaWVudE1vY2s+KG9iamVjdCkKICAgICAgICAgLCBtX3JlcXVlc3QocmVx
dWVzdCkKICAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCkBAIC02NiwxMiArNjYsMTIgQEAgcHVi
bGljOgogCiBwcml2YXRlOgogICAgIFdlYlVzZXJNZWRpYVJlcXVlc3QgbV9yZXF1ZXN0OwotICAg
IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciBtX3Jlc3VsdDsKKyAgICBXZWJNZWRpYVN0cmVhbSBt
X3Jlc3VsdDsKIH07CiAKIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLWNsYXNz
IE1vY2tFeHRyYURhdGEgOiBwdWJsaWMgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpFeHRyYURh
dGEgeworY2xhc3MgTW9ja0V4dHJhRGF0YSA6IHB1YmxpYyBXZWJNZWRpYVN0cmVhbTo6RXh0cmFE
YXRhIHsKIHB1YmxpYzoKICAgICBpbnQgZm9vOwogfTsKQEAgLTg3LDE4ICs4NywxOCBAQCB2b2lk
IFdlYlVzZXJNZWRpYUNsaWVudE1vY2s6OnJlcXVlc3RVc2VyTWVkaWEoY29uc3QgV2ViVXNlck1l
ZGlhUmVxdWVzdCYgc3RyZWFtUgogICAgIFdlYlVzZXJNZWRpYVJlcXVlc3QgcmVxdWVzdCA9IHN0
cmVhbVJlcXVlc3Q7CiAKICAgICBpZiAocmVxdWVzdC5vd25lckRvY3VtZW50KCkuaXNOdWxsKCkg
fHwgIXJlcXVlc3Qub3duZXJEb2N1bWVudCgpLmZyYW1lKCkpIHsKLSAgICAgICAgcG9zdFRhc2so
bmV3IFVzZXJNZWRpYVJlcXVlc3RUYXNrKHRoaXMsIHJlcXVlc3QsIFdlYk1lZGlhU3RyZWFtRGVz
Y3JpcHRvcigpKSk7CisgICAgICAgIHBvc3RUYXNrKG5ldyBVc2VyTWVkaWFSZXF1ZXN0VGFzayh0
aGlzLCByZXF1ZXN0LCBXZWJNZWRpYVN0cmVhbSgpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBXZWJNZWRpYUNvbnN0cmFpbnRzIGNvbnN0cmFpbnRzID0gcmVxdWVzdC5hdWRpb0Nv
bnN0cmFpbnRzKCk7CiAgICAgaWYgKCFjb25zdHJhaW50cy5pc051bGwoKSAmJiAhTW9ja0NvbnN0
cmFpbnRzOjp2ZXJpZnlDb25zdHJhaW50cyhjb25zdHJhaW50cykpIHsKLSAgICAgICAgcG9zdFRh
c2sobmV3IFVzZXJNZWRpYVJlcXVlc3RUYXNrKHRoaXMsIHJlcXVlc3QsIFdlYk1lZGlhU3RyZWFt
RGVzY3JpcHRvcigpKSk7CisgICAgICAgIHBvc3RUYXNrKG5ldyBVc2VyTWVkaWFSZXF1ZXN0VGFz
ayh0aGlzLCByZXF1ZXN0LCBXZWJNZWRpYVN0cmVhbSgpKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgY29uc3RyYWludHMgPSByZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMoKTsKICAgICBp
ZiAoIWNvbnN0cmFpbnRzLmlzTnVsbCgpICYmICFNb2NrQ29uc3RyYWludHM6OnZlcmlmeUNvbnN0
cmFpbnRzKGNvbnN0cmFpbnRzKSkgewotICAgICAgICBwb3N0VGFzayhuZXcgVXNlck1lZGlhUmVx
dWVzdFRhc2sodGhpcywgcmVxdWVzdCwgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yKCkpKTsKKyAg
ICAgICAgcG9zdFRhc2sobmV3IFVzZXJNZWRpYVJlcXVlc3RUYXNrKHRoaXMsIHJlcXVlc3QsIFdl
Yk1lZGlhU3RyZWFtKCkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTEzLDcgKzEx
Myw3IEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50TW9jazo6cmVxdWVzdFVzZXJNZWRpYShjb25z
dCBXZWJVc2VyTWVkaWFSZXF1ZXN0JiBzdHJlYW1SCiAgICAgaWYgKHJlcXVlc3QudmlkZW8oKSkK
ICAgICAgICAgdmlkZW9Tb3VyY2VzWzBdLmluaXRpYWxpemUoIk1vY2tWaWRlb0RldmljZSMxIiwg
V2ViTWVkaWFTdHJlYW1Tb3VyY2U6OlR5cGVWaWRlbywgIk1vY2sgdmlkZW8gZGV2aWNlIik7CiAK
LSAgICBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3Igc3RyZWFtOworICAgIFdlYk1lZGlhU3RyZWFt
IHN0cmVhbTsKICAgICBzdHJlYW0uaW5pdGlhbGl6ZSgiZm9vYmFyIiwgYXVkaW9Tb3VyY2VzLCB2
aWRlb1NvdXJjZXMpOwogCiAgICAgc3RyZWFtLnNldEV4dHJhRGF0YShuZXcgTW9ja0V4dHJhRGF0
YSgpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>