<?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>80356</bug_id>
          
          <creation_ts>2012-03-05 17:02:55 -0800</creation_ts>
          <short_desc>[WebSocket] Introduce ThreadableWebSocketChannel::SendResult</short_desc>
          <delta_ts>2012-03-06 21:14:18 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>80103</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenichi Ishibashi">bashi</reporter>
          <assigned_to name="Kenichi Ishibashi">bashi</assigned_to>
          <cc>senorblanco</cc>
    
    <cc>tkent</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>571211</commentid>
    <comment_count>0</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-03-05 17:02:55 -0800</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=80103#c16

Introduce ThreadableWebsocketChannel::SendResult so that WebSocketChannel can return the result of message validation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571231</commentid>
    <comment_count>1</comment_count>
      <attachid>130243</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-03-05 17:16:54 -0800</bug_when>
    <thetext>Created attachment 130243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571238</commentid>
    <comment_count>2</comment_count>
      <attachid>130243</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-05 17:20:35 -0800</bug_when>
    <thetext>Comment on attachment 130243
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571246</commentid>
    <comment_count>3</comment_count>
      <attachid>130243</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-03-05 17:24:38 -0800</bug_when>
    <thetext>Comment on attachment 130243
Patch

Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571316</commentid>
    <comment_count>4</comment_count>
      <attachid>130243</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-05 18:11:33 -0800</bug_when>
    <thetext>Comment on attachment 130243
Patch

Clearing flags on attachment: 130243

Committed r109832: &lt;http://trac.webkit.org/changeset/109832&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571317</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-05 18:11:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572044</commentid>
    <comment_count>6</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-06 12:00:37 -0800</bug_when>
    <thetext>Sorry, I had to revert this due to WebSocket test failures on Mac and Linux:  http://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=ui_tests&amp;tests=PPAPITest.WebSocket_UtilityTextSendReceive%2CPPAPINaClTest.WebSocket_BinarySendReceive%2CPPAPINaClTest.WebSocket_UtilityBinarySendReceive%2CPPAPITest.WebSocket_BinarySendReceive%2CPPAPITest.WebSocket_TextSendReceive%2CPPAPINaClTest.WebSocket_UtilityBufferedAmount%2CPPAPINaClTest.WebSocket_CcInterfaces%2CPPAPINaClTest.WebSocket_TextSendReceive%2CPPAPITest.WebSocket_BufferedAmount%2CPPAPITest.WebSocket_CcInterfaces%2CPPAPINaClTest.WebSocket_BufferedAmount%2CPPAPITest.WebSocket_UtilityBufferedAmount%2CPPAPINaClTest.WebSocket_UtilityTextSendReceive%2CPPAPITest.WebSocket_UtilityBinarySendReceive

Rolled out in r109942.  (The rollout script failed to re-open the bug, so I&apos;m doing it here).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572315</commentid>
    <comment_count>7</comment_count>
      <attachid>130484</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-03-06 17:21:27 -0800</bug_when>
    <thetext>Created attachment 130484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572319</commentid>
    <comment_count>8</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-03-06 17:24:52 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Rolled out in r109942.  (The rollout script failed to re-open the bug, so I&apos;m doing it here).

Sorry for breaking tests. I didn&apos;t notice that WebKit/chromium/src/WebSocketImpl.cpp uses WebSocketChannel directly. Revised the patch to check the return value of WebSocketChannel::send() in WebSocketImpl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572504</commentid>
    <comment_count>9</comment_count>
      <attachid>130484</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-06 21:14:14 -0800</bug_when>
    <thetext>Comment on attachment 130484
Patch

Clearing flags on attachment: 130484

Committed r110012: &lt;http://trac.webkit.org/changeset/110012&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572505</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-06 21:14:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130243</attachid>
            <date>2012-03-05 17:16:54 -0800</date>
            <delta_ts>2012-03-06 17:21:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80356-20120306101653.patch</filename>
            <type>text/plain</type>
            <size>21856</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5ODA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWZhMzc5ZDdiOTIwOTgy
