<?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>49062</bug_id>
          
          <creation_ts>2010-11-05 03:31:38 -0700</creation_ts>
          <short_desc>Generate the messages sent to the WebProcessProxy</short_desc>
          <delta_ts>2010-11-05 09:23:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>305205</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-11-05 03:31:38 -0700</bug_when>
    <thetext>Generate the messages sent to the WebProcessProxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305207</commentid>
    <comment_count>1</comment_count>
      <attachid>73050</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-11-05 03:43:53 -0700</bug_when>
    <thetext>Created attachment 73050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305293</commentid>
    <comment_count>2</comment_count>
      <attachid>73050</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-11-05 08:27:34 -0700</bug_when>
    <thetext>Comment on attachment 73050
Patch

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

&gt; WebKit2/Scripts/webkit2/messages.py:253
&gt; +        &apos;WebCore::PluginData.h&apos;,

The &quot;.h&quot; seems wrong.

&gt; WebKit2/UIProcess/WebProcessProxy.cpp:232
&gt; +void WebProcessProxy::didPerformClientRedirect(uint64_t pageID, const String&amp; sourceURLString, const String&amp; destinationURLString, uint64_t frameID)
&gt; +{
&gt; +    m_context-&gt;didPerformClientRedirect(webFrame(frameID), sourceURLString, destinationURLString);
&gt; +}

Will the unused pageID variable cause compiler warnings/errors?

Why are we sending along the pageID if we don&apos;t need it?

