<?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>97673</bug_id>
          
          <creation_ts>2012-09-26 06:32:05 -0700</creation_ts>
          <short_desc>MediaStream API: Allow RTCPeerConnection to pass down its Document reference to the embedder</short_desc>
          <delta_ts>2012-10-16 01:06:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>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>728482</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-26 06:32:05 -0700</bug_when>
    <thetext>This patch tries to accomplish the same thing as my recent UserMediaRequest patch (97095), namely to pass down a Document reference to the embedder. 
However since this code lives under WebCore/platform there isn&apos;t a clear way to do so. Creating a frame client and sending it down that way has been suggested but that would require even more cludges. In that light something like this might be a compromise?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728493</commentid>
    <comment_count>1</comment_count>
      <attachid>165786</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-26 06:40:29 -0700</bug_when>
    <thetext>Created attachment 165786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728494</commentid>
    <comment_count>2</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-26 06:41:26 -0700</bug_when>
    <thetext>Note, this patch is for discussion only at this stage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728496</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-26 06:46:18 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728634</commentid>
    <comment_count>4</comment_count>
      <attachid>165786</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-26 09:06:20 -0700</bug_when>
    <thetext>Comment on attachment 165786
Patch

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

&gt; Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h:35
&gt; +class WebDocument;

You can&apos;t reference WebDocument in Source/Platform.  Document is a DOM-level concept, not a Platform-level concept.

&gt; Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.cpp:50
&gt; -    virtual bool initialize(PassRefPtr&lt;RTCConfiguration&gt;, PassRefPtr&lt;MediaConstraints&gt;) OVERRIDE;
&gt; +    virtual bool initialize(Document*, PassRefPtr&lt;RTCConfiguration&gt;, PassRefPtr&lt;MediaConstraints&gt;) OVERRIDE;

This is also a layering violation.  Code in WebCore/platform shouldn&apos;t know anything about Document.

&gt; Source/WebKit/chromium/src/RTCPeerConnectionHandlerChromium.cpp:249
&gt; +namespace WebCore {
&gt; +
&gt; +PassOwnPtr&lt;RTCPeerConnectionHandler&gt; RTCPeerConnectionHandler::create(RTCPeerConnectionHandlerClient* client)
&gt; +{
&gt; +    return adoptPtr(new WebKit::RTCPeerConnectionHandlerChromium(client));
&gt; +}
&gt; +
&gt; +} // namespace WebCore

This is wrong.  We shouldn&apos;t have code in Source/WebKit/chromium that&apos;s in the WebCore namespace.  I know other features do this, but we&apos;re trying to unwind all these layering violations so we can split WebCore and WebKit into separate DLLs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728637</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-26 09:07:44 -0700</bug_when>
    <thetext>Maybe we should talk in a more interactive medium to work out this issue?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165786</attachid>
            <date>2012-09-26 06:40:29 -0700</date>
            <delta_ts>2012-09-26 09:06:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97673-20120926153948.patch</filename>
            <type>text/plain</type>
            <size>38901</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBjMDJiOTRmYjY3ZTZk
