<?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>105684</bug_id>
          
          <creation_ts>2012-12-22 21:56:52 -0800</creation_ts>
          <short_desc>[WK2] Network process should respect cookie accept policy</short_desc>
          <delta_ts>2012-12-23 17:31:03 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>beidson</cc>
    
    <cc>danw</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>796711</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-22 21:56:52 -0800</bug_when>
    <thetext>Changing cookie accept policy works in normal browsing mode, because the cookie storage is shared across all processes. It does not however affect private browsing cookie storage.

&lt;rdar://problem/12808377&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796712</commentid>
    <comment_count>1</comment_count>
      <attachid>180614</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-22 22:18:17 -0800</bug_when>
    <thetext>Created attachment 180614
proposed patch

One part I&apos;m not quite sure about is handling WebCookieManagerProxy messages from NetworkProcess. But it seems reasonable to have the code match WebProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796713</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-22 22:20:09 -0800</bug_when>
    <thetext>Attachment 180614 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProce...&quot; exit_code: 1
Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp:63:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp:86:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796714</commentid>
    <comment_count>3</comment_count>
      <attachid>180614</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-22 22:21:47 -0800</bug_when>
    <thetext>Comment on attachment 180614
proposed patch

Attachment 180614 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15452987</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796715</commentid>
    <comment_count>4</comment_count>
      <attachid>180614</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-22 22:23:41 -0800</bug_when>
    <thetext>Comment on attachment 180614
proposed patch

Attachment 180614 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15456969</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796716</commentid>
    <comment_count>5</comment_count>
      <attachid>180615</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-22 22:34:08 -0800</bug_when>
    <thetext>Created attachment 180615
with non-NetworkProcess build fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796717</commentid>
    <comment_count>6</comment_count>
      <attachid>180615</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-12-22 22:37:42 -0800</bug_when>
    <thetext>Comment on attachment 180615
with non-NetworkProcess build fixes

Attachment 180615 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15490108</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796718</commentid>
    <comment_count>7</comment_count>
      <attachid>180615</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-22 22:40:52 -0800</bug_when>
    <thetext>Comment on attachment 180615
with non-NetworkProcess build fixes

Attachment 180615 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15458966</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796719</commentid>
    <comment_count>8</comment_count>
      <attachid>180615</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-12-22 22:49:22 -0800</bug_when>
    <thetext>Comment on attachment 180615
with non-NetworkProcess build fixes

Attachment 180615 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/15456975</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796723</commentid>
    <comment_count>9</comment_count>
      <attachid>180616</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-22 23:56:28 -0800</bug_when>
    <thetext>Created attachment 180616
more build fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796727</commentid>
    <comment_count>10</comment_count>
      <attachid>180616</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-23 00:41:34 -0800</bug_when>
    <thetext>Comment on attachment 180616
more build fixes

Attachment 180616 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15495019

New failing tests:
inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796731</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-23 01:05:41 -0800</bug_when>
    <thetext>The failing chromium test can&apos;t be related. This is ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796813</commentid>
    <comment_count>12</comment_count>
      <attachid>180616</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-12-23 14:51:17 -0800</bug_when>
    <thetext>Comment on attachment 180616
more build fixes

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

&gt; Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp:117
&gt; +    if (m_webContext-&gt;dispatchMessage(connection, messageID, decoder))
&gt; +        return;

Instead of doing this, the WebContext should be registered as a message receiver in the messageReceiverMap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796815</commentid>
    <comment_count>13</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-12-23 15:59:08 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 180616 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=180616&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp:117
&gt; &gt; +    if (m_webContext-&gt;dispatchMessage(connection, messageID, decoder))
&gt; &gt; +        return;
&gt; 
&gt; Instead of doing this, the WebContext should be registered as a message receiver in the messageReceiverMap.

Um, nevermind. That won&apos;t work.  Carry on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796828</commentid>
    <comment_count>14</comment_count>
      <attachid>180616</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-23 17:30:58 -0800</bug_when>
    <thetext>Comment on attachment 180616
more build fixes

Clearing flags on attachment: 180616

Committed r138427: &lt;http://trac.webkit.org/changeset/138427&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796829</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-23 17:31:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180614</attachid>
            <date>2012-12-22 22:18:17 -0800</date>
            <delta_ts>2012-12-22 22:34:08 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>WebCookieManager.txt</filename>
            <type>text/plain</type>
            <size>16754</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAJKHJldmlzaW9uIDEzODQxNCkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQuaCIKKyNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9Jbml0aWFsaXplTG9nZ2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CkBAIC03Nyw2ICs3OCw3IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemUoQ29yZUlQQzoKICAgICBtX3VpQ29ubmVjdGlvbi0+
b3BlbigpOwogCiAgICAgbV9kb3dubG9hZHNBdXRoZW50aWNhdGlvbk1hbmFnZXIuc2V0Q29ubmVj
dGlvbihtX3VpQ29ubmVjdGlvbi5nZXQoKSk7CisgICAgV2ViQ29va2llTWFuYWdlcjo6c2hhcmVk
KCkuc2V0Q29ubmVjdGlvbihtX3VpQ29ubmVjdGlvbi5nZXQoKSk7CiB9CiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnJlbW92ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKiBjb25uZWN0aW9uKQpAQCAtOTgsNiArMTAwLDExIEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKEMKICAgICBpZiAobV9tZXNzYWdlUmVj
ZWl2ZXJNYXAuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcikp
CiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViQ29va2llTWFuYWdlcj4oKSkgeworICAgICAgICBXZWJDb29raWVNYW5hZ2VyOjpz
aGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAjaWYgRU5BQkxFKENVU1RPTV9QUk9UT0NPTFMp
CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NDdXN0b21Qcm90b2Nv
bE1hbmFnZXI+KCkpIHsKICAgICAgICAgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjpzaGFyZWQoKS5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkocmV2aXNpb24gMTM4NDE0KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMTksMTIgKzMxOSwyMCBAQCB2b2lkIFdlYkNvbnRleHQ6OnNldE1heGltdW1OdW1iZXJP
ZlByb2NlCiAgICAgICAgIG1fd2ViUHJvY2Vzc0NvdW50TGltaXQgPSBtYXhpbXVtTnVtYmVyT2ZQ
cm9jZXNzZXM7CiB9CiAKLVdlYlByb2Nlc3NQcm94eSogV2ViQ29udGV4dDo6ZGVwcmVjYXRlZFNo
YXJlZFByb2Nlc3MoKQorQ29yZUlQQzo6Q29ubmVjdGlvbiogV2ViQ29udGV4dDo6bmV0d29ya2lu
Z1Byb2Nlc3NDb25uZWN0aW9uKCkKIHsKLSAgICBBU1NFUlQobV9wcm9jZXNzTW9kZWwgPT0gUHJv
Y2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2Vzcyk7Ci0gICAgaWYgKG1fcHJvY2Vzc2VzLmlz
RW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG1fcHJvY2Vzc2VzWzBdLmdl
dCgpOworICAgIHN3aXRjaCAobV9wcm9jZXNzTW9kZWwpIHsKKyAgICBjYXNlIFByb2Nlc3NNb2Rl
bFNoYXJlZFNlY29uZGFyeVByb2Nlc3M6CisgICAgICAgIHJldHVybiBtX3Byb2Nlc3Nlc1swXS0+
Y29ubmVjdGlvbigpOworICAgIGNhc2UgUHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9j
ZXNzZXM6CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICAgICAgcmV0dXJuIG1fbmV0
d29ya1Byb2Nlc3MtPmNvbm5lY3Rpb24oKTsKKyNlbHNlCisgICAgICAgIGJyZWFrOworI2VuZGlm
CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOwogfQogCiB2
b2lkIFdlYkNvbnRleHQ6Omxhbmd1YWdlQ2hhbmdlZCh2b2lkKiBjb250ZXh0KQpAQCAtMzk0LDYg
KzQwMiw4IEBAIHZvaWQgV2ViQ29udGV4dDo6cmVtb3ZlTmV0d29ya1Byb2Nlc3NQcm8KICAgICBB
U1NFUlQobmV0d29ya1Byb2Nlc3NQcm94eSA9PSBtX25ldHdvcmtQcm9jZXNzLmdldCgpKTsKICAg
ICAKICAgICBtX25ldHdvcmtQcm9jZXNzID0gbnVsbHB0cjsKKworICAgIG1fY29va2llTWFuYWdl
clByb3h5LT5pbnZhbGlkYXRlKCk7CiB9CiAKIHZvaWQgV2ViQ29udGV4dDo6Z2V0TmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+IHJlcGx5KQpAQCAtNjI4LDcg
KzYzOCw3IEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlzY29ubmVjdFByb2Nlc3MoV2ViUHIKICAgICBp
ZiAobV9oYXZlSW5pdGlhbEVtcHR5UHJvY2VzcyAmJiBwcm9jZXNzID09IG1fcHJvY2Vzc2VzLmxh
c3QoKSkKICAgICAgICAgbV9oYXZlSW5pdGlhbEVtcHR5UHJvY2VzcyA9IGZhbHNlOwogCi0gICAg
Ly8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3MpOiA8cmRhcjovL3Byb2JsZW0vMTIyMzk3NjU+IEFs
bCB0aGUgaW52YWxpZGF0aW9uIGNhbGxzIGJlbG93IGFyZSBzdGlsbCBuZWNlc3NhcnkgaW4gbXVs
dGktcHJvY2VzcyBtb2RlLCBidXQgdGhleSBzaG91bGQgb25seSBhZmZlY3QgZGF0YSBzdHJ1Y3R1
cmVzIHBlcnRhaW5pbmcgdG8gdGhlIHByb2Nlc3MgYmVpbmcgZGlzY29ubmVjdGVkLgorICAgIC8v
IEZJWE1FIChNdWx0aS1XZWJQcm9jZXNzKTogPHJkYXI6Ly9wcm9ibGVtLzEyMjM5NzY1PiBTb21l
IG9mIHRoZSBpbnZhbGlkYXRpb24gY2FsbHMgYmVsb3cgYXJlIHN0aWxsIG5lY2Vzc2FyeSBpbiBt
dWx0aS1wcm9jZXNzIG1vZGUsIGJ1dCB0aGV5IHNob3VsZCBvbmx5IGFmZmVjdCBkYXRhIHN0cnVj
dHVyZXMgcGVydGFpbmluZyB0byB0aGUgcHJvY2VzcyBiZWluZyBkaXNjb25uZWN0ZWQuCiAgICAg
Ly8gQ2xlYXJpbmcgZXZlcnl0aGluZyBjYXVzZXMgYXNzZXJ0aW9uIGZhaWx1cmVzLCBzbyBpdCdz
IGxlc3MgdHJvdWJsZSB0byBza2lwIHRoYXQgZm9yIG5vdy4KICAgICBpZiAobV9wcm9jZXNzTW9k
ZWwgIT0gUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzcykgewogICAgICAgICBSZWZQ
dHI8V2ViUHJvY2Vzc1Byb3h5PiBwcm90ZWN0KHByb2Nlc3MpOwpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5oCShyZXZpc2lvbiAxMzg0MTQpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiSW1tdXRhYmxlRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgorI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJQbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oIgog
I2luY2x1ZGUgIlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUgIlByb2Nlc3NNb2RlbC5oIgpA
QCAtMTE2LDExICsxMTcsMTUgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWF4aW11bU51bWJlck9m
UHJvY2Vzc2VzKHVuc2lnbmVkKTsgLy8gQ2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlcmUgYXJl
IG5vIHByb2Nlc3NlcyBydW5uaW5nLgogICAgIHVuc2lnbmVkIG1heGltdW1OdW1iZXJPZlByb2Nl
c3NlcygpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUHJvY2Vzc0NvdW50TGltaXQ7IH0KIAotICAgIC8v
IEZJWE1FIChNdWx0aS1XZWJQcm9jZXNzKTogUmVtb3ZlLiBObyBjb2RlIHNob3VsZCBhc3N1bWUg
dGhhdCB0aGVyZSBpcyBhIHNoYXJlZCBwcm9jZXNzLgotICAgIFdlYlByb2Nlc3NQcm94eSogZGVw
cmVjYXRlZFNoYXJlZFByb2Nlc3MoKTsKKyAgICAvLyBXZWJQcm9jZXNzIG9yIE5ldHdvcmtQcm9j
ZXNzIGFzIGFwcHJvcG9yaWF0ZSBmb3IgY3VycmVudCBwcm9jZXNzIG1vZGVsLiBUaGUgY29ubmVj
dGlvbiBtdXN0IGJlIG5vbi1udWxsLgorICAgIENvcmVJUEM6OkNvbm5lY3Rpb24qIG5ldHdvcmtp
bmdQcm9jZXNzQ29ubmVjdGlvbigpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gdm9pZCBz
ZW5kVG9BbGxQcm9jZXNzZXMoY29uc3QgVSYgbWVzc2FnZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVT4gdm9pZCBzZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShj
b25zdCBVJiBtZXNzYWdlKTsKKworICAgIC8vIFNlbmRzIHRoZSBtZXNzYWdlIHRvIFdlYlByb2Nl
c3Mgb3IgTmV0d29ya1Byb2Nlc3MgYXMgYXBwcm9wb3JpYXRlIGZvciBjdXJyZW50IHByb2Nlc3Mg
bW9kZWwuCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gdm9pZCBzZW5kVG9OZXR3b3JraW5nUHJv
Y2Vzcyhjb25zdCBVJiBtZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiB2b2lkIHNl
bmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShjb25zdCBVJiBtZXNz
YWdlKTsKICAgICAKICAgICB2b2lkIHByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcoV2ViUHJvY2Vz
c1Byb3h5Kik7CiAKQEAgLTQ3NCw2ICs0NzksNDQgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAor
dGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIHZvaWQgV2ViQ29udGV4dDo6c2VuZFRvTmV0d29y
a2luZ1Byb2Nlc3MoY29uc3QgVSYgbWVzc2FnZSkKK3sKKyAgICBzd2l0Y2ggKG1fcHJvY2Vzc01v
ZGVsKSB7CisgICAgY2FzZSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzOgorICAg
ICAgICBpZiAobV9wcm9jZXNzZXNbMF0tPmNhblNlbmRNZXNzYWdlKCkpCisgICAgICAgICAgICBt
X3Byb2Nlc3Nlc1swXS0+c2VuZChtZXNzYWdlLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNh
c2UgUHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9jZXNzZXM6CisjaWYgRU5BQkxFKE5F
VFdPUktfUFJPQ0VTUykKKyAgICAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MtPmNhblNlbmRNZXNz
YWdlKCkpCisgICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKG1lc3NhZ2UsIDApOwor
ICAgICAgICByZXR1cm47CisjZWxzZQorICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIH0KKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVT4gdm9pZCBX
ZWJDb250ZXh0OjpzZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3Nhcnko
Y29uc3QgVSYgbWVzc2FnZSkKK3sKKyAgICBzd2l0Y2ggKG1fcHJvY2Vzc01vZGVsKSB7CisgICAg
Y2FzZSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzOgorICAgICAgICBlbnN1cmVT
aGFyZWRXZWJQcm9jZXNzKCk7CisgICAgICAgIG1fcHJvY2Vzc2VzWzBdLT5zZW5kKG1lc3NhZ2Us
IDApOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBQcm9jZXNzTW9kZWxNdWx0aXBsZVNlY29u
ZGFyeVByb2Nlc3NlczoKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorICAgICAgICBlbnN1
cmVOZXR3b3JrUHJvY2VzcygpOworICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKG1lc3Nh
Z2UsIDApOworICAgICAgICByZXR1cm47CisjZWxzZQorICAgICAgICBicmVhazsKKyNlbmRpZgor
ICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUg
VT4gaW5saW5lIHZvaWQgV2ViQ29udGV4dDo6c2VuZFRvQWxsUHJvY2Vzc2VzKGNvbnN0IFUmIG1l
c3NhZ2UpCiB7CiAgICAgc2l6ZV90IHByb2Nlc3NDb3VudCA9IG1fcHJvY2Vzc2VzLnNpemUoKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkuY3BwCShyZXZpc2lvbiAxMzg0MTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29va2llTWFuYWdlclByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsOCBA
QCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSgpCiAKIGJvb2wgV2ViQ29v
a2llTWFuYWdlclByb3h5OjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9hcnJheUNhbGxiYWNrcy5pc0VtcHR5KCkgJiYgbV9odHRwQ29va2ll
QWNjZXB0UG9saWN5Q2FsbGJhY2tzLmlzRW1wdHkoKTsKKyAgICByZXR1cm4gbV93ZWJDb250ZXh0
LT5wcm9jZXNzTW9kZWwoKSAhPSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzIHx8
CisgICAgICAgIChtX2FycmF5Q2FsbGJhY2tzLmlzRW1wdHkoKSAmJiBtX2h0dHBDb29raWVBY2Nl
cHRQb2xpY3lDYWxsYmFja3MuaXNFbXB0eSgpKTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2Vy
UHJveHk6OmluaXRpYWxpemVDbGllbnQoY29uc3QgV0tDb29raWVNYW5hZ2VyQ2xpZW50KiBjbGll
bnQpCkBAIC03NSwxNCArNzYsMTEgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRpZFJl
Y2VpdmVNZQogCiB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SG9zdG5hbWVzV2l0aENv
b2tpZXMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKIHsKLSAgICBBU1NF
UlQobV93ZWJDb250ZXh0KTsKLQogICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9
IHBycENhbGxiYWNrOwogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJh
Y2tJRCgpOwogICAgIG1fYXJyYXlDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLnJl
bGVhc2UoKSk7CiAKLSAgICAvLyBGSVhNRSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxyZGFyOi8vcHJv
YmxlbS8xMjIzOTc2NT4gQ29va2llcyBzaG91bGRuJ3QgYmUgc3RvcmVkIGluIHRoZSB3ZWIgcHJv
Y2Vzcy4KLSAgICBtX3dlYkNvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhl
bUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpHZXRIb3N0bmFtZXNXaXRo
Q29va2llcyhjYWxsYmFja0lEKSk7CisgICAgbV93ZWJDb250ZXh0LT5zZW5kVG9OZXR3b3JraW5n
UHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6
OkdldEhvc3RuYW1lc1dpdGhDb29raWVzKGNhbGxiYWNrSUQpKTsKIH0KICAgICAKIHZvaWQgV2Vi
Q29va2llTWFuYWdlclByb3h5OjpkaWRHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYgaG9zdG5hbWVMaXN0LCB1aW50NjRfdCBjYWxsYmFja0lEKQpAQCAtMTA0LDI2
ICsxMDIsMjIgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRpZEdldEhvc3RuYQogCiB2
b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKGNvbnN0
IFN0cmluZyYgaG9zdG5hbWUpCiB7Ci0gICAgQVNTRVJUKG1fd2ViQ29udGV4dCk7Ci0gICAgbV93
ZWJDb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShN
ZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6RGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKGhvc3Ru
YW1lKSk7CisgICAgbV93ZWJDb250ZXh0LT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNo
aW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUNvb2tpZXNG
b3JIb3N0bmFtZShob3N0bmFtZSkpOwogfQogCiB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6
ZGVsZXRlQWxsQ29va2llcygpCiB7Ci0gICAgQVNTRVJUKG1fd2ViQ29udGV4dCk7Ci0gICAgbV93
ZWJDb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShN
ZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6RGVsZXRlQWxsQ29va2llcygpKTsKKyAgICBtX3dl
YkNvbnRleHQtPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShN
ZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6RGVsZXRlQWxsQ29va2llcygpKTsKIH0KIAogdm9p
ZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpCiB7
Ci0gICAgQVNTRVJUKG1fd2ViQ29udGV4dCk7Ci0gICAgbV93ZWJDb250ZXh0LT5zZW5kVG9BbGxQ
cm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFu
YWdlcjo6U3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCkpOworICAgIG1fd2ViQ29udGV4dC0+
c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpX
ZWJDb29raWVNYW5hZ2VyOjpTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKSk7CiB9CiAKIHZv
aWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpCiB7
Ci0gICAgQVNTRVJUKG1fd2ViQ29udGV4dCk7Ci0gICAgbV93ZWJDb250ZXh0LT5zZW5kVG9BbGxQ
cm9jZXNzZXMoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlN0b3BPYnNlcnZpbmdDb29raWVD
aGFuZ2VzKCkpOworICAgIG1fd2ViQ29udGV4dC0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxh
dW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTdG9wT2JzZXJ2
aW5nQ29va2llQ2hhbmdlcygpKTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmNv
b2tpZXNEaWRDaGFuZ2UoKQpAQCAtMTMzLDcgKzEyNyw2IEBAIHZvaWQgV2ViQ29va2llTWFuYWdl
clByb3h5Ojpjb29raWVzRGlkQ2gKIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCiB7Ci0g
ICAgQVNTRVJUKG1fd2ViQ29udGV4dCk7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHBlcnNpc3RI
VFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSk7CiAjZW5kaWYKQEAgLTE0MSwyMSArMTM0LDE3
IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRIVFRQQ29va2kKICAgICBtX3dlYkNv
bnRleHQtPnNldEluaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSk7CiAjZW5kaWYK
IAotICAgIG1fd2ViQ29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZO
ZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlNldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kocG9saWN5KSk7CisgICAgbV93ZWJDb250ZXh0LT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vz
c1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlNldEhU
VFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KSk7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFuYWdl
clByb3h5OjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KFBhc3NSZWZQdHI8SFRUUENvb2tpZUFj
Y2VwdFBvbGljeUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKIHsKLSAgICBBU1NFUlQobV93ZWJDb250
ZXh0KTsKLQogICAgIFJlZlB0cjxIVFRQQ29va2llQWNjZXB0UG9saWN5Q2FsbGJhY2s+IGNhbGxi
YWNrID0gcHJwQ2FsbGJhY2s7CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2st
PmNhbGxiYWNrSUQoKTsKICAgICBtX2h0dHBDb29raWVBY2NlcHRQb2xpY3lDYWxsYmFja3Muc2V0
KGNhbGxiYWNrSUQsIGNhbGxiYWNrLnJlbGVhc2UoKSk7CiAKLSAgICAvLyBGSVhNRSAoTXVsdGkt
V2ViUHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8xMjI0MDE4OT4gTWFrZSBjb29raWUgcG9saWNp
ZXMgd29yayB3aXRoIHBlci10YWIgV2ViUHJvY2Vzcy4KLSAgICAvLyBXZSBjYW4ndCBiZXIgYXNr
aW5nIGFsbCB3ZWIgcHJvY2Vzc2VzIGZvciB0aGlzIGluZm9ybWF0aW9uLgotICAgIG1fd2ViQ29u
dGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2Fn
ZXM6OldlYkNvb2tpZU1hbmFnZXI6OkdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koY2FsbGJhY2tJ
RCkpOworICAgIG1fd2ViQ29udGV4dC0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGlu
Z0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpHZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KGNhbGxiYWNrSUQpKTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6
OmRpZEdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kodWludDMyX3QgcG9saWN5LCB1aW50NjRfdCBj
YWxsYmFja0lEKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZFByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwCShyZXZpc2lvbiAxMzg0MTQpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjIsMTkgKzEyMiw3IEBAIHZvaWQgRG93bmxvYWRQcm94eTo6ZGlkUmVjZWl2ZUF1dGhl
bnRpY2EKICAgICBpZiAoIW1fd2ViQ29udGV4dCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVm
UHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rpb247Ci0KLSAgICBpZiAobV93ZWJDb250
ZXh0LT51c2VzTmV0d29ya1Byb2Nlc3MoKSkgewotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
Ci0gICAgICAgIGlmIChOZXR3b3JrUHJvY2Vzc1Byb3h5KiBuZXR3b3JrUHJvY2VzcyA9IG1fd2Vi
Q29udGV4dC0+bmV0d29ya1Byb2Nlc3MoKSkKLSAgICAgICAgICAgIGNvbm5lY3Rpb24gPSBuZXR3
b3JrUHJvY2Vzcy0+Y29ubmVjdGlvbigpOwotI2VuZGlmCi0gICAgfSBlbHNlIHsKLSAgICAgICAg
Ly8gRklYTUU6IFJlbW92ZSBXZWJDb250ZXh0OjpkZXByZWNhdGVkU2hhcmVkUHJvY2VzcygpLgot
ICAgICAgICBjb25uZWN0aW9uID0gbV93ZWJDb250ZXh0LT5kZXByZWNhdGVkU2hhcmVkUHJvY2Vz
cygpLT5jb25uZWN0aW9uKCk7Ci0gICAgfQotCi0gICAgUmVmUHRyPEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlUHJveHk+IGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkgPSBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5OjpjcmVhdGUoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNoYWxsZW5n
ZUlELCBjb25uZWN0aW9uLmdldCgpKTsKKyAgICBSZWZQdHI8QXV0aGVudGljYXRpb25DaGFsbGVu
Z2VQcm94eT4gYXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSA9IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlUHJveHk6OmNyZWF0ZShhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgY2hhbGxlbmdlSUQs
IG1fd2ViQ29udGV4dC0+bmV0d29ya2luZ1Byb2Nlc3NDb25uZWN0aW9uKCkpOwogCiAgICAgbV93
ZWJDb250ZXh0LT5kb3dubG9hZENsaWVudCgpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShtX3dlYkNvbnRleHQuZ2V0KCksIHRoaXMsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJv
eHkuZ2V0KCkpOwogfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDEzODQxNCkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTMsNiArMTEzLDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpkaWRSZWNlaXZlTWVzcwogICAgIGlmIChtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNwYXRj
aE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKSkKICAgICAgICAgcmV0dXJu
OwogCisgICAgaWYgKG1fd2ViQ29udGV4dC0+ZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgZGVjb2RlcikpCisgICAgICAgIHJldHVybjsKKwogI2lmIEVOQUJMRShDVVNUT01f
UFJPVE9DT0xTKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyUHJveHk+KCkpIHsKICAgICAgICAgbV9jdXN0b21Qcm90b2NvbE1h
bmFnZXJQcm94eS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29k
ZXIpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZp
c2lvbiAxMzg0MTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzgsNiArMTc4LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0
aWFsaXplKENvcmVJUEM6OkNvbgogICAgIG1fcnVuTG9vcCA9IHJ1bkxvb3A7CiAKICAgICBtX2F1
dGhlbnRpY2F0aW9uTWFuYWdlci5zZXRDb25uZWN0aW9uKG1fY29ubmVjdGlvbi5nZXQoKSk7Cisg
ICAgV2ViQ29va2llTWFuYWdlcjo6c2hhcmVkKCkuc2V0Q29ubmVjdGlvbihtX2Nvbm5lY3Rpb24u
Z2V0KCkpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgQ29yZUlQQzo6TWVzc2FnZVJl
Y2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAxMzg0
MTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDggKzQ3LDE1IEBAIFdlYkNvb2tpZU1hbmFnZXI6
OldlYkNvb2tpZU1hbmFnZXIoKQogewogfQogCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNldENv
bm5lY3Rpb24oQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlQo
IW1fY29ubmVjdGlvbik7CisgICAgbV9jb25uZWN0aW9uID0gY29ubmVjdGlvbjsKK30KKwogdm9p
ZCBXZWJDb29raWVNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKIHsKKyAgICBBU1NFUlQoY29ubmVjdGlvbiA9PSBtX2Nvbm5l
Y3Rpb24uZ2V0KCkpOwogICAgIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCkBAIC02MSw3ICs2OCw3IEBAIHZvaWQg
V2ViQ29va2llTWFuYWdlcjo6Z2V0SG9zdG5hbWVzV2l0aEMKICAgICBWZWN0b3I8U3RyaW5nPiBo
b3N0bmFtZUxpc3Q7CiAgICAgY29weVRvVmVjdG9yKGhvc3RuYW1lcywgaG9zdG5hbWVMaXN0KTsK
IAotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViQ29va2llTWFuYWdlclByb3h5OjpEaWRHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhob3N0bmFt
ZUxpc3QsIGNhbGxiYWNrSUQpLCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6RGlkR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoaG9zdG5h
bWVMaXN0LCBjYWxsYmFja0lEKSwgMCk7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVs
ZXRlQ29va2llc0Zvckhvc3RuYW1lKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCkBAIC03Niw3ICs4
Myw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQWxsQ29va2llcygKIAogdm9pZCBX
ZWJDb29raWVNYW5hZ2VyOjpzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKQogewotICAgIFdl
YkNvcmU6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOworLy8gISEhICAgIFdlYkNvcmU6
OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOwogfQogCiB2b2lkIFdlYkNvb2tpZU1hbmFn
ZXI6OnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCkKQEAgLTg2LDcgKzkzLDcgQEAgdm9pZCBX
ZWJDb29raWVNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ29vawogCiB2b2lkIFdlYkNvb2tpZU1hbmFn
ZXI6OmRpc3BhdGNoQ29va2llc0RpZENoYW5nZSgpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVk
KCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkNv
b2tpZXNEaWRDaGFuZ2UoKSwgMCk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJDb29raWVNYW5hZ2VyUHJveHk6OkNvb2tpZXNEaWRDaGFuZ2UoKSwgMCk7CiB9CiAKIHZvaWQg
V2ViQ29va2llTWFuYWdlcjo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNj
ZXB0UG9saWN5IHBvbGljeSkKQEAgLTk2LDcgKzEwMyw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdl
cjo6c2V0SFRUUENvb2tpZUFjY2UKIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7Ci0gICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJv
eHk6OkRpZEdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocGxhdGZvcm1HZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KCksIGNhbGxiYWNrSUQpLCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6RGlkR2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKSwgY2FsbGJhY2tJRCksIDApOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaAkocmV2aXNpb24gMTM4NDE0
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBjbGFzcyBXZWJDb29raWVNYW5hZ2Vy
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJDb29raWVNYW5hZ2VyKTsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgV2ViQ29va2llTWFuYWdlciYgc2hhcmVkKCk7CisgICAgdm9pZCBzZXRDb25u
ZWN0aW9uKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKICAgICAKQEAgLTcyLDYgKzczLDggQEAgcHJpdmF0ZToKICAgICB2b2lk
IHN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJD
b29raWVNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworCisgICAgUmVmUHRyPENvcmVJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="commit-queue"
          id="197934"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180615</attachid>
            <date>2012-12-22 22:34:08 -0800</date>
            <delta_ts>2012-12-22 23:56:28 -0800</delta_ts>
            <desc>with non-NetworkProcess build fixes</desc>
            <filename>WebCookieManager2.txt</filename>
            <type>text/plain</type>
            <size>43795</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEyLTIyICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