MzJmZDkyOGZlMDIwMzAxY2IzYTZhNGNkZS4uZWE1MDc1Y2FiZjNkZGVlOGJmZmEzMDA3NmY5ZWJk
NTkzZTA4ZWMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAzLTA1ICBLZW5p
Y2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViU29ja2V0
XSBJbnRyb2R1Y2UgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMzU2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlZCBUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCB0eXBlIHNvIHRoYXQKKyAgICAgICAg
V2ViU29ja2V0Q2hhbm5lbCBjYW4gcGFzcyB0aGUgdmFsaWRhdGlvbiByZXN1bHQuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3QuIE5vIGNoYW5nZXMgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaDogQWRkZWQgU2VuZFJl
c3VsdC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlcjo6c2VuZFJlcXVlc3RSZXN1bHQpOiBVc2UgVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OlNlbmRSZXN1bHQgaW5zdGVhZCBvZiBib29sLgorICAgICAgICAoV2ViQ29yZTo6
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpzZXRTZW5kUmVxdWVzdFJl
c3VsdCk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaDoKKyAgICAgICAgKFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6
c2VuZCk6IFVzZSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBpbnN0ZWFk
IG9mIGJvb2wuIFBhc3MgQ3N0cmluZyB0byBlbnF1ZVRleHRGcmFtZSBpbnN0ZWFkIG9mIFN0cmlu
Zy4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmVucXVldWVUZXh0RnJhbWUp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRn
b2luZ0ZyYW1lUXVldWUpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2ViU29ja2V0Q2hhbm5lbCk6CisgICAgICAgIChR
dWV1ZWRGcmFtZSk6IENoYW5nZWQgdGhlIHR5cGUgb2Ygc3RyaW5nRGF0YSBmcm9tIFN0cmluZyB0
byBDU3RyaW5nLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6c2VuZCk6IFVzZSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
U2VuZFJlc3VsdCBpbnN0ZWFkIG9mIGJvb2wuCisgICAgICAgIChXZWJDb3JlOjp3b3JrZXJDb250
ZXh0RGlkU2VuZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWw6OlBlZXI6OnNlbmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OnNlbmQpOiBEaXR0by4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuaDoKKyAgICAgICAgKFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKTogZGl0dG8u
CisgICAgICAgIChCcmlkZ2UpOiBEaXR0by4KKwogMjAxMi0wMy0wNSAgTWlobmVhIE92aWRlbmll
ICA8bWlobmVhQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTUmVnaW9uc11bQ1NTT01dUHJldmVu
dCBjcmVhdGlvbiBvZiBOYW1lZEZsb3cgb2JqZWN0IGZvciBpbnZhbGlkIGZsb3cgbmFtZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWwuaAppbmRleCBhMTQ1ODJhOGZkOGJjM2JlZGQ3NjkyOTczZDEw
MDJhNjEzMTIyMDllLi4zMmVhOGFhZTFmYWZkMWYyMGFhZDkyMzczN2I3NjI4OTI5MDFmOWI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaApAQCAtNTAsMTMgKzUwLDE5IEBAIHB1YmxpYzoK
ICAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCgpIHsgfQogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFdlYlNvY2tldENoYW5uZWxDbGllbnQqKTsKIAorICAgIGVudW0gU2VuZFJlc3VsdCB7
CisgICAgICAgIFNlbmRTdWNjZXNzLAorICAgICAgICBTZW5kRmFpbCwKKyAgICAgICAgSW52YWxp
ZE1lc3NhZ2UKKyAgICB9OworCiAgICAgdmlydHVhbCBib29sIHVzZUhpeGllNzZQcm90b2NvbCgp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5n
JiBwcm90b2NvbCkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIHN1YnByb3RvY29sKCkgPSAwOyAv
LyBXaWxsIGJlIGF2YWlsYWJsZSBhZnRlciBkaWRDb25uZWN0KCkgY2FsbGJhY2sgaXMgaW52b2tl
ZC4KICAgICB2aXJ0dWFsIFN0cmluZyBleHRlbnNpb25zKCkgPSAwOyAvLyBXaWxsIGJlIGF2YWls
YWJsZSBhZnRlciBkaWRDb25uZWN0KCkgY2FsbGJhY2sgaXMgaW52b2tlZC4KLSAgICB2aXJ0dWFs
IGJvb2wgc2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wg
c2VuZChjb25zdCBBcnJheUJ1ZmZlciYpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgc2VuZChjb25z
dCBCbG9iJikgPSAwOworICAgIHZpcnR1YWwgU2VuZFJlc3VsdCBzZW5kKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkgPSAwOworICAgIHZpcnR1YWwgU2VuZFJlc3VsdCBzZW5kKGNvbnN0IEFycmF5QnVm
ZmVyJikgPSAwOworICAgIHZpcnR1YWwgU2VuZFJlc3VsdCBzZW5kKGNvbnN0IEJsb2ImKSA9IDA7
CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pID0g
MDsKICAgICAvLyBMb2cgdGhlIHJlYXNvbiB0ZXh0IGFuZCBjbG9zZSB0aGUgY29ubmVjdGlvbi4g
V2lsbCBjYWxsIGRpZENsb3NlKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXIuY3BwCmluZGV4IGRjYjE4MDJhMjg5OGJmM2I4ODQ3NTFlZjg3MzBl
MjNiYzc1MTA2ZDcuLjlhNGYzZmEyMzMxMmQ4NWU5ZWUwMzUwN2MwMzQxNWE0ZmE5MDI3MGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3Bw
CkBAIC00Niw3ICs0Niw3IEBAIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cjo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyCiAgICAgLCBtX2NsaWVu
dChjbGllbnQpCiAgICAgLCBtX3N5bmNNZXRob2REb25lKHRydWUpCiAgICAgLCBtX3VzZUhpeGll
NzZQcm90b2NvbCh0cnVlKQotICAgICwgbV9zZW5kUmVxdWVzdFJlc3VsdChmYWxzZSkKKyAgICAs
IG1fc2VuZFJlcXVlc3RSZXN1bHQoVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRGYWls
KQogICAgICwgbV9idWZmZXJlZEFtb3VudCgwKQogICAgICwgbV9zdXNwZW5kZWQoZmFsc2UpCiB7
CkBAIC0xMTIsMTIgKzExMiwxMiBAQCB2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlcjo6c2V0RXh0ZW5zaW9ucyhjb25zdCBTdHJpbmcmIGV4dGVucwogICAgICAgICBt
ZW1jcHkobV9leHRlbnNpb25zLmRhdGEoKSwgZXh0ZW5zaW9ucy5jaGFyYWN0ZXJzKCksIHNpemVv
ZihVQ2hhcikgKiBsZW5ndGgpOwogfQogCi1ib29sIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlcjo6c2VuZFJlcXVlc3RSZXN1bHQoKSBjb25zdAorVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw6OlNlbmRSZXN1bHQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyOjpzZW5kUmVxdWVzdFJlc3VsdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2VuZFJl
cXVlc3RSZXN1bHQ7CiB9CiAKLXZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyOjpzZXRTZW5kUmVxdWVzdFJlc3VsdChib29sIHNlbmRSZXF1ZXN0UmVzdWx0KQordm9p
ZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnNldFNlbmRSZXF1ZXN0
UmVzdWx0KFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IHNlbmRSZXF1ZXN0
UmVzdWx0KQogewogICAgIG1fc2VuZFJlcXVlc3RSZXN1bHQgPSBzZW5kUmVxdWVzdFJlc3VsdDsK
ICAgICBtX3N5bmNNZXRob2REb25lID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAppbmRleCA0YjliN2ZkZTcyYjljZjBlNjk3MDM5OTBj
YmFkNmFlNzI3NzIxNzRjLi5iZmQxMDYzODFmMWIyMWIyMzRlMjkwNDA2ZTgzODYyNmNmODE2Mzlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5o
CkBAIC0zNSw2ICszNSw3IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5oIgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxDbGllbnQuaCIKICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTY2LDggKzY3
LDggQEAgcHVibGljOgogICAgIFN0cmluZyBleHRlbnNpb25zKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRFeHRlbnNpb25zKGNvbnN0IFN0cmluZyYpOwogCi0gICAgYm9vbCBzZW5kUmVxdWVzdFJlc3Vs
dCgpIGNvbnN0OwotICAgIHZvaWQgc2V0U2VuZFJlcXVlc3RSZXN1bHQoYm9vbCk7CisgICAgVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZFJlcXVlc3RSZXN1bHQoKSBj
b25zdDsKKyAgICB2b2lkIHNldFNlbmRSZXF1ZXN0UmVzdWx0KFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpTZW5kUmVzdWx0KTsKIAogICAgIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQo
KSBjb25zdDsKICAgICB2b2lkIHNldEJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGxvbmcpOwpAQCAt
MTA0LDcgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgLy8gVGhyZWFkU2FmZVJlZkNvdW50ZWQgbXVz
dCBub3QgaGF2ZSBTdHJpbmcgbWVtYmVyIHZhcmlhYmxlcy4KICAgICBWZWN0b3I8VUNoYXI+IG1f
c3VicHJvdG9jb2w7CiAgICAgVmVjdG9yPFVDaGFyPiBtX2V4dGVuc2lvbnM7Ci0gICAgYm9vbCBt
X3NlbmRSZXF1ZXN0UmVzdWx0OworICAgIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5k
UmVzdWx0IG1fc2VuZFJlcXVlc3RSZXN1bHQ7CiAgICAgdW5zaWduZWQgbG9uZyBtX2J1ZmZlcmVk
QW1vdW50OwogICAgIGJvb2wgbV9zdXNwZW5kZWQ7CiAgICAgVmVjdG9yPE93blB0cjxTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpUYXNrPiA+IG1fcGVuZGluZ1Rhc2tzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCA3ZGQ4NTRlZDE1MmEz
MjFmMDQ5MjExMmNlNTVhN2YxMDllODkzM2U3Li5lOWQ5Y2U2ZmJmODJjMTNiYzJmMWMyMGFiNmFi
Y2I2NmZlMjkwZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmNwcApAQCAtMjkwLDcgKzI5MCw3IEBAIGJvb2wgV2ViU29ja2V0OjpzZW5kKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgfQogICAgIC8vIEZJ
WE1FOiBjaGVjayBtZXNzYWdlIGlzIHZhbGlkIHV0ZjguCiAgICAgQVNTRVJUKG1fY2hhbm5lbCk7
Ci0gICAgcmV0dXJuIG1fY2hhbm5lbC0+c2VuZChtZXNzYWdlKTsKKyAgICByZXR1cm4gbV9jaGFu
bmVsLT5zZW5kKG1lc3NhZ2UpID09IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kU3Vj
Y2VzczsKIH0KIAogYm9vbCBXZWJTb2NrZXQ6OnNlbmQoQXJyYXlCdWZmZXIqIGJpbmFyeURhdGEs
IEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMzEwLDcgKzMxMCw3IEBAIGJvb2wgV2ViU29ja2V0Ojpz
ZW5kKEFycmF5QnVmZmVyKiBiaW5hcnlEYXRhLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBBU1NFUlQobV9jaGFubmVsKTsKLSAgICByZXR1cm4g
bV9jaGFubmVsLT5zZW5kKCpiaW5hcnlEYXRhKTsKKyAgICByZXR1cm4gbV9jaGFubmVsLT5zZW5k
KCpiaW5hcnlEYXRhKSA9PSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFN1Y2Nlc3M7
CiB9CiAKIGJvb2wgV2ViU29ja2V0OjpzZW5kKEJsb2IqIGJpbmFyeURhdGEsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQpAQCAtMzMwLDcgKzMzMCw3IEBAIGJvb2wgV2ViU29ja2V0OjpzZW5kKEJsb2IqIGJp
bmFyeURhdGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogICAgIEFTU0VSVChtX2NoYW5uZWwpOwotICAgIHJldHVybiBtX2NoYW5uZWwtPnNlbmQoKmJp
bmFyeURhdGEpOworICAgIHJldHVybiBtX2NoYW5uZWwtPnNlbmQoKmJpbmFyeURhdGEpID09IFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kU3VjY2VzczsKIH0KIAogdm9pZCBXZWJTb2Nr
ZXQ6OmNsb3NlKGludCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgRXhjZXB0aW9uQ29kZSYg
ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0Q2hhbm5lbC5jcHAKaW5kZXggMWVjMjU5Zjc4ODQxYmY5MTEzZDVmZDQyODQ0Y2RiZDFjNTI5
OTdlMy4uZmI4N2QzOGNkZTY0OGQxMmRjYjhlMThkMDVmMTU1NDJlNTA2ZmMxOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
LmNwcApAQCAtMTU3LDM3ICsxNTcsMzcgQEAgU3RyaW5nIFdlYlNvY2tldENoYW5uZWw6OmV4dGVu
c2lvbnMoKQogICAgIHJldHVybiBleHRlbnNpb25zOwogfQogCi1ib29sIFdlYlNvY2tldENoYW5u
ZWw6OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6OlNlbmRSZXN1bHQgV2ViU29ja2V0Q2hhbm5lbDo6c2VuZChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIHNlbmQgJXMiLCB0
aGlzLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOworICAgIENTdHJpbmcgdXRmOCA9IG1lc3NhZ2Uu
dXRmOCgpOwogICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2NvbCkgewotICAgICAgICBDU3RyaW5n
IHV0ZjggPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICAgICAgcmV0dXJuIHNlbmRGcmFtZUhpeGllNzYo
dXRmOC5kYXRhKCksIHV0ZjgubGVuZ3RoKCkpOworICAgICAgICByZXR1cm4gc2VuZEZyYW1lSGl4
aWU3Nih1dGY4LmRhdGEoKSwgdXRmOC5sZW5ndGgoKSkgPyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbDo6U2VuZFN1Y2Nlc3MgOiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZEZhaWw7
CiAgICAgfQotICAgIGVucXVldWVUZXh0RnJhbWUobWVzc2FnZSk7CisgICAgZW5xdWV1ZVRleHRG
cmFtZSh1dGY4KTsKICAgICAvLyBBY2NvcmRpbmcgdG8gV2ViU29ja2V0IEFQSSBzcGVjaWZpY2F0
aW9uLCBXZWJTb2NrZXQuc2VuZCgpIHNob3VsZCByZXR1cm4gdm9pZCBpbnN0ZWFkCiAgICAgLy8g
b2YgYm9vbGVhbi4gSG93ZXZlciwgb3VyIGltcGxlbWVudGF0aW9uIHN0aWxsIHJldHVybnMgYm9v
bGVhbiBkdWUgdG8gY29tcGF0aWJpbGl0eQogICAgIC8vIGNvbmNlcm4gKHNlZSBidWcgNjU4NTAp
LgogICAgIC8vIG1fY2hhbm5lbC0+c2VuZCgpIG1heSBoYXBwZW4gbGF0ZXIsIHRodXMgaXQncyBu
b3QgYWx3YXlzIHBvc3NpYmxlIHRvIGtub3cgd2hldGhlcgogICAgIC8vIHRoZSBtZXNzYWdlIGhh
cyBiZWVuIHNlbnQgdG8gdGhlIHNvY2tldCBzdWNjZXNzZnVsbHkuIEluIHRoaXMgY2FzZSwgd2Ug
aGF2ZSBubyBjaG9pY2UKICAgICAvLyBidXQgdG8gcmV0dXJuIHRydWUuCi0gICAgcmV0dXJuIHRy
dWU7CisgICAgcmV0dXJuIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kU3VjY2VzczsK
IH0KIAotYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kKGNvbnN0IEFycmF5QnVmZmVyJiBiaW5h
cnlEYXRhKQorVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgV2ViU29ja2V0
Q2hhbm5lbDo6c2VuZChjb25zdCBBcnJheUJ1ZmZlciYgYmluYXJ5RGF0YSkKIHsKICAgICBMT0co
TmV0d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAgc2VuZCBhcnJheWJ1ZmZlciAlcCIsIHRoaXMs
ICZiaW5hcnlEYXRhKTsKICAgICBBU1NFUlQoIW1fdXNlSGl4aWU3NlByb3RvY29sKTsKICAgICBl
bnF1ZXVlUmF3RnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZUJpbmFyeSwgc3RhdGljX2Nhc3Q8
Y29uc3QgY2hhcio+KGJpbmFyeURhdGEuZGF0YSgpKSwgYmluYXJ5RGF0YS5ieXRlTGVuZ3RoKCkp
OwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bDo6U2VuZFN1Y2Nlc3M7CiB9CiAKLWJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6c2VuZChjb25zdCBC
bG9iJiBiaW5hcnlEYXRhKQorVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQg
V2ViU29ja2V0Q2hhbm5lbDo6c2VuZChjb25zdCBCbG9iJiBiaW5hcnlEYXRhKQogewogICAgIExP
RyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBzZW5kIGJsb2IgJXMiLCB0aGlzLCBiaW5h
cnlEYXRhLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIEFTU0VSVCghbV91c2VI
aXhpZTc2UHJvdG9jb2wpOwogICAgIGVucXVldWVCbG9iRnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9w
Q29kZUJpbmFyeSwgYmluYXJ5RGF0YSk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kU3VjY2VzczsKIH0KIAogYm9vbCBXZWJTb2Nr
ZXRDaGFubmVsOjpzZW5kKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCkBAIC04NTYsNyAr
ODU2LDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWVIaXhpZTc2KCkKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZVRleHRG
cmFtZShjb25zdCBTdHJpbmcmIHN0cmluZykKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1
ZVRleHRGcmFtZShjb25zdCBDU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAgQVNTRVJUKCFtX3VzZUhp
eGllNzZQcm90b2NvbCk7CiAgICAgQVNTRVJUKG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzID09
IE91dGdvaW5nRnJhbWVRdWV1ZU9wZW4pOwpAQCAtOTA0LDggKzkwNCw3IEBAIHZvaWQgV2ViU29j
a2V0Q2hhbm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpCiAgICAgICAgIE93blB0cjxR
dWV1ZWRGcmFtZT4gZnJhbWUgPSBtX291dGdvaW5nRnJhbWVRdWV1ZS50YWtlRmlyc3QoKTsKICAg
ICAgICAgc3dpdGNoIChmcmFtZS0+ZnJhbWVUeXBlKSB7CiAgICAgICAgIGNhc2UgUXVldWVkRnJh
bWVUeXBlU3RyaW5nOiB7Ci0gICAgICAgICAgICBDU3RyaW5nIHV0ZjggPSBmcmFtZS0+c3RyaW5n
RGF0YS51dGY4KCk7Ci0gICAgICAgICAgICBpZiAoIXNlbmRGcmFtZShmcmFtZS0+b3BDb2RlLCB1
dGY4LmRhdGEoKSwgdXRmOC5sZW5ndGgoKSkpCisgICAgICAgICAgICBpZiAoIXNlbmRGcmFtZShm
cmFtZS0+b3BDb2RlLCBmcmFtZS0+c3RyaW5nRGF0YS5kYXRhKCksIGZyYW1lLT5zdHJpbmdEYXRh
Lmxlbmd0aCgpKSkKICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2Nr
ZXQgZnJhbWUuIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKaW5kZXgg
NmQxZmViYmNhMDZlMWVkN2Q1Y2VlMTUwZDg3NjBhZjc4MDQ2MjE2Ni4uNjJiNGZkMzVmOTM2NjU5
OGJjOTVhYTA1NWY0N2FmYTVjOTZkNjVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC00NCw2ICs0NCw3IEBACiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzEsOSArNzIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGNvbm5lY3QoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHN1YnByb3RvY29sKCkgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBTdHJpbmcgZXh0ZW5zaW9ucygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzZW5k
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNlbmQo
Y29uc3QgQXJyYXlCdWZmZXImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2VuZChjb25z
dCBCbG9iJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bDo6U2VuZFJlc3VsdCBzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBzZW5kKGNvbnN0
IEFycmF5QnVmZmVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbDo6U2VuZFJlc3VsdCBzZW5kKGNvbnN0IEJsb2ImKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQoKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBPVkVSUklE
RTsgLy8gU3RhcnQgY2xvc2luZyBoYW5kc2hha2UuCiAgICAgdmlydHVhbCB2b2lkIGZhaWwoY29u
c3QgU3RyaW5nJiByZWFzb24pIE9WRVJSSURFOwpAQCAtMTYwLDExICsxNjEsMTEgQEAgcHJpdmF0
ZToKICAgICAgICAgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZSBvcENvZGU7CiAgICAgICAgIFF1ZXVl
ZEZyYW1lVHlwZSBmcmFtZVR5cGU7CiAgICAgICAgIC8vIE9ubHkgb25lIG9mIHRoZSBmb2xsb3dp
bmcgaXRlbXMgaXMgdXNlZCwgYWNjb3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiBmcmFtZVR5cGUuCi0g
ICAgICAgIFN0cmluZyBzdHJpbmdEYXRhOworICAgICAgICBDU3RyaW5nIHN0cmluZ0RhdGE7CiAg
ICAgICAgIFZlY3RvcjxjaGFyPiB2ZWN0b3JEYXRhOwogICAgICAgICBSZWZQdHI8QmxvYj4gYmxv
YkRhdGE7CiAgICAgfTsKLSAgICB2b2lkIGVucXVldWVUZXh0RnJhbWUoY29uc3QgU3RyaW5nJik7
CisgICAgdm9pZCBlbnF1ZXVlVGV4dEZyYW1lKGNvbnN0IENTdHJpbmcmKTsKICAgICB2b2lkIGVu
cXVldWVSYXdGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlLCBjb25zdCBjaGFyKiBkYXRhLCBz
aXplX3QgZGF0YUxlbmd0aCk7CiAgICAgdm9pZCBlbnF1ZXVlQmxvYkZyYW1lKFdlYlNvY2tldEZy
YW1lOjpPcENvZGUsIGNvbnN0IEJsb2ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5jcHAKaW5kZXggYzc0ODY1NTdhM2Y4YWZkODgwZWFlOTk5ZGVlNjlkYjU4OTc4
NDE2Zi4uNzYyZGM0MzY5MTU4MjA5MmRjNGU3YmQ3NjE5OTdlNzE1NDAzZDVmMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCkBAIC04OSwyNCArODksMjQgQEAg
U3RyaW5nIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpleHRlbnNpb25zKCkKICAg
ICByZXR1cm4gbV93b3JrZXJDbGllbnRXcmFwcGVyLT5leHRlbnNpb25zKCk7CiB9CiAKLWJvb2wg
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQorVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgV29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWw6OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAg
IGlmICghbV9icmlkZ2UpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kRmFpbDsKICAgICByZXR1cm4gbV9icmlkZ2Ut
PnNlbmQobWVzc2FnZSk7CiB9CiAKLWJvb2wgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6OnNlbmQoY29uc3QgQXJyYXlCdWZmZXImIGJpbmFyeURhdGEpCitUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
c2VuZChjb25zdCBBcnJheUJ1ZmZlciYgYmluYXJ5RGF0YSkKIHsKICAgICBpZiAoIW1fYnJpZGdl
KQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6U2VuZEZhaWw7CiAgICAgcmV0dXJuIG1fYnJpZGdlLT5zZW5kKGJpbmFyeURh
dGEpOwogfQogCi1ib29sIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpzZW5kKGNv
bnN0IEJsb2ImIGJpbmFyeURhdGEpCitUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJl
c3VsdCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6c2VuZChjb25zdCBCbG9iJiBi
aW5hcnlEYXRhKQogewogICAgIGlmICghbV9icmlkZ2UpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgcmV0dXJuIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kRmFpbDsKICAg
ICByZXR1cm4gbV9icmlkZ2UtPnNlbmQoYmluYXJ5RGF0YSk7CiB9CiAKQEAgLTE4MCw3ICsxODAs
NyBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpjb25uZWN0
KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaQogICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwt
PmNvbm5lY3QodXJsLCBwcm90b2NvbCk7CiB9CiAKLXN0YXRpYyB2b2lkIHdvcmtlckNvbnRleHRE
aWRTZW5kKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8VGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiB3b3JrZXJDbGllbnRXcmFwcGVyLCBi
b29sIHNlbmRSZXF1ZXN0UmVzdWx0KQorc3RhdGljIHZvaWQgd29ya2VyQ29udGV4dERpZFNlbmQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+IHdvcmtlckNsaWVudFdyYXBwZXIsIFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IHNlbmRSZXF1ZXN0UmVzdWx0KQogewogICAg
IEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOwogICAg
IHdvcmtlckNsaWVudFdyYXBwZXItPnNldFNlbmRSZXF1ZXN0UmVzdWx0KHNlbmRSZXF1ZXN0UmVz
dWx0KTsKQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpQZWVyOjpzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwogICAgIGlmICghbV9tYWluV2ViU29ja2V0Q2hhbm5lbCB8fCAhbV93b3Jr
ZXJDbGllbnRXcmFwcGVyKQogICAgICAgICByZXR1cm47Ci0gICAgYm9vbCBzZW5kUmVxdWVzdFJl
c3VsdCA9IG1fbWFpbldlYlNvY2tldENoYW5uZWwtPnNlbmQobWVzc2FnZSk7CisgICAgVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZFJlcXVlc3RSZXN1bHQgPSBtX21h
aW5XZWJTb2NrZXRDaGFubmVsLT5zZW5kKG1lc3NhZ2UpOwogICAgIG1fbG9hZGVyUHJveHkucG9z
dFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KGNyZWF0ZUNhbGxiYWNrVGFzaygmd29ya2VyQ29u
dGV4dERpZFNlbmQsIG1fd29ya2VyQ2xpZW50V3JhcHBlciwgc2VuZFJlcXVlc3RSZXN1bHQpLCBt
X3Rhc2tNb2RlKTsKIH0KIApAQCAtMjAwLDcgKzIwMCw3IEBAIHZvaWQgV29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OnNlbmQoY29uc3QgQXJyYXlCdWZmZXImIGJpbmFyeURh
dGEpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBpZiAoIW1fbWFpbldlYlNvY2tl
dENoYW5uZWwgfHwgIW1fd29ya2VyQ2xpZW50V3JhcHBlcikKICAgICAgICAgcmV0dXJuOwotICAg
IGJvb2wgc2VuZFJlcXVlc3RSZXN1bHQgPSBtX21haW5XZWJTb2NrZXRDaGFubmVsLT5zZW5kKGJp
bmFyeURhdGEpOworICAgIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IHNl
bmRSZXF1ZXN0UmVzdWx0ID0gbV9tYWluV2ViU29ja2V0Q2hhbm5lbC0+c2VuZChiaW5hcnlEYXRh
KTsKICAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyQ29udGV4dChjcmVh
dGVDYWxsYmFja1Rhc2soJndvcmtlckNvbnRleHREaWRTZW5kLCBtX3dvcmtlckNsaWVudFdyYXBw
ZXIsIHNlbmRSZXF1ZXN0UmVzdWx0KSwgbV90YXNrTW9kZSk7CiB9CiAKQEAgLTIwOSw3ICsyMDks
NyBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpzZW5kKGNv
bnN0IEJsb2ImIGJpbmFyeURhdGEpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBp
ZiAoIW1fbWFpbldlYlNvY2tldENoYW5uZWwgfHwgIW1fd29ya2VyQ2xpZW50V3JhcHBlcikKICAg
ICAgICAgcmV0dXJuOwotICAgIGJvb2wgc2VuZFJlcXVlc3RSZXN1bHQgPSBtX21haW5XZWJTb2Nr
ZXRDaGFubmVsLT5zZW5kKGJpbmFyeURhdGEpOworICAgIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsOjpTZW5kUmVzdWx0IHNlbmRSZXF1ZXN0UmVzdWx0ID0gbV9tYWluV2ViU29ja2V0Q2hhbm5l
bC0+c2VuZChiaW5hcnlEYXRhKTsKICAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRv
V29ya2VyQ29udGV4dChjcmVhdGVDYWxsYmFja1Rhc2soJndvcmtlckNvbnRleHREaWRTZW5kLCBt
X3dvcmtlckNsaWVudFdyYXBwZXIsIHNlbmRSZXF1ZXN0UmVzdWx0KSwgbV90YXNrTW9kZSk7CiB9
CiAKQEAgLTQzMiwyMyArNDMyLDI1IEBAIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw6Om1haW5UaHJlYWRTZW5kQmxvYihTY3JpcHRFeGVjdXRpb25Db250ZXh0CiAgICAgcGVl
ci0+c2VuZCgqYmxvYik7CiB9CiAKLWJvb2wgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6OkJyaWRnZTo6c2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCitUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
QnJpZGdlOjpzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpZiAoIW1fd29ya2Vy
Q2xpZW50V3JhcHBlcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRGYWlsOwogICAgIEFTU0VSVChtX3BlZXIpOwog
ICAgIHNldE1ldGhvZE5vdENvbXBsZXRlZCgpOwogICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tU
b0xvYWRlcihjcmVhdGVDYWxsYmFja1Rhc2soJldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsOjptYWluVGhyZWFkU2VuZCwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcyhtX3BlZXIpLCBtZXNz
YWdlKSk7CiAgICAgUmVmUHRyPEJyaWRnZT4gcHJvdGVjdCh0aGlzKTsKICAgICB3YWl0Rm9yTWV0
aG9kQ29tcGxldGlvbigpOwogICAgIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlciogY2xpZW50V3JhcHBlciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlci5nZXQoKTsKLSAgICBy
ZXR1cm4gY2xpZW50V3JhcHBlciAmJiBjbGllbnRXcmFwcGVyLT5zZW5kUmVxdWVzdFJlc3VsdCgp
OworICAgIGlmICghY2xpZW50V3JhcHBlcikKKyAgICAgICAgcmV0dXJuIFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpTZW5kRmFpbDsKKyAgICByZXR1cm4gY2xpZW50V3JhcHBlci0+c2VuZFJl
cXVlc3RSZXN1bHQoKTsKIH0KIAotYm9vbCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bDo6QnJpZGdlOjpzZW5kKGNvbnN0IEFycmF5QnVmZmVyJiBiaW5hcnlEYXRhKQorVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw6OkJyaWRnZTo6c2VuZChjb25zdCBBcnJheUJ1ZmZlciYgYmluYXJ5RGF0YSkKIHsKICAg
ICBpZiAoIW1fd29ya2VyQ2xpZW50V3JhcHBlcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXR1cm4gVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRGYWlsOwogICAgIEFT
U0VSVChtX3BlZXIpOwogICAgIC8vIEFycmF5QnVmZmVyIGlzbid0IHRocmVhZC1zYWZlLCBoZW5j
ZSB0aGUgY29udGVudCBvZiBBcnJheUJ1ZmZlciBpcyBjb3BpZWQgaW50byBWZWN0b3I8Y2hhcj4u
CiAgICAgT3duUHRyPFZlY3RvcjxjaGFyPiA+IGRhdGEgPSBhZG9wdFB0cihuZXcgVmVjdG9yPGNo
YXI+KGJpbmFyeURhdGEuYnl0ZUxlbmd0aCgpKSk7CkBAIC00NTksMjAgKzQ2MSwyNCBAQCBib29s
IFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OnNlbmQoY29uc3QgQXJy
YXlCdWZmZXImIGJpbmFyeURhdAogICAgIFJlZlB0cjxCcmlkZ2U+IHByb3RlY3QodGhpcyk7CiAg
ICAgd2FpdEZvck1ldGhvZENvbXBsZXRpb24oKTsKICAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXIqIGNsaWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXIu
Z2V0KCk7Ci0gICAgcmV0dXJuIGNsaWVudFdyYXBwZXIgJiYgY2xpZW50V3JhcHBlci0+c2VuZFJl
cXVlc3RSZXN1bHQoKTsKKyAgICBpZiAoIWNsaWVudFdyYXBwZXIpCisgICAgICAgIHJldHVybiBU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZEZhaWw7CisgICAgcmV0dXJuIGNsaWVudFdy
YXBwZXItPnNlbmRSZXF1ZXN0UmVzdWx0KCk7CiB9CiAKLWJvb2wgV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWw6OkJyaWRnZTo6c2VuZChjb25zdCBCbG9iJiBiaW5hcnlEYXRhKQorVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw6OkJyaWRnZTo6c2VuZChjb25zdCBCbG9iJiBiaW5hcnlEYXRhKQogewogICAg
IGlmICghbV93b3JrZXJDbGllbnRXcmFwcGVyKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIHJldHVybiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZEZhaWw7CiAgICAgQVNT
RVJUKG1fcGVlcik7CiAgICAgc2V0TWV0aG9kTm90Q29tcGxldGVkKCk7CiAgICAgbV9sb2FkZXJQ
cm94eS5wb3N0VGFza1RvTG9hZGVyKGNyZWF0ZUNhbGxiYWNrVGFzaygmV29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6Om1haW5UaHJlYWRTZW5kQmxvYiwgQWxsb3dDcm9zc1RocmVhZEFj
Y2VzcyhtX3BlZXIpLCBiaW5hcnlEYXRhLnVybCgpLCBiaW5hcnlEYXRhLnR5cGUoKSwgYmluYXJ5
RGF0YS5zaXplKCkpKTsKICAgICBSZWZQdHI8QnJpZGdlPiBwcm90ZWN0KHRoaXMpOwogICAgIHdh
aXRGb3JNZXRob2RDb21wbGV0aW9uKCk7CiAgICAgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyKiBjbGllbnRXcmFwcGVyID0gbV93b3JrZXJDbGllbnRXcmFwcGVyLmdldCgp
OwotICAgIHJldHVybiBjbGllbnRXcmFwcGVyICYmIGNsaWVudFdyYXBwZXItPnNlbmRSZXF1ZXN0
UmVzdWx0KCk7CisgICAgaWYgKCFjbGllbnRXcmFwcGVyKQorICAgICAgICByZXR1cm4gVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRGYWlsOworICAgIHJldHVybiBjbGllbnRXcmFwcGVy
LT5zZW5kUmVxdWVzdFJlc3VsdCgpOwogfQogCiB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjptYWluVGhyZWFkQnVmZmVyZWRBbW91bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgUGVlciogcGVlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmgKaW5kZXggMzE3ZmNlOTNjZWZhMTNlMTMzMDRhNjcxZWE5ZmJmNzE5MTMwZGRjOC4uZmE4
MTZkYTc2N2QxODcxMjgzOGZhYTI2MDZhNjJkNTU1NGI0ZDE1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKQEAgLTY1LDkgKzY1LDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBjb25uZWN0KGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBzdWJwcm90b2NvbCgpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgU3RyaW5nIGV4dGVuc2lvbnMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
c2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBz
ZW5kKGNvbnN0IEFycmF5QnVmZmVyJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNlbmQo
Y29uc3QgQmxvYiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw6OlNlbmRSZXN1bHQgc2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZChj
b25zdCBBcnJheUJ1ZmZlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZChjb25zdCBCbG9iJikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGNsb3NlKGludCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pIE9WRVJS
SURFOwpAQCAtMTMyLDkgKzEzMiw5IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICAgICAgfkJy
aWRnZSgpOwogICAgICAgICB2b2lkIGNvbm5lY3QoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYg
cHJvdG9jb2wpOwotICAgICAgICBib29sIHNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAg
ICAgICAgYm9vbCBzZW5kKGNvbnN0IEFycmF5QnVmZmVyJik7Ci0gICAgICAgIGJvb2wgc2VuZChj
b25zdCBCbG9iJik7CisgICAgICAgIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVz
dWx0IHNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICAgICAgVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZChjb25zdCBBcnJheUJ1ZmZlciYpOworICAgICAg
ICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBzZW5kKGNvbnN0IEJsb2Im
KTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCgpOwogICAgICAgICB2b2lk
IGNsb3NlKGludCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CiAgICAgICAgIHZvaWQgZmFp
bChjb25zdCBTdHJpbmcmIHJlYXNvbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130484</attachid>
            <date>2012-03-06 17:21:27 -0800</date>
            <delta_ts>2012-03-06 21:14:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80356-20120307102126.patch</filename>
            <type>text/plain</type>
            <size>23689</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc0ZDZmYWJmOGFjNjc1