ZTA5NWI1OGI1Y2NmYjAyODNiNGVhNzViMDNhLi4zZTA0YzU5YTYxMDUxNThlZTcwYWNkNzNhMGI2
YmI1MTE3MmExNTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wOS0yNiAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0
cmVhbSBBUEk6IEFsbG93IFJUQ1BlZXJDb25uZWN0aW9uIHRvIHBhc3MgZG93biBpdHMgRG9jdW1l
bnQgcmVmZXJlbmNlIHRvIHRoZSBlbWJlZGRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJNZWRpYUNvbnN0cmFpbnRz
Lmg6CisgICAgICAgIChXZWJNZWRpYUNvbnN0cmFpbnRzKToKKyAgICAgICAgKiBjaHJvbWl1bS9w
dWJsaWMvV2ViUlRDQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViUlRDSUNFU2VydmVyKToK
KyAgICAgICAgKFdlYlJUQ0NvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIGNocm9taXVtL3B1Ymxp
Yy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6aW5pdGlhbGl6ZSk6CisK
IDIwMTItMDktMjUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjk1MTcuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTc1ZjdiZjczOGViN2Q3NDdmMjNlZDA2MmUwOTQzNGQxNzI5MjEwMC4uYzRjNTVmYzlhOTU2ZmIz
YjIzNWE0NTcxYmYzNjZmOWQxYjZhZThjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisy
MDEyLTA5LTI2ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAg
ICAgIE1lZGlhU3RyZWFtIEFQSTogQWxsb3cgUlRDUGVlckNvbm5lY3Rpb24gdG8gcGFzcyBkb3du
IGl0cyBEb2N1bWVudCByZWZlcmVuY2UgdG8gdGhlIGVtYmVkZGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzY3MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4aXN0aW5nIHRlc3RzIGNvdmVyIGNoYW5n
ZS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OlJUQ1BlZXJDb25uZWN0aW9u
KToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
c3VwcG9ydC9XZWJNZWRpYUNvbnN0cmFpbnRzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFDb25zdHJhaW50czo6V2ViTWVkaWFDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDQ29uZmlndXJhdGlvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ0NvbmZpZ3VyYXRpb246OldlYlJUQ0NvbmZpZ3Vy
YXRpb24pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwOgorICAgICAgICAoUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyRHVtbXkpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyRHVtbXk6OmluaXRpYWxpemUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmg6IFJlbW92ZWQuCisK
IDIwMTItMDktMjUgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW1dJTl0gRml4IEFTU0VSVCBpbiBCU3RyaW5nIGFmdGVyIHIxMjg5ODguCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IDRhM2VkZWM5ZTU2NDIyZGEzNjE2ZWI5M2Q3MWE1MWVkN2Vi
ZDA5NmMuLjM4YTY2MDA5OWE4YmZiNGFmMTc4YTUyYzg2MDJmN2E3MjdiMDc5ZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTItMDktMjYgIFRvbW15IFdp
ZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CisKKyAgICAgICAgTWVkaWFTdHJlYW0gQVBJ
OiBBbGxvdyBSVENQZWVyQ29ubmVjdGlvbiB0byBwYXNzIGRvd24gaXRzIERvY3VtZW50IHJlZmVy
ZW5jZSB0byB0aGUgZW1iZWRkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk3NjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHNyYy9SVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXJDaHJvbWl1bS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5j
cHAuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
Q2hyb21pdW0pOgorICAgICAgICAoV2ViS2l0OjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJv
bWl1bTo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0pOgorICAgICAgICAoV2ViS2l0
OjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6flJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNocm9taXVtKToKKyAgICAgICAgKFdlYktpdDo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
Q2hyb21pdW06OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXJDaHJvbWl1bTo6Y3JlYXRlT2ZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6Y3JlYXRlQW5zd2VyKToKKyAgICAgICAgKFdlYktp
dDo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OnNldExvY2FsRGVzY3JpcHRpb24p
OgorICAgICAgICAoV2ViS2l0OjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6c2V0
UmVtb3RlRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViS2l0OjpSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDaHJvbWl1bTo6dXBkYXRlSWNlKToKKyAgICAgICAgKFdlYktpdDo6UlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2hyb21pdW06OmFkZEljZUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpsb2NhbERlc2NyaXB0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OnJlbW90ZURl
c2NyaXB0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hy
b21pdW06OmFkZFN0cmVhbSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNocm9taXVtOjpyZW1vdmVTdHJlYW0pOgorICAgICAgICAoV2ViS2l0OjpSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpuZWdvdGlhdGlvbk5lZWRlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpkaWRHZW5lcmF0ZUlDRUNh
bmRpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9t
aXVtOjpkaWRDaGFuZ2VSZWFkeVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6UlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2hyb21pdW06OmRpZENoYW5nZUlDRVN0YXRlKToKKyAgICAgICAgKFdlYktp
dDo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OmRpZEFkZFJlbW90ZVN0cmVhbSk6
CisgICAgICAgIChXZWJLaXQ6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpkaWRS
ZW1vdmVSZW1vdGVTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmNyZWF0ZSk6CisKIDIwMTItMDktMjUgIEFscGhh
IExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBSb2xsIERF
UFMgZm9yIENocm9taXVtLgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1
YmxpYy9XZWJNZWRpYUNvbnN0cmFpbnRzLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYk1lZGlhQ29uc3RyYWludHMuaAppbmRleCBjNzc0MjQ4ODA5NjgwNTk2ZjRjODRlYTRl
NTBlNTY4MGJiY2RlOWJhLi5hMTY1ODcwOTFiNGRlZmI5NzNkMDE0YzM2MjQ5YTM4YzA2Mzc3NmZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk1lZGlhQ29u
c3RyYWludHMuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk1lZGlh
Q29uc3RyYWludHMuaApAQCAtNjcsNyArNjcsOCBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0VYUE9S
VCBib29sIGdldE9wdGlvbmFsQ29uc3RyYWludFZhbHVlKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwg
V2ViU3RyaW5nJiB2YWx1ZSkgY29uc3Q7CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KLSAg
ICBXZWJNZWRpYUNvbnN0cmFpbnRzKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzPiYpOworICAgIFdlYk1lZGlhQ29uc3RyYWludHMoY29uc3QgUGFzc1JlZlB0
cjxXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzPiYpOworICAgIFdlYk1lZGlhQ29uc3RyYWludHMo
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ0NvbmZpZ3VyYXRpb24u
aCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDQ29uZmlndXJhdGlvbi5o
CmluZGV4IGU5OWMxNGRlOWRhMDhjMWMxODk4MjdhZThhZjNlZjE0MTAxYTRlZWMuLjQxNzY0ZmU5
ODY1OGY0MTU4YTQ4MWUxN2M4MDkwNjY2MzUxMTgyZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0
Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDQ29uZmlndXJhdGlvbi5oCkBAIC02Niw3ICs2
Niw3IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfRVhQT1JUIFdlYlN0cmluZyBjcmVkZW50aWFsKCkg
Y29uc3Q7CiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KLSAgICBXZWJSVENJQ0VTZXJ2ZXIo
Y29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJUQ0ljZVNlcnZlcj4mKTsKKyAgICBXZWJS
VENJQ0VTZXJ2ZXIoY29uc3QgUGFzc1JlZlB0cjxXZWJDb3JlOjpSVENJY2VTZXJ2ZXI+Jik7CiAj
ZW5kaWYKIAogcHJpdmF0ZToKQEAgLTk0LDcgKzk0LDggQEAgcHVibGljOgogICAgIFdFQktJVF9F
WFBPUlQgV2ViUlRDSUNFU2VydmVyIHNlcnZlcihzaXplX3QgaW5kZXgpIGNvbnN0OwogCiAjaWYg
V0VCS0lUX0lNUExFTUVOVEFUSU9OCi0gICAgV2ViUlRDQ29uZmlndXJhdGlvbihjb25zdCBXVEY6
OlBhc3NSZWZQdHI8V2ViQ29yZTo6UlRDQ29uZmlndXJhdGlvbj4mKTsKKyAgICBXZWJSVENDb25m
aWd1cmF0aW9uKGNvbnN0IFBhc3NSZWZQdHI8V2ViQ29yZTo6UlRDQ29uZmlndXJhdGlvbj4mKTsK
KyAgICBXZWJSVENDb25maWd1cmF0aW9uKFdlYkNvcmU6OlJUQ0NvbmZpZ3VyYXRpb24qKTsKICNl
bmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1
YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJv
bWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKaW5kZXggODIzNDY2YTUy
ZTcxYWEzODMwNGMxNjU4ZmViODdjZDgwOGQ2NTdlNS4uYWE3YzFhYzE0ZWMxNWZmYjc3ZTViMzkx
YTQyNWYwZDM2NGUzOGU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1
YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCkBAIC0zMiw2ICsz
Miw3IEBACiAjZGVmaW5lIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcl9oCiAKIG5hbWVzcGFj
ZSBXZWJLaXQgeworY2xhc3MgV2ViRG9jdW1lbnQ7CiBjbGFzcyBXZWJNZWRpYUNvbnN0cmFpbnRz
OwogY2xhc3MgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwogY2xhc3MgV2ViUlRDQ29uZmlndXJh
dGlvbjsKQEAgLTQ1LDcgKzQ2LDggQEAgY2xhc3MgV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIoKSB7
IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKGNvbnN0IFdlYlJUQ0NvbmZpZ3VyYXRp
b24mLCBjb25zdCBXZWJNZWRpYUNvbnN0cmFpbnRzJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBp
bml0aWFsaXplKGNvbnN0IFdlYkRvY3VtZW50JiwgY29uc3QgV2ViUlRDQ29uZmlndXJhdGlvbiYs
IGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBpbml0aWFsaXplKGNvbnN0IFdlYlJUQ0NvbmZpZ3VyYXRpb24mLCBjb25zdCBXZWJN
ZWRpYUNvbnN0cmFpbnRzJikgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBj
cmVhdGVPZmZlcihjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiwgY29uc3Qg
V2ViTWVkaWFDb25zdHJhaW50cyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQW5zd2Vy
KGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QmLCBjb25zdCBXZWJNZWRpYUNv
bnN0cmFpbnRzJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCBjYjliYTdjNWE4NjU2ZTEyZjQ1
NGVjMTkwZDE5MWZiOWQ0YzIyYjM0Li4yZjM5YzY2MjExOTk2Y2Q5MDRjYmU3NjMyNmQyYmU5ZmEw
ZWIzMmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlJU
Q1BlZXJDb25uZWN0aW9uLmgiCiAKICNpbmNsdWRlICJBcnJheVZhbHVlLmgiCisjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUu
aCIKICNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzSW1wbC5oIgpAQCAtMTI4LDggKzEyOSwxMCBA
QCBSVENQZWVyQ29ubmVjdGlvbjo6UlRDUGVlckNvbm5lY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgUGFzc1JlZlB0cgogICAgICwgbV9sb2NhbFN0cmVhbXMoTWVkaWFTdHJl
YW1MaXN0OjpjcmVhdGUoKSkKICAgICAsIG1fcmVtb3RlU3RyZWFtcyhNZWRpYVN0cmVhbUxpc3Q6
OmNyZWF0ZSgpKQogeworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgRG9jdW1lbnQq
IG93bmVyRG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpOwogICAgIG1f
cGVlckhhbmRsZXIgPSBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmNyZWF0ZSh0aGlzKTsKLSAg
ICBpZiAoIW1fcGVlckhhbmRsZXIgfHwgIW1fcGVlckhhbmRsZXItPmluaXRpYWxpemUoY29uZmln
dXJhdGlvbiwgY29uc3RyYWludHMpKQorICAgIGlmICghbV9wZWVySGFuZGxlciB8fCAhbV9wZWVy
SGFuZGxlci0+aW5pdGlhbGl6ZShvd25lckRvY3VtZW50LCBjb25maWd1cmF0aW9uLCBjb25zdHJh
aW50cykpCiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCAxOThiOTM0Yjk2NzZlZjE5NjQ0ZjVjZjY2YjUyMjM5ZjdkZjg0NWQ4Li5jZmE0N2I3
NGM3NzVhMWQ4ZGI3YjdmOGIwODRjODA2ZjI0MTIwYTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00
NzMsOCArNDczLDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1
bS9QZWVyQ29ubmVjdGlvbjAwSGFuZGxlci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2Nocm9taXVtL1BlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWwuY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9QZWVyQ29ubmVjdGlv
bjAwSGFuZGxlckludGVybmFsLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFt
L2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcCcsCi0gICAgICAg
ICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyQ2hyb21pdW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9EZXZpY2VNb3Rpb25D
bGllbnRNb2NrLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25D
bGllbnRNb2NrLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vc3VwcG9ydC9XZWJNZWRpYUNvbnN0cmFpbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFDb25zdHJhaW50cy5jcHAKaW5kZXggMDVmYTNm
NjY2ZDAxNjMxY2M5MmE5MjdkNTdjMDM2YTE4OGU1NTkwZi4uMWQyNzBjY2Y4MWI4ZTAyNGE1MWEx
YTU5NDlmOGRhOTk2OTA2OTgzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYUNvbnN0cmFpbnRzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlhQ29uc3RyYWludHMuY3BwCkBA
IC00NSw2ICs0NSwxMSBAQCBXZWJNZWRpYUNvbnN0cmFpbnRzOjpXZWJNZWRpYUNvbnN0cmFpbnRz
KGNvbnN0IFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4mIGNvbgogewogfQogCitXZWJNZWRp
YUNvbnN0cmFpbnRzOjpXZWJNZWRpYUNvbnN0cmFpbnRzKE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQorICAgIDogbV9wcml2YXRlKGNvbnN0cmFpbnRzKQoreworfQorCiB2b2lkIFdlYk1l
ZGlhQ29uc3RyYWludHM6OmFzc2lnbihjb25zdCBXZWJNZWRpYUNvbnN0cmFpbnRzJiBvdGhlcikK
IHsKICAgICBtX3ByaXZhdGUgPSBvdGhlci5tX3ByaXZhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ0NvbmZpZ3VyYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENDb25maWd1
cmF0aW9uLmNwcAppbmRleCA1MDQ3Y2EyOGVmNGU0MDI1MmNlZjA4NzYzMjM5NWM3MGE2NjlkZDlj
Li5jNmYxYmFhYzJkMTU2ZGNkMjQ3MjE0OTdkMWRkN2FiMThmMDdjN2RhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ0NvbmZpZ3VyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2Vi
UlRDQ29uZmlndXJhdGlvbi5jcHAKQEAgLTc1LDYgKzc1LDExIEBAIFdlYlJUQ0NvbmZpZ3VyYXRp
b246OldlYlJUQ0NvbmZpZ3VyYXRpb24oY29uc3QgUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9u
PiYgY29uCiB7CiB9CiAKK1dlYlJUQ0NvbmZpZ3VyYXRpb246OldlYlJUQ0NvbmZpZ3VyYXRpb24o
UlRDQ29uZmlndXJhdGlvbiogY29uZmlndXJhdGlvbikKKyAgICA6IG1fcHJpdmF0ZShjb25maWd1
cmF0aW9uKQoreworfQorCiB2b2lkIFdlYlJUQ0NvbmZpZ3VyYXRpb246OmFzc2lnbihjb25zdCBX
ZWJSVENDb25maWd1cmF0aW9uJiBvdGhlcikKIHsKICAgICBtX3ByaXZhdGUgPSBvdGhlci5tX3By
aXZhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcAppbmRleCBkZmQ1ZDE4ZDRjNTI0
ZGFlNDQ0ZWFiNGFlMGYwNWM5YzU3OWMwMjgyLi4zODJlM2ZiMGFlZDBkNWUzNTVlNzg3YzI4NWRm
MmU2NDY4YzNhZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKQEAgLTQ3LDcg
KzQ3LDcgQEAgcHVibGljOgogICAgIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15KFJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCopOwogICAgIHZpcnR1YWwgflJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckR1bW15KCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShQYXNzUmVm
UHRyPFJUQ0NvbmZpZ3VyYXRpb24+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShEb2N1bWVudCosIFBhc3NSZWZQdHI8
UlRDQ29uZmlndXJhdGlvbj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURF
OwogCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdD4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVBbnN3ZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7
CkBAIC04MCw3ICs4MCw3IEBAIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15Ojp+UlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyRHVtbXkoKQogewogfQogCi1ib29sIFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckR1bW15Ojppbml0aWFsaXplKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4sIFBh
c3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pCitib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckR1bW15Ojppbml0aWFsaXplKERvY3VtZW50KiwgUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9u
PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4IDE4MDIxYzU4MjA5ODYwMTdmYjkyMDgz
YmY2M2JhODZhOTkzMjgzNjUuLmZiNDhiNDEyMzliMWJhMTdkMzZjMzlkN2ZhNmRjYzNkYTk1Yzdi
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCkBAIC0zOSw2ICszOSw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnN0cmFp
bnRzOwogY2xhc3MgUlRDQ29uZmlndXJhdGlvbjsKIGNsYXNzIFJUQ0ljZUNhbmRpZGF0ZURlc2Ny
aXB0b3I7CkBAIC01Miw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+IGNyZWF0ZShSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
bGllbnQqKTsKICAgICB2aXJ0dWFsIH5SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIoKSB7IH0KIAot
ICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4s
IFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaW5p
dGlhbGl6ZShEb2N1bWVudCosIFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4sIFBhc3NSZWZQ
dHI8TWVkaWFDb25zdHJhaW50cz4pID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPZmZl
cihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q+LCBQYXNzUmVmUHRyPE1l
ZGlhQ29uc3RyYWludHM+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFuc3dlcihQYXNz
UmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q+LCBQYXNzUmVmUHRyPE1lZGlhQ29u
c3RyYWludHM+KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4
YTAzNzNlMDEyMzVjMDU2NDZjMzg0MjUwZjZkOWFlYjcwNWU3MzEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMTk5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
Q2hyb21pdW0uaCIKLQotI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHMuaCIKLSNpbmNsdWRlICJS
VENDb25maWd1cmF0aW9uLmgiCi0jaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5o
IgotI2luY2x1ZGUgIlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oIgotI2luY2x1ZGUg
IlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCIKLSNpbmNsdWRlICJSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0LmgiCi0jaW5jbHVkZSAiUlRDVm9pZFJlcXVlc3QuaCIKLSNpbmNs
dWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFDb25zdHJh
aW50cy5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaD4KLSNp
bmNsdWRlIDxwdWJsaWMvV2ViUlRDQ29uZmlndXJhdGlvbi5oPgotI2luY2x1ZGUgPHB1YmxpYy9X
ZWJSVENJQ0VDYW5kaWRhdGUuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uLmg+Ci0jaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3QuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDVm9pZFJlcXVlc3QuaD4KLSNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVBhc3NPd25QdHI8UlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyPiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmNyZWF0ZShS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqIGNsaWVudCkKLXsKLSAgICByZXR1cm4gYWRv
cHRQdHIobmV3IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtKGNsaWVudCkpOwotfQot
Ci1SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6UlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyQ2hyb21pdW0oUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50KiBjbGllbnQpCi0gICAg
OiBtX2NsaWVudChjbGllbnQpCi17Ci0gICAgQVNTRVJUKG1fY2xpZW50KTsKLX0KLQotUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06On5SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJv
bWl1bSgpCi17Ci19Ci0KLWJvb2wgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06Omlu
aXRpYWxpemUoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uLCBQYXNz
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnRzKQotewotICAgIG1fd2ViSGFuZGxl
ciA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y3JlYXRlUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyKHRoaXMpKTsKLSAgICByZXR1cm4gbV93ZWJIYW5kbGVyID8gbV93ZWJI
YW5kbGVyLT5pbml0aWFsaXplKGNvbmZpZ3VyYXRpb24sIGNvbnN0cmFpbnRzKSA6IGZhbHNlOwot
fQotCi12b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpjcmVhdGVPZmZlcihQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q+IHJlcXVlc3QsIFBhc3NSZWZQ
dHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWludHMpCi17Ci0gICAgLy8gRklYTUU6IFNob3Vs
ZCB0aGUgZXJyb3IgY2FsbGJhY2sgYmUgdHJpZ2dlcmVkIGhlcmU/Ci0gICAgaWYgKCFtX3dlYkhh
bmRsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fd2ViSGFuZGxlci0+Y3JlYXRlT2ZmZXIo
cmVxdWVzdCwgY29uc3RyYWludHMpOwotfQotCi12b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckNocm9taXVtOjpjcmVhdGVBbnN3ZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0PiByZXF1ZXN0LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnRz
KQotewotICAgIC8vIEZJWE1FOiBTaG91bGQgdGhlIGVycm9yIGNhbGxiYWNrIGJlIHRyaWdnZXJl
ZCBoZXJlPwotICAgIGlmICghbV93ZWJIYW5kbGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
X3dlYkhhbmRsZXItPmNyZWF0ZUFuc3dlcihyZXF1ZXN0LCBjb25zdHJhaW50cyk7Ci19Ci0KLXZv
aWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OnNldExvY2FsRGVzY3JpcHRpb24o
UGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4gcmVxdWVzdCwgUGFzc1JlZlB0cjxSVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yPiBzZXNzaW9uRGVzY3JpcHRpb24pCi17Ci0gICAgaWYgKCFt
X3dlYkhhbmRsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fd2ViSGFuZGxlci0+c2V0TG9j
YWxEZXNjcmlwdGlvbihyZXF1ZXN0LCBzZXNzaW9uRGVzY3JpcHRpb24pOwotfQotCi12b2lkIFJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpzZXRSZW1vdGVEZXNjcmlwdGlvbihQYXNz
UmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiByZXF1ZXN0LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3I+IHNlc3Npb25EZXNjcmlwdGlvbikKLXsKLSAgICBpZiAoIW1fd2Vi
SGFuZGxlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV93ZWJIYW5kbGVyLT5zZXRSZW1vdGVE
ZXNjcmlwdGlvbihyZXF1ZXN0LCBzZXNzaW9uRGVzY3JpcHRpb24pOwotfQotCi1ib29sIFJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjp1cGRhdGVJY2UoUGFzc1JlZlB0cjxSVENDb25m
aWd1cmF0aW9uPiBjb25maWd1cmF0aW9uLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNv
bnN0cmFpbnRzKQotewotICAgIGlmICghbV93ZWJIYW5kbGVyKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICByZXR1cm4gbV93ZWJIYW5kbGVyLT51cGRhdGVJQ0UoY29uZmlndXJhdGlvbiwg
Y29uc3RyYWludHMpOwotfQotCi1ib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVt
OjphZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiBp
Y2VDYW5kaWRhdGUpCi17Ci0gICAgaWYgKCFtX3dlYkhhbmRsZXIpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIHJldHVybiBtX3dlYkhhbmRsZXItPmFkZElDRUNhbmRpZGF0ZShpY2VDYW5k
aWRhdGUpOwotfQotCi1QYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+
IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpsb2NhbERlc2NyaXB0aW9uKCkKLXsK
LSAgICBpZiAoIW1fd2ViSGFuZGxlcikKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4g
bV93ZWJIYW5kbGVyLT5sb2NhbERlc2NyaXB0aW9uKCk7Ci19Ci0KLVBhc3NSZWZQdHI8UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21p
dW06OnJlbW90ZURlc2NyaXB0aW9uKCkKLXsKLSAgICBpZiAoIW1fd2ViSGFuZGxlcikKLSAgICAg
ICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gbV93ZWJIYW5kbGVyLT5yZW1vdGVEZXNjcmlwdGlv
bigpOwotfQotCi1ib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjphZGRTdHJl
YW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+IG1lZGlhU3RyZWFtLCBQYXNzUmVm
UHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnRzKQotewotICAgIGlmICghbV93ZWJIYW5k
bGVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV93ZWJIYW5kbGVyLT5h
ZGRTdHJlYW0obWVkaWFTdHJlYW0sIGNvbnN0cmFpbnRzKTsKLX0KLQotdm9pZCBSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6cmVtb3ZlU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW1EZXNjcmlwdG9yPiBtZWRpYVN0cmVhbSkKLXsKLSAgICBpZiAoIW1fd2ViSGFuZGxlcikKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgbV93ZWJIYW5kbGVyLT5yZW1vdmVTdHJlYW0obWVkaWFTdHJl
YW0pOwotfQotCi12b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpzdG9wKCkK
LXsKLSAgICBpZiAoIW1fd2ViSGFuZGxlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV93ZWJI
YW5kbGVyLT5zdG9wKCk7Ci19Ci0KLXZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21p
dW06Om5lZ290aWF0aW9uTmVlZGVkKCkKLXsKLSAgICBtX2NsaWVudC0+bmVnb3RpYXRpb25OZWVk
ZWQoKTsKLX0KLQotdm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6ZGlkR2Vu
ZXJhdGVJQ0VDYW5kaWRhdGUoY29uc3QgV2ViS2l0OjpXZWJSVENJQ0VDYW5kaWRhdGUmIGljZUNh
bmRpZGF0ZSkKLXsKLSAgICBtX2NsaWVudC0+ZGlkR2VuZXJhdGVJY2VDYW5kaWRhdGUoaWNlQ2Fu
ZGlkYXRlKTsKLX0KLQotdm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6ZGlk
Q2hhbmdlUmVhZHlTdGF0ZShXZWJLaXQ6OldlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVu
dDo6UmVhZHlTdGF0ZSBzdGF0ZSkKLXsKLSAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlUmVhZHlTdGF0
ZShzdGF0aWNfY2FzdDxSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQ6OlJlYWR5U3RhdGU+
KHN0YXRlKSk7Ci19Ci0KLXZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OmRp
ZENoYW5nZUlDRVN0YXRlKFdlYktpdDo6V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50
OjpJQ0VTdGF0ZSBzdGF0ZSkKLXsKLSAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlSWNlU3RhdGUoc3Rh
dGljX2Nhc3Q8UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OjpJY2VTdGF0ZT4oc3RhdGUp
KTsKLX0KLQotdm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6ZGlkQWRkUmVt
b3RlU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiB3ZWJNZWRp
YVN0cmVhbURlc2NyaXB0b3IpCi17Ci0gICAgbV9jbGllbnQtPmRpZEFkZFJlbW90ZVN0cmVhbSh3
ZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IpOwotfQotCi12b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNocm9taXVtOjpkaWRSZW1vdmVSZW1vdGVTdHJlYW0oY29uc3QgV2ViS2l0OjpXZWJNZWRp
YVN0cmVhbURlc2NyaXB0b3ImIHdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcikKLXsKLSAgICBtX2Ns
aWVudC0+ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKHdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcik7Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJv
bWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hy
b21pdW0uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY2OTQ3MTc0MGM4Y2U0Y2Jj
MzRlMzkxOThjNmE2NjliODAwYzc5Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1
bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oCisrKyAvZGV2L251bGwKQEAgLTEs
ODYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
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
LgotICovCi0KLSNpZm5kZWYgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW1faAotI2Rl
ZmluZSBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bV9oCi0KLSNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgiCi0jaW5jbHVk
ZSAiUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgiCi0jaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDbGllbnQuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJNZWRpYVN0
cmVhbURlc2NyaXB0b3I7Ci1jbGFzcyBXZWJSVENJQ0VDYW5kaWRhdGU7Ci19Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0gOiBw
dWJsaWMgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLCBwdWJsaWMgV2ViS2l0OjpXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDbGllbnQgewotcHVibGljOgotICAgIFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNocm9taXVtKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCopOwotICAgIHZp
cnR1YWwgflJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtKCk7Ci0KLSAgICB2aXJ0dWFs
IGJvb2wgaW5pdGlhbGl6ZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb24+LCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVP
ZmZlcihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q+LCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQW5z
d2VyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdD4sIFBhc3NSZWZQdHI8
TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRMb2NhbERl
c2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDVm9pZFJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
UmVtb3RlRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4sIFBhc3NSZWZQdHI8
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiBsb2NhbERlc2NyaXB0
aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3I+IHJlbW90ZURlc2NyaXB0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIHVwZGF0ZUljZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb24+LCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgYWRkSWNlQ2Fu
ZGlkYXRlKFBhc3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4pIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0
b3I+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKLQotICAgIC8vIFdlYktp
dDo6V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50IGltcGxlbWVudGF0aW9uLgotICAg
IHZpcnR1YWwgdm9pZCBuZWdvdGlhdGlvbk5lZWRlZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRHZW5lcmF0ZUlDRUNhbmRpZGF0ZShjb25zdCBXZWJLaXQ6OldlYlJUQ0lDRUNhbmRp
ZGF0ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VSZWFkeVN0YXRlKFdl
YktpdDo6V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OjpSZWFkeVN0YXRlKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlSUNFU3RhdGUoV2ViS2l0OjpXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQ6OklDRVN0YXRlKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkQWRkUmVtb3RlU3RyZWFtKGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVJlbW90ZVN0
cmVhbShjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYpIE9WRVJSSURFOwot
Ci1wcml2YXRlOgotICAgIE93blB0cjxXZWJLaXQ6OldlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
cj4gbV93ZWJIYW5kbGVyOwotICAgIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCogbV9j
bGllbnQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21p
dW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGY0ZjRjOWVjZTMyYjYzZGY5ZWRh
MDQzYmZmNTZlOTc5MjczZDg1ODIuLmFlZWQ4NzA5Y2I3NjkzZTgwYzhjZGM1MjY4OWNmN2RhYzNk
NGI0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTQ0OSw2ICs0NDksNyBAQAog
ICAgICAgICAgICAgICAgICdzcmMvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwJywKICAg
ICAgICAgICAgICAgICAnc3JjL1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgnLAogICAgICAg
ICAgICAgICAgICdzcmMvUGxhdGZvcm1TdXBwb3J0LmNwcCcsCisgICAgICAgICAgICAgICAgJ3Ny
Yy9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgICAg
ICdzcmMvU2Nyb2xsYmFyR3JvdXAuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1Njcm9sbGJh
ckdyb3VwLmgnLAogICAgICAgICAgICAgICAgICdzcmMvU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5j
cHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0YjE2MzVhYmU2
NmU1NTM5NDg1ODM0NTE5ODViYjE2NWI3Y2QyY2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAK
QEAgLTAsMCArMSwyNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgiCisKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHMuaCIKKyNpbmNsdWRl
ICJSVENDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRv
ci5oIgorI2luY2x1ZGUgIlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oIgorI2luY2x1
ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiUlRDVm9pZFJlcXVlc3QuaCIKKyNp
bmNsdWRlICJXZWJEb2N1bWVudC5oIgorI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgorI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJNZWRpYUNvbnN0cmFpbnRzLmg+CisjaW5jbHVkZSA8cHVibGljL1dl
Yk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENDb25maWd1
cmF0aW9uLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ0lDRUNhbmRpZGF0ZS5oPgorI2luY2x1
ZGUgPHB1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDxwdWJs
aWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50Lmg+CisjaW5jbHVkZSA8cHVibGlj
L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1ZvaWRSZXF1
ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDaHJvbWl1bSA6IHB1YmxpYyBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIsIHB1YmxpYyBX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQgeworcHVibGljOgorICAgIFJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlckNocm9taXVtKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCop
OworICAgIHZpcnR1YWwgflJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtKCk7CisKKyAg
ICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShEb2N1bWVudCosIFBhc3NSZWZQdHI8UlRDQ29uZmln
dXJhdGlvbj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOworCisgICAg
dmlydHVhbCB2b2lkIGNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdD4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBjcmVhdGVBbnN3ZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHNldExvY2FsRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxSVENWb2lkUmVxdWVzdD4s
IFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdGVEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1ZvaWRS
ZXF1ZXN0PiwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2Ny
aXB0b3I+IGxvY2FsRGVzY3JpcHRpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gcmVtb3RlRGVzY3JpcHRpb24oKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlSWNlKFBhc3NSZWZQdHI8UlRDQ29uZmln
dXJhdGlvbj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNj
cmlwdG9yPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbURlc2NyaXB0b3I+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJS
SURFOworCisgICAgLy8gV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50IGltcGxlbWVu
dGF0aW9uLgorICAgIHZpcnR1YWwgdm9pZCBuZWdvdGlhdGlvbk5lZWRlZCgpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRHZW5lcmF0ZUlDRUNhbmRpZGF0ZShjb25zdCBXZWJLaXQ6Oldl
YlJUQ0lDRUNhbmRpZGF0ZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VS
ZWFkeVN0YXRlKFdlYktpdDo6V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OjpSZWFk
eVN0YXRlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlSUNFU3RhdGUoV2Vi
S2l0OjpXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQ6OklDRVN0YXRlKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkUmVtb3RlU3RyZWFtKGNvbnN0IFdlYktpdDo6V2Vi
TWVkaWFTdHJlYW1EZXNjcmlwdG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
bW92ZVJlbW90ZVN0cmVhbShjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYp
IE9WRVJSSURFOworCitwcml2YXRlOgorICAgIE93blB0cjxXZWJLaXQ6OldlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlcj4gbV93ZWJIYW5kbGVyOworICAgIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckNsaWVudCogbV9jbGllbnQ7Cit9OworCitSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1
bTo6UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0oUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyQ2xpZW50KiBjbGllbnQpCisgICAgOiBtX2NsaWVudChjbGllbnQpCit7CisgICAgQVNTRVJU
KG1fY2xpZW50KTsKK30KKworUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06On5SVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bSgpCit7Cit9CisKK2Jvb2wgUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2hyb21pdW06OmluaXRpYWxpemUoRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQs
IFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4gcHJwQ29uZmlndXJhdGlvbiwgUGFzc1JlZlB0
cjxNZWRpYUNvbnN0cmFpbnRzPiBwcnBDb25zdHJhaW50cykKK3sKKyAgICBtX3dlYkhhbmRsZXIg
PSBhZG9wdFB0cihXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmNyZWF0ZVJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlcih0aGlzKSk7CisgICAgaWYgKCFtX3dlYkhhbmRsZXIpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhlIGRvdWJsZSBjYWxsIHdoZW4g
Q2hyb21pdW0gaGF2ZSBzd2l0Y2hlZC4KKyAgICBSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4gY29u
ZmlndXJhdGlvbiA9IHBycENvbmZpZ3VyYXRpb247CisgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWlu
dHM+IGNvbnN0cmFpbnRzID0gcHJwQ29uc3RyYWludHM7CisgICAgYm9vbCByZXN1bHQgPSBtX3dl
YkhhbmRsZXItPmluaXRpYWxpemUoV2ViRG9jdW1lbnQob3duZXJEb2N1bWVudCksIGNvbmZpZ3Vy
YXRpb24uZ2V0KCksIGNvbnN0cmFpbnRzLmdldCgpKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAg
ICAgcmVzdWx0ID0gbV93ZWJIYW5kbGVyLT5pbml0aWFsaXplKGNvbmZpZ3VyYXRpb24uZ2V0KCks
IGNvbnN0cmFpbnRzLmdldCgpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpjcmVhdGVPZmZlcihQYXNzUmVmUHRyPFJUQ1Nl
c3Npb25EZXNjcmlwdGlvblJlcXVlc3Q+IHJlcXVlc3QsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJh
aW50cz4gY29uc3RyYWludHMpCit7CisgICAgLy8gRklYTUU6IFNob3VsZCB0aGUgZXJyb3IgY2Fs
bGJhY2sgYmUgdHJpZ2dlcmVkIGhlcmU/CisgICAgaWYgKCFtX3dlYkhhbmRsZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fd2ViSGFuZGxlci0+Y3JlYXRlT2ZmZXIocmVxdWVzdCwgY29uc3Ry
YWludHMpOworfQorCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpjcmVh
dGVBbnN3ZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiByZXF1ZXN0
LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnRzKQoreworICAgIC8vIEZJ
WE1FOiBTaG91bGQgdGhlIGVycm9yIGNhbGxiYWNrIGJlIHRyaWdnZXJlZCBoZXJlPworICAgIGlm
ICghbV93ZWJIYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3dlYkhhbmRsZXItPmNy
ZWF0ZUFuc3dlcihyZXF1ZXN0LCBjb25zdHJhaW50cyk7Cit9CisKK3ZvaWQgUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2hyb21pdW06OnNldExvY2FsRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxSVENW
b2lkUmVxdWVzdD4gcmVxdWVzdCwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yPiBzZXNzaW9uRGVzY3JpcHRpb24pCit7CisgICAgaWYgKCFtX3dlYkhhbmRsZXIpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fd2ViSGFuZGxlci0+c2V0TG9jYWxEZXNjcmlwdGlvbihy
ZXF1ZXN0LCBzZXNzaW9uRGVzY3JpcHRpb24pOworfQorCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNocm9taXVtOjpzZXRSZW1vdGVEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1ZvaWRS
ZXF1ZXN0PiByZXF1ZXN0LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3I+IHNlc3Npb25EZXNjcmlwdGlvbikKK3sKKyAgICBpZiAoIW1fd2ViSGFuZGxlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV93ZWJIYW5kbGVyLT5zZXRSZW1vdGVEZXNjcmlwdGlvbihyZXF1
ZXN0LCBzZXNzaW9uRGVzY3JpcHRpb24pOworfQorCitib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNocm9taXVtOjp1cGRhdGVJY2UoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiBjb25m
aWd1cmF0aW9uLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnRzKQorewor
ICAgIGlmICghbV93ZWJIYW5kbGVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1
cm4gbV93ZWJIYW5kbGVyLT51cGRhdGVJQ0UoY29uZmlndXJhdGlvbiwgY29uc3RyYWludHMpOwor
fQorCitib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjphZGRJY2VDYW5kaWRh
dGUoUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiBpY2VDYW5kaWRhdGUpCit7
CisgICAgaWYgKCFtX3dlYkhhbmRsZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJl
dHVybiBtX3dlYkhhbmRsZXItPmFkZElDRUNhbmRpZGF0ZShpY2VDYW5kaWRhdGUpOworfQorCitQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IFJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckNocm9taXVtOjpsb2NhbERlc2NyaXB0aW9uKCkKK3sKKyAgICBpZiAoIW1fd2Vi
SGFuZGxlcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV93ZWJIYW5kbGVyLT5s
b2NhbERlc2NyaXB0aW9uKCk7Cit9CisKK1Bhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
RGVzY3JpcHRvcj4gUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OnJlbW90ZURlc2Ny
aXB0aW9uKCkKK3sKKyAgICBpZiAoIW1fd2ViSGFuZGxlcikKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICByZXR1cm4gbV93ZWJIYW5kbGVyLT5yZW1vdGVEZXNjcmlwdGlvbigpOworfQorCitib29s
IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjphZGRTdHJlYW0oUGFzc1JlZlB0cjxN
ZWRpYVN0cmVhbURlc2NyaXB0b3I+IG1lZGlhU3RyZWFtLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3Ry
YWludHM+IGNvbnN0cmFpbnRzKQoreworICAgIGlmICghbV93ZWJIYW5kbGVyKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gbV93ZWJIYW5kbGVyLT5hZGRTdHJlYW0obWVkaWFT
dHJlYW0sIGNvbnN0cmFpbnRzKTsKK30KKwordm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
aHJvbWl1bTo6cmVtb3ZlU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiBt
ZWRpYVN0cmVhbSkKK3sKKyAgICBpZiAoIW1fd2ViSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV93ZWJIYW5kbGVyLT5yZW1vdmVTdHJlYW0obWVkaWFTdHJlYW0pOworfQorCit2b2lk
IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpzdG9wKCkKK3sKKyAgICBpZiAoIW1f
d2ViSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV93ZWJIYW5kbGVyLT5zdG9wKCk7
Cit9CisKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06Om5lZ290aWF0aW9u
TmVlZGVkKCkKK3sKKyAgICBtX2NsaWVudC0+bmVnb3RpYXRpb25OZWVkZWQoKTsKK30KKwordm9p
ZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6ZGlkR2VuZXJhdGVJQ0VDYW5kaWRh
dGUoY29uc3QgV2ViUlRDSUNFQ2FuZGlkYXRlJiBpY2VDYW5kaWRhdGUpCit7CisgICAgbV9jbGll
bnQtPmRpZEdlbmVyYXRlSWNlQ2FuZGlkYXRlKGljZUNhbmRpZGF0ZSk7Cit9CisKK3ZvaWQgUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OmRpZENoYW5nZVJlYWR5U3RhdGUoV2ViUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OjpSZWFkeVN0YXRlIHN0YXRlKQoreworICAgIG1f
Y2xpZW50LT5kaWRDaGFuZ2VSZWFkeVN0YXRlKHN0YXRpY19jYXN0PFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNsaWVudDo6UmVhZHlTdGF0ZT4oc3RhdGUpKTsKK30KKwordm9pZCBSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6ZGlkQ2hhbmdlSUNFU3RhdGUoV2ViUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2xpZW50OjpJQ0VTdGF0ZSBzdGF0ZSkKK3sKKyAgICBtX2NsaWVudC0+ZGlk
Q2hhbmdlSWNlU3RhdGUoc3RhdGljX2Nhc3Q8UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50
OjpJY2VTdGF0ZT4oc3RhdGUpKTsKK30KKwordm9pZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
aHJvbWl1bTo6ZGlkQWRkUmVtb3RlU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRv
ciYgd2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yKQoreworICAgIG1fY2xpZW50LT5kaWRBZGRSZW1v
dGVTdHJlYW0od2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yKTsKK30KKwordm9pZCBSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKGNvbnN0IFdlYk1l
ZGlhU3RyZWFtRGVzY3JpcHRvciYgd2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yKQoreworICAgIG1f
Y2xpZW50LT5kaWRSZW1vdmVSZW1vdGVTdHJlYW0od2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
YXNzT3duUHRyPFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4gUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyOjpjcmVhdGUoUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50KiBjbGllbnQpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJLaXQ6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNo
cm9taXVtKGNsaWVudCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDQ1M2RmZTI0ODIyZmI0YTNmM2NmYTNjM2UyOGNmMzI2NDkzMDM5
NmYuLjYzNGIxYTllZjQwZWIzZTUwMGQ1ZWM4MWVlYzU3NjczNmUxZmRkMDEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxMi0wOS0yNiAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBNZWRpYVN0cmVhbSBBUEk6IEFsbG93IFJUQ1BlZXJDb25uZWN0aW9uIHRvIHBhc3MgZG93
biBpdHMgRG9jdW1lbnQgcmVmZXJlbmNlIHRvIHRoZSBlbWJlZGRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NzMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwOgorICAgICAgICAoTW9ja1dlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAgICAg
ICAoTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisKIDIwMTItMDktMjUgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXBkYXRlIG1hc3Rlci5jZmcg
dG8gaW52b2tlIHJ1bi1wZXJmLXRlc3RzIHdpdGggLS1uby1zaG93LXJlc3VsdHMgYW5kIC0tcmVz
ZXQtcmVzdWx0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9j
a1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcAppbmRleCBiMmQ1MGZl
YjNjMjIzMTJhOTczNDRmZGI5M2M1NGY3YTM3NmM0N2I4Li44ODQ4NzA5ZDRiNjMyYjhlMzA0MzQx
ODYyMGFhOWZjYTRjYzg0NGIxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcApA
QCAtMTE4LDcgKzExOCw3IEBAIHN0YXRpYyBib29sIGlzVmFsaWRDb25zdHJhaW50KGNvbnN0IFdl
YlN0cmluZyYgY29uc3RyYWludCkKICAgICByZXR1cm4gaXNTdXBwb3J0ZWRDb25zdHJhaW50KGNv
bnN0cmFpbnQpIHx8IGNvbnN0cmFpbnQgPT0gInZhbGlkX2J1dF91bnN1cHBvcnRlZF8xIiB8fCBj
b25zdHJhaW50ID09ICJ2YWxpZF9idXRfdW5zdXBwb3J0ZWRfMiI7CiB9CiAKLWJvb2wgTW9ja1dl
YlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6aW5pdGlhbGl6ZShjb25zdCBXZWJSVENDb25maWd1
cmF0aW9uJiwgY29uc3QgV2ViTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMpCitib29sIE1v
Y2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmluaXRpYWxpemUoY29uc3QgV2ViRG9jdW1l
bnQmLCBjb25zdCBXZWJSVENDb25maWd1cmF0aW9uJiwgY29uc3QgV2ViTWVkaWFDb25zdHJhaW50
cyYgY29uc3RyYWludHMpCiB7CiAgICAgV2ViVmVjdG9yPFdlYlN0cmluZz4gbWFuZGF0b3J5Q29u
c3RyYWludE5hbWVzOwogICAgIGNvbnN0cmFpbnRzLmdldE1hbmRhdG9yeUNvbnN0cmFpbnROYW1l
cyhtYW5kYXRvcnlDb25zdHJhaW50TmFtZXMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5o
CmluZGV4IDJiZjEzOWFmYWE3YWM4ODg1ZGZkYmZlNGM5ZjQxNTJlMzBjYjQ0MWEuLjY2YWJlOWEx
OGZhZmMzMDNlM2Q4MzY5N2FiZjAxZTFkZGE5OTM5MjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlciA6IHB1YmxpYyBXZWJLaXQ6OldlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGwKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKFdlYktpdDo6
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50Kik7CiAKLSAgICB2aXJ0dWFsIGJvb2wg
aW5pdGlhbGl6ZShjb25zdCBXZWJLaXQ6OldlYlJUQ0NvbmZpZ3VyYXRpb24mLCBjb25zdCBXZWJL
aXQ6OldlYk1lZGlhQ29uc3RyYWludHMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaW5p
dGlhbGl6ZShjb25zdCBXZWJLaXQ6OldlYkRvY3VtZW50JiwgY29uc3QgV2ViS2l0OjpXZWJSVEND
b25maWd1cmF0aW9uJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJ
REU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2ZmZXIoY29uc3QgV2ViS2l0OjpXZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFp
bnRzJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFuc3dlcihjb25zdCBXZWJL
aXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QmLCBjb25zdCBXZWJLaXQ6OldlYk1l
ZGlhQ29uc3RyYWludHMmKSBPVkVSUklERTsK
</data>
<flag name="review"
          id="177934"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>