MjgwODM3Nz4gTmV0d29yayBwcm9jZXNzIHNob3VsZCByZXNwZWN0IGNvb2tpZSBhY2NlcHQgcG9s
aWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2
ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFu
Z2VkIGNvb2tpZSBjaGFuZ2Ugb2JzZXJ2ZXIgdG8gbm90IHVzZSBwbGF0Zm9ybSBzdHJhdGVnaWVz
LCB0byBtYWtlIGl0IHVzYWJsZQorICAgICAgICBpbiBOZXR3b3JrUHJvY2Vzcy4gc3RhcnRPYnNl
cnZpbmdDb29raWVDaGFuZ2VzKCkgbm93IGp1c3QgdGFrZXMgYSBjYWxsYmFjayBwb2ludGVyLgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGxhdGZvcm0vQ29va2llc1N0
cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Db29raWVTdG9yYWdlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bm90aWZ5Q29va2llc0NoYW5nZWRPbk1haW5UaHJlYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL21hYy9Db29raWVTdG9yYWdlTWFjLm1tOgorICAgICAgICAoLVtXZWJDb29r
aWVTdG9yYWdlT2JqQ0FkYXB0ZXIgbm90aWZ5Q29va2llc0NoYW5nZWRPbk1haW5UaHJlYWRdKToK
KyAgICAgICAgKC1bV2ViQ29va2llU3RvcmFnZU9iakNBZGFwdGVyIHN0YXJ0TGlzdGVuaW5nRm9y
Q29va2llQ2hhbmdlTm90aWZpY2F0aW9uc1dpdGhDYWxsYmFjazpdKToKKyAgICAgICAgKFdlYkNv
cmU6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyk6CisKIDIwMTItMTItMjIgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgc2VwYXJhdGUgY2xh
c3MgZm9yIG5ldHdvcmtpbmcgcmVsYXRlZCBzdG9yYWdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTY5OCw3ICs2OTgsNyBAQCBfX1pON1dlYkNvcmUyN0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlQmFzCiBfX1pON1dlYkNvcmUyN0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bkMxRU4zV1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFYlJLTlMxXzZTdHJpbmdFCiBfX1pON1dl
YkNvcmUyN0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazE0c2V0T3JpZW50YXRpb25FTjNXVEYx
MFBhc3NSZWZQdHJJTlNfMjFEZXZpY2VPcmllbnRhdGlvbkRhdGFFRUUKIF9fWk43V2ViQ29yZTI3
RGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrQzFFdgotX19aTjdXZWJDb3JlMjdzdGFydE9ic2Vy
dmluZ0Nvb2tpZUNoYW5nZXNFdgorX19aTjdXZWJDb3JlMjdzdGFydE9ic2VydmluZ0Nvb2tpZUNo
YW5nZXNFUEZ2dkUKIF9fWk43V2ViQ29yZTI4ZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlc0VS
S04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTI4cmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZl
ckVQdgogX19aTjdXZWJDb3JlMjljb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZUVSS05TXzIx
TmV0d29ya1N0b3JhZ2VTZXNzaW9uRVJLTlNfNEtVUkxFUzVfCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db29raWVzU3RyYXRlZ3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db29raWVzU3RyYXRlZ3kuaAkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ29va2llc1N0cmF0ZWd5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQx
LDggKzQxLDYgQEAgc3RydWN0IENvb2tpZTsKIAogY2xhc3MgQ29va2llc1N0cmF0ZWd5IHsKIHB1
YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q29va2llc0NoYW5nZWQoKSA9IDA7Ci0KICAg
ICB2aXJ0dWFsIFN0cmluZyBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYsIGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNv
bnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0
cmluZykgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBLVVJMJikgPSAw
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVTdG9yYWdlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVTdG9y
YWdlLmgJKHJldmlzaW9uIDEzODQxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQ29va2llU3RvcmFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw5IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIC8vIFRoZXNlIGFyZSBhbHdheXMgb2JzZXJ2aW5nIHRoZSBzaGFy
ZWQgY29va2llIHN0b3JhZ2UsIGV2ZW4gd2hlbiBpbiBwcml2YXRlIGJyb3dzaW5nIG1vZGUuCi12
b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOworCit0eXBlZGVmIHZvaWQoKkNvb2tp
ZUNoYW5nZUNhbGxiYWNrUHRyKSgpOwordm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
Q29va2llQ2hhbmdlQ2FsbGJhY2tQdHIpOwogdm9pZCBzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdl
cygpOwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tp
ZVN0b3JhZ2VDRk5ldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuY3BwCShyZXZpc2lvbiAxMzg0MTQpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VDRk5ldC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ2LDEzICs0NiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICNpZiBQTEFURk9STShXSU4pCiAKK3N0YXRpYyBDb29raWVDaGFuZ2VDYWxsYmFja1B0ciBjb29r
aWVDaGFuZ2VDYWxsYmFjazsKKwogc3RhdGljIHZvaWQgbm90aWZ5Q29va2llc0NoYW5nZWRPbk1h
aW5UaHJlYWQodm9pZCopCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLQotI2lmIFVT
RShQTEFURk9STV9TVFJBVEVHSUVTKQotICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5jb29raWVz
U3RyYXRlZ3koKS0+bm90aWZ5Q29va2llc0NoYW5nZWQoKTsKLSNlbmRpZgorICAgIGNvb2tpZUNo
YW5nZUNhbGxiYWNrKCk7CiB9CiAKIHN0YXRpYyB2b2lkIG5vdGlmeUNvb2tpZXNDaGFuZ2VkKENG
SFRUUENvb2tpZVN0b3JhZ2VSZWYsIHZvaWQgKikKQEAgLTcxLDEwICs3MCwxMyBAQCBzdGF0aWMg
aW5saW5lIENGUnVuTG9vcFJlZiBjb29raWVTdG9yYWdlCiAgICAgcmV0dXJuIGxvYWRlclJ1bkxv
b3AoKTsKIH0KIAotdm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKQordm9pZCBzdGFy
dE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoQ29va2llQ2hhbmdlQ2FsbGJhY2tQdHIgY2FsbGJhY2sp
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAorICAgIEFTU0VSVCghY29va2llQ2hh
bmdlQ2FsbGJhY2spOworICAgIGNvb2tpZUNoYW5nZUNhbGxiYWNrID0gY2FsbGJhY2s7CisKICAg
ICBDRlJ1bkxvb3BSZWYgcnVuTG9vcCA9IGNvb2tpZVN0b3JhZ2VPYnNlcnZlclJ1bkxvb3AoKTsK
ICAgICBBU1NFUlQocnVuTG9vcCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL0Nvb2tpZVN0b3JhZ2VNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llU3RvcmFnZU1hYy5tbQkocmV2aXNpb24gMTM4
NDE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llU3RvcmFn
ZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzksMTAgKzM5LDEyIEBACiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCi1AaW50ZXJmYWNlIFdlYkNvb2tpZVN0b3JhZ2VPYmpDQWRhcHRlciA6
IE5TT2JqZWN0CitAaW50ZXJmYWNlIFdlYkNvb2tpZVN0b3JhZ2VPYmpDQWRhcHRlciA6IE5TT2Jq
ZWN0IHsKKyAgICBDb29raWVDaGFuZ2VDYWxsYmFja1B0ciBtX2Nvb2tpZUNoYW5nZUNhbGxiYWNr
OworfQogLSh2b2lkKW5vdGlmeUNvb2tpZXNDaGFuZ2VkT25NYWluVGhyZWFkOwogLSh2b2lkKWNv
b2tpZXNDaGFuZ2VkTm90aWZpY2F0aW9uSGFuZGxlcjooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb247Ci0tKHZvaWQpc3RhcnRMaXN0ZW5pbmdGb3JDb29raWVDaGFuZ2VOb3RpZmljYXRpb25z
OworLSh2b2lkKXN0YXJ0TGlzdGVuaW5nRm9yQ29va2llQ2hhbmdlTm90aWZpY2F0aW9uc1dpdGhD
YWxsYmFjazooQ29va2llQ2hhbmdlQ2FsbGJhY2tQdHIpY2FsbGJhY2s7CiAtKHZvaWQpc3RvcExp
c3RlbmluZ0ZvckNvb2tpZUNoYW5nZU5vdGlmaWNhdGlvbnM7CiBAZW5kCiAKQEAgLTUwLDkgKzUy
LDcgQEAgLSh2b2lkKXN0b3BMaXN0ZW5pbmdGb3JDb29raWVDaGFuZ2VOb3RpZgogCiAtKHZvaWQp
bm90aWZ5Q29va2llc0NoYW5nZWRPbk1haW5UaHJlYWQKIHsKLSNpZiBVU0UoUExBVEZPUk1fU1RS
QVRFR0lFUykKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0ZWd5KCktPm5v
dGlmeUNvb2tpZXNDaGFuZ2VkKCk7Ci0jZW5kaWYKKyAgICBtX2Nvb2tpZUNoYW5nZUNhbGxiYWNr
KCk7CiB9CiAKIC0odm9pZCljb29raWVzQ2hhbmdlZE5vdGlmaWNhdGlvbkhhbmRsZXI6KE5TTm90
aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCkBAIC02Miw4ICs2MiwxMCBAQCAtKHZvaWQpY29va2ll
c0NoYW5nZWROb3RpZmljYXRpb25IYW5kbGVyCiAgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9yT25N
YWluVGhyZWFkOkBzZWxlY3Rvcihub3RpZnlDb29raWVzQ2hhbmdlZE9uTWFpblRocmVhZCkgd2l0
aE9iamVjdDpuaWwgd2FpdFVudGlsRG9uZTpGQUxTRV07CiB9CiAKLS0odm9pZClzdGFydExpc3Rl
bmluZ0ZvckNvb2tpZUNoYW5nZU5vdGlmaWNhdGlvbnMKKy0odm9pZClzdGFydExpc3RlbmluZ0Zv
ckNvb2tpZUNoYW5nZU5vdGlmaWNhdGlvbnNXaXRoQ2FsbGJhY2s6KENvb2tpZUNoYW5nZUNhbGxi
YWNrUHRyKWNhbGxiYWNrCiB7CisgICAgQVNTRVJUKCFtX2Nvb2tpZUNoYW5nZUNhbGxiYWNrKTsK
KyAgICBtX2Nvb2tpZUNoYW5nZUNhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3Rvcihjb29raWVzQ2hhbmdlZE5vdGlmaWNhdGlvbkhhbmRsZXI6KSBuYW1lOk5TSFRUUENvb2tp
ZU1hbmFnZXJDb29raWVzQ2hhbmdlZE5vdGlmaWNhdGlvbiBvYmplY3Q6W05TSFRUUENvb2tpZVN0
b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdXTsKIH0KIApAQCAtNzgsMTEgKzgwLDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFdlYkNvb2tpZVN0b3JhZ2VPYmpDQWRhcHRl
ciAqY29va2llU3RvcmFnZUFkYXB0ZXI7CiAKLXZvaWQgc3RhcnRPYnNlcnZpbmdDb29raWVDaGFu
Z2VzKCkKK3ZvaWQgc3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKENvb2tpZUNoYW5nZUNhbGxi
YWNrUHRyIGNhbGxiYWNrKQogewogICAgIGlmICghY29va2llU3RvcmFnZUFkYXB0ZXIpCiAgICAg
ICAgIGNvb2tpZVN0b3JhZ2VBZGFwdGVyID0gW1tXZWJDb29raWVTdG9yYWdlT2JqQ0FkYXB0ZXIg
YWxsb2NdIGluaXRdOwotICAgIFtjb29raWVTdG9yYWdlQWRhcHRlciBzdGFydExpc3RlbmluZ0Zv
ckNvb2tpZUNoYW5nZU5vdGlmaWNhdGlvbnNdOworICAgIFtjb29raWVTdG9yYWdlQWRhcHRlciBz
dGFydExpc3RlbmluZ0ZvckNvb2tpZUNoYW5nZU5vdGlmaWNhdGlvbnNXaXRoQ2FsbGJhY2s6Y2Fs
bGJhY2tdOwogfQogCiB2b2lkIHN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDczIEBACisyMDEyLTEyLTIyICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjgwODM3Nz4g
TmV0d29yayBwcm9jZXNzIHNob3VsZCByZXNwZWN0IGNvb2tpZSBhY2NlcHQgcG9saWN5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2ODQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OmluaXRpYWxpemUpOiBUZWxsIGNvb2tpZSBtYW5hZ2VyIHdoaWNoIGNvbm5lY3Rpb24gdG8KKyAg
ICAgICAgbWFrZSBjYWxscyBvbi4gTm93IHRoYXQgdGhlIGNvZGUgY2FuIHJ1biBpbiBlaXRoZXIg
V2ViUHJvY2VzcyBvciBOZXR3b3JrUHJvY2VzcywKKyAgICAgICAgaXQgY2Fubm90IHVzZSBXZWJQ
cm9jZXNzIHNpbmdsZXRvbi4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZFJl
Y2VpdmVNZXNzYWdlKTogRGlzcGF0Y2ggV2ViQ29va2llTWFuYWdlciBtZXNzYWdlcy4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OmluaXRpYWxpemUpOiBUZWxsIGNvb2tpZSBtYW5hZ2VyIHdoaWNoIGNvbm5lY3Rpb24g
dG8KKyAgICAgICAgbWFrZSBjYWxscyBvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJveHk6OmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6IENoYW5nZWQgdG8gdXNlCisgICAgICAg
IFdlYkNvbnRleHQ6Om5ldHdvcmtpbmdQcm9jZXNzQ29ubmVjdGlvbigpIGluc3RlYWQgb2YgZGVj
aWRpbmcgdXBvbiB0aGUgY29ubmVjdGlvbiBoZXJlLgorCisgICAgICAgICogVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKTogQ2FsbCBtX3dlYkNvbnRleHQtPmRpc3Bh
dGNoTWVzc2FnZSksCisgICAgICAgIGFzIFdlYkNvb2tpZU1hbmFnZXJQcm94eSBoYW5kbGVycyBh
cmUgcmVnaXN0ZXJlZCBvbiB0aGUgY29udGV4dC4gVGhpcyBtYXkgc2VlbSB3YXN0ZWZ1bCwKKyAg
ICAgICAgYnV0IGEgbG90IG9mIHJlZ2lzdGVyZWQgbWFuYWdlcnMgd2lsbCBuZWVkIHRoZSBhbWUg
aGFuZGxpbmcgc29vbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6bmV0d29ya2luZ1Byb2Nlc3NDb25uZWN0aW9uKTog
QWRkZWQgYSB3YXkgdG8gZ2V0IGNvbm5lY3Rpb24KKyAgICAgICAgdG8gd2hpY2hldmVyIHByb2Nl
c3MgcGVyZm9ybXMgbmV0d29ya2luZy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cmVt
b3ZlTmV0d29ya1Byb2Nlc3NQcm94eSk6IEludmFsaWRhdGUgY29va2llIG1hbmFnZXIgcHJveHks
CisgICAgICAgIHNvIHRoYXQgZXhwZWN0ZWQgcmVzcG9uc2VzIGNvdWxkIGJlIGNsZWFyZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpc2Nvbm5lY3RQcm9jZXNzKTogVXBkYXRlZCBh
IEZJWE1FLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDogRGVsZXRlZCBkZXBy
ZWNhdGVkU2hhcmVkUHJvY2VzcygpLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpuZXR3
b3JraW5nUHJvY2Vzc0Nvbm5lY3Rpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29u
dGV4dDo6c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dDo6c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5
KTogQWRkZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpzaG91bGRUZXJtaW5h
dGUpOiBTaG91bGQgbm90IHByZXZlbnQgV2ViUHJvY2VzcworICAgICAgICB0ZXJtaW5hdGlvbiB3
aGVuIE5ldHdvcmtQcm9jZXNzIGlzIGluIHVzZS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2ll
TWFuYWdlclByb3h5OjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyk6IFJlbW92ZWQgYSB1c2VsZXNz
IEFTU0VSVAorICAgICAgICB0aGF0IG5laXRlciBkb2N1bWVudHMgZXhwZWN0YXRpb25zIG5vciBo
ZWxwcyBmaW5kIGJ1Z3MuIFNlbmQgYSBtZXNzYWdlIHRvIGNvcnJlY3QKKyAgICAgICAgcHJvY2Vz
cywgd2hldGhlciBXZWJQcm9jZXNzIG9yIE5ldHdvcmtQcm9jZXNzLgorICAgICAgICAoV2ViS2l0
OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZSk6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbENvb2tp
ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpzdGFy
dE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29v
a2llTWFuYWdlclByb3h5OjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyk6IERpdHRvLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5Ojpn
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KTogRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ29va2ll
cy9XZWJDb29raWVNYW5hZ2VyLmNwcDogTWFkZSB0aGUgY2xhc3MgdXNhYmxlIGluIGVpdGhlciBX
ZWJQcm9jZXNzCisgICAgICAgIG9yIE5ldHdvcmtQcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb29raWVNYW5hZ2VyOjpzZXRDb25uZWN0aW9uKTogV2ViQ29va2llTWFuYWdlciBub3cgcmVt
ZW1iZXJzIHdoaWNoCisgICAgICAgIGNvbm5lY3Rpb24gdG8gdGFsayBiYWNrIG9uLgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZSk6IEFkZGVkIGFu
IGFzc2VydGlvbiB0aGF0IHN0b3JlZCBjb25uZWN0aW9uCisgICAgICAgIG1hdGNoZXMgdGhlIG9u
ZSBiZWluZyB1c2VkIHRvIHJlY2lldiBtZXNzYWdlcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29v
a2llTWFuYWdlcjo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMpOiBVc2UgdGhlIHN0b3JlZCBjb25u
ZWN0aW9uIHRvCisgICAgICAgIHNlbmQgYSByZXBseS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29v
a2llTWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKTogUGFzcyBhIGNhbGxiYWNr
IGZ1bmN0aW9uLAorICAgICAgICBzbyB0aGF0IFdlYkNvcmUgZG9lc24ndCBoYXZlIHRvIHVzZSBh
IHBsYXRmb3JtIHN0cmF0ZWd5LgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpj
b29raWVzRGlkQ2hhbmdlKTogVGhlIG5ldyBjYWxsYmFjay4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29va2llTWFuYWdlcjo6ZGlzcGF0Y2hDb29raWVzRGlkQ2hhbmdlKTogVXNlIHRoZSBzdG9yZWQg
Y29ubmVjdGlvbi4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6Z2V0SFRUUENv
b2tpZUFjY2VwdFBvbGljeSk6IFVzZSB0aGUgc3RvcmVkIGNvbm5lY3Rpb24uCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aDoKKyAgICAgICAgUmVtb3ZlZCBub3RpZnlDb29raWVzQ2hhbmdlZCgpIHdoaWNoIGlzIG5vIGxv
bmdlciBwYXJ0IG9mIENvb2tpZXNTdHJhdGVneS4KKwogMjAxMi0xMi0yMiAgU2FtIFdlaW5pZyAg
PHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEdpdmUgdGhlIENoaWxkUHJvY2VzcyBhIE1lc3Nh
Z2VSZWNlaXZlck1hcApJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIK
ICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1v
dGVOZXR3b3JraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0luaXRpYWxpemVMb2dnaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KQEAgLTc3LDYg
Kzc4LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZShDb3JlSVBDOgogICAgIG1f
dWlDb25uZWN0aW9uLT5vcGVuKCk7CiAKICAgICBtX2Rvd25sb2Fkc0F1dGhlbnRpY2F0aW9uTWFu
YWdlci5zZXRDb25uZWN0aW9uKG1fdWlDb25uZWN0aW9uLmdldCgpKTsKKyAgICBXZWJDb29raWVN
YW5hZ2VyOjpzaGFyZWQoKS5zZXRDb25uZWN0aW9uKG1fdWlDb25uZWN0aW9uLmdldCgpKTsKIH0K
IAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVtb3ZlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24pCkBAIC05OCw2ICsx
MDAsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQwogICAgIGlm
IChtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBkZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1lc3NhZ2VJRC5pczxD
b3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5hZ2VyPigpKSB7CisgICAgICAgIFdlYkNv
b2tpZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICNpZiBFTkFCTEUoQ1VT
VE9NX1BST1RPQ09MUykKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFz
c0N1c3RvbVByb3RvY29sTWFuYWdlcj4oKSkgewogICAgICAgICBDdXN0b21Qcm90b2NvbE1hbmFn
ZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2Rlcik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCShyZXZp
c2lvbiAxMzg0MTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxOSwxMiArMzE5LDIwIEBAIHZvaWQgV2ViQ29udGV4dDo6c2V0
TWF4aW11bU51bWJlck9mUHJvY2UKICAgICAgICAgbV93ZWJQcm9jZXNzQ291bnRMaW1pdCA9IG1h
eGltdW1OdW1iZXJPZlByb2Nlc3NlczsKIH0KIAotV2ViUHJvY2Vzc1Byb3h5KiBXZWJDb250ZXh0
OjpkZXByZWNhdGVkU2hhcmVkUHJvY2VzcygpCitDb3JlSVBDOjpDb25uZWN0aW9uKiBXZWJDb250
ZXh0OjpuZXR3b3JraW5nUHJvY2Vzc0Nvbm5lY3Rpb24oKQogewotICAgIEFTU0VSVChtX3Byb2Nl
c3NNb2RlbCA9PSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzKTsKLSAgICBpZiAo
bV9wcm9jZXNzZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gbV9w
cm9jZXNzZXNbMF0uZ2V0KCk7CisgICAgc3dpdGNoIChtX3Byb2Nlc3NNb2RlbCkgeworICAgIGNh
c2UgUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKKyAgICAgICAgcmV0dXJuIG1f
cHJvY2Vzc2VzWzBdLT5jb25uZWN0aW9uKCk7CisgICAgY2FzZSBQcm9jZXNzTW9kZWxNdWx0aXBs
ZVNlY29uZGFyeVByb2Nlc3NlczoKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorICAgICAg
ICByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzcy0+Y29ubmVjdGlvbigpOworI2Vsc2UKKyAgICAgICAg
YnJlYWs7CisjZW5kaWYKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuIDA7CiB9CiAKIHZvaWQgV2ViQ29udGV4dDo6bGFuZ3VhZ2VDaGFuZ2VkKHZvaWQqIGNvbnRl
eHQpCkBAIC0zOTQsNiArNDAyLDggQEAgdm9pZCBXZWJDb250ZXh0OjpyZW1vdmVOZXR3b3JrUHJv
Y2Vzc1BybwogICAgIEFTU0VSVChuZXR3b3JrUHJvY2Vzc1Byb3h5ID09IG1fbmV0d29ya1Byb2Nl
c3MuZ2V0KCkpOwogICAgIAogICAgIG1fbmV0d29ya1Byb2Nlc3MgPSBudWxscHRyOworCisgICAg
bV9jb29raWVNYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKIH0KIAogdm9pZCBXZWJDb250ZXh0
OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4gcmVw
bHkpCkBAIC02MjgsNyArNjM4LDcgQEAgdm9pZCBXZWJDb250ZXh0OjpkaXNjb25uZWN0UHJvY2Vz
cyhXZWJQcgogICAgIGlmIChtX2hhdmVJbml0aWFsRW1wdHlQcm9jZXNzICYmIHByb2Nlc3MgPT0g
bV9wcm9jZXNzZXMubGFzdCgpKQogICAgICAgICBtX2hhdmVJbml0aWFsRW1wdHlQcm9jZXNzID0g
ZmFsc2U7CiAKLSAgICAvLyBGSVhNRSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxl
bS8xMjIzOTc2NT4gQWxsIHRoZSBpbnZhbGlkYXRpb24gY2FsbHMgYmVsb3cgYXJlIHN0aWxsIG5l
Y2Vzc2FyeSBpbiBtdWx0aS1wcm9jZXNzIG1vZGUsIGJ1dCB0aGV5IHNob3VsZCBvbmx5IGFmZmVj
dCBkYXRhIHN0cnVjdHVyZXMgcGVydGFpbmluZyB0byB0aGUgcHJvY2VzcyBiZWluZyBkaXNjb25u
ZWN0ZWQuCisgICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3MpOiA8cmRhcjovL3Byb2JsZW0v
MTIyMzk3NjU+IFNvbWUgb2YgdGhlIGludmFsaWRhdGlvbiBjYWxscyBiZWxvdyBhcmUgc3RpbGwg
bmVjZXNzYXJ5IGluIG11bHRpLXByb2Nlc3MgbW9kZSwgYnV0IHRoZXkgc2hvdWxkIG9ubHkgYWZm
ZWN0IGRhdGEgc3RydWN0dXJlcyBwZXJ0YWluaW5nIHRvIHRoZSBwcm9jZXNzIGJlaW5nIGRpc2Nv
bm5lY3RlZC4KICAgICAvLyBDbGVhcmluZyBldmVyeXRoaW5nIGNhdXNlcyBhc3NlcnRpb24gZmFp
bHVyZXMsIHNvIGl0J3MgbGVzcyB0cm91YmxlIHRvIHNraXAgdGhhdCBmb3Igbm93LgogICAgIGlm
IChtX3Byb2Nlc3NNb2RlbCAhPSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzKSB7
CiAgICAgICAgIFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHByb3RlY3QocHJvY2Vzcyk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHJldmlzaW9uIDEzODQxNCkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTUwLDEwICs1MCwxMyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBEb3dubG9hZFByb3h5OwotY2xhc3MgTmV0d29ya1Byb2Nlc3NQcm94
eTsKIGNsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJDb29r
aWVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTsKQEAgLTExNiwx
MSArMTE5LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1heGltdW1OdW1iZXJPZlByb2Nlc3Nl
cyh1bnNpZ25lZCk7IC8vIENhbiBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZXJlIGFyZSBubyBwcm9j
ZXNzZXMgcnVubmluZy4KICAgICB1bnNpZ25lZCBtYXhpbXVtTnVtYmVyT2ZQcm9jZXNzZXMoKSBj
b25zdCB7IHJldHVybiBtX3dlYlByb2Nlc3NDb3VudExpbWl0OyB9CiAKLSAgICAvLyBGSVhNRSAo
TXVsdGktV2ViUHJvY2Vzcyk6IFJlbW92ZS4gTm8gY29kZSBzaG91bGQgYXNzdW1lIHRoYXQgdGhl
cmUgaXMgYSBzaGFyZWQgcHJvY2Vzcy4KLSAgICBXZWJQcm9jZXNzUHJveHkqIGRlcHJlY2F0ZWRT
aGFyZWRQcm9jZXNzKCk7CisgICAgLy8gV2ViUHJvY2VzcyBvciBOZXR3b3JrUHJvY2VzcyBhcyBh
cHByb3BvcmlhdGUgZm9yIGN1cnJlbnQgcHJvY2VzcyBtb2RlbC4gVGhlIGNvbm5lY3Rpb24gbXVz
dCBiZSBub24tbnVsbC4KKyAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBuZXR3b3JraW5nUHJvY2Vz
c0Nvbm5lY3Rpb24oKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgc2VuZFRvQWxs
UHJvY2Vzc2VzKGNvbnN0IFUmIG1lc3NhZ2UpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZv
aWQgc2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoY29uc3QgVSYg
bWVzc2FnZSk7CisKKyAgICAvLyBTZW5kcyB0aGUgbWVzc2FnZSB0byBXZWJQcm9jZXNzIG9yIE5l
dHdvcmtQcm9jZXNzIGFzIGFwcHJvcG9yaWF0ZSBmb3IgY3VycmVudCBwcm9jZXNzIG1vZGVsLgor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoY29u
c3QgVSYgbWVzc2FnZSk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gdm9pZCBzZW5kVG9OZXR3
b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoY29uc3QgVSYgbWVzc2FnZSk7CiAg
ICAgCiAgICAgdm9pZCBwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKFdlYlByb2Nlc3NQcm94eSop
OwogCkBAIC00NzQsNiArNDgxLDQ0IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKK3RlbXBsYXRl
PHR5cGVuYW1lIFU+IGlubGluZSB2b2lkIFdlYkNvbnRleHQ6OnNlbmRUb05ldHdvcmtpbmdQcm9j
ZXNzKGNvbnN0IFUmIG1lc3NhZ2UpCit7CisgICAgc3dpdGNoIChtX3Byb2Nlc3NNb2RlbCkgewor
ICAgIGNhc2UgUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKKyAgICAgICAgaWYg
KG1fcHJvY2Vzc2VzWzBdLT5jYW5TZW5kTWVzc2FnZSgpKQorICAgICAgICAgICAgbV9wcm9jZXNz
ZXNbMF0tPnNlbmQobWVzc2FnZSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFByb2Nl
c3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOgorI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCisgICAgICAgIGlmIChtX25ldHdvcmtQcm9jZXNzLT5jYW5TZW5kTWVzc2FnZSgpKQor
ICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChtZXNzYWdlLCAwKTsKKyAgICAgICAg
cmV0dXJuOworI2Vsc2UKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICB9CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgV2ViQ29udGV4
dDo6c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KGNvbnN0IFUm
IG1lc3NhZ2UpCit7CisgICAgc3dpdGNoIChtX3Byb2Nlc3NNb2RlbCkgeworICAgIGNhc2UgUHJv
Y2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKKyAgICAgICAgZW5zdXJlU2hhcmVkV2Vi
UHJvY2VzcygpOworICAgICAgICBtX3Byb2Nlc3Nlc1swXS0+c2VuZChtZXNzYWdlLCAwKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIGNhc2UgUHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9j
ZXNzZXM6CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICAgICAgZW5zdXJlTmV0d29y
a1Byb2Nlc3MoKTsKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChtZXNzYWdlLCAwKTsK
KyAgICAgICAgcmV0dXJuOworI2Vsc2UKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICB9Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGlu
ZSB2b2lkIFdlYkNvbnRleHQ6OnNlbmRUb0FsbFByb2Nlc3Nlcyhjb25zdCBVJiBtZXNzYWdlKQog
ewogICAgIHNpemVfdCBwcm9jZXNzQ291bnQgPSBtX3Byb2Nlc3Nlcy5zaXplKCk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNw
cAkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tp
ZU1hbmFnZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDggQEAgdm9pZCBX
ZWJDb29raWVNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQogCiBib29sIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eTo6c2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fYXJyYXlDYWxsYmFja3MuaXNFbXB0eSgpICYmIG1faHR0cENvb2tpZUFjY2VwdFBv
bGljeUNhbGxiYWNrcy5pc0VtcHR5KCk7CisgICAgcmV0dXJuIG1fd2ViQ29udGV4dC0+cHJvY2Vz
c01vZGVsKCkgIT0gUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzcworICAgICAgICB8
fCAobV9hcnJheUNhbGxiYWNrcy5pc0VtcHR5KCkgJiYgbV9odHRwQ29va2llQWNjZXB0UG9saWN5
Q2FsbGJhY2tzLmlzRW1wdHkoKSk7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojpp
bml0aWFsaXplQ2xpZW50KGNvbnN0IFdLQ29va2llTWFuYWdlckNsaWVudCogY2xpZW50KQpAQCAt
NzUsMTQgKzc2LDExIEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWUK
IAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKFBh
c3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCiB7Ci0gICAgQVNTRVJUKG1fd2Vi
Q29udGV4dCk7Ci0KICAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBwcnBDYWxs
YmFjazsKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsK
ICAgICBtX2FycmF5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkp
OwogCi0gICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3MpOiA8cmRhcjovL3Byb2JsZW0vMTIy
Mzk3NjU+IENvb2tpZXMgc2hvdWxkbid0IGJlIHN0b3JlZCBpbiB0aGUgd2ViIHByb2Nlc3MuCi0g
ICAgbV93ZWJDb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vz
c2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0SG9zdG5hbWVzV2l0aENvb2tpZXMo
Y2FsbGJhY2tJRCkpOworICAgIG1fd2ViQ29udGV4dC0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NS
ZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpHZXRIb3N0
bmFtZXNXaXRoQ29va2llcyhjYWxsYmFja0lEKSk7CiB9CiAgICAgCiB2b2lkIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTo6ZGlkR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGhvc3RuYW1lTGlzdCwgdWludDY0X3QgY2FsbGJhY2tJRCkKQEAgLTEwNCwyNiArMTAyLDIy
IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRHZXRIb3N0bmEKIAogdm9pZCBXZWJD
b29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShjb25zdCBTdHJpbmcm
IGhvc3RuYW1lKQogewotICAgIEFTU0VSVChtX3dlYkNvbnRleHQpOwotICAgIG1fd2ViQ29udGV4
dC0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6
OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShob3N0bmFtZSkpOwor
ICAgIG1fd2ViQ29udGV4dC0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVj
ZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpEZWxldGVDb29raWVzRm9ySG9zdG5h
bWUoaG9zdG5hbWUpKTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFs
bENvb2tpZXMoKQogewotICAgIEFTU0VSVChtX3dlYkNvbnRleHQpOwotICAgIG1fd2ViQ29udGV4
dC0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6
OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUFsbENvb2tpZXMoKSk7CisgICAgbV93ZWJDb250ZXh0
LT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6
OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUFsbENvb2tpZXMoKSk7CiB9CiAKIHZvaWQgV2ViQ29v
a2llTWFuYWdlclByb3h5OjpzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKQogewotICAgIEFT
U0VSVChtX3dlYkNvbnRleHQpOwotICAgIG1fd2ViQ29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2Vz
UmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlN0
YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpKTsKKyAgICBtX3dlYkNvbnRleHQtPnNlbmRUb05l
dHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2ll
TWFuYWdlcjo6U3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCkpOwogfQogCiB2b2lkIFdlYkNv
b2tpZU1hbmFnZXJQcm94eTo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKQogewotICAgIEFT
U0VSVChtX3dlYkNvbnRleHQpOwotICAgIG1fd2ViQ29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2Vz
KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcygp
KTsKKyAgICBtX3dlYkNvbnRleHQtPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJ
Zk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6U3RvcE9ic2VydmluZ0Nvb2tp
ZUNoYW5nZXMoKSk7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojpjb29raWVzRGlk
Q2hhbmdlKCkKQEAgLTEzMyw3ICsxMjcsNiBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6
Y29va2llc0RpZENoCiAKIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQogewotICAgIEFTU0VS
VChtX3dlYkNvbnRleHQpOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBwZXJzaXN0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShwb2xpY3kpOwogI2VuZGlmCkBAIC0xNDEsMjEgKzEzNCwxNyBAQCB2b2lk
IFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0SFRUUENvb2tpCiAgICAgbV93ZWJDb250ZXh0LT5z
ZXRJbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpOwogI2VuZGlmCiAKLSAgICBt
X3dlYkNvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5
KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBv
bGljeSkpOworICAgIG1fd2ViQ29udGV4dC0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5j
aGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTZXRIVFRQQ29va2ll
QWNjZXB0UG9saWN5KHBvbGljeSkpOwogfQogCiB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6
Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQYXNzUmVmUHRyPEhUVFBDb29raWVBY2NlcHRQb2xp
Y3lDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCiB7Ci0gICAgQVNTRVJUKG1fd2ViQ29udGV4dCk7Ci0K
ICAgICBSZWZQdHI8SFRUUENvb2tpZUFjY2VwdFBvbGljeUNhbGxiYWNrPiBjYWxsYmFjayA9IHBy
cENhbGxiYWNrOwogCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFj
a0lEKCk7CiAgICAgbV9odHRwQ29va2llQWNjZXB0UG9saWN5Q2FsbGJhY2tzLnNldChjYWxsYmFj
a0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOwogCi0gICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nl
c3MpOiA8cmRhcjovL3Byb2JsZW0vMTIyNDAxODk+IE1ha2UgY29va2llIHBvbGljaWVzIHdvcmsg
d2l0aCBwZXItdGFiIFdlYlByb2Nlc3MuCi0gICAgLy8gV2UgY2FuJ3QgYmVyIGFza2luZyBhbGwg
d2ViIHByb2Nlc3NlcyBmb3IgdGhpcyBpbmZvcm1hdGlvbi4KLSAgICBtX3dlYkNvbnRleHQtPnNl
bmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJD
b29raWVNYW5hZ2VyOjpHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNhbGxiYWNrSUQpKTsKKyAg
ICBtX3dlYkNvbnRleHQtPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vz
c2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShjYWxsYmFja0lEKSk7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRHZXRI
VFRQQ29va2llQWNjZXB0UG9saWN5KHVpbnQzMl90IHBvbGljeSwgdWludDY0X3QgY2FsbGJhY2tJ
RCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZFByb3h5LmNwcAkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIy
LDE5ICsxMjIsNyBAQCB2b2lkIERvd25sb2FkUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhCiAg
ICAgaWYgKCFtX3dlYkNvbnRleHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxDb3Jl
SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uOwotCi0gICAgaWYgKG1fd2ViQ29udGV4dC0+dXNl
c05ldHdvcmtQcm9jZXNzKCkpIHsKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotICAgICAg
ICBpZiAoTmV0d29ya1Byb2Nlc3NQcm94eSogbmV0d29ya1Byb2Nlc3MgPSBtX3dlYkNvbnRleHQt
Pm5ldHdvcmtQcm9jZXNzKCkpCi0gICAgICAgICAgICBjb25uZWN0aW9uID0gbmV0d29ya1Byb2Nl
c3MtPmNvbm5lY3Rpb24oKTsKLSNlbmRpZgotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEZJWE1F
OiBSZW1vdmUgV2ViQ29udGV4dDo6ZGVwcmVjYXRlZFNoYXJlZFByb2Nlc3MoKS4KLSAgICAgICAg
Y29ubmVjdGlvbiA9IG1fd2ViQ29udGV4dC0+ZGVwcmVjYXRlZFNoYXJlZFByb2Nlc3MoKS0+Y29u
bmVjdGlvbigpOwotICAgIH0KLQotICAgIFJlZlB0cjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVBy
b3h5PiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5ID0gQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VQcm94eTo6Y3JlYXRlKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBjaGFsbGVuZ2VJRCwgY29u
bmVjdGlvbi5nZXQoKSk7CisgICAgUmVmUHRyPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+
IGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkgPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVBy
b3h5OjpjcmVhdGUoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNoYWxsZW5nZUlELCBtX3dlYkNv
bnRleHQtPm5ldHdvcmtpbmdQcm9jZXNzQ29ubmVjdGlvbigpKTsKIAogICAgIG1fd2ViQ29udGV4
dC0+ZG93bmxvYWRDbGllbnQoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV93
ZWJDb250ZXh0LmdldCgpLCB0aGlzLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmdldCgp
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiAxMzg0MTQpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTEzLDYgKzExMyw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlk
UmVjZWl2ZU1lc3MKICAgICBpZiAobV9tZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAorICAg
IGlmIChtX3dlYkNvbnRleHQtPmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIpKQorICAgICAgICByZXR1cm47CisKICNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09M
UykKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0N1c3RvbVByb3Rv
Y29sTWFuYWdlclByb3h5PigpKSB7CiAgICAgICAgIG1fY3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJv
eHkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMTM4
NDE0KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTc4LDYgKzE3OCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZShD
b3JlSVBDOjpDb24KICAgICBtX3J1bkxvb3AgPSBydW5Mb29wOwogCiAgICAgbV9hdXRoZW50aWNh
dGlvbk1hbmFnZXIuc2V0Q29ubmVjdGlvbihtX2Nvbm5lY3Rpb24uZ2V0KCkpOworICAgIFdlYkNv
b2tpZU1hbmFnZXI6OnNoYXJlZCgpLnNldENvbm5lY3Rpb24obV9jb25uZWN0aW9uLmdldCgpKTsK
IH0KIAogdm9pZCBXZWJQcm9jZXNzOjphZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciog
bWVzc2FnZVJlY2VpdmVyKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVz
L1dlYkNvb2tpZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMTM4NDE0KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVT
dG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CisjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQ3LDggKzQ4LDE1IEBA
IFdlYkNvb2tpZU1hbmFnZXI6OldlYkNvb2tpZU1hbmFnZXIoKQogewogfQogCit2b2lkIFdlYkNv
b2tpZU1hbmFnZXI6OnNldENvbm5lY3Rpb24oQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
bikKK3sKKyAgICBBU1NFUlQoIW1fY29ubmVjdGlvbik7CisgICAgbV9jb25uZWN0aW9uID0gY29u
bmVjdGlvbjsKK30KKwogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKKyAgICBBU1NFUlQoY29u
bmVjdGlvbiA9PSBtX2Nvbm5lY3Rpb24uZ2V0KCkpOwogICAgIGRpZFJlY2VpdmVXZWJDb29raWVN
YW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCkBAIC02
MSw3ICs2OSw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SG9zdG5hbWVzV2l0aEMKICAg
ICBWZWN0b3I8U3RyaW5nPiBob3N0bmFtZUxpc3Q7CiAgICAgY29weVRvVmVjdG9yKGhvc3RuYW1l
cywgaG9zdG5hbWVMaXN0KTsKIAotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlclByb3h5OjpEaWRHZXRIb3N0bmFtZXNX
aXRoQ29va2llcyhob3N0bmFtZUxpc3QsIGNhbGxiYWNrSUQpLCAwKTsKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6RGlkR2V0SG9zdG5hbWVz
V2l0aENvb2tpZXMoaG9zdG5hbWVMaXN0LCBjYWxsYmFja0lEKSwgMCk7CiB9CiAKIHZvaWQgV2Vi
Q29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKGNvbnN0IFN0cmluZyYgaG9z
dG5hbWUpCkBAIC03Niw3ICs4NCw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQWxs
Q29va2llcygKIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdGFydE9ic2VydmluZ0Nvb2tpZUNo
YW5nZXMoKQogewotICAgIFdlYkNvcmU6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOwor
ICAgIFdlYkNvcmU6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhjb29raWVzRGlkQ2hhbmdl
KTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdl
cygpCkBAIC04NCw5ICs5MiwxNSBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnN0b3BPYnNlcnZp
bmdDb29rCiAgICAgV2ViQ29yZTo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKTsKIH0KIAor
dm9pZCBXZWJDb29raWVNYW5hZ2VyOjpjb29raWVzRGlkQ2hhbmdlKCkKK3sKKyAgICBXZWJDb29r
aWVNYW5hZ2VyOjpzaGFyZWQoKS5kaXNwYXRjaENvb2tpZXNEaWRDaGFuZ2UoKTsKK30KKwogdm9p
ZCBXZWJDb29raWVNYW5hZ2VyOjpkaXNwYXRjaENvb2tpZXNEaWRDaGFuZ2UoKQogewotICAgIFdl
YlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQ29va2ll
TWFuYWdlclByb3h5OjpDb29raWVzRGlkQ2hhbmdlKCksIDApOworICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5h
Z2VyUHJveHk6OkNvb2tpZXNEaWRDaGFuZ2UoKSwgMCk7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFu
YWdlcjo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBv
bGljeSkKQEAgLTk2LDcgKzExMCw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6c2V0SFRUUENv
b2tpZUFjY2UKIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OkRpZEdldEhU
VFBDb29raWVBY2NlcHRQb2xpY3kocGxhdGZvcm1HZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KCks
IGNhbGxiYWNrSUQpLCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYkNv
b2tpZU1hbmFnZXJQcm94eTo6RGlkR2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShwbGF0Zm9ybUdl
dEhUVFBDb29raWVBY2NlcHRQb2xpY3koKSwgY2FsbGJhY2tJRCksIDApOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9X
ZWJDb29raWVNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaAkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNDYsMTEgKzQ2LDEwIEBAIGNsYXNzIFdlYkNvb2tpZU1hbmFnZXIgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFdlYkNvb2tpZU1hbmFnZXIpOwogcHVibGljOgogICAgIHN0YXRp
YyBXZWJDb29raWVNYW5hZ2VyJiBzaGFyZWQoKTsKKyAgICB2b2lkIHNldENvbm5lY3Rpb24oQ29y
ZUlQQzo6Q29ubmVjdGlvbiopOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOwogICAgIAotICAgIHZvaWQgZGlzcGF0Y2hDb29raWVzRGlkQ2hhbmdlKCk7Ci0KICAgICB2
b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAK
ICNpZiBVU0UoU09VUCkKQEAgLTcxLDcgKzcwLDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFy
dE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKTsKICAgICB2b2lkIHN0b3BPYnNlcnZpbmdDb29raWVD
aGFuZ2VzKCk7CiAKKyAgICBzdGF0aWMgdm9pZCBjb29raWVzRGlkQ2hhbmdlKCk7CisgICAgdm9p
ZCBkaXNwYXRjaENvb2tpZXNEaWRDaGFuZ2UoKTsKKwogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkNv
b2tpZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisKKyAgICBSZWZQdHI8Q29yZUlQQzo6Q29u
bmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAxMzg0MTQpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSwxMSArMTA5LDYgQEAgVmlzaXRlZExp
bmtTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaQogCiAvLyBDb29raWVzU3RyYXRlZ3kKIAot
dm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6Om5vdGlmeUNvb2tpZXNDaGFuZ2VkKCkKLXsKLSAg
ICBXZWJDb29raWVNYW5hZ2VyOjpzaGFyZWQoKS5kaXNwYXRjaENvb2tpZXNEaWRDaGFuZ2UoKTsK
LX0KLQogU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llc0ZvckRPTShjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNv
bnN0IEtVUkwmIHVybCkKIHsKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAxMzg0MTQpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5KiBjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCkg
T1ZFUlJJREU7CiAKICAgICAvLyBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3kKLSAgICB2aXJ0dWFs
IHZvaWQgbm90aWZ5Q29va2llc0NoYW5nZWQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmlu
ZyBjb29raWVzRm9yRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNv
bnN0IFdlYkNvcmU6OktVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OktVUkwmKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgV2ViQ29yZTo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6S1VSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24mLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpLVVJM
JikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzg0MTUpCisrKyBT
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBA
QAorMjAxMi0xMi0yMiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTI4MDgzNzc+IE5ldHdvcmsgcHJvY2VzcyBzaG91bGQgcmVz
cGVjdCBjb29raWUgYWNjZXB0IHBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA1Njg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwu
Y3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5oOgor
ICAgICAgICBDb29raWVzU3RyYXRlZ3kgbm8gbG9uZ2VyIGhhcyBub3RpZnlDb29raWVzQ2hhbmdl
ZCgpLiBUaGlzIHBvcnQgZGlkbid0IHVzZSBpdCBhbnl3YXkuCisKIDIwMTItMTItMjIgIEFsZXhl
eSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgc2VwYXJhdGUg
Y2xhc3MgZm9yIG5ldHdvcmtpbmcgcmVsYXRlZCBzdG9yYWdlCkluZGV4OiBTb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0Vm
bC5jcHAJKHJldmlzaW9uIDEzODQxNCkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDEwICs4
Miw2IEBAIFZpc2l0ZWRMaW5rU3RyYXRlZ3kqIFBsYXRmb3JtU3RyYXRlZ2llc0UKIH0KIAogLy8g
Q29va2llc1N0cmF0ZWd5Ci12b2lkIFBsYXRmb3JtU3RyYXRlZ2llc0VmbDo6bm90aWZ5Q29va2ll
c0NoYW5nZWQoKQotewotfQotCiBTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzRWZsOjpjb29raWVz
Rm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgS1VSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgS1VSTCYgdXJsKQogewogICAgIHJldHVybiBXZWJDb3JlOjpjb29r
aWVzRm9yRE9NKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwu
aAkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
UGxhdGZvcm1TdHJhdGVnaWVzRWZsLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDYgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kqIGNyZWF0
ZVZpc2l0ZWRMaW5rU3RyYXRlZ3koKTsKIAogICAgIC8vIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVn
eQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDb29raWVzQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwg
U3RyaW5nIGNvb2tpZXNGb3JET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiwgY29uc3QgV2ViQ29yZTo6S1VSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6S1VSTCYp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIGNvb2tp
ZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdl
YkNvcmU6OktVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEyLTIyICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
MjgwODM3Nz4gTmV0d29yayBwcm9jZXNzIHNob3VsZCByZXNwZWN0IGNvb2tpZSBhY2NlcHQgcG9s
aWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2
ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0d0ay5jcHA6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzR3RrLmg6CisgICAgICAgIENvb2tpZXNTdHJhdGVn
eSBubyBsb25nZXIgaGFzIG5vdGlmeUNvb2tpZXNDaGFuZ2VkKCkuIFRoaXMgcG9ydCBkaWRuJ3Qg
dXNlIGl0IGFueXdheS4KKwogMjAxMi0xMi0yMiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBzZXBhcmF0ZSBjbGFzcyBmb3IgbmV0d29ya2luZyBy
ZWxhdGVkIHN0b3JhZ2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Bs
YXRmb3JtU3RyYXRlZ2llc0d0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzR3RrLmNwcAkocmV2aXNpb24gMTM4NDE0
KQorKysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVz
R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzYsMTAgKzc2LDYgQEAgVmlzaXRlZExpbmtTdHJh
dGVneSogUGxhdGZvcm1TdHJhdGVnaWVzRwogfQogCiAvLyBDb29raWVzU3RyYXRlZ3kKLXZvaWQg
UGxhdGZvcm1TdHJhdGVnaWVzR3RrOjpub3RpZnlDb29raWVzQ2hhbmdlZCgpCi17Ci19Ci0KIFN0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBLVVJM
JiB1cmwpCiB7CiAgICAgcmV0dXJuIFdlYkNvcmU6OmNvb2tpZXNGb3JET00oc2Vzc2lvbiwgZmly
c3RQYXJ0eSwgdXJsKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Bs
YXRmb3JtU3RyYXRlZ2llc0d0ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0d0ay5oCShyZXZpc2lvbiAxMzg0MTQpCisr
KyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNHdGsu
aAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
V2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneSogY3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSgp
OwogCiAgICAgLy8gV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5Ci0gICAgdmlydHVhbCB2b2lkIG5v
dGlmeUNvb2tpZXNDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBTdHJpbmcgY29va2llc0ZvckRPTShj
b25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpLVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpLVVJMJik7CiAgICAgdmlydHVhbCB2b2lkIHNl
dENvb2tpZXNGcm9tRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNv
bnN0IFdlYkNvcmU6OktVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25z
dCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6S1VSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24g
MTM4NDE1KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTItMTItMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODA4Mzc3PiBOZXR3b3JrIHByb2Nl
c3Mgc2hvdWxkIHJlc3BlY3QgY29va2llIGFjY2VwdCBwb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTY4NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLm1tOgorICAgICAgICBDb29raWVzU3RyYXRlZ3kgbm8gbG9uZ2VyIGhhcyBub3RpZnlD
b29raWVzQ2hhbmdlZCgpLgorCiAyMDEyLTEyLTIyICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHNlcGFyYXRlIGNsYXNzIGZvciBuZXR3b3JraW5n
IHJlbGF0ZWQgc3RvcmFnZQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDEzODQxNCkK
KysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5KiBjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5
KCkgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3kKLSAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5Q29va2llc0NoYW5nZWQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0
cmluZyBjb29raWVzRm9yRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYs
IGNvbnN0IFdlYkNvcmU6OktVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OktVUkwmKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6S1VSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpL
VVJMJikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCShyZXZpc2lvbiAxMzg0MTQp
CisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTgzLDEwICs4Myw2IEBAIFZpc2l0ZWRMaW5rU3RyYXRl
Z3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2kKICAgICByZXR1cm4gdGhpczsKIH0KIAotdm9pZCBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6Om5vdGlmeUNvb2tpZXNDaGFuZ2VkKCkKLXsKLX0KLQogU3RyaW5n
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmIHVy
bCkKIHsKICAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llc0ZvckRPTShzZXNzaW9uLCBmaXJzdFBh
cnR5LCB1cmwpOwpJbmRleDogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTItMTItMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzEyODA4Mzc3PiBOZXR3b3JrIHByb2Nlc3Mgc2hvdWxkIHJlc3BlY3Qg
Y29va2llIGFjY2VwdCBwb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNTY4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0Lmg6CisgICAgICAg
IENvb2tpZXNTdHJhdGVneSBubyBsb25nZXIgaGFzIG5vdGlmeUNvb2tpZXNDaGFuZ2VkKCkuIFRo
aXMgcG9ydCBkaWRuJ3QgdXNlIGl0IGFueXdheS4KKwogMjAxMi0xMi0yMiAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBzZXBhcmF0ZSBjbGFzcyBm
b3IgbmV0d29ya2luZyByZWxhdGVkIHN0b3JhZ2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwCShyZXZp
c2lvbiAxMzg0MTQpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3Jt
U3RyYXRlZ2llc1F0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTUsMTAgKzk1LDYgQEAgVmlzaXRl
ZExpbmtTdHJhdGVneSogUGxhdGZvcm1TdHJhdGVnaWVzUQogICAgIHJldHVybiB0aGlzOwogfQog
Ci12b2lkIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpub3RpZnlDb29raWVzQ2hhbmdlZCgpCi17Ci19
Ci0KIFN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29va2llc0ZvckRPTShjb25zdCBOZXR3
b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0
IEtVUkwmIHVybCkKIHsKICAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llc0ZvckRPTShzZXNzaW9u
LCBmaXJzdFBhcnR5LCB1cmwpOwpJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaAkocmV2aXNpb24gMTM4NDE0KQor
KysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5KiBjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCk7
CiAgICAgCiAgICAgLy8gV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5Ci0gICAgdmlydHVhbCB2b2lk
IG5vdGlmeUNvb2tpZXNDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBTdHJpbmcgY29va2llc0ZvckRP
TShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpL
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpLVVJMJik7CiAgICAgdmlydHVhbCB2b2lk
IHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYs
IGNvbnN0IFdlYkNvcmU6OktVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBj
b25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6S1VSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOwpJbmRleDogU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNp
b24gMTM4NDE1KQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTItMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODA4Mzc3PiBOZXR3b3JrIHBy
b2Nlc3Mgc2hvdWxkIHJlc3BlY3QgY29va2llIGFjY2VwdCBwb2xpY3kKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTY4NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgQ29va2llc1N0cmF0ZWd5IG5vIGxvbmdlciBoYXMgbm90
aWZ5Q29va2llc0NoYW5nZWQoKS4gVGhpcyBwb3J0IGRpZG4ndCB1c2UgaXQgYW55d2F5LgorCiAy
MDEyLTEyLTIyICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBhIHNlcGFyYXRlIGNsYXNzIGZvciBuZXR3b3JraW5nIHJlbGF0ZWQgc3RvcmFnZQpJbmRl
eDogU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAxMzg0MTQpCisrKyBTb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC04MiwxMCArODIsNiBAQCBWaXNpdGVkTGlua1N0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0
cmF0ZWdpCiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKLXZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Ojpub3RpZnlDb29raWVzQ2hhbmdlZCgpCi17Ci19Ci0KIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9u
LCBjb25zdCBLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBLVVJMJiB1cmwpCiB7CiAgICAgcmV0dXJu
IFdlYkNvcmU6OmNvb2tpZXNGb3JET00oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAxMzg0MTQpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
NTEsNyArNTEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6VmlzaXRlZExpbmtT
dHJhdGVneSogY3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSgpOwogCiAgICAgLy8gV2ViQ29yZTo6
Q29va2llc1N0cmF0ZWd5Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUNvb2tpZXNDaGFuZ2VkKCk7
CiAgICAgdmlydHVhbCBTdHJpbmcgY29va2llc0ZvckRPTShjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBX
ZWJDb3JlOjpLVVJMJik7CiAgICAgdmlydHVhbCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0
IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OktVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0
dWFsIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiwgY29uc3QgV2ViQ29yZTo6S1VSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6S1VS
TCYpOwpJbmRleDogU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJj
ZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMTItMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzEyODA4Mzc3PiBOZXR3b3JrIHByb2Nlc3Mgc2hvdWxkIHJlc3Bl
Y3QgY29va2llIGFjY2VwdCBwb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNTY4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0Uu
Y3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmg6
CisgICAgICAgIENvb2tpZXNTdHJhdGVneSBubyBsb25nZXIgaGFzIG5vdGlmeUNvb2tpZXNDaGFu
Z2VkKCkuIFRoaXMgcG9ydCBkaWRuJ3QgdXNlIGl0IGFueXdheS4KKwogMjAxMi0xMi0yMiAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBzZXBhcmF0
ZSBjbGFzcyBmb3IgbmV0d29ya2luZyByZWxhdGVkIHN0b3JhZ2UKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJh
dGVnaWVzV2luQ0UuY3BwCShyZXZpc2lvbiAxMzg0MTQpCisrKyBTb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzksMTAgKzc5LDYgQEAgVmlzaXRlZExpbmtTdHJhdGVneSogUGxhdGZvcm1TdHJhdGVn
aWVzVwogICAgIHJldHVybiB0aGlzOwogfQogCi12b2lkIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNF
Ojpub3RpZnlDb29raWVzQ2hhbmdlZCgpCi17Ci19Ci0KIFN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNXaW5DRTo6Y29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Np
b24sIGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmIHVybCkKIHsKICAgICByZXR1
cm4gV2ViQ29yZTo6Y29va2llc0ZvckRPTShzZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwpOwpJbmRl
eDogU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNX
aW5DRS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQv
UGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaAkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MCw3ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpWaXNpdGVkTGlua1N0cmF0ZWd5KiBjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5KCk7CiAKICAg
ICAvLyBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3kKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q29v
a2llc0NoYW5nZWQoKTsKICAgICB2aXJ0dWFsIFN0cmluZyBjb29raWVzRm9yRE9NKGNvbnN0IFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OktVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2ll
c0Zyb21ET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2Vi
Q29yZTo6S1VSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZpcnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpLVVJMJik7Cg==
</data>
<flag name="commit-queue"
          id="197936"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180616</attachid>
            <date>2012-12-22 23:56:28 -0800</date>
            <delta_ts>2012-12-23 17:30:58 -0800</delta_ts>
            <desc>more build fixes</desc>
            <filename>WebCookieManager2.txt</filename>
            <type>text/plain</type>
            <size>47056</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEyLTIyICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