(These questions apply to a few other functions in this file.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305309</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-11-05 09:16:25 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 73050 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=73050&amp;action=review
&gt; 
&gt; &gt; WebKit2/Scripts/webkit2/messages.py:253
&gt; &gt; +        &apos;WebCore::PluginData.h&apos;,
&gt; 
&gt; The &quot;.h&quot; seems wrong.

Fixed. This would have broken clang and msvc!

&gt; 
&gt; &gt; WebKit2/UIProcess/WebProcessProxy.cpp:232
&gt; &gt; +void WebProcessProxy::didPerformClientRedirect(uint64_t pageID, const String&amp; sourceURLString, const String&amp; destinationURLString, uint64_t frameID)
&gt; &gt; +{
&gt; &gt; +    m_context-&gt;didPerformClientRedirect(webFrame(frameID), sourceURLString, destinationURLString);
&gt; &gt; +}
&gt; 
&gt; Will the unused pageID variable cause compiler warnings/errors?
&gt; 
&gt; Why are we sending along the pageID if we don&apos;t need it?
&gt; 
&gt; (These questions apply to a few other functions in this file.)

Not sure, but it isn&apos;t new. I will talk to Anders/Brady when I get a chance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305313</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-11-05 09:23:41 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/71423.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73050</attachid>
            <date>2010-11-05 03:43:53 -0700</date>
            <delta_ts>2010-11-05 08:27:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>gen.diff</filename>
            <type>text/plain</type>
            <size>38171</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTQwMikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjEgQEAKKzIwMTAtMTEtMDUgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHZW5lcmF0
ZSB0aGUgbWVzc2FnZXMgc2VudCB0byB0aGUgV2ViUHJvY2Vzc1Byb3h5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTA2MgorCisgICAgICAgICogUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaDoKKyAgICAgICAgVGVtcG9yYXJpbHkgYWRkIE1lc3Nh
Z2VDbGFzc1dlYlByb2Nlc3NQcm94eUxlZ2FjeSB3aGlsZSB3ZSBzdGlsbCBjYW4ndAorICAgICAg
ICBzdXBwb3J0IEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uIChhbmQgZGVmZXJyZWQgc3luYyBy
ZXBsaWVzKSBpbiB0aGUKKyAgICAgICAgZ2VuZXJhbCBtZWNoYW5pc20uCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBXZWJD
b3JlOjpQbHVnaW5EYXRhIGFuZCBXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmUuCisKKyAg
ICAgICAgKiBTaGFyZWQvQ29yZUlQQ1N1cHBvcnQvV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZUtpbmRz
Lmg6CisgICAgICAgIFJlbW92ZSBub3cgdW51c2VkIGtpbmRzLiBSZW5hbWUgdG8gTWVzc2FnZUNs
YXNzV2ViUHJvY2Vzc1Byb3h5TGVnYWN5LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0UGx1Z2lu
UGF0aCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6YWRkQmFja0ZvcndhcmRJ
dGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUGVy
Zm9ybUNsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpk
aWRQZXJmb3JtU2VydmVyUmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6ZGlkRGVzdHJveUZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgIE1vdmUgaW1wbGVtZW50YXRpb25zIHRvIHRoZWlyIG93biBmdW5jdGlv
bnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyOjpnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIENoYW5nZSB0byB1
c2UgV2ViUHJvY2Vzc1Byb3h5TGVnYWN5TWVzc2FnZS4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6dXBkYXRlR2xvYmFsSGlzdG9yeSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojp1cGRhdGVHbG9iYWxIaXN0b3J5UmVkaXJlY3RM
aW5rcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpzZXRUaXRsZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnBvcHVsYXRl
UGx1Z2luQ2FjaGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2Fy
ZExpc3RQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnVwZGF0ZUJhY2tGb3J3YXJkSXRlbSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpjcmVhdGVQbHVnaW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmFkZFZpc2l0ZWRMaW5rKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVtb3ZlV2ViRnJhbWUpOgorICAgICAgICBV
c2UgZ2VuZXJhdGVkIG1lc3NhZ2VzLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcm86CisgICAgICAgICogV2ViS2l0Mi5wcm86Cisg
ICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdp
bi9XZWJLaXQyLnZjcHJvajoKKyAgICAgICAgQWRkIG5ldyBmaWxlcy4KKwogMjAxMC0xMS0wNCAg
SmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0
ZWluLgpJbmRleDogV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gNzEzOTUpCisrKyBXZWJLaXQyL0Rl
cml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE5LDYgKzE5LDcgQEAgTUVTU0FH
RV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViUGFnZVByb3h5IFwKICAgICBXZWJQcm9jZXNzIFwKICAg
ICBXZWJQcm9jZXNzQ29ubmVjdGlvbiBcCisgICAgV2ViUHJvY2Vzc1Byb3h5IFwKICMKIAogU0NS
SVBUUyA9IFwKSW5kZXg6IFdlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCShyZXZpc2lvbiA3MTM5NSkKKysrIFdlYktpdDIv
RGVyaXZlZFNvdXJjZXMucHJvCSh3b3JraW5nIGNvcHkpCkBAIC05Niw3ICs5Niw4IEBAIE1FU1NB
R0VfUkVDRUlWRVJTID0gXAogICAgIFdlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBcCiAgICAg
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJQcm9jZXNzLm1lc3NhZ2VzLmluIFwK
LSAgICBXZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorICAgIFdlYlByb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluIFwKKyAgICBXZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KIAog
U0NSSVBUUyA9IFwKICAgICAkJFBXRC9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIu
cHkgXApJbmRleDogV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dl
YktpdDIucHJvCShyZXZpc2lvbiA3MTM5NSkKKysrIFdlYktpdDIvV2ViS2l0Mi5wcm8JKHdvcmtp
bmcgY29weSkKQEAgLTE1NSw3ICsxNTUsOCBAQCBXRUJLSVQyX0dFTkVSQVRFRF9IRUFERVJTID0g
XAogICAgICQkT1VUUFVUX0RJUi9XZWJLaXQyL2dlbmVyYXRlZC9XZWJQYWdlTWVzc2FnZXMuaCBc
CiAgICAgJCRPVVRQVVRfRElSL1dlYktpdDIvZ2VuZXJhdGVkL1dlYlBhZ2VQcm94eU1lc3NhZ2Vz
LmggXAogICAgICQkT1VUUFVUX0RJUi9XZWJLaXQyL2dlbmVyYXRlZC9XZWJQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VzLmggXAotICAgICQkT1VUUFVUX0RJUi9XZWJLaXQyL2dlbmVyYXRlZC9XZWJQ
cm9jZXNzTWVzc2FnZXMuaAorICAgICQkT1VUUFVUX0RJUi9XZWJLaXQyL2dlbmVyYXRlZC9XZWJQ
cm9jZXNzTWVzc2FnZXMuaCBcCisgICAgJCRPVVRQVVRfRElSL1dlYktpdDIvZ2VuZXJhdGVkL1dl
YlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgKIAogV0VCS0lUMl9HRU5FUkFURURfU09VUkNFUyA9IFwK
ICAgICAkJE9VVFBVVF9ESVIvV2ViS2l0Mi9nZW5lcmF0ZWQvUGx1Z2luQ29udHJvbGxlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC0xNjYsNyArMTY3LDggQEAgV0VCS0lUMl9HRU5FUkFU
RURfU09VUkNFUyA9IFwKICAgICAkJE9VVFBVVF9ESVIvV2ViS2l0Mi9nZW5lcmF0ZWQvV2ViUGFn
ZU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkT1VUUFVUX0RJUi9XZWJLaXQyL2dlbmVyYXRl
ZC9XZWJQYWdlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJE9VVFBVVF9ESVIvV2Vi
S2l0Mi9nZW5lcmF0ZWQvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIFwK
LSAgICAkJE9VVFBVVF9ESVIvV2ViS2l0Mi9nZW5lcmF0ZWQvV2ViUHJvY2Vzc01lc3NhZ2VSZWNl
aXZlci5jcHAKKyAgICAkJE9VVFBVVF9ESVIvV2ViS2l0Mi9nZW5lcmF0ZWQvV2ViUHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQkT1VUUFVUX0RJUi9XZWJLaXQyL2dlbmVyYXRlZC9X
ZWJQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAKIEhFQURFUlMgKz0gXAogICAgIFBs
YXRmb3JtL0NvcmVJUEMvQXJndW1lbnREZWNvZGVyLmggXApJbmRleDogV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VJRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9NZXNzYWdlSUQuaAkocmV2aXNpb24gNzEzOTUpCisrKyBXZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZUlELmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAgZW51bSBN
ZXNzYWdlQ2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc1dlYkluc3BlY3RvclByb3h5LAogICAgIE1l
c3NhZ2VDbGFzc1dlYlBhZ2VQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzUHJveHks
CisgICAgTWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5TGVnYWN5LAogCiAgICAgLy8gTWVzc2Fn
ZXMgc2VudCBieSB0aGUgVUkgcHJvY2VzcyB0byB0aGUgcGx1Zy1pbiBwcm9jZXNzLgogICAgIE1l
c3NhZ2VDbGFzc1BsdWdpblByb2Nlc3MsCkluZGV4OiBXZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9t
ZXNzYWdlcy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdl
cy5weQkocmV2aXNpb24gNzEzOTUpCisrKyBXZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdl
cy5weQkod29ya2luZyBjb3B5KQpAQCAtMjUwLDkgKzI1MCwxMSBAQCBkZWYgbWVzc2FnZV90b19z
dHJ1Y3RfZGVjbGFyYXRpb24obWVzc2FnCiBkZWYgc3RydWN0X29yX2NsYXNzKG5hbWVzcGFjZSwg
dHlwZSk6CiAgICAgc3RydWN0cyA9IGZyb3plbnNldChbCiAgICAgICAgICdXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQnLAorICAgICAgICAnV2ViQ29yZTo6UGx1Z2luRGF0YS5oJywKICAgICAgICAg
J1dlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJywKICAgICAgICAgJ1dlYkNvcmU6OldpbmRvd0Zl
YXR1cmVzJywKICAgICAgICAgJ1dlYktpdDo6UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cycsCisgICAgICAgICdXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmUnLAogICAgICAgICAn
V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJywKICAgICAgICAgJ1dlYktpdDo6V2Vi
UHJlZmVyZW5jZXNTdG9yZScsCiAgICAgICAgICdXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMnLApAQCAtNDA3LDYgKzQwOSw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUp
OgogICAgIHNwZWNpYWxfY2FzZXMgPSB7CiAgICAgICAgICdXVEY6OlN0cmluZyc6ICc8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+JywKICAgICAgICAgJ1dlYkNvcmU6OktleXByZXNzQ29tbWFuZCc6ICc8
V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+JywKKyAgICAgICAgJ1dlYkNvcmU6OlBsdWdpbkluZm8n
OiAnPFdlYkNvcmUvUGx1Z2luRGF0YS5oPicsCiAgICAgICAgICdXZWJLaXQ6OldlYktleWJvYXJk
RXZlbnQnOiAnIldlYkV2ZW50LmgiJywKICAgICAgICAgJ1dlYktpdDo6V2ViTW91c2VFdmVudCc6
ICciV2ViRXZlbnQuaCInLAogICAgICAgICAnV2ViS2l0OjpXZWJXaGVlbEV2ZW50JzogJyJXZWJF
dmVudC5oIicsCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJQcm9jZXNz
UHJveHlNZXNzYWdlS2luZHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9Db3JlSVBD
U3VwcG9ydC9XZWJQcm9jZXNzUHJveHlNZXNzYWdlS2luZHMuaAkocmV2aXNpb24gNzEzOTUpCisr
KyBXZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJQcm9jZXNzUHJveHlNZXNzYWdlS2lu
ZHMuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMjkgKzMwLDIwIEBACiAKICNpbmNsdWRlICJNZXNz
YWdlSUQuaCIKIAotbmFtZXNwYWNlIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2UgeworbmFtZXNwYWNl
IFdlYlByb2Nlc3NQcm94eUxlZ2FjeU1lc3NhZ2UgewogCiBlbnVtIEtpbmQgewotICAgIEFkZEJh
Y2tGb3J3YXJkSXRlbSwKLSAgICBBZGRWaXNpdGVkTGluaywKLSAgICBEaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YSwKLSAgICBEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QsCi0gICAgRGlkUGVy
Zm9ybVNlcnZlclJlZGlyZWN0LAotICAgIERpZFVwZGF0ZUhpc3RvcnlUaXRsZSwKLSAgICBEaWRE
ZXN0cm95RnJhbWUsCi0gICAgR2V0UGx1Z2luUGF0aCwKICNpZiBFTkFCTEUoUExVR0lOX1BST0NF
U1MpCiAgICAgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24sCiAjZW5kaWYKLSAgICBHZXRQbHVn
aW5zCiB9OwogCiB9CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAotdGVtcGxhdGU8PiBzdHJ1Y3Qg
TWVzc2FnZUtpbmRUcmFpdHM8V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZTo6S2luZD4geyAKLSAgICBz
dGF0aWMgY29uc3QgTWVzc2FnZUNsYXNzIG1lc3NhZ2VDbGFzcyA9IE1lc3NhZ2VDbGFzc1dlYlBy
b2Nlc3NQcm94eTsKK3RlbXBsYXRlPD4gc3RydWN0IE1lc3NhZ2VLaW5kVHJhaXRzPFdlYlByb2Nl
c3NQcm94eUxlZ2FjeU1lc3NhZ2U6OktpbmQ+IHsgCisgICAgc3RhdGljIGNvbnN0IE1lc3NhZ2VD
bGFzcyBtZXNzYWdlQ2xhc3MgPSBNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzUHJveHlMZWdhY3k7CiB9
OwogCiB9CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9u
IDcxMzk1KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzUHJveHlNZXNzYWdlS2luZHMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0tVUkwuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xODksMTggKzE5MCwxOCBAQCB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6Z2V0UGx1Z2luUHJvY2Vzc0NvCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmdldFBsdWdpblBhdGgoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3Qg
S1VSTCYgdXJsLCBTdHJpbmcmIHBsdWdpblBhdGgpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0
UGx1Z2luUGF0aChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZywgU3RyaW5nJiBwbHVnaW5QYXRoKQogewogICAgIFN0cmluZyBuZXdNaW1lVHlwZSA9IG1pbWVU
eXBlLmxvd2VyKCk7CiAKLSAgICBQbHVnaW5JbmZvU3RvcmU6OlBsdWdpbiBwbHVnaW4gPSBtX2Nv
bnRleHQtPnBsdWdpbkluZm9TdG9yZSgpLT5maW5kUGx1Z2luKG5ld01pbWVUeXBlLCB1cmwpOwor
ICAgIFBsdWdpbkluZm9TdG9yZTo6UGx1Z2luIHBsdWdpbiA9IG1fY29udGV4dC0+cGx1Z2luSW5m
b1N0b3JlKCktPmZpbmRQbHVnaW4obmV3TWltZVR5cGUsIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1
cmxTdHJpbmcpKTsKICAgICBpZiAoIXBsdWdpbi5wYXRoKQogICAgICAgICByZXR1cm47CiAKICAg
ICBwbHVnaW5QYXRoID0gcGx1Z2luLnBhdGg7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojph
ZGRPclVwZGF0ZUJhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBjb25zdCBTdHJp
bmcmIG9yaWdpbmFsVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkK
K3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjphZGRCYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgaXRlbUlE
LCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3Ry
aW5nJiB0aXRsZSkKIHsKICAgICBzdGQ6OnBhaXI8V2ViQmFja0ZvcndhcmRMaXN0SXRlbU1hcDo6
aXRlcmF0b3IsIGJvb2w+IHJlc3VsdCA9IG1fYmFja0ZvcndhcmRMaXN0SXRlbU1hcC5hZGQoaXRl
bUlELCAwKTsKICAgICBpZiAocmVzdWx0LnNlY29uZCkgewpAQCAtMjIwLDk0ICsyMjEsMzIgQEAg
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmFkZFZpc2l0ZWRMaW5rKExpbgogICAgIG1fY29udGV4dC0+
YWRkVmlzaXRlZExpbmsobGlua0hhc2gpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMp
Cit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEodWlu
dDY0X3QgcGFnZUlELCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgdWludDY0
X3QgZnJhbWVJRCkgCiB7Ci0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJQcm9jZXNzUHJveHk+KCkpIHsKLSAgICAgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PFdl
YlByb2Nlc3NQcm94eU1lc3NhZ2U6OktpbmQ+KCkpIHsKLSAgICAgICAgICAgIGNhc2UgV2ViUHJv
Y2Vzc1Byb3h5TWVzc2FnZTo6QWRkQmFja0ZvcndhcmRJdGVtOiB7Ci0gICAgICAgICAgICAgICAg
dWludDY0X3QgaXRlbUlEOwotICAgICAgICAgICAgICAgIFN0cmluZyBvcmlnaW5hbFVSTDsKLSAg
ICAgICAgICAgICAgICBTdHJpbmcgdXJsOwotICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZTsK
LSAgICAgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChpdGVt
SUQsIG9yaWdpbmFsVVJMLCB1cmwsIHRpdGxlKSkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgICAgICBhZGRPclVwZGF0ZUJhY2tGb3J3YXJkTGlzdEl0ZW0oaXRlbUlE
LCBvcmlnaW5hbFVSTCwgdXJsLCB0aXRsZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBjYXNlIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2U6OkFk
ZFZpc2l0ZWRMaW5rOiB7Ci0gICAgICAgICAgICAgICAgTGlua0hhc2ggbGlua0hhc2g7Ci0KLSAg
ICAgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChsaW5rSGFz
aCkpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgICAgICBhZGRW
aXNpdGVkTGluayhsaW5rSGFzaCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBjYXNlIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2U6OkRpZE5hdmln
YXRlV2l0aE5hdmlnYXRpb25EYXRhOiB7Ci0gICAgICAgICAgICAgICAgdWludDY0X3QgcGFnZUlE
OwotICAgICAgICAgICAgICAgIFdlYk5hdmlnYXRpb25EYXRhU3RvcmUgc3RvcmU7Ci0gICAgICAg
ICAgICAgICAgdWludDY0X3QgZnJhbWVJRDsKLSAgICAgICAgICAgICAgICBpZiAoIWFyZ3VtZW50
cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChwYWdlSUQsIHN0b3JlLCBmcmFtZUlEKSkpCi0gICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgICAgIG1fY29udGV4dC0+ZGlkTmF2
aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEod2ViRnJhbWUoZnJhbWVJRCksIHN0b3JlKTsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgV2ViUHJv
Y2Vzc1Byb3h5TWVzc2FnZTo6RGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0OiB7Ci0gICAgICAgICAg
ICAgICAgdWludDY0X3QgcGFnZUlEOwotICAgICAgICAgICAgICAgIFN0cmluZyBzb3VyY2VVUkxT
dHJpbmc7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nOwotICAg
ICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lSUQ7Ci0gICAgICAgICAgICAgICAgaWYgKCFhcmd1
bWVudHMtPmRlY29kZShDb3JlSVBDOjpPdXQocGFnZUlELCBzb3VyY2VVUkxTdHJpbmcsIGRlc3Rp
bmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKSkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICAgICAgICAgIG1fY29udGV4dC0+ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KHdl
YkZyYW1lKGZyYW1lSUQpLCBzb3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nKTsK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2Ug
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZTo6RGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0OiB7Ci0gICAg
ICAgICAgICAgICAgdWludDY0X3QgcGFnZUlEOwotICAgICAgICAgICAgICAgIFN0cmluZyBzb3Vy
Y2VVUkxTdHJpbmc7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5n
OwotICAgICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lSUQ7Ci0gICAgICAgICAgICAgICAgaWYg
KCFhcmd1bWVudHMtPmRlY29kZShDb3JlSVBDOjpPdXQocGFnZUlELCBzb3VyY2VVUkxTdHJpbmcs
IGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKSkpCi0gICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICBtX2NvbnRleHQtPmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKHdlYkZy
YW1lKGZyYW1lSUQpLCBzdG9yZSk7Cit9CiAKLSAgICAgICAgICAgICAgICBtX2NvbnRleHQtPmRp
ZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdCh3ZWJGcmFtZShmcmFtZUlEKSwgc291cmNlVVJMU3RyaW5n
LCBkZXN0aW5hdGlvblVSTFN0cmluZyk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBjYXNlIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2U6OkRpZFVwZGF0
ZUhpc3RvcnlUaXRsZTogewotICAgICAgICAgICAgICAgIHVpbnQ2NF90IHBhZ2VJRDsKLSAgICAg
ICAgICAgICAgICBTdHJpbmcgdGl0bGU7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHVybDsKLSAg
ICAgICAgICAgICAgICB1aW50NjRfdCBmcmFtZUlEOwotICAgICAgICAgICAgICAgIGlmICghYXJn
dW1lbnRzLT5kZWNvZGUoQ29yZUlQQzo6T3V0KHBhZ2VJRCwgdGl0bGUsIHVybCwgZnJhbWVJRCkp
KQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Cit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlk
UGVyZm9ybUNsaWVudFJlZGlyZWN0KHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90
IGZyYW1lSUQpCit7CisgICAgbV9jb250ZXh0LT5kaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3Qod2Vi
RnJhbWUoZnJhbWVJRCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcpOwor
fQogCi0gICAgICAgICAgICAgICAgbV9jb250ZXh0LT5kaWRVcGRhdGVIaXN0b3J5VGl0bGUod2Vi
RnJhbWUoZnJhbWVJRCksIHRpdGxlLCB1cmwpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSBXZWJQcm9jZXNzUHJveHlNZXNzYWdlOjpEaWRE
ZXN0cm95RnJhbWU6IHsKLSAgICAgICAgICAgICAgICB1aW50NjRfdCBmcmFtZUlEOwotICAgICAg
ICAgICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUoQ29yZUlQQzo6T3V0KGZyYW1lSUQpKSkK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdCh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBm
cmFtZUlEKQoreworICAgIG1fY29udGV4dC0+ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KHdlYkZy
YW1lKGZyYW1lSUQpLCBzb3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nKTsKK30K
IAotICAgICAgICAgICAgICAgIGZyYW1lRGVzdHJveWVkKGZyYW1lSUQpOwotICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgfQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFVwZGF0
ZUhpc3RvcnlUaXRsZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0
IFN0cmluZyYgdXJsLCB1aW50NjRfdCBmcmFtZUlEKQoreworICAgIG1fY29udGV4dC0+ZGlkVXBk
YXRlSGlzdG9yeVRpdGxlKHdlYkZyYW1lKGZyYW1lSUQpLCB0aXRsZSwgdXJsKTsKK30KIAotICAg
ICAgICAgICAgLy8gVGhlc2UgYXJlIHN5bmNocm9ub3VzIG1lc3NhZ2VzIGFuZCBzaG91bGQgbmV2
ZXIgYmUgaGFuZGxlZCBoZXJlLgotICAgICAgICAgICAgY2FzZSBXZWJQcm9jZXNzUHJveHlNZXNz
YWdlOjpHZXRQbHVnaW5zOgotICAgICAgICAgICAgY2FzZSBXZWJQcm9jZXNzUHJveHlNZXNzYWdl
OjpHZXRQbHVnaW5QYXRoOgotI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKLSAgICAgICAgICAg
IGNhc2UgV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246
Ci0jZW5kaWYKLSAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQorewor
ICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5
PigpKSB7CisgICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KLQogICAg
IGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dD4oKSkgewog
ICAgICAgICBtX2NvbnRleHQtPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsgICAgCiAgICAgICAgIHJldHVybjsKQEAgLTMyNywzNiArMjY2LDE0IEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSgKIENvcmVJUEM6OlN5bmNS
ZXBseU1vZGUgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciogcmVwbHkpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NX
ZWJQcm9jZXNzUHJveHk+KCkpIHsKLSAgICAgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PFdlYlBy
b2Nlc3NQcm94eU1lc3NhZ2U6OktpbmQ+KCkpIHsKLSAgICAgICAgICAgIGNhc2UgV2ViUHJvY2Vz
c1Byb3h5TWVzc2FnZTo6R2V0UGx1Z2luczogewotICAgICAgICAgICAgICAgIGJvb2wgcmVmcmVz
aDsKLSAgICAgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKHJlZnJlc2gpKQotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gQ29yZUlQQzo6QXV0b21hdGljUmVwbHk7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBub3QgZG8gdGhp
cyBvbiB0aGUgbWFpbiB0aHJlYWQhCi0gICAgICAgICAgICAgICAgVmVjdG9yPFBsdWdpbkluZm8+
IHBsdWdpbnM7Ci0gICAgICAgICAgICAgICAgZ2V0UGx1Z2lucyhyZWZyZXNoLCBwbHVnaW5zKTsK
LQotICAgICAgICAgICAgICAgIHJlcGx5LT5lbmNvZGUocGx1Z2lucyk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIENvcmVJUEM6OkF1dG9tYXRpY1JlcGx5OwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBjYXNlIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2U6OkdldFBsdWdpblBhdGg6IHsKLSAg
ICAgICAgICAgICAgICBTdHJpbmcgbWltZVR5cGU7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHVy
bFN0cmluZzsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoIWFyZ3VtZW50
cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChtaW1lVHlwZSwgdXJsU3RyaW5nKSkpCi0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBDb3JlSVBDOjpBdXRvbWF0aWNSZXBseTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICBTdHJpbmcgcGx1Z2luUGF0aDsKLSAgICAgICAgICAgICAgICBn
ZXRQbHVnaW5QYXRoKG1pbWVUeXBlLCBLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsU3RyaW5nKSwg
cGx1Z2luUGF0aCk7Ci0KLSAgICAgICAgICAgICAgICByZXBseS0+ZW5jb2RlKENvcmVJUEM6Oklu
KHBsdWdpblBhdGgpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gQ29yZUlQQzo6QXV0b21hdGlj
UmVwbHk7Ci0gICAgICAgICAgICB9CisgICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc1By
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAg
ICAgICByZXR1cm4gQ29yZUlQQzo6QXV0b21hdGljUmVwbHk7CisgICAgfQogCiAjaWYgRU5BQkxF
KFBMVUdJTl9QUk9DRVNTKQotICAgICAgICAgICAgY2FzZSBXZWJQcm9jZXNzUHJveHlNZXNzYWdl
OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjogeworICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5TGVnYWN5PigpKSB7CisgICAgICAgIHN3
aXRjaCAobWVzc2FnZUlELmdldDxXZWJQcm9jZXNzUHJveHlMZWdhY3lNZXNzYWdlOjpLaW5kPigp
KSB7CisgICAgICAgICAgICBjYXNlIFdlYlByb2Nlc3NQcm94eUxlZ2FjeU1lc3NhZ2U6OkdldFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uOiB7CiAgICAgICAgICAgICAgICAgU3RyaW5nIHBsdWdpblBh
dGg7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRl
Y29kZShDb3JlSVBDOjpPdXQocGx1Z2luUGF0aCkpKQpAQCAtMzY1LDIwICsyODIsOSBAQCBDb3Jl
SVBDOjpTeW5jUmVwbHlNb2RlIFdlYlByb2Nlc3NQcm94eTo6CiAgICAgICAgICAgICAgICAgZ2V0
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24ocGx1Z2luUGF0aCwgcmVwbHkpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBDb3JlSVBDOjpNYW51YWxSZXBseTsKICAgICAgICAgICAgIH0KLSNlbmRpZgot
Ci0gICAgICAgICAgICAvLyBUaGVzZSBhcmUgYXN5bmNocm9ub3VzIG1lc3NhZ2VzIGFuZCBzaG91
bGQgbmV2ZXIgYmUgaGFuZGxlZCBoZXJlLgotICAgICAgICAgICAgY2FzZSBXZWJQcm9jZXNzUHJv
eHlNZXNzYWdlOjpEaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YToKLSAgICAgICAgICAgIGNh
c2UgV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZTo6RGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0OgotICAg
ICAgICAgICAgY2FzZSBXZWJQcm9jZXNzUHJveHlNZXNzYWdlOjpEaWRQZXJmb3JtU2VydmVyUmVk
aXJlY3Q6Ci0gICAgICAgICAgICBjYXNlIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2U6OkRpZFVwZGF0
ZUhpc3RvcnlUaXRsZToKLSAgICAgICAgICAgIGNhc2UgV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZTo6
QWRkQmFja0ZvcndhcmRJdGVtOgotICAgICAgICAgICAgY2FzZSBXZWJQcm9jZXNzUHJveHlNZXNz
YWdlOjpBZGRWaXNpdGVkTGluazoKLSAgICAgICAgICAgIGNhc2UgV2ViUHJvY2Vzc1Byb3h5TWVz
c2FnZTo6RGlkRGVzdHJveUZyYW1lOgotICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICAgICAgICAgIHJldHVybiBDb3JlSVBDOjpBdXRvbWF0aWNSZXBseTsKICAg
ICAgICAgfQogICAgIH0KKyNlbmRpZgogCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpN
ZXNzYWdlQ2xhc3NXZWJDb250ZXh0PigpKSB7CiAgICAgICAgIG1fY29udGV4dC0+ZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7ICAg
IApAQCAtNDg4LDcgKzM5NCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQo
dWludDYKICAgICBtX2ZyYW1lTWFwLnNldChmcmFtZUlELCBmcmFtZVByb3h5KTsKIH0KIAotdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OmZyYW1lRGVzdHJveWVkKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lk
IFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiB7CiAg
ICAgLy8gSWYgdGhlIHBhZ2UgaXMgY2xvc2VkIGJlZm9yZSBpdCBoYXMgaGFkIHRoZSBjaGFuY2Ug
dG8gc2VuZCB0aGUgRGlkQ3JlYXRlTWFpbkZyYW1lIG1lc3NhZ2UKICAgICAvLyBiYWNrIHRvIHRo
ZSBVSVByb2Nlc3MsIHRoZW4gdGhlIGZyYW1lRGVzdHJveWVkIG1lc3NhZ2Ugd2lsbCBzdGlsbCBi
ZSByZWNlaXZlZCBiZWNhdXNlIGl0CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAkocmV2aXNpb24gNzEzOTUpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNs
YXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJDb250ZXh0OwogY2xhc3MgV2Vi
UGFnZU5hbWVzcGFjZTsKLSAgICAKK3N0cnVjdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlOworCiBj
bGFzcyBXZWJQcm9jZXNzUHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJQcm9jZXNzUHJveHk+
LCBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVu
dCwgUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQsIFRocmVhZExhdW5jaGVyOjpDbGllbnQgewogcHVi
bGljOgogICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlBhZ2VQcm94eT4g
PiBXZWJQYWdlUHJveHlNYXA7CkBAIC05NCw3ICs5NSw3IEBAIHB1YmxpYzoKIAogICAgIFdlYkZy
YW1lUHJveHkqIHdlYkZyYW1lKHVpbnQ2NF90KSBjb25zdDsKICAgICB2b2lkIGZyYW1lQ3JlYXRl
ZCh1aW50NjRfdCwgV2ViRnJhbWVQcm94eSopOwotICAgIHZvaWQgZnJhbWVEZXN0cm95ZWQodWlu
dDY0X3QpOworICAgIHZvaWQgZGlkRGVzdHJveUZyYW1lKHVpbnQ2NF90KTsKICAgICB2b2lkIGRp
c2Nvbm5lY3RGcmFtZXNGcm9tUGFnZShXZWJQYWdlUHJveHkqKTsgLy8gSW5jbHVkaW5nIG1haW4g
ZnJhbWUuCiAgICAgc2l6ZV90IGZyYW1lQ291bnRJblBhZ2UoV2ViUGFnZVByb3h5KikgY29uc3Q7
IC8vIEluY2x1ZGluZyBtYWluIGZyYW1lLgogCkBAIC0xMDgsMTggKzEwOSwyMiBAQCBwcml2YXRl
OgogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKICAgICB2b2lkIGdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiByZXBseSk7CiAjZW5kaWYKLSAgICB2b2lkIGdldFBsdWdpblBhdGgoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsLCBTdHJpbmcmIHBsdWdpblBhdGgp
OworICAgIHZvaWQgZ2V0UGx1Z2luUGF0aChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBT
dHJpbmcmIHVybFN0cmluZywgU3RyaW5nJiBwbHVnaW5QYXRoKTsKICAgICB2b2lkIGdldFBsdWdp
bnMoYm9vbCByZWZyZXNoLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mKTsKIAotICAgIHZv
aWQgYWRkT3JVcGRhdGVCYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5hbFVSTFN0cmluZywgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgdGl0bGUpOworICAgIHZvaWQgYWRkQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IGl0
ZW1JRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFVSTFN0cmluZywgY29uc3QgU3RyaW5nJiB1cmxT
dHJpbmcsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHZvaWQgYWRkVmlzaXRlZExpbmsoV2Vi
Q29yZTo6TGlua0hhc2gpOworICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEo
dWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgdWlu
dDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QodWludDY0
X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBkaWRQZXJm
b3JtU2VydmVyUmVkaXJlY3QodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJh
bWVJRCk7CisgICAgdm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUodWludDY0X3QgcGFnZUlELCBj
b25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCk7
CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIENvcmVJUEM6OlN5bmNSZXBseU1vZGUgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopOwog
ICAgIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQpOwotICAgICAgICAKKwogICAgIC8vIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudAogICAg
IHZvaWQgZGlkQmVjb21lVW5yZXNwb25zaXZlKFJlc3BvbnNpdmVuZXNzVGltZXIqKTsKICAgICB2
b2lkIGRpZEJlY29tZVJlc3BvbnNpdmUoUmVzcG9uc2l2ZW5lc3NUaW1lciopOwpAQCAtMTMyLDYg
KzEzNywxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoQ29yZUlQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKKyAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5l
cmF0ZWQgV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorICAgIHZvaWQgZGlkUmVj
ZWl2ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgQ29yZUlQQzo6U3lu
Y1JlcGx5TW9kZSBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKik7CisKICAgICBSZXNwb25zaXZlbmVzc1RpbWVy
IG1fcmVzcG9uc2l2ZW5lc3NUaW1lcjsKICAgICBSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4g
bV9jb25uZWN0aW9uOwogCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM2IEBACisjIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYlByb2Nl
c3NQcm94eSB7CisKKyAgICBBZGRCYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgaXRlbUlELCBXVEY6
OlN0cmluZyBvcmlnaW5hbFVSTCwgV1RGOjpTdHJpbmcgdXJsLCBXVEY6OlN0cmluZyB0aXRsZSkK
KyAgICBEaWREZXN0cm95RnJhbWUodWludDY0X3QgZnJhbWVJRCkgCisKKyAgICAjIEZJWE1FOiBU
aGVzZSBtYXkgd2FudCB0byBtb3ZlIHRvIFdlYkNvbnRleHQubWVzc2FnZXMuaW4KKyAgICBEaWRO
YXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSh1aW50NjRfdCBwYWdlSUQsIFdlYktpdDo6V2ViTmF2
aWdhdGlvbkRhdGFTdG9yZSBzdG9yZSwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBEaWRQZXJmb3Jt
Q2xpZW50UmVkaXJlY3QodWludDY0X3QgcGFnZUlELCBXVEY6OlN0cmluZyBzb3VyY2VVUkxTdHJp
bmcsIFdURjo6U3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQor
ICAgIERpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdCh1aW50NjRfdCBwYWdlSUQsIFdURjo6U3RyaW5n
IHNvdXJjZVVSTFN0cmluZywgV1RGOjpTdHJpbmcgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2
NF90IGZyYW1lSUQpCisgICAgRGlkVXBkYXRlSGlzdG9yeVRpdGxlKHVpbnQ2NF90IHBhZ2VJRCwg
V1RGOjpTdHJpbmcgdGl0bGUsIFdURjo6U3RyaW5nIHVybCwgdWludDY0X3QgZnJhbWVJRCkKKyAg
ICBBZGRWaXNpdGVkTGluayh1aW50NjRfdCBsaW5rSGFzaCkKKyAgICBHZXRQbHVnaW5zKGJvb2wg
cmVmcmVzaCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5zKQorICAgIEdl
dFBsdWdpblBhdGgoV1RGOjpTdHJpbmcgbWltZVR5cGUsIFdURjo6U3RyaW5nIHVybFN0cmluZykg
LT4gKFdURjo6U3RyaW5nIHBsdWdpblBhdGgpCit9CkluZGV4OiBXZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNzEzOTUpCisrKyBXZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDU5LDYgKzQ1
OSw4IEBACiAJCUJDRTQ2OTVBMTIxNEVERjQwMDBCOThFQiAvKiBXS0Zvcm1TdWJtaXNzaW9uTGlz
dGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RTQ2OTU4MTIxNEVERjQwMDBCOThFQiAvKiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCUJDRTQ2OTc3MTIx
NEYyN0IwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTQ2OTc2MTIxNEYyN0IwMDBCOThFQiAv
KiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuaCAqLzsgfTsKIAkJQkNFNDY5NzkxMjE0RjJCNDAwMEI5
OEVCIC8qIFdlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0U0Njk3ODEyMTRGMkI0MDAwQjk4RUIgLyogV2ViRnJh
bWVMaXN0ZW5lclByb3h5LmNwcCAqLzsgfTsKKwkJQkNFRTdBRDAxMjgxNzk4ODAwOTgyN0RBIC8q
IFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VFN0FDQzEyODE3OTg4MDA5ODI3REEgLyogV2Vi
UHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJQkNFRTdBRDExMjgxNzk4
ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VFN0FDRDEyODE3OTg4MDA5ODI3REEgLyog
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJQkNFRTk2NkMxMTJGQUY1NzAwNkJD
QzI0IC8qIEF0dGFjaG1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNFRTk2NkExMTJGQUY1NzAwNkJDQzI0IC8qIEF0dGFjaG1lbnQuY3BwICov
OyB9OwogCQlCQ0VFOTY2RDExMkZBRjU3MDA2QkNDMjQgLyogQXR0YWNobWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRTk2NkIxMTJGQUY1NzAw
NkJDQzI0IC8qIEF0dGFjaG1lbnQuaCAqLzsgfTsKIAkJQkNFRTk4QzYxMTMzMTRENzAwNkJDQzI0
IC8qIFdlYlBhZ2VOYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNFRTk4QzQxMTMzMTRENzAwNkJDQzI0IC8qIFdlYlBhZ2VOYW1lc3Bh
Y2UuY3BwICovOyB9OwpAQCAtOTk1LDYgKzk5Nyw5IEBACiAJCUJDRTQ2OTU4MTIxNEVERjQwMDBC
OThFQiAvKiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDRTQ2OTc2MTIxNEYyN0IwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVy
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVMaXN0ZW5l
clByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTQ2OTc4MTIxNEYyQjQw
MDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQkNFRTdBQjMxMjgxNzA5NTAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDRUU3QUNDMTI4MTc5
ODgwMDk4MjdEQSAvKiBXZWJQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNFRTdBQ0QxMjgxNzk4ODAw
OTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDRUU5NjZBMTEyRkFGNTcwMDZCQ0MyNCAvKiBBdHRhY2htZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF0dGFjaG1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VFOTY2QjExMkZBRjU3MDA2QkNDMjQgLyogQXR0
YWNobWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdHRhY2htZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRUU5OEM0MTEzMzE0RDcwMDZCQ0MyNCAv
KiBXZWJQYWdlTmFtZXNwYWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYlBhZ2VOYW1lc3BhY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTYxMyw2ICsxNjE4LDcgQEAKIAkJCQlCQzAzMkRDRDEwRjQzODlGMDA1OEMxNUEgLyogV2ViUHJv
Y2Vzc01hbmFnZXIuaCAqLywKIAkJCQlCQzExMUIwRDExMkY1RTRGMDAzMzdCQUIgLyogV2ViUHJv
Y2Vzc1Byb3h5LmNwcCAqLywKIAkJCQlCQzAzMkRDRjEwRjQzODlGMDA1OEMxNUEgLyogV2ViUHJv
Y2Vzc1Byb3h5LmggKi8sCisJCQkJQkNFRTdBQjMxMjgxNzA5NTAwOTgyN0RBIC8qIFdlYlByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkxQTU5NEFCODExMkExRkI2MDA5REU3QzcgLyog
V2ViVUlDbGllbnQuY3BwICovLAogCQkJCTFBNTk0QUI5MTEyQTFGQjYwMDlERTdDNyAvKiBXZWJV
SUNsaWVudC5oICovLAogCQkJKTsKQEAgLTIwMjAsNiArMjAyNiw4IEBACiAJCQkJMUEwNDNGNjgx
MjUxNEQ4QjAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJ
CQlCQzMwNjZCQzEyNUE0NDIxMDBFNzEyNzggLyogV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCiAJCQkJQkMzMDY2QkQxMjVBNDQyMTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NNZXNzYWdl
cy5oICovLAorCQkJCUJDRUU3QUNDMTI4MTc5ODgwMDk4MjdEQSAvKiBXZWJQcm9jZXNzUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUJDRUU3QUNEMTI4MTc5ODgwMDk4MjdEQSAvKiBX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJKTsKIAkJCW5hbWUgPSAiRGVyaXZlZCBT
b3VyY2VzIjsKIAkJCXBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyOwpAQCAtMjI5Niw2ICsy
MzA0LDcgQEAKIAkJCQkxQTJEODRBMzEyN0Y2QUQxMDAxRUI5NjIgLyogTlBWYXJpYW50RGF0YS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4RTJBMzYxMjc3ODUyNDAwQkM3QkQwIC8qIFdlYkluc3Bl
Y3Rvck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTJEOTBEMjEyODFDOTY2MDAxRUI5
NjIgLyogUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQkNFRTdBRDExMjgxNzk4ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKQEAgLTI2MzgsNiArMjY0Nyw3IEBACiAJCQkJMUEyRDkwRDMxMjgxQzk2
NjAwMUVCOTYyIC8qIFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUEyRDkxQTYxMjgxRDczOTAwMUVCOTYyIC8qIFBsdWdpbkNvbnRyb2xsZXJQ
cm94eU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBMkQ5MjIxMTI4MURDMUIwMDFFQjk2MiAv
KiBQbHVnaW5Qcm94eU1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUJDRUU3QUQwMTI4MTc5ODgw
MDk4MjdEQSAvKiBXZWJQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiA3MTM5NSkKKysr
IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcs
NyArMzcsNyBAQAogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZUtpbmRzLmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MYW5ndWFnZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZS5oPgpAQCAtMjIxLDcgKzIyMSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6
YWRkVmlzaXRlZExpbmsoV2ViQ29yZToKICAgICBpZiAoaXNMaW5rVmlzaXRlZChsaW5rSGFzaCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChXZWJQcm9jZXNzUHJv
eHlNZXNzYWdlOjpBZGRWaXNpdGVkTGluaywgMCwgQ29yZUlQQzo6SW4obGlua0hhc2gpKTsKKyAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6QWRkVmlzaXRl
ZExpbmsobGlua0hhc2gpLCAwKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRDYWNoZU1vZGVs
KHVpbnQzMl90IGNtKQpAQCAtMzY4LDcgKzM2OCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6cmVtb3Zl
V2ViRnJhbWUodWludDY0X3QKICAgICAvLyBwcm9jZXNzIGluIHRoaXMgY2FzZS4KICAgICBpZiAo
IW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwotICAgIG1fY29ubmVjdGlvbi0+c2VuZChX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlOjpEaWREZXN0cm95RnJhbWUsIDAsIENvcmVJUEM6OkluKGZy
YW1lSUQpKTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpEaWREZXN0cm95RnJhbWUoZnJhbWVJRCksIDApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAkocmV2aXNpb24gNzEzOTUpCisr
KyBXZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uKiBQbHVnaW5Qcm9jZXNzQ28KIAogICAgIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXI7CiAgICAgQ29yZUlQQzo6TWFjaFBvcnQgY29ubmVj
dGlvbk1hY2hQb3J0OwotICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigp
LT5zZW5kU3luYyhXZWJQcm9jZXNzUHJveHlNZXNzYWdlOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbiwgMCwgQ29yZUlQQzo6SW4ocGx1Z2luUGF0aCksIENvcmVJUEM6Ok91dChjb25uZWN0aW9u
TWFjaFBvcnQpKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+
c2VuZFN5bmMoV2ViUHJvY2Vzc1Byb3h5TGVnYWN5TWVzc2FnZTo6R2V0UGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb24sIDAsIENvcmVJUEM6OkluKHBsdWdpblBhdGgpLCBDb3JlSVBDOjpPdXQoY29ubmVj
dGlvbk1hY2hQb3J0KSkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgY29ubmVjdGlvbklkZW50
aWZpZXIgPSBjb25uZWN0aW9uTWFjaFBvcnQucG9ydCgpOwpJbmRleDogV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCShyZXZpc2lvbiA3MTM5NSkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcg
QEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlS2luZHMuaCIKKyNpbmNsdWRl
ICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQ
SUNhc3QuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvQ2hyb21lLmg+CkBAIC03MjIsOSArNzIzLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6dXBkYXRlR2xvYmFsSAogICAgIGRhdGEudXJsID0gbG9hZGVyLT51cmxGb3JIaXN0
b3J5KCkuc3RyaW5nKCk7CiAgICAgZGF0YS50aXRsZSA9IGxvYWRlci0+dGl0bGUoKTsKIAotICAg
IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChXZWJQcm9jZXNzUHJveHlN
ZXNzYWdlOjpEaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ29yZUlQQzo6SW4od2ViUGFnZS0+cGFnZUlEKCksIGRhdGEsIG1f
ZnJhbWUtPmZyYW1lSUQoKSkpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0
aW9uRGF0YSh3ZWJQYWdlLT5wYWdlSUQoKSwgZGF0YSwgbV9mcmFtZS0+ZnJhbWVJRCgpKSwgMCk7
CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnVwZGF0ZUdsb2JhbEhpc3RvcnlSZWRp
cmVjdExpbmtzKCkKQEAgLTczOCwyMiArNzM3LDE0IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OnVwZGF0ZUdsb2JhbEgKIAogICAgIC8vIENsaWVudCByZWRpcmVjdAogICAgIGlmICghbG9h
ZGVyLT5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkoKS5pc051bGwoKSkgewotICAgICAg
ICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoV2ViUHJvY2Vzc1Byb3h5
TWVzc2FnZTo6RGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENvcmVJUEM6OkluKHdlYlBhZ2UtPnBhZ2VJRCgpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bG9hZGVyLT5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkoKSwgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZXItPmNs
aWVudFJlZGlyZWN0RGVzdGluYXRpb25Gb3JIaXN0b3J5KCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ZyYW1lLT5mcmFtZUlE
KCkpKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCh3ZWJQYWdl
LT5wYWdlSUQoKSwKKyAgICAgICAgICAgIGxvYWRlci0+Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JI
aXN0b3J5KCksIGxvYWRlci0+Y2xpZW50UmVkaXJlY3REZXN0aW5hdGlvbkZvckhpc3RvcnkoKSwg
bV9mcmFtZS0+ZnJhbWVJRCgpKSwgMCk7CiAgICAgfQogCiAgICAgLy8gU2VydmVyIHJlZGlyZWN0
CiAgICAgaWYgKCFsb2FkZXItPnNlcnZlclJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpLmlzTnVs
bCgpKSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlOjpEaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29yZUlQQzo6SW4od2ViUGFnZS0+
cGFnZUlEKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2FkZXItPnNlcnZlclJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbG9hZGVyLT5zZXJ2ZXJSZWRpcmVjdERlc3RpbmF0aW9uRm9ySGlzdG9yeSgpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9m
cmFtZS0+ZnJhbWVJRCgpKSk7CisgICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRQZXJmb3JtU2VydmVyUmVk
aXJlY3Qod2ViUGFnZS0+cGFnZUlEKCksCisgICAgICAgICAgICBsb2FkZXItPnNlcnZlclJlZGly
ZWN0U291cmNlRm9ySGlzdG9yeSgpLCBsb2FkZXItPnNlcnZlclJlZGlyZWN0RGVzdGluYXRpb25G
b3JIaXN0b3J5KCksIG1fZnJhbWUtPmZyYW1lSUQoKSksIDApOwogICAgIH0KIH0KIApAQCAtOTI1
LDcgKzkxNiw4IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNldFRpdGxlKGNvbnMKICAg
ICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChXZWJQcm9jZXNzUHJveHlNZXNzYWdlOjpEaWRVcGRhdGVI
aXN0b3J5VGl0bGUsIDAsIENvcmVJUEM6OkluKHdlYlBhZ2UtPnBhZ2VJRCgpLCB0aXRsZSwgdXJs
LnN0cmluZygpLCBtX2ZyYW1lLT5mcmFtZUlEKCkpKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkVXBkYXRl
SGlzdG9yeVRpdGxlKHdlYlBhZ2UtPnBhZ2VJRCgpLAorICAgICAgICB0aXRsZSwgdXJsLnN0cmlu
ZygpLCBtX2ZyYW1lLT5mcmFtZUlEKCkpLCAwKTsKIH0KIAogU3RyaW5nIFdlYkZyYW1lTG9hZGVy
Q2xpZW50Ojp1c2VyQWdlbnQoY29uc3QgS1VSTCYpCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAkocmV2aXNpb24gNzEzOTUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBA
QAogI2luY2x1ZGUgIlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHlNZXNzYWdlS2luZHMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3Vw
Lmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KQEAgLTg2LDcgKzg2LDkgQEAgdm9pZCBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnBvcHVsYXRlUGx1ZwogICAgIFZlY3RvcjxQbHVnaW5JbmZv
PiBwbHVnaW5zOwogICAgIAogICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgZG8gc29tZXRoaW5nIGlu
IGNhc2Ugb2YgZXJyb3IgaGVyZT8KLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9u
KCktPnNlbmRTeW5jKFdlYlByb2Nlc3NQcm94eU1lc3NhZ2U6OkdldFBsdWdpbnMsIDAsIENvcmVJ
UEM6OkluKG1fc2hvdWxkUmVmcmVzaFBsdWdpbnMpLCBDb3JlSVBDOjpPdXQocGx1Z2lucykpOwor
ICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2lucyhtX3Nob3VsZFJlZnJlc2hQbHVnaW5zKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpbnM6OlJlcGx5KHBsdWdpbnMpLCAwKTsKKwogICAgIG1f
Y2FjaGVkUGx1Z2lucy5zd2FwKHBsdWdpbnMpOwogICAgIAogICAgIG1fc2hvdWxkUmVmcmVzaFBs
dWdpbnMgPSBmYWxzZTsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tG
b3J3YXJkTGlzdFByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAJKHJldmlzaW9uIDcxMzk1KQorKysgV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1
ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgotI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VLaW5kcy5oIgorI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKQEAgLTg2LDcgKzg2LDggQEAgc3RhdGljIHZvaWQgdXBk
YXRlQmFja0ZvcndhcmRJdGVtKEhpc3RvcgogICAgIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkxT
dHJpbmcgPSBpdGVtLT5vcmlnaW5hbFVSTFN0cmluZygpOwogICAgIGNvbnN0IFN0cmluZyYgdXJs
U3RyaW5nID0gaXRlbS0+dXJsU3RyaW5nKCk7CiAgICAgY29uc3QgU3RyaW5nJiB0aXRsZSA9IGl0
ZW0tPnRpdGxlKCk7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5k
KFdlYlByb2Nlc3NQcm94eU1lc3NhZ2U6OkFkZEJhY2tGb3J3YXJkSXRlbSwgMCwgQ29yZUlQQzo6
SW4oaXRlbUlELCBvcmlnaW5hbFVSTFN0cmluZywgdXJsU3RyaW5nLCB0aXRsZSkpOworCisgICAg
V2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OkFkZEJhY2tGb3J3YXJkSXRlbShpdGVtSUQsIG9yaWdpbmFsVVJMU3RyaW5nLCB1
cmxTdHJpbmcsIHRpdGxlKSwgMCk7CiB9CiAKIHN0YXRpYyB2b2lkIFdLMk5vdGlmeUhpc3RvcnlJ
dGVtQ2hhbmdlZChIaXN0b3J5SXRlbSogaXRlbSkKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiA3MTM5NSkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBACiAjaW5j
bHVkZSAiV2ViUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvQ2hyb21lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuaD4KQEAgLTE4NCw5ICsxODUsMTEgQEAgUGFzc1JlZlB0cjxQbHVnaW4+IFdlYlBhZ2U6OmNy
ZWF0ZVBsdWdpbgogewogICAgIFN0cmluZyBwbHVnaW5QYXRoOwogCi0gICAgaWYgKCFXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKFdlYlByb2Nlc3NQcm94eU1lc3Nh
Z2U6OkdldFBsdWdpblBhdGgsIDAsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBDb3JlSVBDOjpJbihwYXJhbWV0ZXJzLm1pbWVUeXBlLCBwYXJh
bWV0ZXJzLnVybC5zdHJpbmcoKSksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBDb3JlSVBDOjpPdXQocGx1Z2luUGF0aCkpKQorICAgIGlmICgh
V2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYygKKyAgICAgICAgICAg
IE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpblBhdGgocGFyYW1ldGVycy5taW1l
VHlwZSwgcGFyYW1ldGVycy51cmwuc3RyaW5nKCkpLCAKKyAgICAgICAgICAgIE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpblBhdGg6OlJlcGx5KHBsdWdpblBhdGgpLCAwKSkgewor
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAKICAgICBpZiAocGx1Z2luUGF0aC5pc051bGwoKSkK
ICAgICAgICAgcmV0dXJuIDA7CkluZGV4OiBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24gNzEzOTUpCisr
KyBXZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMTg1Nyw2ICsx
ODU3LDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFVJUHJvY2Vzc1xXZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4iDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2Vi
VUlDbGllbnQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KQEAgLTI0MzYsNiArMjQ0MCwxNCBA
QAogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xXZWJQcm9jZXNzTWVzc2FnZXMuaCINCiAJCQkJPg0KIAkJCTwvRmls
ZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCiAJCTwvRmls
dGVyPg0KIAkJPEZpbHRlcg0KIAkJCU5hbWU9IlNjcmlwdHMiDQo=
</data>
<flag name="review"
          id="63415"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>