OWZlYWNjMGZkZTNkNjM0YmJhOTY1MTU4OC4uZTQzYTk4ZGIyYTlhOTA2YTkwNGI4Nzc4MzZlYjgx
YmE2ZDMwNzdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAzLTA2ICBLZW5p
Y2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViU29ja2V0
XSBJbnRyb2R1Y2UgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMzU2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlZCBUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCB0eXBlIHNvIHRoYXQKKyAgICAgICAg
V2ViU29ja2V0Q2hhbm5lbCBjYW4gcGFzcyB0aGUgdmFsaWRhdGlvbiByZXN1bHQuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3QuIE5vIGNoYW5nZXMgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaDogQWRkZWQgU2VuZFJl
c3VsdC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlcjo6c2VuZFJlcXVlc3RSZXN1bHQpOiBVc2UgVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OlNlbmRSZXN1bHQgaW5zdGVhZCBvZiBib29sLgorICAgICAgICAoV2ViQ29yZTo6
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpzZXRTZW5kUmVxdWVzdFJl
c3VsdCk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaDoKKyAgICAgICAgKFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6
c2VuZCk6IFVzZSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBpbnN0ZWFk
IG9mIGJvb2wuIFBhc3MgQ3N0cmluZyB0byBlbnF1ZVRleHRGcmFtZSBpbnN0ZWFkIG9mIFN0cmlu
Zy4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmVucXVldWVUZXh0RnJhbWUp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRn
b2luZ0ZyYW1lUXVldWUpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2ViU29ja2V0Q2hhbm5lbCk6CisgICAgICAgIChR
dWV1ZWRGcmFtZSk6IENoYW5nZWQgdGhlIHR5cGUgb2Ygc3RyaW5nRGF0YSBmcm9tIFN0cmluZyB0
byBDU3RyaW5nLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6c2VuZCk6IFVzZSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
U2VuZFJlc3VsdCBpbnN0ZWFkIG9mIGJvb2wuCisgICAgICAgIChXZWJDb3JlOjp3b3JrZXJDb250
ZXh0RGlkU2VuZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWw6OlBlZXI6OnNlbmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OnNlbmQpOiBEaXR0by4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuaDoKKyAgICAgICAgKFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKTogZGl0dG8u
CisgICAgICAgIChCcmlkZ2UpOiBEaXR0by4KKwogMjAxMi0wMy0wNiAgVmFuZ2VsaXMgS29ra2V2
aXMgIDx2YW5nZWxpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBJbmNyZWFz
ZSB0aGUgYWNjZWxlcmF0ZWQgY2FudmFzIG1pbiBzaXplIHRvIDI1NiAqIDI1NgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCAzZjkyMTk0ZTM0ZDI5MGIyNjI0MzhhODI2Nzg4MjhjM2VlZDQw
YmVhLi5jYTVjMTdjYTFmYTkxYWY0MTE4MzRiNTgyNzEyZjI0MzdlOWNhOTA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAzLTA2ICBLZW5pY2hpIElz
aGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViU29ja2V0XSBJbnRy
b2R1Y2UgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMzU2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViU29ja2V0SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldEltcGw6OnNlbmRUZXh0KTogQ2hlY2tzIHdo
ZXRoZXIgdGhlIHJldHVybiB2YWx1ZSBvZiBzZW5kKCkgaXMgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw6OlNlbmRTdWNjZXNzLgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRJbXBsOjpzZW5k
QXJyYXlCdWZmZXIpOiBEaXR0by4KKwogMjAxMi0wMy0wNiAgRGF2aWQgR3JvZ2FuICA8ZGdyb2dh
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBBZGQgT1ZFUlJJREVzIHRvIFdl
YldvcmtlckNsaWVudEltcGwuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAppbmRleCBhMTQ1
ODJhOGZkOGJjM2JlZGQ3NjkyOTczZDEwMDJhNjEzMTIyMDllLi4zMmVhOGFhZTFmYWZkMWYyMGFh
ZDkyMzczN2I3NjI4OTI5MDFmOWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaApAQCAt
NTAsMTMgKzUwLDE5IEBAIHB1YmxpYzoKICAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCgp
IHsgfQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsPiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFdlYlNvY2tldENoYW5uZWxDbGllbnQqKTsK
IAorICAgIGVudW0gU2VuZFJlc3VsdCB7CisgICAgICAgIFNlbmRTdWNjZXNzLAorICAgICAgICBT
ZW5kRmFpbCwKKyAgICAgICAgSW52YWxpZE1lc3NhZ2UKKyAgICB9OworCiAgICAgdmlydHVhbCBi
b29sIHVzZUhpeGllNzZQcm90b2NvbCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdChj
b25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkgPSAwOwogICAgIHZpcnR1YWwgU3Ry
aW5nIHN1YnByb3RvY29sKCkgPSAwOyAvLyBXaWxsIGJlIGF2YWlsYWJsZSBhZnRlciBkaWRDb25u
ZWN0KCkgY2FsbGJhY2sgaXMgaW52b2tlZC4KICAgICB2aXJ0dWFsIFN0cmluZyBleHRlbnNpb25z
KCkgPSAwOyAvLyBXaWxsIGJlIGF2YWlsYWJsZSBhZnRlciBkaWRDb25uZWN0KCkgY2FsbGJhY2sg
aXMgaW52b2tlZC4KLSAgICB2aXJ0dWFsIGJvb2wgc2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgc2VuZChjb25zdCBBcnJheUJ1ZmZlciYpID0gMDsKLSAg
ICB2aXJ0dWFsIGJvb2wgc2VuZChjb25zdCBCbG9iJikgPSAwOworICAgIHZpcnR1YWwgU2VuZFJl
c3VsdCBzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgPSAwOworICAgIHZpcnR1YWwgU2VuZFJl
c3VsdCBzZW5kKGNvbnN0IEFycmF5QnVmZmVyJikgPSAwOworICAgIHZpcnR1YWwgU2VuZFJlc3Vs
dCBzZW5kKGNvbnN0IEJsb2ImKSA9IDA7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGJ1ZmZl
cmVkQW1vdW50KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShpbnQgY29kZSwg
Y29uc3QgU3RyaW5nJiByZWFzb24pID0gMDsKICAgICAvLyBMb2cgdGhlIHJlYXNvbiB0ZXh0IGFu
ZCBjbG9zZSB0aGUgY29ubmVjdGlvbi4gV2lsbCBjYWxsIGRpZENsb3NlKCkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCmluZGV4IGRjYjE4
MDJhMjg5OGJmM2I4ODQ3NTFlZjg3MzBlMjNiYzc1MTA2ZDcuLjlhNGYzZmEyMzMxMmQ4NWU5ZWUw
MzUwN2MwMzQxNWE0ZmE5MDI3MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCkBAIC00Niw3ICs0Niw3IEBAIFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3N5bmNNZXRob2REb25l
KHRydWUpCiAgICAgLCBtX3VzZUhpeGllNzZQcm90b2NvbCh0cnVlKQotICAgICwgbV9zZW5kUmVx
dWVzdFJlc3VsdChmYWxzZSkKKyAgICAsIG1fc2VuZFJlcXVlc3RSZXN1bHQoVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWw6OlNlbmRGYWlsKQogICAgICwgbV9idWZmZXJlZEFtb3VudCgwKQogICAg
ICwgbV9zdXNwZW5kZWQoZmFsc2UpCiB7CkBAIC0xMTIsMTIgKzExMiwxMiBAQCB2b2lkIFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c2V0RXh0ZW5zaW9ucyhjb25zdCBT
dHJpbmcmIGV4dGVucwogICAgICAgICBtZW1jcHkobV9leHRlbnNpb25zLmRhdGEoKSwgZXh0ZW5z
aW9ucy5jaGFyYWN0ZXJzKCksIHNpemVvZihVQ2hhcikgKiBsZW5ndGgpOwogfQogCi1ib29sIFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c2VuZFJlcXVlc3RSZXN1bHQo
KSBjb25zdAorVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpzZW5kUmVxdWVzdFJlc3VsdCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fc2VuZFJlcXVlc3RSZXN1bHQ7CiB9CiAKLXZvaWQgVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpzZXRTZW5kUmVxdWVzdFJlc3VsdChib29s
IHNlbmRSZXF1ZXN0UmVzdWx0KQordm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXI6OnNldFNlbmRSZXF1ZXN0UmVzdWx0KFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
OjpTZW5kUmVzdWx0IHNlbmRSZXF1ZXN0UmVzdWx0KQogewogICAgIG1fc2VuZFJlcXVlc3RSZXN1
bHQgPSBzZW5kUmVxdWVzdFJlc3VsdDsKICAgICBtX3N5bmNNZXRob2REb25lID0gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAppbmRleCA0
YjliN2ZkZTcyYjljZjBlNjk3MDM5OTBjYmFkNmFlNzI3NzIxNzRjLi5iZmQxMDYzODFmMWIyMWIy
MzRlMjkwNDA2ZTgzODYyNmNmODE2MzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCkBAIC0zNSw2ICszNSw3IEBACiAKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNp
bmNsdWRlICJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIgogI2luY2x1ZGUgIldlYlNvY2tl
dENoYW5uZWxDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KQEAgLTY2LDggKzY3LDggQEAgcHVibGljOgogICAgIFN0cmluZyBleHRlbnNp
b25zKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRFeHRlbnNpb25zKGNvbnN0IFN0cmluZyYpOwogCi0g
ICAgYm9vbCBzZW5kUmVxdWVzdFJlc3VsdCgpIGNvbnN0OwotICAgIHZvaWQgc2V0U2VuZFJlcXVl
c3RSZXN1bHQoYm9vbCk7CisgICAgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1
bHQgc2VuZFJlcXVlc3RSZXN1bHQoKSBjb25zdDsKKyAgICB2b2lkIHNldFNlbmRSZXF1ZXN0UmVz
dWx0KFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0KTsKIAogICAgIHVuc2ln
bmVkIGxvbmcgYnVmZmVyZWRBbW91bnQoKSBjb25zdDsKICAgICB2b2lkIHNldEJ1ZmZlcmVkQW1v
dW50KHVuc2lnbmVkIGxvbmcpOwpAQCAtMTA0LDcgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgLy8g
VGhyZWFkU2FmZVJlZkNvdW50ZWQgbXVzdCBub3QgaGF2ZSBTdHJpbmcgbWVtYmVyIHZhcmlhYmxl
cy4KICAgICBWZWN0b3I8VUNoYXI+IG1fc3VicHJvdG9jb2w7CiAgICAgVmVjdG9yPFVDaGFyPiBt
X2V4dGVuc2lvbnM7Ci0gICAgYm9vbCBtX3NlbmRSZXF1ZXN0UmVzdWx0OworICAgIFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IG1fc2VuZFJlcXVlc3RSZXN1bHQ7CiAgICAg
dW5zaWduZWQgbG9uZyBtX2J1ZmZlcmVkQW1vdW50OwogICAgIGJvb2wgbV9zdXNwZW5kZWQ7CiAg
ICAgVmVjdG9yPE93blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiA+IG1fcGVuZGlu
Z1Rhc2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmNwcAppbmRleCA3ZGQ4NTRlZDE1MmEzMjFmMDQ5MjExMmNlNTVhN2YxMDllODkzM2U3Li5lOWQ5
Y2U2ZmJmODJjMTNiYzJmMWMyMGFiNmFiY2I2NmZlMjkwZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtMjkwLDcgKzI5MCw3IEBA
IGJvb2wgV2ViU29ja2V0OjpzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiAgICAgfQogICAgIC8vIEZJWE1FOiBjaGVjayBtZXNzYWdlIGlzIHZhbGlkIHV0Zjgu
CiAgICAgQVNTRVJUKG1fY2hhbm5lbCk7Ci0gICAgcmV0dXJuIG1fY2hhbm5lbC0+c2VuZChtZXNz
YWdlKTsKKyAgICByZXR1cm4gbV9jaGFubmVsLT5zZW5kKG1lc3NhZ2UpID09IFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsOjpTZW5kU3VjY2VzczsKIH0KIAogYm9vbCBXZWJTb2NrZXQ6OnNlbmQo
QXJyYXlCdWZmZXIqIGJpbmFyeURhdGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMzEwLDcgKzMx
MCw3IEBAIGJvb2wgV2ViU29ja2V0OjpzZW5kKEFycmF5QnVmZmVyKiBiaW5hcnlEYXRhLCBFeGNl
cHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBBU1NFUlQo
bV9jaGFubmVsKTsKLSAgICByZXR1cm4gbV9jaGFubmVsLT5zZW5kKCpiaW5hcnlEYXRhKTsKKyAg
ICByZXR1cm4gbV9jaGFubmVsLT5zZW5kKCpiaW5hcnlEYXRhKSA9PSBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6U2VuZFN1Y2Nlc3M7CiB9CiAKIGJvb2wgV2ViU29ja2V0OjpzZW5kKEJsb2Iq
IGJpbmFyeURhdGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMzMwLDcgKzMzMCw3IEBAIGJvb2wg
V2ViU29ja2V0OjpzZW5kKEJsb2IqIGJpbmFyeURhdGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIEFTU0VSVChtX2NoYW5uZWwpOwotICAgIHJl
dHVybiBtX2NoYW5uZWwtPnNlbmQoKmJpbmFyeURhdGEpOworICAgIHJldHVybiBtX2NoYW5uZWwt
PnNlbmQoKmJpbmFyeURhdGEpID09IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kU3Vj
Y2VzczsKIH0KIAogdm9pZCBXZWJTb2NrZXQ6OmNsb3NlKGludCBjb2RlLCBjb25zdCBTdHJpbmcm
IHJlYXNvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggMWVjMjU5Zjc4ODQx
YmY5MTEzZDVmZDQyODQ0Y2RiZDFjNTI5OTdlMy4uZmI4N2QzOGNkZTY0OGQxMmRjYjhlMThkMDVm
MTU1NDJlNTA2ZmMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMTU3LDM3ICsxNTcsMzcgQEAgU3RyaW5n
IFdlYlNvY2tldENoYW5uZWw6OmV4dGVuc2lvbnMoKQogICAgIHJldHVybiBleHRlbnNpb25zOwog
fQogCi1ib29sIFdlYlNvY2tldENoYW5uZWw6OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQor
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgV2ViU29ja2V0Q2hhbm5lbDo6
c2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2Nr
ZXRDaGFubmVsICVwIHNlbmQgJXMiLCB0aGlzLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOworICAg
IENTdHJpbmcgdXRmOCA9IG1lc3NhZ2UudXRmOCgpOwogICAgIGlmIChtX3VzZUhpeGllNzZQcm90
b2NvbCkgewotICAgICAgICBDU3RyaW5nIHV0ZjggPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICAgICAg
cmV0dXJuIHNlbmRGcmFtZUhpeGllNzYodXRmOC5kYXRhKCksIHV0ZjgubGVuZ3RoKCkpOworICAg
ICAgICByZXR1cm4gc2VuZEZyYW1lSGl4aWU3Nih1dGY4LmRhdGEoKSwgdXRmOC5sZW5ndGgoKSkg
PyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFN1Y2Nlc3MgOiBUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbDo6U2VuZEZhaWw7CiAgICAgfQotICAgIGVucXVldWVUZXh0RnJhbWUobWVz
c2FnZSk7CisgICAgZW5xdWV1ZVRleHRGcmFtZSh1dGY4KTsKICAgICAvLyBBY2NvcmRpbmcgdG8g
V2ViU29ja2V0IEFQSSBzcGVjaWZpY2F0aW9uLCBXZWJTb2NrZXQuc2VuZCgpIHNob3VsZCByZXR1
cm4gdm9pZCBpbnN0ZWFkCiAgICAgLy8gb2YgYm9vbGVhbi4gSG93ZXZlciwgb3VyIGltcGxlbWVu
dGF0aW9uIHN0aWxsIHJldHVybnMgYm9vbGVhbiBkdWUgdG8gY29tcGF0aWJpbGl0eQogICAgIC8v
IGNvbmNlcm4gKHNlZSBidWcgNjU4NTApLgogICAgIC8vIG1fY2hhbm5lbC0+c2VuZCgpIG1heSBo
YXBwZW4gbGF0ZXIsIHRodXMgaXQncyBub3QgYWx3YXlzIHBvc3NpYmxlIHRvIGtub3cgd2hldGhl
cgogICAgIC8vIHRoZSBtZXNzYWdlIGhhcyBiZWVuIHNlbnQgdG8gdGhlIHNvY2tldCBzdWNjZXNz
ZnVsbHkuIEluIHRoaXMgY2FzZSwgd2UgaGF2ZSBubyBjaG9pY2UKICAgICAvLyBidXQgdG8gcmV0
dXJuIHRydWUuCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpTZW5kU3VjY2VzczsKIH0KIAotYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpzZW5k
KGNvbnN0IEFycmF5QnVmZmVyJiBiaW5hcnlEYXRhKQorVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6OlNlbmRSZXN1bHQgV2ViU29ja2V0Q2hhbm5lbDo6c2VuZChjb25zdCBBcnJheUJ1ZmZlciYg
YmluYXJ5RGF0YSkKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAgc2Vu
ZCBhcnJheWJ1ZmZlciAlcCIsIHRoaXMsICZiaW5hcnlEYXRhKTsKICAgICBBU1NFUlQoIW1fdXNl
SGl4aWU3NlByb3RvY29sKTsKICAgICBlbnF1ZXVlUmF3RnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9w
Q29kZUJpbmFyeSwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGJpbmFyeURhdGEuZGF0YSgpKSwg
YmluYXJ5RGF0YS5ieXRlTGVuZ3RoKCkpOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFN1Y2Nlc3M7CiB9CiAKLWJvb2wgV2ViU29j
a2V0Q2hhbm5lbDo6c2VuZChjb25zdCBCbG9iJiBiaW5hcnlEYXRhKQorVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw6OlNlbmRSZXN1bHQgV2ViU29ja2V0Q2hhbm5lbDo6c2VuZChjb25zdCBCbG9i
JiBiaW5hcnlEYXRhKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBz
ZW5kIGJsb2IgJXMiLCB0aGlzLCBiaW5hcnlEYXRhLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwogICAgIEFTU0VSVCghbV91c2VIaXhpZTc2UHJvdG9jb2wpOwogICAgIGVucXVldWVCbG9i
RnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZUJpbmFyeSwgYmluYXJ5RGF0YSk7Ci0gICAgcmV0
dXJuIHRydWU7CisgICAgcmV0dXJuIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kU3Vj
Y2VzczsKIH0KIAogYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kKGNvbnN0IGNoYXIqIGRhdGEs
IGludCBsZW5ndGgpCkBAIC04NTYsNyArODU2LDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpw
cm9jZXNzRnJhbWVIaXhpZTc2KCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViU29j
a2V0Q2hhbm5lbDo6ZW5xdWV1ZVRleHRGcmFtZShjb25zdCBTdHJpbmcmIHN0cmluZykKK3ZvaWQg
V2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZVRleHRGcmFtZShjb25zdCBDU3RyaW5nJiBzdHJpbmcp
CiB7CiAgICAgQVNTRVJUKCFtX3VzZUhpeGllNzZQcm90b2NvbCk7CiAgICAgQVNTRVJUKG1fb3V0
Z29pbmdGcmFtZVF1ZXVlU3RhdHVzID09IE91dGdvaW5nRnJhbWVRdWV1ZU9wZW4pOwpAQCAtOTA0
LDggKzkwNCw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVR
dWV1ZSgpCiAgICAgICAgIE93blB0cjxRdWV1ZWRGcmFtZT4gZnJhbWUgPSBtX291dGdvaW5nRnJh
bWVRdWV1ZS50YWtlRmlyc3QoKTsKICAgICAgICAgc3dpdGNoIChmcmFtZS0+ZnJhbWVUeXBlKSB7
CiAgICAgICAgIGNhc2UgUXVldWVkRnJhbWVUeXBlU3RyaW5nOiB7Ci0gICAgICAgICAgICBDU3Ry
aW5nIHV0ZjggPSBmcmFtZS0+c3RyaW5nRGF0YS51dGY4KCk7Ci0gICAgICAgICAgICBpZiAoIXNl
bmRGcmFtZShmcmFtZS0+b3BDb2RlLCB1dGY4LmRhdGEoKSwgdXRmOC5sZW5ndGgoKSkpCisgICAg
ICAgICAgICBpZiAoIXNlbmRGcmFtZShmcmFtZS0+b3BDb2RlLCBmcmFtZS0+c3RyaW5nRGF0YS5k
YXRhKCksIGZyYW1lLT5zdHJpbmdEYXRhLmxlbmd0aCgpKSkKICAgICAgICAgICAgICAgICBmYWls
KCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUuIik7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggNmQxZmViYmNhMDZlMWVkN2Q1Y2VlMTUwZDg3NjBhZjc4
MDQ2MjE2Ni4uNjJiNGZkMzVmOTM2NjU5OGJjOTVhYTA1NWY0N2FmYTVjOTZkNjVhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5oCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzEsOSArNzIs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3QoY29uc3QgS1VSTCYsIGNvbnN0
IFN0cmluZyYgcHJvdG9jb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHN1YnByb3Rv
Y29sKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgZXh0ZW5zaW9ucygpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIHNlbmQoY29uc3QgQXJyYXlCdWZmZXImKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgc2VuZChjb25zdCBCbG9iJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBzZW5kKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bDo6U2VuZFJlc3VsdCBzZW5kKGNvbnN0IEFycmF5QnVmZmVyJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBzZW5kKGNvbnN0IEJs
b2ImKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQo
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0
IFN0cmluZyYgcmVhc29uKSBPVkVSUklERTsgLy8gU3RhcnQgY2xvc2luZyBoYW5kc2hha2UuCiAg
ICAgdmlydHVhbCB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pIE9WRVJSSURFOwpAQCAt
MTYwLDExICsxNjEsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgV2ViU29ja2V0RnJhbWU6Ok9wQ29k
ZSBvcENvZGU7CiAgICAgICAgIFF1ZXVlZEZyYW1lVHlwZSBmcmFtZVR5cGU7CiAgICAgICAgIC8v
IE9ubHkgb25lIG9mIHRoZSBmb2xsb3dpbmcgaXRlbXMgaXMgdXNlZCwgYWNjb3JkaW5nIHRvIHRo
ZSB2YWx1ZSBvZiBmcmFtZVR5cGUuCi0gICAgICAgIFN0cmluZyBzdHJpbmdEYXRhOworICAgICAg
ICBDU3RyaW5nIHN0cmluZ0RhdGE7CiAgICAgICAgIFZlY3RvcjxjaGFyPiB2ZWN0b3JEYXRhOwog
ICAgICAgICBSZWZQdHI8QmxvYj4gYmxvYkRhdGE7CiAgICAgfTsKLSAgICB2b2lkIGVucXVldWVU
ZXh0RnJhbWUoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBlbnF1ZXVlVGV4dEZyYW1lKGNvbnN0
IENTdHJpbmcmKTsKICAgICB2b2lkIGVucXVldWVSYXdGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BD
b2RlLCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCk7CiAgICAgdm9pZCBlbnF1
ZXVlQmxvYkZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGUsIGNvbnN0IEJsb2ImKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggYzc0ODY1NTdhM2Y4
YWZkODgwZWFlOTk5ZGVlNjlkYjU4OTc4NDE2Zi4uNzYyZGM0MzY5MTU4MjA5MmRjNGU3YmQ3NjE5
OTdlNzE1NDAzZDVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
Y3BwCkBAIC04OSwyNCArODksMjQgQEAgU3RyaW5nIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpleHRlbnNpb25zKCkKICAgICByZXR1cm4gbV93b3JrZXJDbGllbnRXcmFwcGVyLT5l
eHRlbnNpb25zKCk7CiB9CiAKLWJvb2wgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6
OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6
OlNlbmRSZXN1bHQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OnNlbmQoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlmICghbV9icmlkZ2UpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgcmV0dXJuIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kRmFp
bDsKICAgICByZXR1cm4gbV9icmlkZ2UtPnNlbmQobWVzc2FnZSk7CiB9CiAKLWJvb2wgV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OnNlbmQoY29uc3QgQXJyYXlCdWZmZXImIGJpbmFy
eURhdGEpCitUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBXb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6c2VuZChjb25zdCBBcnJheUJ1ZmZlciYgYmluYXJ5RGF0
YSkKIHsKICAgICBpZiAoIW1fYnJpZGdlKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IHJldHVybiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZEZhaWw7CiAgICAgcmV0dXJu
IG1fYnJpZGdlLT5zZW5kKGJpbmFyeURhdGEpOwogfQogCi1ib29sIFdvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsOjpzZW5kKGNvbnN0IEJsb2ImIGJpbmFyeURhdGEpCitUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbDo6c2VuZChjb25zdCBCbG9iJiBiaW5hcnlEYXRhKQogewogICAgIGlmICghbV9icmlkZ2Up
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpTZW5kRmFpbDsKICAgICByZXR1cm4gbV9icmlkZ2UtPnNlbmQoYmluYXJ5RGF0
YSk7CiB9CiAKQEAgLTE4MCw3ICsxODAsNyBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpQZWVyOjpjb25uZWN0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaQogICAg
IG1fbWFpbldlYlNvY2tldENoYW5uZWwtPmNvbm5lY3QodXJsLCBwcm90b2NvbCk7CiB9CiAKLXN0
YXRpYyB2b2lkIHdvcmtlckNvbnRleHREaWRTZW5kKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFBhc3NSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
PiB3b3JrZXJDbGllbnRXcmFwcGVyLCBib29sIHNlbmRSZXF1ZXN0UmVzdWx0KQorc3RhdGljIHZv
aWQgd29ya2VyQ29udGV4dERpZFNlbmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
UGFzc1JlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+IHdvcmtl
ckNsaWVudFdyYXBwZXIsIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IHNl
bmRSZXF1ZXN0UmVzdWx0KQogewogICAgIEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC0+
aXNXb3JrZXJDb250ZXh0KCkpOwogICAgIHdvcmtlckNsaWVudFdyYXBwZXItPnNldFNlbmRSZXF1
ZXN0UmVzdWx0KHNlbmRSZXF1ZXN0UmVzdWx0KTsKQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIFdv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpzZW5kKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIGlmICghbV9tYWluV2Vi
U29ja2V0Q2hhbm5lbCB8fCAhbV93b3JrZXJDbGllbnRXcmFwcGVyKQogICAgICAgICByZXR1cm47
Ci0gICAgYm9vbCBzZW5kUmVxdWVzdFJlc3VsdCA9IG1fbWFpbldlYlNvY2tldENoYW5uZWwtPnNl
bmQobWVzc2FnZSk7CisgICAgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQg
c2VuZFJlcXVlc3RSZXN1bHQgPSBtX21haW5XZWJTb2NrZXRDaGFubmVsLT5zZW5kKG1lc3NhZ2Up
OwogICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KGNyZWF0
ZUNhbGxiYWNrVGFzaygmd29ya2VyQ29udGV4dERpZFNlbmQsIG1fd29ya2VyQ2xpZW50V3JhcHBl
ciwgc2VuZFJlcXVlc3RSZXN1bHQpLCBtX3Rhc2tNb2RlKTsKIH0KIApAQCAtMjAwLDcgKzIwMCw3
IEBAIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OnNlbmQoY29u
c3QgQXJyYXlCdWZmZXImIGJpbmFyeURhdGEpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
ICAgICBpZiAoIW1fbWFpbldlYlNvY2tldENoYW5uZWwgfHwgIW1fd29ya2VyQ2xpZW50V3JhcHBl
cikKICAgICAgICAgcmV0dXJuOwotICAgIGJvb2wgc2VuZFJlcXVlc3RSZXN1bHQgPSBtX21haW5X
ZWJTb2NrZXRDaGFubmVsLT5zZW5kKGJpbmFyeURhdGEpOworICAgIFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpTZW5kUmVzdWx0IHNlbmRSZXF1ZXN0UmVzdWx0ID0gbV9tYWluV2ViU29ja2V0
Q2hhbm5lbC0+c2VuZChiaW5hcnlEYXRhKTsKICAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9y
TW9kZVRvV29ya2VyQ29udGV4dChjcmVhdGVDYWxsYmFja1Rhc2soJndvcmtlckNvbnRleHREaWRT
ZW5kLCBtX3dvcmtlckNsaWVudFdyYXBwZXIsIHNlbmRSZXF1ZXN0UmVzdWx0KSwgbV90YXNrTW9k
ZSk7CiB9CiAKQEAgLTIwOSw3ICsyMDksNyBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpQZWVyOjpzZW5kKGNvbnN0IEJsb2ImIGJpbmFyeURhdGEpCiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKICAgICBpZiAoIW1fbWFpbldlYlNvY2tldENoYW5uZWwgfHwgIW1f
d29ya2VyQ2xpZW50V3JhcHBlcikKICAgICAgICAgcmV0dXJuOwotICAgIGJvb2wgc2VuZFJlcXVl
c3RSZXN1bHQgPSBtX21haW5XZWJTb2NrZXRDaGFubmVsLT5zZW5kKGJpbmFyeURhdGEpOworICAg
IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IHNlbmRSZXF1ZXN0UmVzdWx0
ID0gbV9tYWluV2ViU29ja2V0Q2hhbm5lbC0+c2VuZChiaW5hcnlEYXRhKTsKICAgICBtX2xvYWRl
clByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyQ29udGV4dChjcmVhdGVDYWxsYmFja1Rhc2so
JndvcmtlckNvbnRleHREaWRTZW5kLCBtX3dvcmtlckNsaWVudFdyYXBwZXIsIHNlbmRSZXF1ZXN0
UmVzdWx0KSwgbV90YXNrTW9kZSk7CiB9CiAKQEAgLTQzMiwyMyArNDMyLDI1IEBAIHZvaWQgV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6Om1haW5UaHJlYWRTZW5kQmxvYihTY3JpcHRF
eGVjdXRpb25Db250ZXh0CiAgICAgcGVlci0+c2VuZCgqYmxvYik7CiB9CiAKLWJvb2wgV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6c2VuZChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCitUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBXb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKIHsKICAgICBpZiAoIW1fd29ya2VyQ2xpZW50V3JhcHBlcikKLSAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICByZXR1cm4gVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRGYWls
OwogICAgIEFTU0VSVChtX3BlZXIpOwogICAgIHNldE1ldGhvZE5vdENvbXBsZXRlZCgpOwogICAg
IG1fbG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcihjcmVhdGVDYWxsYmFja1Rhc2soJldvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjptYWluVGhyZWFkU2VuZCwgQWxsb3dDcm9zc1Ro
cmVhZEFjY2VzcyhtX3BlZXIpLCBtZXNzYWdlKSk7CiAgICAgUmVmUHRyPEJyaWRnZT4gcHJvdGVj
dCh0aGlzKTsKICAgICB3YWl0Rm9yTWV0aG9kQ29tcGxldGlvbigpOwogICAgIFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlciogY2xpZW50V3JhcHBlciA9IG1fd29ya2VyQ2xp
ZW50V3JhcHBlci5nZXQoKTsKLSAgICByZXR1cm4gY2xpZW50V3JhcHBlciAmJiBjbGllbnRXcmFw
cGVyLT5zZW5kUmVxdWVzdFJlc3VsdCgpOworICAgIGlmICghY2xpZW50V3JhcHBlcikKKyAgICAg
ICAgcmV0dXJuIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kRmFpbDsKKyAgICByZXR1
cm4gY2xpZW50V3JhcHBlci0+c2VuZFJlcXVlc3RSZXN1bHQoKTsKIH0KIAotYm9vbCBXb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpzZW5kKGNvbnN0IEFycmF5QnVmZmVy
JiBiaW5hcnlEYXRhKQorVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6c2VuZChjb25zdCBBcnJheUJ1
ZmZlciYgYmluYXJ5RGF0YSkKIHsKICAgICBpZiAoIW1fd29ya2VyQ2xpZW50V3JhcHBlcikKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw6OlNlbmRGYWlsOwogICAgIEFTU0VSVChtX3BlZXIpOwogICAgIC8vIEFycmF5QnVmZmVy
IGlzbid0IHRocmVhZC1zYWZlLCBoZW5jZSB0aGUgY29udGVudCBvZiBBcnJheUJ1ZmZlciBpcyBj
b3BpZWQgaW50byBWZWN0b3I8Y2hhcj4uCiAgICAgT3duUHRyPFZlY3RvcjxjaGFyPiA+IGRhdGEg
PSBhZG9wdFB0cihuZXcgVmVjdG9yPGNoYXI+KGJpbmFyeURhdGEuYnl0ZUxlbmd0aCgpKSk7CkBA
IC00NTksMjAgKzQ2MSwyNCBAQCBib29sIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
OjpCcmlkZ2U6OnNlbmQoY29uc3QgQXJyYXlCdWZmZXImIGJpbmFyeURhdAogICAgIFJlZlB0cjxC
cmlkZ2U+IHByb3RlY3QodGhpcyk7CiAgICAgd2FpdEZvck1ldGhvZENvbXBsZXRpb24oKTsKICAg
ICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIqIGNsaWVudFdyYXBwZXIg
PSBtX3dvcmtlckNsaWVudFdyYXBwZXIuZ2V0KCk7Ci0gICAgcmV0dXJuIGNsaWVudFdyYXBwZXIg
JiYgY2xpZW50V3JhcHBlci0+c2VuZFJlcXVlc3RSZXN1bHQoKTsKKyAgICBpZiAoIWNsaWVudFdy
YXBwZXIpCisgICAgICAgIHJldHVybiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZEZh
aWw7CisgICAgcmV0dXJuIGNsaWVudFdyYXBwZXItPnNlbmRSZXF1ZXN0UmVzdWx0KCk7CiB9CiAK
LWJvb2wgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6c2VuZChjb25z
dCBCbG9iJiBiaW5hcnlEYXRhKQorVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1
bHQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6c2VuZChjb25zdCBC
bG9iJiBiaW5hcnlEYXRhKQogewogICAgIGlmICghbV93b3JrZXJDbGllbnRXcmFwcGVyKQotICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbDo6U2VuZEZhaWw7CiAgICAgQVNTRVJUKG1fcGVlcik7CiAgICAgc2V0TWV0aG9kTm90Q29t
cGxldGVkKCk7CiAgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1RvTG9hZGVyKGNyZWF0ZUNhbGxi
YWNrVGFzaygmV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6Om1haW5UaHJlYWRTZW5k
QmxvYiwgQWxsb3dDcm9zc1RocmVhZEFjY2VzcyhtX3BlZXIpLCBiaW5hcnlEYXRhLnVybCgpLCBi
aW5hcnlEYXRhLnR5cGUoKSwgYmluYXJ5RGF0YS5zaXplKCkpKTsKICAgICBSZWZQdHI8QnJpZGdl
PiBwcm90ZWN0KHRoaXMpOwogICAgIHdhaXRGb3JNZXRob2RDb21wbGV0aW9uKCk7CiAgICAgVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKiBjbGllbnRXcmFwcGVyID0gbV93
b3JrZXJDbGllbnRXcmFwcGVyLmdldCgpOwotICAgIHJldHVybiBjbGllbnRXcmFwcGVyICYmIGNs
aWVudFdyYXBwZXItPnNlbmRSZXF1ZXN0UmVzdWx0KCk7CisgICAgaWYgKCFjbGllbnRXcmFwcGVy
KQorICAgICAgICByZXR1cm4gVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRGYWlsOwor
ICAgIHJldHVybiBjbGllbnRXcmFwcGVyLT5zZW5kUmVxdWVzdFJlc3VsdCgpOwogfQogCiB2b2lk
IFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjptYWluVGhyZWFkQnVmZmVyZWRBbW91
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGVlciogcGVlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggMzE3ZmNlOTNjZWZhMTNlMTMzMDRh
NjcxZWE5ZmJmNzE5MTMwZGRjOC4uZmE4MTZkYTc2N2QxODcxMjgzOGZhYTI2MDZhNjJkNTU1NGI0
ZDE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKQEAgLTY1LDkg
KzY1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0KGNvbnN0IEtVUkwmLCBj
b25zdCBTdHJpbmcmIHByb3RvY29sKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBzdWJw
cm90b2NvbCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIGV4dGVuc2lvbnMoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBzZW5kKGNvbnN0IEFycmF5QnVmZmVyJikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIHNlbmQoY29uc3QgQmxvYiYpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZChjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpIE9WRVJSSURFOworICAgIHZpcnR1YWwgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw6OlNlbmRSZXN1bHQgc2VuZChjb25zdCBBcnJheUJ1ZmZlciYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZChjb25z
dCBCbG9iJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1v
dW50KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKGludCBjb2RlLCBj
b25zdCBTdHJpbmcmIHJlYXNvbikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGZhaWwoY29u
c3QgU3RyaW5nJiByZWFzb24pIE9WRVJSSURFOwpAQCAtMTMyLDkgKzEzMiw5IEBAIHByaXZhdGU6
CiAgICAgICAgIH0KICAgICAgICAgfkJyaWRnZSgpOwogICAgICAgICB2b2lkIGNvbm5lY3QoY29u
c3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpOwotICAgICAgICBib29sIHNlbmQoY29u
c3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICAgICAgYm9vbCBzZW5kKGNvbnN0IEFycmF5QnVmZmVy
Jik7Ci0gICAgICAgIGJvb2wgc2VuZChjb25zdCBCbG9iJik7CisgICAgICAgIFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IHNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsK
KyAgICAgICAgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZChjb25z
dCBBcnJheUJ1ZmZlciYpOworICAgICAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2Vu
ZFJlc3VsdCBzZW5kKGNvbnN0IEJsb2ImKTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBidWZmZXJl
ZEFtb3VudCgpOwogICAgICAgICB2b2lkIGNsb3NlKGludCBjb2RlLCBjb25zdCBTdHJpbmcmIHJl
YXNvbik7CiAgICAgICAgIHZvaWQgZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTb2NrZXRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNvY2tldEltcGwuY3BwCmluZGV4IGJiYjE2MGYzYzY4
MTAwZTc4ZGFiZTMwZWNmOWY0ODZlN2EwYjMxOGUuLjMwYTYwMzNkMzAxZjMzNGJkYzEwZTkyMjk1
MDZmNjE2NDFjODZhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNvY2tldEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNvY2tl
dEltcGwuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgV2ViU3RyaW5nIFdlYlNvY2tldEltcGw6OmV4
dGVuc2lvbnMoKQogYm9vbCBXZWJTb2NrZXRJbXBsOjpzZW5kVGV4dChjb25zdCBXZWJTdHJpbmcm
IG1lc3NhZ2UpCiB7CiAjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQotICAgIHJldHVybiBtX3ByaXZh
dGUtPnNlbmQobWVzc2FnZSk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2VuZChtZXNzYWdlKSA9
PSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFN1Y2Nlc3M7CiAjZWxzZQogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogI2VuZGlmCkBAIC0xMjYsNyArMTI2LDcgQEAgYm9vbCBXZWJT
b2NrZXRJbXBsOjpzZW5kVGV4dChjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiBib29sIFdlYlNv
Y2tldEltcGw6OnNlbmRBcnJheUJ1ZmZlcihjb25zdCBXZWJBcnJheUJ1ZmZlciYgd2ViQXJyYXlC
dWZmZXIpCiB7CiAjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQotICAgIHJldHVybiBtX3ByaXZhdGUt
PnNlbmQoKlBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+KHdlYkFycmF5QnVmZmVyKSk7CisgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+c2VuZCgqUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4od2ViQXJyYXlCdWZm
ZXIpKSA9PSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFN1Y2Nlc3M7CiAjZWxzZQog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>