MjgwODM3Nz4gTmV0d29yayBwcm9jZXNzIHNob3VsZCByZXNwZWN0IGNvb2tpZSBhY2NlcHQgcG9s
aWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2
ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFu
Z2VkIGNvb2tpZSBjaGFuZ2Ugb2JzZXJ2ZXIgdG8gbm90IHVzZSBwbGF0Zm9ybSBzdHJhdGVnaWVz
LCB0byBtYWtlIGl0IHVzYWJsZQorICAgICAgICBpbiBOZXR3b3JrUHJvY2Vzcy4gc3RhcnRPYnNl
cnZpbmdDb29raWVDaGFuZ2VzKCkgbm93IGp1c3QgdGFrZXMgYSBjYWxsYmFjayBwb2ludGVyLgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGxhdGZvcm0vQ29va2llc1N0
cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Db29raWVTdG9yYWdlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bm90aWZ5Q29va2llc0NoYW5nZWRPbk1haW5UaHJlYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL21hYy9Db29raWVTdG9yYWdlTWFjLm1tOgorICAgICAgICAoLVtXZWJDb29r
aWVTdG9yYWdlT2JqQ0FkYXB0ZXIgbm90aWZ5Q29va2llc0NoYW5nZWRPbk1haW5UaHJlYWRdKToK
KyAgICAgICAgKC1bV2ViQ29va2llU3RvcmFnZU9iakNBZGFwdGVyIHN0YXJ0TGlzdGVuaW5nRm9y
Q29va2llQ2hhbmdlTm90aWZpY2F0aW9uc1dpdGhDYWxsYmFjazpdKToKKyAgICAgICAgKFdlYkNv
cmU6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyk6CisKIDIwMTItMTItMjIgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgc2VwYXJhdGUgY2xh
c3MgZm9yIG5ldHdvcmtpbmcgcmVsYXRlZCBzdG9yYWdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTY5OCw3ICs2OTgsNyBAQCBfX1pON1dlYkNvcmUyN0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlQmFzCiBfX1pON1dlYkNvcmUyN0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bkMxRU4zV1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFYlJLTlMxXzZTdHJpbmdFCiBfX1pON1dl
YkNvcmUyN0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazE0c2V0T3JpZW50YXRpb25FTjNXVEYx
MFBhc3NSZWZQdHJJTlNfMjFEZXZpY2VPcmllbnRhdGlvbkRhdGFFRUUKIF9fWk43V2ViQ29yZTI3
RGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrQzFFdgotX19aTjdXZWJDb3JlMjdzdGFydE9ic2Vy
dmluZ0Nvb2tpZUNoYW5nZXNFdgorX19aTjdXZWJDb3JlMjdzdGFydE9ic2VydmluZ0Nvb2tpZUNo
YW5nZXNFUEZ2dkUKIF9fWk43V2ViQ29yZTI4ZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlc0VS
S04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTI4cmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZl
ckVQdgogX19aTjdXZWJDb3JlMjljb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZUVSS05TXzIx
TmV0d29ya1N0b3JhZ2VTZXNzaW9uRVJLTlNfNEtVUkxFUzVfCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db29raWVzU3RyYXRlZ3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db29raWVzU3RyYXRlZ3kuaAkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ29va2llc1N0cmF0ZWd5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQx
LDggKzQxLDYgQEAgc3RydWN0IENvb2tpZTsKIAogY2xhc3MgQ29va2llc1N0cmF0ZWd5IHsKIHB1
YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q29va2llc0NoYW5nZWQoKSA9IDA7Ci0KICAg
ICB2aXJ0dWFsIFN0cmluZyBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYsIGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNv
bnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0
cmluZykgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBLVVJMJikgPSAw
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVTdG9yYWdlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVTdG9y
YWdlLmgJKHJldmlzaW9uIDEzODQxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQ29va2llU3RvcmFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw5IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIC8vIFRoZXNlIGFyZSBhbHdheXMgb2JzZXJ2aW5nIHRoZSBzaGFy
ZWQgY29va2llIHN0b3JhZ2UsIGV2ZW4gd2hlbiBpbiBwcml2YXRlIGJyb3dzaW5nIG1vZGUuCi12
b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOworCit0eXBlZGVmIHZvaWQoKkNvb2tp
ZUNoYW5nZUNhbGxiYWNrUHRyKSgpOwordm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
Q29va2llQ2hhbmdlQ2FsbGJhY2tQdHIpOwogdm9pZCBzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdl
cygpOwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tp
ZVN0b3JhZ2VDRk5ldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9Db29raWVTdG9yYWdlQ0ZOZXQuY3BwCShyZXZpc2lvbiAxMzg0MTQpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Nvb2tpZVN0b3JhZ2VDRk5ldC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDIyICszNywxNiBAQAogI2luY2x1ZGUgPFdlYktpdFN5c3Rl
bUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNlbmRpZgogCi0jaWYgVVNFKFBM
QVRGT1JNX1NUUkFURUdJRVMpCi0jaW5jbHVkZSAiQ29va2llc1N0cmF0ZWd5LmgiCi0jaW5jbHVk
ZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAjaWYgUExBVEZPUk0oV0lOKQogCitzdGF0aWMgQ29va2llQ2hhbmdlQ2FsbGJhY2tQdHIgY29v
a2llQ2hhbmdlQ2FsbGJhY2s7CisKIHN0YXRpYyB2b2lkIG5vdGlmeUNvb2tpZXNDaGFuZ2VkT25N
YWluVGhyZWFkKHZvaWQqKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0KLSNpZiBV
U0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2ll
c1N0cmF0ZWd5KCktPm5vdGlmeUNvb2tpZXNDaGFuZ2VkKCk7Ci0jZW5kaWYKKyAgICBjb29raWVD
aGFuZ2VDYWxsYmFjaygpOwogfQogCiBzdGF0aWMgdm9pZCBub3RpZnlDb29raWVzQ2hhbmdlZChD
RkhUVFBDb29raWVTdG9yYWdlUmVmLCB2b2lkICopCkBAIC03MSwxMCArNjUsMTMgQEAgc3RhdGlj
IGlubGluZSBDRlJ1bkxvb3BSZWYgY29va2llU3RvcmFnZQogICAgIHJldHVybiBsb2FkZXJSdW5M
b29wKCk7CiB9CiAKLXZvaWQgc3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCkKK3ZvaWQgc3Rh
cnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKENvb2tpZUNoYW5nZUNhbGxiYWNrUHRyIGNhbGxiYWNr
KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKKyAgICBBU1NFUlQoIWNvb2tpZUNo
YW5nZUNhbGxiYWNrKTsKKyAgICBjb29raWVDaGFuZ2VDYWxsYmFjayA9IGNhbGxiYWNrOworCiAg
ICAgQ0ZSdW5Mb29wUmVmIHJ1bkxvb3AgPSBjb29raWVTdG9yYWdlT2JzZXJ2ZXJSdW5Mb29wKCk7
CiAgICAgQVNTRVJUKHJ1bkxvb3ApOwogCkBAIC04OSw2ICs4Niw4IEBAIHZvaWQgc3RvcE9ic2Vy
dmluZ0Nvb2tpZUNoYW5nZXMoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKKyAg
ICBjb29raWVDaGFuZ2VDYWxsYmFjayA9IDA7CisKICAgICBDRlJ1bkxvb3BSZWYgcnVuTG9vcCA9
IGNvb2tpZVN0b3JhZ2VPYnNlcnZlclJ1bkxvb3AoKTsKICAgICBBU1NFUlQocnVuTG9vcCk7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZVN0b3JhZ2VN
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
Q29va2llU3RvcmFnZU1hYy5tbQkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llU3RvcmFnZU1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMzIsMTcgKzMyLDE0IEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3
dGYvVW51c2VkUGFyYW0uaD4KIAotI2lmIFVTRShQTEFURk9STV9TVFJBVEVHSUVTKQotI2luY2x1
ZGUgIkNvb2tpZXNTdHJhdGVneS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgot
I2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1AaW50ZXJmYWNlIFdlYkNvb2tp
ZVN0b3JhZ2VPYmpDQWRhcHRlciA6IE5TT2JqZWN0CitAaW50ZXJmYWNlIFdlYkNvb2tpZVN0b3Jh
Z2VPYmpDQWRhcHRlciA6IE5TT2JqZWN0IHsKKyAgICBDb29raWVDaGFuZ2VDYWxsYmFja1B0ciBt
X2Nvb2tpZUNoYW5nZUNhbGxiYWNrOworfQogLSh2b2lkKW5vdGlmeUNvb2tpZXNDaGFuZ2VkT25N
YWluVGhyZWFkOwogLSh2b2lkKWNvb2tpZXNDaGFuZ2VkTm90aWZpY2F0aW9uSGFuZGxlcjooTlNO
b3RpZmljYXRpb24gKilub3RpZmljYXRpb247Ci0tKHZvaWQpc3RhcnRMaXN0ZW5pbmdGb3JDb29r
aWVDaGFuZ2VOb3RpZmljYXRpb25zOworLSh2b2lkKXN0YXJ0TGlzdGVuaW5nRm9yQ29va2llQ2hh
bmdlTm90aWZpY2F0aW9uc1dpdGhDYWxsYmFjazooQ29va2llQ2hhbmdlQ2FsbGJhY2tQdHIpY2Fs
bGJhY2s7CiAtKHZvaWQpc3RvcExpc3RlbmluZ0ZvckNvb2tpZUNoYW5nZU5vdGlmaWNhdGlvbnM7
CiBAZW5kCiAKQEAgLTUwLDkgKzQ3LDcgQEAgLSh2b2lkKXN0b3BMaXN0ZW5pbmdGb3JDb29raWVD
aGFuZ2VOb3RpZgogCiAtKHZvaWQpbm90aWZ5Q29va2llc0NoYW5nZWRPbk1haW5UaHJlYWQKIHsK
LSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
Y29va2llc1N0cmF0ZWd5KCktPm5vdGlmeUNvb2tpZXNDaGFuZ2VkKCk7Ci0jZW5kaWYKKyAgICBt
X2Nvb2tpZUNoYW5nZUNhbGxiYWNrKCk7CiB9CiAKIC0odm9pZCljb29raWVzQ2hhbmdlZE5vdGlm
aWNhdGlvbkhhbmRsZXI6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCkBAIC02MiwxNCAr
NTcsMTcgQEAgLSh2b2lkKWNvb2tpZXNDaGFuZ2VkTm90aWZpY2F0aW9uSGFuZGxlcgogICAgIFtz
ZWxmIHBlcmZvcm1TZWxlY3Rvck9uTWFpblRocmVhZDpAc2VsZWN0b3Iobm90aWZ5Q29va2llc0No
YW5nZWRPbk1haW5UaHJlYWQpIHdpdGhPYmplY3Q6bmlsIHdhaXRVbnRpbERvbmU6RkFMU0VdOwog
fQogCi0tKHZvaWQpc3RhcnRMaXN0ZW5pbmdGb3JDb29raWVDaGFuZ2VOb3RpZmljYXRpb25zCist
KHZvaWQpc3RhcnRMaXN0ZW5pbmdGb3JDb29raWVDaGFuZ2VOb3RpZmljYXRpb25zV2l0aENhbGxi
YWNrOihDb29raWVDaGFuZ2VDYWxsYmFja1B0ciljYWxsYmFjawogeworICAgIEFTU0VSVCghbV9j
b29raWVDaGFuZ2VDYWxsYmFjayk7CisgICAgbV9jb29raWVDaGFuZ2VDYWxsYmFjayA9IGNhbGxi
YWNrOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2
ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoY29va2llc0NoYW5nZWROb3RpZmljYXRpb25IYW5k
bGVyOikgbmFtZTpOU0hUVFBDb29raWVNYW5hZ2VyQ29va2llc0NoYW5nZWROb3RpZmljYXRpb24g
b2JqZWN0OltOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXV07CiB9
CiAKIC0odm9pZClzdG9wTGlzdGVuaW5nRm9yQ29va2llQ2hhbmdlTm90aWZpY2F0aW9ucwogewog
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6
c2VsZiBuYW1lOk5TSFRUUENvb2tpZU1hbmFnZXJDb29raWVzQ2hhbmdlZE5vdGlmaWNhdGlvbiBv
YmplY3Q6bmlsXTsKKyAgICBtX2Nvb2tpZUNoYW5nZUNhbGxiYWNrID0gMDsKIH0KIAogQGVuZApA
QCAtNzgsMTEgKzc2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFdlYkNvb2tp
ZVN0b3JhZ2VPYmpDQWRhcHRlciAqY29va2llU3RvcmFnZUFkYXB0ZXI7CiAKLXZvaWQgc3RhcnRP
YnNlcnZpbmdDb29raWVDaGFuZ2VzKCkKK3ZvaWQgc3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2Vz
KENvb2tpZUNoYW5nZUNhbGxiYWNrUHRyIGNhbGxiYWNrKQogewogICAgIGlmICghY29va2llU3Rv
cmFnZUFkYXB0ZXIpCiAgICAgICAgIGNvb2tpZVN0b3JhZ2VBZGFwdGVyID0gW1tXZWJDb29raWVT
dG9yYWdlT2JqQ0FkYXB0ZXIgYWxsb2NdIGluaXRdOwotICAgIFtjb29raWVTdG9yYWdlQWRhcHRl
ciBzdGFydExpc3RlbmluZ0ZvckNvb2tpZUNoYW5nZU5vdGlmaWNhdGlvbnNdOworICAgIFtjb29r
aWVTdG9yYWdlQWRhcHRlciBzdGFydExpc3RlbmluZ0ZvckNvb2tpZUNoYW5nZU5vdGlmaWNhdGlv
bnNXaXRoQ2FsbGJhY2s6Y2FsbGJhY2tdOwogfQogCiB2b2lkIHN0b3BPYnNlcnZpbmdDb29raWVD
aGFuZ2VzKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Db29r
aWVTdG9yYWdlU291cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNwcAkocmV2aXNpb24gMTM4NDE0KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjIsMzYgKzIyLDMxIEBACiAjaW5jbHVkZSAiQ29va2llSmFy
U291cC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKLSNpZiBVU0UoUExBVEZPUk1f
U1RSQVRFR0lFUykKLSNpbmNsdWRlICJDb29raWVzU3RyYXRlZ3kuaCIKLSNpbmNsdWRlICJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCIKLSNlbmRpZgotCiAjaW5jbHVkZSA8c3RkaW8uaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0jaWYgVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCitzdGF0aWMgQ29v
a2llQ2hhbmdlQ2FsbGJhY2tQdHIgY29va2llQ2hhbmdlQ2FsbGJhY2s7CisKIHN0YXRpYyB2b2lk
IHNvdXBDb29raWVzQ2hhbmdlZChTb3VwQ29va2llSmFyKiBqYXIsIFNvdXBDb29raWUqLCBTb3Vw
Q29va2llKiwgZ3BvaW50ZXIpCiB7CiAgICAgaWYgKGphciAhPSBzb3VwQ29va2llSmFyKCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+Y29va2llc1N0cmF0ZWd5
KCktPm5vdGlmeUNvb2tpZXNDaGFuZ2VkKCk7CisgICAgY29va2llQ2hhbmdlQ2FsbGJhY2soKTsK
IH0KLSNlbmRpZgogCi12b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpCit2b2lkIHN0
YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhDb29raWVDaGFuZ2VDYWxsYmFja1B0ciBjYWxsYmFj
aykKIHsKLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKKyAgICBBU1NFUlQoIWNvb2tpZUNo
YW5nZUNhbGxiYWNrKTsKKyAgICBjb29raWVDaGFuZ2VDYWxsYmFjayA9IGNhbGxiYWNrOworCiAg
ICAgZ19zaWduYWxfY29ubmVjdChzb3VwQ29va2llSmFyKCksICJjaGFuZ2VkIiwgR19DQUxMQkFD
Syhzb3VwQ29va2llc0NoYW5nZWQpLCAwKTsKLSNlbmRpZgogfQogCiB2b2lkIHN0b3BPYnNlcnZp
bmdDb29raWVDaGFuZ2VzKCkKIHsKLSNpZiBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKICAgICBn
X3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoc291cENvb2tpZUphcigpLCByZWlu
dGVycHJldF9jYXN0PHZvaWQqPihzb3VwQ29va2llc0NoYW5nZWQpLCAwKTsKLSNlbmRpZgorICAg
IGNvb2tpZUNoYW5nZUNhbGxiYWNrID0gMDsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcXQvVGVtcG9yYXJ5TGlua1N0dWJzUXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1RlbXBvcmFyeUxpbmtTdHVic1F0LmNwcAkocmV2aXNpb24g
MTM4NDE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvVGVtcG9yYXJ5TGlua1N0dWJz
UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBzZXRDb29raWVT
dG9yYWdlUHJpdmF0ZUJyb3dzaW5nRW5hYgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZv
aWQgc3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCkKK3ZvaWQgc3RhcnRPYnNlcnZpbmdDb29r
aWVDaGFuZ2VzKENvb2tpZUNoYW5nZUNhbGxiYWNrUHRyKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVGVtcG9yYXJ5TGlua1N0
dWJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vVGVtcG9y
YXJ5TGlua1N0dWJzLmNwcAkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcg
KzM1LDcgQEAgU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZwogdm9pZCBn
ZXRTdXBwb3J0ZWRLZXlTaXplcyhWZWN0b3I8U3RyaW5nPiYpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQogCiAjaWYgIVVTRShDRk5FVFdPUkspCi12b2lkIHN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdl
cygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQordm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5n
ZXMoQ29va2llQ2hhbmdlQ2FsbGJhY2tQdHIpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogdm9pZCBz
dG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogI2VuZGlm
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDczIEBACisyMDEyLTEyLTIyICBBbGV4
ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xMjgwODM3Nz4gTmV0d29yayBwcm9jZXNzIHNob3VsZCByZXNwZWN0IGNvb2tpZSBhY2NlcHQg
cG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDU2ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OmluaXRpYWxpemUpOiBUZWxsIGNvb2tpZSBtYW5hZ2VyIHdoaWNoIGNvbm5l
Y3Rpb24gdG8KKyAgICAgICAgbWFrZSBjYWxscyBvbi4gTm93IHRoYXQgdGhlIGNvZGUgY2FuIHJ1
biBpbiBlaXRoZXIgV2ViUHJvY2VzcyBvciBOZXR3b3JrUHJvY2VzcywKKyAgICAgICAgaXQgY2Fu
bm90IHVzZSBXZWJQcm9jZXNzIHNpbmdsZXRvbi4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKTogRGlzcGF0Y2ggV2ViQ29va2llTWFuYWdlciBtZXNz
YWdlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemUpOiBUZWxsIGNvb2tpZSBtYW5hZ2VyIHdoaWNo
IGNvbm5lY3Rpb24gdG8KKyAgICAgICAgbWFrZSBjYWxscyBvbi4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRvd25s
b2FkUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6IENoYW5nZWQgdG8g
dXNlCisgICAgICAgIFdlYkNvbnRleHQ6Om5ldHdvcmtpbmdQcm9jZXNzQ29ubmVjdGlvbigpIGlu
c3RlYWQgb2YgZGVjaWRpbmcgdXBvbiB0aGUgY29ubmVjdGlvbiBoZXJlLgorCisgICAgICAgICog
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKTogQ2FsbCBtX3dlYkNv
bnRleHQtPmRpc3BhdGNoTWVzc2FnZSksCisgICAgICAgIGFzIFdlYkNvb2tpZU1hbmFnZXJQcm94
eSBoYW5kbGVycyBhcmUgcmVnaXN0ZXJlZCBvbiB0aGUgY29udGV4dC4gVGhpcyBtYXkgc2VlbSB3
YXN0ZWZ1bCwKKyAgICAgICAgYnV0IGEgbG90IG9mIHJlZ2lzdGVyZWQgbWFuYWdlcnMgd2lsbCBu
ZWVkIHRoZSBhbWUgaGFuZGxpbmcgc29vbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6bmV0d29ya2luZ1Byb2Nlc3ND
b25uZWN0aW9uKTogQWRkZWQgYSB3YXkgdG8gZ2V0IGNvbm5lY3Rpb24KKyAgICAgICAgdG8gd2hp
Y2hldmVyIHByb2Nlc3MgcGVyZm9ybXMgbmV0d29ya2luZy4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29udGV4dDo6cmVtb3ZlTmV0d29ya1Byb2Nlc3NQcm94eSk6IEludmFsaWRhdGUgY29va2llIG1h
bmFnZXIgcHJveHksCisgICAgICAgIHNvIHRoYXQgZXhwZWN0ZWQgcmVzcG9uc2VzIGNvdWxkIGJl
IGNsZWFyZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpc2Nvbm5lY3RQcm9jZXNz
KTogVXBkYXRlZCBhIEZJWE1FLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDog
RGVsZXRlZCBkZXByZWNhdGVkU2hhcmVkUHJvY2VzcygpLgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0OjpuZXR3b3JraW5nUHJvY2Vzc0Nvbm5lY3Rpb24pOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViQ29udGV4dDo6c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29udGV4dDo6c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGlu
Z0lmTmVjZXNzYXJ5KTogQWRkZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29va2llTWFu
YWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5Ojpz
aG91bGRUZXJtaW5hdGUpOiBTaG91bGQgbm90IHByZXZlbnQgV2ViUHJvY2VzcworICAgICAgICB0
ZXJtaW5hdGlvbiB3aGVuIE5ldHdvcmtQcm9jZXNzIGlzIGluIHVzZS4KKyAgICAgICAgKFdlYktp
dDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyk6IFJlbW92
ZWQgYSB1c2VsZXNzIEFTU0VSVAorICAgICAgICB0aGF0IG5laXRlciBkb2N1bWVudHMgZXhwZWN0
YXRpb25zIG5vciBoZWxwcyBmaW5kIGJ1Z3MuIFNlbmQgYSBtZXNzYWdlIHRvIGNvcnJlY3QKKyAg
ICAgICAgcHJvY2Vzcywgd2hldGhlciBXZWJQcm9jZXNzIG9yIE5ldHdvcmtQcm9jZXNzLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0
bmFtZSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRl
bGV0ZUFsbENvb2tpZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdl
clByb3h5OjpzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5OjpzdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyk6
IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3kpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFu
YWdlclByb3h5OjpnZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KTogRGl0dG8uCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcDogTWFkZSB0aGUgY2xhc3MgdXNhYmxl
IGluIGVpdGhlciBXZWJQcm9jZXNzCisgICAgICAgIG9yIE5ldHdvcmtQcm9jZXNzLgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpzZXRDb25uZWN0aW9uKTogV2ViQ29va2llTWFu
YWdlciBub3cgcmVtZW1iZXJzIHdoaWNoCisgICAgICAgIGNvbm5lY3Rpb24gdG8gdGFsayBiYWNr
IG9uLgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2Fn
ZSk6IEFkZGVkIGFuIGFzc2VydGlvbiB0aGF0IHN0b3JlZCBjb25uZWN0aW9uCisgICAgICAgIG1h
dGNoZXMgdGhlIG9uZSBiZWluZyB1c2VkIHRvIHJlY2lldiBtZXNzYWdlcy4KKyAgICAgICAgKFdl
YktpdDo6V2ViQ29va2llTWFuYWdlcjo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMpOiBVc2UgdGhl
IHN0b3JlZCBjb25uZWN0aW9uIHRvCisgICAgICAgIHNlbmQgYSByZXBseS4KKyAgICAgICAgKFdl
YktpdDo6V2ViQ29va2llTWFuYWdlcjo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKTogUGFz
cyBhIGNhbGxiYWNrIGZ1bmN0aW9uLAorICAgICAgICBzbyB0aGF0IFdlYkNvcmUgZG9lc24ndCBo
YXZlIHRvIHVzZSBhIHBsYXRmb3JtIHN0cmF0ZWd5LgorICAgICAgICAoV2ViS2l0OjpXZWJDb29r
aWVNYW5hZ2VyOjpjb29raWVzRGlkQ2hhbmdlKTogVGhlIG5ldyBjYWxsYmFjay4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ29va2llTWFuYWdlcjo6ZGlzcGF0Y2hDb29raWVzRGlkQ2hhbmdlKTogVXNl
IHRoZSBzdG9yZWQgY29ubmVjdGlvbi4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llTWFuYWdl
cjo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6IFVzZSB0aGUgc3RvcmVkIGNvbm5lY3Rpb24u
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgUmVtb3ZlZCBub3RpZnlDb29raWVzQ2hhbmdlZCgpIHdo
aWNoIGlzIG5vIGxvbmdlciBwYXJ0IG9mIENvb2tpZXNTdHJhdGVneS4KKwogMjAxMi0xMi0yMiAg
U2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEdpdmUgdGhlIENoaWxkUHJv
Y2VzcyBhIE1lc3NhZ2VSZWNlaXZlck1hcApJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkocmV2aXNpb24gMTM4NDE0KQorKysgU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNp
bmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkNvb2tpZU1h
bmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0luaXRpYWxpemVMb2dnaW5nLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3Au
aD4KQEAgLTc3LDYgKzc4LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZShDb3Jl
SVBDOgogICAgIG1fdWlDb25uZWN0aW9uLT5vcGVuKCk7CiAKICAgICBtX2Rvd25sb2Fkc0F1dGhl
bnRpY2F0aW9uTWFuYWdlci5zZXRDb25uZWN0aW9uKG1fdWlDb25uZWN0aW9uLmdldCgpKTsKKyAg
ICBXZWJDb29raWVNYW5hZ2VyOjpzaGFyZWQoKS5zZXRDb25uZWN0aW9uKG1fdWlDb25uZWN0aW9u
LmdldCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVtb3ZlTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24p
CkBAIC05OCw2ICsxMDAsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQwogICAgIGlmIChtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNwYXRjaE1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1l
c3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5hZ2VyPigpKSB7Cisg
ICAgICAgIFdlYkNvb2tpZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICNp
ZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc0N1c3RvbVByb3RvY29sTWFuYWdlcj4oKSkgewogICAgICAgICBDdXN0b21Q
cm90b2NvbE1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgZGVjb2Rlcik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCShyZXZpc2lvbiAxMzg0MTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxOSwxMiArMzE5LDIwIEBAIHZvaWQgV2Vi
Q29udGV4dDo6c2V0TWF4aW11bU51bWJlck9mUHJvY2UKICAgICAgICAgbV93ZWJQcm9jZXNzQ291
bnRMaW1pdCA9IG1heGltdW1OdW1iZXJPZlByb2Nlc3NlczsKIH0KIAotV2ViUHJvY2Vzc1Byb3h5
KiBXZWJDb250ZXh0OjpkZXByZWNhdGVkU2hhcmVkUHJvY2VzcygpCitDb3JlSVBDOjpDb25uZWN0
aW9uKiBXZWJDb250ZXh0OjpuZXR3b3JraW5nUHJvY2Vzc0Nvbm5lY3Rpb24oKQogewotICAgIEFT
U0VSVChtX3Byb2Nlc3NNb2RlbCA9PSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNz
KTsKLSAgICBpZiAobV9wcm9jZXNzZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gMDsKLSAg
ICByZXR1cm4gbV9wcm9jZXNzZXNbMF0uZ2V0KCk7CisgICAgc3dpdGNoIChtX3Byb2Nlc3NNb2Rl
bCkgeworICAgIGNhc2UgUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKKyAgICAg
ICAgcmV0dXJuIG1fcHJvY2Vzc2VzWzBdLT5jb25uZWN0aW9uKCk7CisgICAgY2FzZSBQcm9jZXNz
TW9kZWxNdWx0aXBsZVNlY29uZGFyeVByb2Nlc3NlczoKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQorICAgICAgICByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzcy0+Y29ubmVjdGlvbigpOworI2Vs
c2UKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgV2ViQ29udGV4dDo6bGFuZ3VhZ2VDaGFuZ2Vk
KHZvaWQqIGNvbnRleHQpCkBAIC0zOTQsNiArNDAyLDggQEAgdm9pZCBXZWJDb250ZXh0OjpyZW1v
dmVOZXR3b3JrUHJvY2Vzc1BybwogICAgIEFTU0VSVChuZXR3b3JrUHJvY2Vzc1Byb3h5ID09IG1f
bmV0d29ya1Byb2Nlc3MuZ2V0KCkpOwogICAgIAogICAgIG1fbmV0d29ya1Byb2Nlc3MgPSBudWxs
cHRyOworCisgICAgbV9jb29raWVNYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKIH0KIAogdm9p
ZCBXZWJDb250ZXh0OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oUGFzc1JlZlB0cjxNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5
ZWRSZXBseT4gcmVwbHkpCkBAIC02MjgsNyArNjM4LDcgQEAgdm9pZCBXZWJDb250ZXh0OjpkaXNj
b25uZWN0UHJvY2VzcyhXZWJQcgogICAgIGlmIChtX2hhdmVJbml0aWFsRW1wdHlQcm9jZXNzICYm
IHByb2Nlc3MgPT0gbV9wcm9jZXNzZXMubGFzdCgpKQogICAgICAgICBtX2hhdmVJbml0aWFsRW1w
dHlQcm9jZXNzID0gZmFsc2U7CiAKLSAgICAvLyBGSVhNRSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxy
ZGFyOi8vcHJvYmxlbS8xMjIzOTc2NT4gQWxsIHRoZSBpbnZhbGlkYXRpb24gY2FsbHMgYmVsb3cg
YXJlIHN0aWxsIG5lY2Vzc2FyeSBpbiBtdWx0aS1wcm9jZXNzIG1vZGUsIGJ1dCB0aGV5IHNob3Vs
ZCBvbmx5IGFmZmVjdCBkYXRhIHN0cnVjdHVyZXMgcGVydGFpbmluZyB0byB0aGUgcHJvY2VzcyBi
ZWluZyBkaXNjb25uZWN0ZWQuCisgICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3MpOiA8cmRh
cjovL3Byb2JsZW0vMTIyMzk3NjU+IFNvbWUgb2YgdGhlIGludmFsaWRhdGlvbiBjYWxscyBiZWxv
dyBhcmUgc3RpbGwgbmVjZXNzYXJ5IGluIG11bHRpLXByb2Nlc3MgbW9kZSwgYnV0IHRoZXkgc2hv
dWxkIG9ubHkgYWZmZWN0IGRhdGEgc3RydWN0dXJlcyBwZXJ0YWluaW5nIHRvIHRoZSBwcm9jZXNz
IGJlaW5nIGRpc2Nvbm5lY3RlZC4KICAgICAvLyBDbGVhcmluZyBldmVyeXRoaW5nIGNhdXNlcyBh
c3NlcnRpb24gZmFpbHVyZXMsIHNvIGl0J3MgbGVzcyB0cm91YmxlIHRvIHNraXAgdGhhdCBmb3Ig
bm93LgogICAgIGlmIChtX3Byb2Nlc3NNb2RlbCAhPSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRh
cnlQcm9jZXNzKSB7CiAgICAgICAgIFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHByb3RlY3QocHJv
Y2Vzcyk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHJldmlzaW9u
IDEzODQxNCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTUwLDEwICs1MCwxMyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hh
c2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEb3dubG9hZFByb3h5OwotY2xhc3MgTmV0d29y
a1Byb2Nlc3NQcm94eTsKIGNsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk7CiBj
bGFzcyBXZWJDb29raWVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJEYXRhYmFzZU1hbmFnZXJQcm94
eTsKQEAgLTExNiwxMSArMTE5LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1heGltdW1OdW1i
ZXJPZlByb2Nlc3Nlcyh1bnNpZ25lZCk7IC8vIENhbiBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZXJl
IGFyZSBubyBwcm9jZXNzZXMgcnVubmluZy4KICAgICB1bnNpZ25lZCBtYXhpbXVtTnVtYmVyT2ZQ
cm9jZXNzZXMoKSBjb25zdCB7IHJldHVybiBtX3dlYlByb2Nlc3NDb3VudExpbWl0OyB9CiAKLSAg
ICAvLyBGSVhNRSAoTXVsdGktV2ViUHJvY2Vzcyk6IFJlbW92ZS4gTm8gY29kZSBzaG91bGQgYXNz
dW1lIHRoYXQgdGhlcmUgaXMgYSBzaGFyZWQgcHJvY2Vzcy4KLSAgICBXZWJQcm9jZXNzUHJveHkq
IGRlcHJlY2F0ZWRTaGFyZWRQcm9jZXNzKCk7CisgICAgLy8gV2ViUHJvY2VzcyBvciBOZXR3b3Jr
UHJvY2VzcyBhcyBhcHByb3BvcmlhdGUgZm9yIGN1cnJlbnQgcHJvY2VzcyBtb2RlbC4gVGhlIGNv
bm5lY3Rpb24gbXVzdCBiZSBub24tbnVsbC4KKyAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBuZXR3
b3JraW5nUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZv
aWQgc2VuZFRvQWxsUHJvY2Vzc2VzKGNvbnN0IFUmIG1lc3NhZ2UpOwogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFU+IHZvaWQgc2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3Nh
cnkoY29uc3QgVSYgbWVzc2FnZSk7CisKKyAgICAvLyBTZW5kcyB0aGUgbWVzc2FnZSB0byBXZWJQ
cm9jZXNzIG9yIE5ldHdvcmtQcm9jZXNzIGFzIGFwcHJvcG9yaWF0ZSBmb3IgY3VycmVudCBwcm9j
ZXNzIG1vZGVsLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgc2VuZFRvTmV0d29ya2lu
Z1Byb2Nlc3MoY29uc3QgVSYgbWVzc2FnZSk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gdm9p
ZCBzZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoY29uc3QgVSYg
bWVzc2FnZSk7CiAgICAgCiAgICAgdm9pZCBwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKFdlYlBy
b2Nlc3NQcm94eSopOwogCkBAIC00NzQsNiArNDgxLDQ0IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07
CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSB2b2lkIFdlYkNvbnRleHQ6OnNlbmRUb05l
dHdvcmtpbmdQcm9jZXNzKGNvbnN0IFUmIG1lc3NhZ2UpCit7CisgICAgc3dpdGNoIChtX3Byb2Nl
c3NNb2RlbCkgeworICAgIGNhc2UgUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoK
KyAgICAgICAgaWYgKG1fcHJvY2Vzc2VzWzBdLT5jYW5TZW5kTWVzc2FnZSgpKQorICAgICAgICAg
ICAgbV9wcm9jZXNzZXNbMF0tPnNlbmQobWVzc2FnZSwgMCk7CisgICAgICAgIHJldHVybjsKKyAg
ICBjYXNlIFByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOgorI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCisgICAgICAgIGlmIChtX25ldHdvcmtQcm9jZXNzLT5jYW5TZW5k
TWVzc2FnZSgpKQorICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChtZXNzYWdlLCAw
KTsKKyAgICAgICAgcmV0dXJuOworI2Vsc2UKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICB9
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFU+IHZv
aWQgV2ViQ29udGV4dDo6c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNz
YXJ5KGNvbnN0IFUmIG1lc3NhZ2UpCit7CisgICAgc3dpdGNoIChtX3Byb2Nlc3NNb2RlbCkgewor
ICAgIGNhc2UgUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKKyAgICAgICAgZW5z
dXJlU2hhcmVkV2ViUHJvY2VzcygpOworICAgICAgICBtX3Byb2Nlc3Nlc1swXS0+c2VuZChtZXNz
YWdlLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgUHJvY2Vzc01vZGVsTXVsdGlwbGVT
ZWNvbmRhcnlQcm9jZXNzZXM6CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICAgICAg
ZW5zdXJlTmV0d29ya1Byb2Nlc3MoKTsKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZCht
ZXNzYWdlLCAwKTsKKyAgICAgICAgcmV0dXJuOworI2Vsc2UKKyAgICAgICAgYnJlYWs7CisjZW5k
aWYKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIHRlbXBsYXRlPHR5cGVu
YW1lIFU+IGlubGluZSB2b2lkIFdlYkNvbnRleHQ6OnNlbmRUb0FsbFByb2Nlc3Nlcyhjb25zdCBV
JiBtZXNzYWdlKQogewogICAgIHNpemVfdCBwcm9jZXNzQ291bnQgPSBtX3Byb2Nlc3Nlcy5zaXpl
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFu
YWdlclByb3h5LmNwcAkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYw
LDggQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQogCiBib29sIFdl
YkNvb2tpZU1hbmFnZXJQcm94eTo6c2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1fYXJyYXlDYWxsYmFja3MuaXNFbXB0eSgpICYmIG1faHR0cENv
b2tpZUFjY2VwdFBvbGljeUNhbGxiYWNrcy5pc0VtcHR5KCk7CisgICAgcmV0dXJuIG1fd2ViQ29u
dGV4dC0+cHJvY2Vzc01vZGVsKCkgIT0gUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2Vz
cworICAgICAgICB8fCAobV9hcnJheUNhbGxiYWNrcy5pc0VtcHR5KCkgJiYgbV9odHRwQ29va2ll
QWNjZXB0UG9saWN5Q2FsbGJhY2tzLmlzRW1wdHkoKSk7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFu
YWdlclByb3h5Ojppbml0aWFsaXplQ2xpZW50KGNvbnN0IFdLQ29va2llTWFuYWdlckNsaWVudCog
Y2xpZW50KQpAQCAtNzUsMTQgKzc2LDExIEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojpk
aWRSZWNlaXZlTWUKIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhvc3RuYW1lc1dp
dGhDb29raWVzKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCiB7Ci0gICAg
QVNTRVJUKG1fd2ViQ29udGV4dCk7Ci0KICAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJh
Y2sgPSBwcnBDYWxsYmFjazsKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNh
bGxiYWNrSUQoKTsKICAgICBtX2FycmF5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFj
ay5yZWxlYXNlKCkpOwogCi0gICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3MpOiA8cmRhcjov
L3Byb2JsZW0vMTIyMzk3NjU+IENvb2tpZXMgc2hvdWxkbid0IGJlIHN0b3JlZCBpbiB0aGUgd2Vi
IHByb2Nlc3MuCi0gICAgbV93ZWJDb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGlu
Z1RoZW1JZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0SG9zdG5hbWVz
V2l0aENvb2tpZXMoY2FsbGJhY2tJRCkpOworICAgIG1fd2ViQ29udGV4dC0+c2VuZFRvTmV0d29y
a2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5h
Z2VyOjpHZXRIb3N0bmFtZXNXaXRoQ29va2llcyhjYWxsYmFja0lEKSk7CiB9CiAgICAgCiB2b2lk
IFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6ZGlkR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGhvc3RuYW1lTGlzdCwgdWludDY0X3QgY2FsbGJhY2tJRCkKQEAgLTEw
NCwyNiArMTAyLDIyIEBAIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRHZXRIb3N0bmEK
IAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShj
b25zdCBTdHJpbmcmIGhvc3RuYW1lKQogewotICAgIEFTU0VSVChtX3dlYkNvbnRleHQpOwotICAg
IG1fd2ViQ29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3Nh
cnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZSho
b3N0bmFtZSkpOworICAgIG1fd2ViQ29udGV4dC0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxh
dW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpEZWxldGVDb29r
aWVzRm9ySG9zdG5hbWUoaG9zdG5hbWUpKTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJv
eHk6OmRlbGV0ZUFsbENvb2tpZXMoKQogewotICAgIEFTU0VSVChtX3dlYkNvbnRleHQpOwotICAg
IG1fd2ViQ29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3Nh
cnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUFsbENvb2tpZXMoKSk7CisgICAg
bV93ZWJDb250ZXh0LT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3Nh
cnkoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OkRlbGV0ZUFsbENvb2tpZXMoKSk7CiB9CiAK
IHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
KQogewotICAgIEFTU0VSVChtX3dlYkNvbnRleHQpOwotICAgIG1fd2ViQ29udGV4dC0+c2VuZFRv
QWxsUHJvY2Vzc2VzUmVsYXVuY2hpbmdUaGVtSWZOZWNlc3NhcnkoTWVzc2FnZXM6OldlYkNvb2tp
ZU1hbmFnZXI6OlN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpKTsKKyAgICBtX3dlYkNvbnRl
eHQtPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdl
czo6V2ViQ29va2llTWFuYWdlcjo6U3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCkpOwogfQog
CiB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMo
KQogewotICAgIEFTU0VSVChtX3dlYkNvbnRleHQpOwotICAgIG1fd2ViQ29udGV4dC0+c2VuZFRv
QWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTdG9wT2JzZXJ2aW5nQ29v
a2llQ2hhbmdlcygpKTsKKyAgICBtX3dlYkNvbnRleHQtPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNz
UmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6U3RvcE9i
c2VydmluZ0Nvb2tpZUNoYW5nZXMoKSk7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5
Ojpjb29raWVzRGlkQ2hhbmdlKCkKQEAgLTEzMyw3ICsxMjcsNiBAQCB2b2lkIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTo6Y29va2llc0RpZENoCiAKIHZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5Ojpz
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5KQog
ewotICAgIEFTU0VSVChtX3dlYkNvbnRleHQpOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBwZXJz
aXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpOwogI2VuZGlmCkBAIC0xNDEsMjEgKzEz
NCwxNyBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0SFRUUENvb2tpCiAgICAgbV93
ZWJDb250ZXh0LT5zZXRJbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpOwogI2Vu
ZGlmCiAKLSAgICBtX3dlYkNvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhl
bUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KHBvbGljeSkpOworICAgIG1fd2ViQ29udGV4dC0+c2VuZFRvTmV0d29ya2luZ1By
b2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpT
ZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSkpOwogfQogCiB2b2lkIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTo6Z2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShQYXNzUmVmUHRyPEhUVFBDb29r
aWVBY2NlcHRQb2xpY3lDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCiB7Ci0gICAgQVNTRVJUKG1fd2Vi
Q29udGV4dCk7Ci0KICAgICBSZWZQdHI8SFRUUENvb2tpZUFjY2VwdFBvbGljeUNhbGxiYWNrPiBj
YWxsYmFjayA9IHBycENhbGxiYWNrOwogCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxi
YWNrLT5jYWxsYmFja0lEKCk7CiAgICAgbV9odHRwQ29va2llQWNjZXB0UG9saWN5Q2FsbGJhY2tz
LnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOwogCi0gICAgLy8gRklYTUUgKE11
bHRpLVdlYlByb2Nlc3MpOiA8cmRhcjovL3Byb2JsZW0vMTIyNDAxODk+IE1ha2UgY29va2llIHBv
bGljaWVzIHdvcmsgd2l0aCBwZXItdGFiIFdlYlByb2Nlc3MuCi0gICAgLy8gV2UgY2FuJ3QgYmVy
IGFza2luZyBhbGwgd2ViIHByb2Nlc3NlcyBmb3IgdGhpcyBpbmZvcm1hdGlvbi4KLSAgICBtX3dl
YkNvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KE1l
c3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNhbGxi
YWNrSUQpKTsKKyAgICBtX3dlYkNvbnRleHQtPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVu
Y2hpbmdJZk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlcjo6R2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShjYWxsYmFja0lEKSk7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlclBy
b3h5OjpkaWRHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHVpbnQzMl90IHBvbGljeSwgdWludDY0
X3QgY2FsbGJhY2tJRCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWRQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcAkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTIyLDE5ICsxMjIsNyBAQCB2b2lkIERvd25sb2FkUHJveHk6OmRpZFJlY2VpdmVB
dXRoZW50aWNhCiAgICAgaWYgKCFtX3dlYkNvbnRleHQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uOwotCi0gICAgaWYgKG1fd2Vi
Q29udGV4dC0+dXNlc05ldHdvcmtQcm9jZXNzKCkpIHsKLSNpZiBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQotICAgICAgICBpZiAoTmV0d29ya1Byb2Nlc3NQcm94eSogbmV0d29ya1Byb2Nlc3MgPSBt
X3dlYkNvbnRleHQtPm5ldHdvcmtQcm9jZXNzKCkpCi0gICAgICAgICAgICBjb25uZWN0aW9uID0g
bmV0d29ya1Byb2Nlc3MtPmNvbm5lY3Rpb24oKTsKLSNlbmRpZgotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIC8vIEZJWE1FOiBSZW1vdmUgV2ViQ29udGV4dDo6ZGVwcmVjYXRlZFNoYXJlZFByb2Nlc3Mo
KS4KLSAgICAgICAgY29ubmVjdGlvbiA9IG1fd2ViQ29udGV4dC0+ZGVwcmVjYXRlZFNoYXJlZFBy
b2Nlc3MoKS0+Y29ubmVjdGlvbigpOwotICAgIH0KLQotICAgIFJlZlB0cjxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5PiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5ID0gQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VQcm94eTo6Y3JlYXRlKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBjaGFs
bGVuZ2VJRCwgY29ubmVjdGlvbi5nZXQoKSk7CisgICAgUmVmUHRyPEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlUHJveHk+IGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkgPSBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5OjpjcmVhdGUoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNoYWxsZW5n
ZUlELCBtX3dlYkNvbnRleHQtPm5ldHdvcmtpbmdQcm9jZXNzQ29ubmVjdGlvbigpKTsKIAogICAg
IG1fd2ViQ29udGV4dC0+ZG93bmxvYWRDbGllbnQoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UobV93ZWJDb250ZXh0LmdldCgpLCB0aGlzLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVByb3h5LmdldCgpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiAxMzg0MTQp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDYgKzExMyw5IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3MKICAgICBpZiAobV9tZXNzYWdlUmVjZWl2ZXJNYXAuZGlz
cGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlcikpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIGlmIChtX3dlYkNvbnRleHQtPmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGRlY29kZXIpKQorICAgICAgICByZXR1cm47CisKICNpZiBFTkFCTEUoQ1VT
VE9NX1BST1RPQ09MUykKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFz
c0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5PigpKSB7CiAgICAgICAgIG1fY3VzdG9tUHJvdG9j
b2xNYW5hZ2VyUHJveHkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAko
cmV2aXNpb24gMTM4NDE0KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc4LDYgKzE3OCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6
aW5pdGlhbGl6ZShDb3JlSVBDOjpDb24KICAgICBtX3J1bkxvb3AgPSBydW5Mb29wOwogCiAgICAg
bV9hdXRoZW50aWNhdGlvbk1hbmFnZXIuc2V0Q29ubmVjdGlvbihtX2Nvbm5lY3Rpb24uZ2V0KCkp
OworICAgIFdlYkNvb2tpZU1hbmFnZXI6OnNoYXJlZCgpLnNldENvbm5lY3Rpb24obV9jb25uZWN0
aW9uLmdldCgpKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjphZGRNZXNzYWdlUmVjZWl2ZXIoQ29y
ZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIENvcmVJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAkocmV2aXNpb24g
MTM4NDE0KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1h
bmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9Db29raWVTdG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CisjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQ3
LDggKzQ4LDE1IEBAIFdlYkNvb2tpZU1hbmFnZXI6OldlYkNvb2tpZU1hbmFnZXIoKQogewogfQog
Cit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OnNldENvbm5lY3Rpb24oQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlQoIW1fY29ubmVjdGlvbik7CisgICAgbV9jb25u
ZWN0aW9uID0gY29ubmVjdGlvbjsKK30KKwogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKKyAg
ICBBU1NFUlQoY29ubmVjdGlvbiA9PSBtX2Nvbm5lY3Rpb24uZ2V0KCkpOwogICAgIGRpZFJlY2Vp
dmVXZWJDb29raWVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIp
OwogfQogCkBAIC02MSw3ICs2OSw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0SG9zdG5h
bWVzV2l0aEMKICAgICBWZWN0b3I8U3RyaW5nPiBob3N0bmFtZUxpc3Q7CiAgICAgY29weVRvVmVj
dG9yKGhvc3RuYW1lcywgaG9zdG5hbWVMaXN0KTsKIAotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQ29va2llTWFuYWdlclByb3h5OjpEaWRH
ZXRIb3N0bmFtZXNXaXRoQ29va2llcyhob3N0bmFtZUxpc3QsIGNhbGxiYWNrSUQpLCAwKTsKKyAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6RGlk
R2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoaG9zdG5hbWVMaXN0LCBjYWxsYmFja0lEKSwgMCk7CiB9
CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKGNvbnN0
IFN0cmluZyYgaG9zdG5hbWUpCkBAIC03Niw3ICs4NCw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdl
cjo6ZGVsZXRlQWxsQ29va2llcygKIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdGFydE9ic2Vy
dmluZ0Nvb2tpZUNoYW5nZXMoKQogewotICAgIFdlYkNvcmU6OnN0YXJ0T2JzZXJ2aW5nQ29va2ll
Q2hhbmdlcygpOworICAgIFdlYkNvcmU6OnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhjb29r
aWVzRGlkQ2hhbmdlKTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpzdG9wT2JzZXJ2aW5n
Q29va2llQ2hhbmdlcygpCkBAIC04NCw5ICs5MiwxNSBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6
OnN0b3BPYnNlcnZpbmdDb29rCiAgICAgV2ViQ29yZTo6c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5n
ZXMoKTsKIH0KIAordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpjb29raWVzRGlkQ2hhbmdlKCkKK3sK
KyAgICBXZWJDb29raWVNYW5hZ2VyOjpzaGFyZWQoKS5kaXNwYXRjaENvb2tpZXNEaWRDaGFuZ2Uo
KTsKK30KKwogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkaXNwYXRjaENvb2tpZXNEaWRDaGFuZ2Uo
KQogewotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViQ29va2llTWFuYWdlclByb3h5OjpDb29raWVzRGlkQ2hhbmdlKCksIDApOworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJDb29raWVNYW5hZ2VyUHJveHk6OkNvb2tpZXNEaWRDaGFuZ2UoKSwgMCk7CiB9CiAKIHZvaWQg
V2ViQ29va2llTWFuYWdlcjo6c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNj
ZXB0UG9saWN5IHBvbGljeSkKQEAgLTk2LDcgKzExMCw3IEBAIHZvaWQgV2ViQ29va2llTWFuYWdl
cjo6c2V0SFRUUENvb2tpZUFjY2UKIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpnZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7Ci0gICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyUHJv
eHk6OkRpZEdldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocGxhdGZvcm1HZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KCksIGNhbGxiYWNrSUQpLCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OldlYkNvb2tpZU1hbmFnZXJQcm94eTo6RGlkR2V0SFRUUENvb2tpZUFjY2VwdFBvbGlj
eShwbGF0Zm9ybUdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koKSwgY2FsbGJhY2tJRCksIDApOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaAkocmV2aXNpb24gMTM4NDE0
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtNDYsMTEgKzQ2LDEwIEBAIGNsYXNzIFdlYkNvb2tpZU1hbmFn
ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkNvb2tpZU1hbmFnZXIpOwogcHVibGlj
OgogICAgIHN0YXRpYyBXZWJDb29raWVNYW5hZ2VyJiBzaGFyZWQoKTsKKyAgICB2b2lkIHNldENv
bm5lY3Rpb24oQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogICAgIAotICAgIHZvaWQgZGlzcGF0Y2hDb29raWVzRGlkQ2hhbmdl
KCk7Ci0KICAgICB2b2lkIHNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSk7CiAKICNpZiBVU0UoU09VUCkKQEAgLTcxLDcgKzcwLDEyIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoKTsKICAgICB2b2lkIHN0b3BPYnNl
cnZpbmdDb29raWVDaGFuZ2VzKCk7CiAKKyAgICBzdGF0aWMgdm9pZCBjb29raWVzRGlkQ2hhbmdl
KCk7CisgICAgdm9pZCBkaXNwYXRjaENvb2tpZXNEaWRDaGFuZ2UoKTsKKwogICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisKKyAgICBSZWZQdHI8
Q29yZUlQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lv
biAxMzg0MTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSwxMSArMTA5LDYg
QEAgVmlzaXRlZExpbmtTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaQogCiAvLyBDb29raWVz
U3RyYXRlZ3kKIAotdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6Om5vdGlmeUNvb2tpZXNDaGFu
Z2VkKCkKLXsKLSAgICBXZWJDb29raWVNYW5hZ2VyOjpzaGFyZWQoKS5kaXNwYXRjaENvb2tpZXNE
aWRDaGFuZ2UoKTsKLX0KLQogU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llc0Zv
ckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IEtVUkwmIGZp
cnN0UGFydHksIGNvbnN0IEtVUkwmIHVybCkKIHsKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNT
KQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAxMzg0MTQp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw2IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5KiBjcmVhdGVWaXNpdGVkTGlu
a1N0cmF0ZWd5KCkgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3kK
LSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q29va2llc0NoYW5nZWQoKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIFN0cmluZyBjb29raWVzRm9yRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OktVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6
OktVUkwmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29u
c3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6S1VSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFN0cmluZyYpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBX
ZWJDb3JlOjpLVVJMJikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
Mzg0MTUpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNCBAQAorMjAxMi0xMi0yMiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxl
LmNvbT4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI4MDgzNzc+IE5ldHdvcmsgcHJvY2Vz
cyBzaG91bGQgcmVzcGVjdCBjb29raWUgYWNjZXB0IHBvbGljeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1Njg0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0
cmF0ZWdpZXNFZmwuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRl
Z2llc0VmbC5oOgorICAgICAgICBDb29raWVzU3RyYXRlZ3kgbm8gbG9uZ2VyIGhhcyBub3RpZnlD
b29raWVzQ2hhbmdlZCgpLiBUaGlzIHBvcnQgZGlkbid0IHVzZSBpdCBhbnl3YXkuCisKIDIwMTIt
MTItMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGEgc2VwYXJhdGUgY2xhc3MgZm9yIG5ldHdvcmtpbmcgcmVsYXRlZCBzdG9yYWdlCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3Jt
U3RyYXRlZ2llc0VmbC5jcHAJKHJldmlzaW9uIDEzODQxNCkKKysrIFNvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0VmbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTgyLDEwICs4Miw2IEBAIFZpc2l0ZWRMaW5rU3RyYXRlZ3kqIFBsYXRmb3JtU3RyYXRlZ2ll
c0UKIH0KIAogLy8gQ29va2llc1N0cmF0ZWd5Ci12b2lkIFBsYXRmb3JtU3RyYXRlZ2llc0VmbDo6
bm90aWZ5Q29va2llc0NoYW5nZWQoKQotewotfQotCiBTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
RWZsOjpjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwg
Y29uc3QgS1VSTCYgZmlyc3RQYXJ0eSwgY29uc3QgS1VSTCYgdXJsKQogewogICAgIHJldHVybiBX
ZWJDb3JlOjpjb29raWVzRm9yRE9NKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0
cmF0ZWdpZXNFZmwuaAkocmV2aXNpb24gMTM4NDE0KQorKysgU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzRWZsLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2
LDcgKzQ2LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3Ry
YXRlZ3kqIGNyZWF0ZVZpc2l0ZWRMaW5rU3RyYXRlZ3koKTsKIAogICAgIC8vIFdlYkNvcmU6OkNv
b2tpZXNTdHJhdGVneQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDb29raWVzQ2hhbmdlZCgpOwog
ICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZXNGb3JET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6S1VSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2Vi
Q29yZTo6S1VSTCYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVh
bCBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYsIGNvbnN0IFdlYkNvcmU6OktVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OktVUkwm
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzODQxNSkKKysrIFNvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEy
LTIyICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8xMjgwODM3Nz4gTmV0d29yayBwcm9jZXNzIHNob3VsZCByZXNwZWN0IGNvb2tp
ZSBhY2NlcHQgcG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDU2ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0d0ay5jcHA6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzR3RrLmg6CisgICAgICAgIENv
b2tpZXNTdHJhdGVneSBubyBsb25nZXIgaGFzIG5vdGlmeUNvb2tpZXNDaGFuZ2VkKCkuIFRoaXMg
cG9ydCBkaWRuJ3QgdXNlIGl0IGFueXdheS4KKwogMjAxMi0xMi0yMiAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBzZXBhcmF0ZSBjbGFzcyBmb3Ig
bmV0d29ya2luZyByZWxhdGVkIHN0b3JhZ2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0d0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzR3RrLmNwcAkocmV2
aXNpb24gMTM4NDE0KQorKysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGxhdGZv
cm1TdHJhdGVnaWVzR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzYsMTAgKzc2LDYgQEAgVmlz
aXRlZExpbmtTdHJhdGVneSogUGxhdGZvcm1TdHJhdGVnaWVzRwogfQogCiAvLyBDb29raWVzU3Ry
YXRlZ3kKLXZvaWQgUGxhdGZvcm1TdHJhdGVnaWVzR3RrOjpub3RpZnlDb29raWVzQ2hhbmdlZCgp
Ci17Ci19Ci0KIFN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6OmNvb2tpZXNGb3JET00oY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBLVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBLVVJMJiB1cmwpCiB7CiAgICAgcmV0dXJuIFdlYkNvcmU6OmNvb2tpZXNGb3JET00o
c2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0d0ay5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0d0ay5oCShyZXZpc2lv
biAxMzg0MTQpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0
cmF0ZWdpZXNHdGsuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNiBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneSogY3JlYXRlVmlzaXRlZExp
bmtTdHJhdGVneSgpOwogCiAgICAgLy8gV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5Ci0gICAgdmly
dHVhbCB2b2lkIG5vdGlmeUNvb2tpZXNDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBTdHJpbmcgY29v
a2llc0ZvckRPTShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBX
ZWJDb3JlOjpLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpLVVJMJik7CiAgICAgdmly
dHVhbCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OktVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6
OktVUkwmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGJvb2wgY29va2llc0VuYWJsZWQo
Y29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6S1VS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOwpJbmRleDogU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTItMjIgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODA4Mzc3PiBO
ZXR3b3JrIHByb2Nlc3Mgc2hvdWxkIHJlc3BlY3QgY29va2llIGFjY2VwdCBwb2xpY3kKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTY4NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLm1tOgorICAgICAgICBDb29raWVzU3RyYXRlZ3kgbm8gbG9uZ2Vy
IGhhcyBub3RpZnlDb29raWVzQ2hhbmdlZCgpLgorCiAyMDEyLTEyLTIyICBBbGV4ZXkgUHJvc2t1
cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHNlcGFyYXRlIGNsYXNzIGZv
ciBuZXR3b3JraW5nIHJlbGF0ZWQgc3RvcmFnZQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlz
aW9uIDEzODQxNCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw2IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5KiBjcmVhdGVWaXNpdGVk
TGlua1N0cmF0ZWd5KCkgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJDb3JlOjpDb29raWVzU3RyYXRl
Z3kKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q29va2llc0NoYW5nZWQoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIFN0cmluZyBjb29raWVzRm9yRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OktVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNv
cmU6OktVUkwmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llc0Zyb21ET00o
Y29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6S1VS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFN0cmluZyYpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpLVVJMJikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCShyZXZp
c2lvbiAxMzg0MTQpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTgzLDEwICs4Myw2IEBAIFZpc2l0
ZWRMaW5rU3RyYXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2kKICAgICByZXR1cm4gdGhpczsKIH0K
IAotdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6Om5vdGlmeUNvb2tpZXNDaGFuZ2VkKCkKLXsK
LX0KLQogU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llc0ZvckRPTShjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNv
bnN0IEtVUkwmIHVybCkKIHsKICAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llc0ZvckRPTShzZXNz
aW9uLCBmaXJzdFBhcnR5LCB1cmwpOwpJbmRleDogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzODQx
NSkKKysrIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTItMTItMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODA4Mzc3PiBOZXR3b3JrIHByb2Nlc3Mgc2hv
dWxkIHJlc3BlY3QgY29va2llIGFjY2VwdCBwb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTY4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVn
aWVzUXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0
Lmg6CisgICAgICAgIENvb2tpZXNTdHJhdGVneSBubyBsb25nZXIgaGFzIG5vdGlmeUNvb2tpZXND
aGFuZ2VkKCkuIFRoaXMgcG9ydCBkaWRuJ3QgdXNlIGl0IGFueXdheS4KKwogMjAxMi0xMi0yMiAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBzZXBh
cmF0ZSBjbGFzcyBmb3IgbmV0d29ya2luZyByZWxhdGVkIHN0b3JhZ2UKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVz
UXQuY3BwCShyZXZpc2lvbiAxMzg0MTQpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTUsMTAgKzk1
LDYgQEAgVmlzaXRlZExpbmtTdHJhdGVneSogUGxhdGZvcm1TdHJhdGVnaWVzUQogICAgIHJldHVy
biB0aGlzOwogfQogCi12b2lkIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojpub3RpZnlDb29raWVzQ2hh
bmdlZCgpCi17Ci19Ci0KIFN0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y29va2llc0ZvckRP
TShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IEtVUkwmIGZpcnN0
UGFydHksIGNvbnN0IEtVUkwmIHVybCkKIHsKICAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llc0Zv
ckRPTShzZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwpOwpJbmRleDogU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaAkocmV2aXNp
b24gMTM4NDE0KQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0
cmF0ZWdpZXNRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw2IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5KiBjcmVhdGVWaXNpdGVkTGlu
a1N0cmF0ZWd5KCk7CiAgICAgCiAgICAgLy8gV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5Ci0gICAg
dmlydHVhbCB2b2lkIG5vdGlmeUNvb2tpZXNDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBTdHJpbmcg
Y29va2llc0ZvckRPTShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25z
dCBXZWJDb3JlOjpLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpLVVJMJik7CiAgICAg
dmlydHVhbCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OktVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNv
cmU6OktVUkwmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGJvb2wgY29va2llc0VuYWJs
ZWQoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6
S1VSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOwpJbmRleDogU291cmNlL1dl
YktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTM4NDE1KQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTItMjIgIEFsZXhleSBQcm9za3Vy
eWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODA4Mzc3
PiBOZXR3b3JrIHByb2Nlc3Mgc2hvdWxkIHJlc3BlY3QgY29va2llIGFjY2VwdCBwb2xpY3kKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTY4NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgQ29va2llc1N0cmF0ZWd5IG5vIGxv
bmdlciBoYXMgbm90aWZ5Q29va2llc0NoYW5nZWQoKS4gVGhpcyBwb3J0IGRpZG4ndCB1c2UgaXQg
YW55d2F5LgorCiAyMDEyLTEyLTIyICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIHNlcGFyYXRlIGNsYXNzIGZvciBuZXR3b3JraW5nIHJlbGF0ZWQg
c3RvcmFnZQpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAxMzg0MTQpCisrKyBT
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04MiwxMCArODIsNiBAQCBWaXNpdGVkTGlua1N0cmF0ZWd5KiBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpCiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKLXZvaWQgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpub3RpZnlDb29raWVzQ2hhbmdlZCgpCi17Ci19Ci0KIFN0cmluZyBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBzZXNzaW9uLCBjb25zdCBLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBLVVJMJiB1cmwpCiB7
CiAgICAgcmV0dXJuIFdlYkNvcmU6OmNvb2tpZXNGb3JET00oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwg
dXJsKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiAxMzg0MTQpCisrKyBTb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTEsNyArNTEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6
VmlzaXRlZExpbmtTdHJhdGVneSogY3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSgpOwogCiAgICAg
Ly8gV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUNvb2tp
ZXNDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBTdHJpbmcgY29va2llc0ZvckRPTShjb25zdCBXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBXZWJDb3JlOjpLVVJMJik7CiAgICAgdmlydHVhbCB2b2lkIHNldENvb2tpZXNG
cm9tRE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNv
cmU6OktVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OktVUkwmLCBjb25zdCBTdHJpbmcm
KTsKICAgICB2aXJ0dWFsIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6TmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6S1VSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6S1VSTCYpOwpJbmRleDogU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzODQx
NSkKKysrIFNvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTItMTItMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODA4Mzc3PiBOZXR3b3JrIHByb2Nlc3Mg
c2hvdWxkIHJlc3BlY3QgY29va2llIGFjY2VwdCBwb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTY4NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJh
dGVnaWVzV2luQ0UuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRl
Z2llc1dpbkNFLmg6CisgICAgICAgIENvb2tpZXNTdHJhdGVneSBubyBsb25nZXIgaGFzIG5vdGlm
eUNvb2tpZXNDaGFuZ2VkKCkuIFRoaXMgcG9ydCBkaWRuJ3QgdXNlIGl0IGFueXdheS4KKwogMjAx
Mi0xMi0yMiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgYSBzZXBhcmF0ZSBjbGFzcyBmb3IgbmV0d29ya2luZyByZWxhdGVkIHN0b3JhZ2UKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2lu
Q0UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQv
UGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuY3BwCShyZXZpc2lvbiAxMzg0MTQpCisrKyBTb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzksMTAgKzc5LDYgQEAgVmlzaXRlZExpbmtTdHJhdGVneSogUGxh
dGZvcm1TdHJhdGVnaWVzVwogICAgIHJldHVybiB0aGlzOwogfQogCi12b2lkIFBsYXRmb3JtU3Ry
YXRlZ2llc1dpbkNFOjpub3RpZnlDb29raWVzQ2hhbmdlZCgpCi17Ci19Ci0KIFN0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6Y29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHNlc3Npb24sIGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmIHVybCkK
IHsKICAgICByZXR1cm4gV2ViQ29yZTo6Y29va2llc0ZvckRPTShzZXNzaW9uLCBmaXJzdFBhcnR5
LCB1cmwpOwpJbmRleDogU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9y
bVN0cmF0ZWdpZXNXaW5DRS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaAkocmV2aXNpb24gMTM4NDE0KQor
KysgU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNX
aW5DRS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5KiBjcmVhdGVWaXNpdGVkTGlua1N0cmF0
ZWd5KCk7CiAKICAgICAvLyBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3kKLSAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5Q29va2llc0NoYW5nZWQoKTsKICAgICB2aXJ0dWFsIFN0cmluZyBjb29raWVzRm9y
RE9NKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6
OktVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiwgY29uc3QgV2ViQ29yZTo6S1VSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6S1VSTCYs
IGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBXZWJDb3JlOjpLVVJMJik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>