<?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>152153</bug_id>
          
          <creation_ts>2015-12-10 15:31:24 -0800</creation_ts>
          <short_desc>Remote Inspector: Verify the identity of the other side of XPC connections</short_desc>
          <delta_ts>2015-12-10 17:38:06 -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>Web Inspector</component>
          <version>Other</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>aestes</cc>
    
    <cc>bburg</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mattbaker</cc>
    
    <cc>msaboff</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1148307</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-10 15:31:24 -0800</bug_when>
    <thetext>* SUMMARY
Verify the identity of the other side of XPC connections

Verify the service launched for the mach service name is who we think it is. Bail if it isn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148308</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-12-10 15:31:57 -0800</bug_when>
    <thetext>&lt;rdar://problem/23849514&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148314</commentid>
    <comment_count>2</comment_count>
      <attachid>267133</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-10 15:44:07 -0800</bug_when>
    <thetext>Created attachment 267133
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148317</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-10 15:46:23 -0800</bug_when>
    <thetext>Attachment 267133 did not pass style-queue:


ERROR: Source/JavaScriptCore/inspector/remote/RemoteInspectorXPCConnection.mm:176:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148327</commentid>
    <comment_count>4</comment_count>
      <attachid>267133</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-12-10 16:22:51 -0800</bug_when>
    <thetext>Comment on attachment 267133
[PATCH] Proposed Fix

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

r=me. Looks good, have one question though.

&gt; Source/JavaScriptCore/inspector/remote/RemoteInspectorXPCConnection.mm:172
&gt; +    if (!m_validated) {

This access and the write below aren&apos;t guarded my m_mutex. Do they need to be? Maybe its declaration needs a comment to remind what data it protects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148328</commentid>
    <comment_count>5</comment_count>
      <attachid>267133</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-12-10 16:23:56 -0800</bug_when>
    <thetext>Comment on attachment 267133
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/inspector/remote/RemoteInspectorXPCConnection.mm:63
&gt; +    auto value = adoptCF(SecTaskCopyValueForEntitlement(task.get(), (CFStringRef)entitlement, nullptr));
&gt; +    if (!value)
&gt; +        return false;
&gt; +
&gt; +    if (CFGetTypeID(value.get()) != CFBooleanGetTypeID())
&gt; +        return false;
&gt; +
&gt; +    return CFBooleanGetValue(static_cast&lt;CFBooleanRef&gt;(value.get()));

This could be made more concise by using dynamic_cf_cast:

auto value = adoptCF(SecTaskCopyValueForEntitlement(task.get(), (CFStringRef)entitlement, nullptr));
if (auto booleanValue = dynamic_cf_cast&lt;CFBooleanRef&gt;(value.get()))
    return CFBooleanGetValue(booleanValue);
return false;

&gt; Source/WebCore/platform/network/mac/CertificateInfoMac.mm:30
&gt; -#import &quot;SecuritySPI.h&quot;
&gt; +#import &lt;wtf/spi/cocoa/SecuritySPI.h&gt;

I find it strange that we are exposing WTF headers like this (as opposed to just &lt;wtf/SecuritySPI.h&gt;). It looks like we do this for other WTF SPI headers, too, so you don&apos;t have to change anything. I just wanted to voice my displeasure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148332</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-10 16:33:23 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 267133 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=267133&amp;action=review
&gt; 
&gt; r=me. Looks good, have one question though.
&gt; 
&gt; &gt; Source/JavaScriptCore/inspector/remote/RemoteInspectorXPCConnection.mm:172
&gt; &gt; +    if (!m_validated) {
&gt; 
&gt; This access and the write below aren&apos;t guarded my m_mutex. Do they need to
&gt; be? Maybe its declaration needs a comment to remind what data it protects.

m_validated is only checked/set on the serial XPC queue. There is a comment regarding what m_mutex checks, which is use of m_client, especially during closing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148335</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-10 16:39:14 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; This could be made more concise by using dynamic_cf_cast:
&gt; 
&gt; auto value = adoptCF(SecTaskCopyValueForEntitlement(task.get(),
&gt; (CFStringRef)entitlement, nullptr));
&gt; if (auto booleanValue = dynamic_cf_cast&lt;CFBooleanRef&gt;(value.get()))
&gt;     return CFBooleanGetValue(booleanValue);
&gt; return false;

Very cool! I&apos;m going to avoid it here purely because of style, but it is good to know about dynamic_cf_cast. We should probably be using it in RemoteInspector breaking open the message dictionaries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148369</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-10 17:38:06 -0800</bug_when>
    <thetext>&lt;http://trac.webkit.org/changeset/193937&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267133</attachid>
            <date>2015-12-10 15:44:07 -0800</date>
            <delta_ts>2015-12-10 16:42:22 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>entitle.patch</filename>
            <type>text/plain</type>
            <size>20323</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJjZjZjNDUuLjc4ZDY0NGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTEyLTEwICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3RlIEluc3BlY3RvcjogVmVy
aWZ5IHRoZSBpZGVudGl0eSBvZiB0aGUgb3RoZXIgc2lkZSBvZiBYUEMgY29ubmVjdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjE1MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgTGluayB3aXRoIHRoZSBT
ZWN1cml0eSBmcmFtZXdvcmsuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUlu
c3BlY3RvclhQQ0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90
ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24ubW06CisgICAgICAgIChhdWRpdFRva2VuSGFzRW50aXRs
ZW1lbnQpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9u
OjpoYW5kbGVFdmVudCk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclhQQ0Nv
bm5lY3Rpb246OlJlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24pOiBEZWxldGVkLgorICAgICAg
ICBXaGVuIHJlY2VpdmluZyB0aGUgZmlyc3QgbWVzc2FnZSwgdmVyaWZ5IHRoZSBYUEMgY29ubmVj
dGlvbgorICAgICAgICBpcyBjb25uZWN0ZWQgdG8gd2hvIHdlIHRob3VnaHQgd2Ugd2VyZSBjb25u
ZWN0ZWQgdG8gYW5kCisgICAgICAgIEJhaWwgaWYgaXQgaXNuJ3QuCisKIDIwMTUtMTItMTAgIENz
YWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbQjNdIEFkZCBu
ZXcgZmlsZXMgdG8gdGhlIGNtYWtlIGJ1aWxkIHN5c3RlbQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBlN2I4MWZjLi41OWNmMjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTUwMSw2ICsxNTAxLDcgQEAKIAkJQTUwM0ZBMjYxODhFRkZGRDAwMTEwRjE0IC8qIFNj
cmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNTAzRkEyNDE4OEVGRkZEMDAxMTBGMTQgLyogU2NyaXB0RGVidWdTZXJ2ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNTAzRkEy
OTE4OEYxMDU5MDAxMTBGMTQgLyogSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTAzRkEyNzE4
OEYxMDU5MDAxMTBGMTQgLyogSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5jcHAgKi87
IH07CiAJCUE1MDNGQTJBMTg4RjEwNTkwMDExMEYxNCAvKiBKU0dsb2JhbE9iamVjdFNjcmlwdERl
YnVnU2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNTAzRkEyODE4OEYxMDU5MDAxMTBGMTQgLyogSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1Nl
cnZlci5oICovOyB9OworCQlBNTA5OEIwNDFDMTZBQTAyMDAwODc3OTcgLyogU2VjdXJpdHkuZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTUwOThCMDMxQzE2QUEwMjAwMDg3Nzk3IC8qIFNlY3VyaXR5LmZyYW1ld29yayAqLzsgfTsKIAkJ
QTUwRTRCNjExODgwOURENTAwNjhBNDZEIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTBFNEI1RDE4ODA5
REQ1MDA2OEE0NkQgLyogSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCAqLzsgfTsKIAkJQTUwRTRC
NjIxODgwOURENTAwNjhBNDZEIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUwRTRCNUUxODgwOURENTAwNjhB
NDZEIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE1MEU0QjYzMTg4MDlERDUwMDY4QTQ2RCAvKiBKU0ds
b2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNTBFNEI1RjE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmpl
Y3RSdW50aW1lQWdlbnQuY3BwICovOyB9OwpAQCAtMzY1Niw2ICszNjU3LDcgQEAKIAkJQTUwM0ZB
MjQxODhFRkZGRDAwMTEwRjE0IC8qIFNjcmlwdERlYnVnU2VydmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdERlYnVnU2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE1MDNGQTI3MTg4RjEwNTkwMDExMEYxNCAvKiBKU0dsb2JhbE9iamVjdFNj
cmlwdERlYnVnU2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTR2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNTAzRkEyODE4OEYxMDU5MDAxMTBGMTQgLyogSlNHbG9iYWxPYmplY3RTY3Jp
cHREZWJ1Z1NlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0dsb2Jh
bE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUE1MDk4QjAzMUMxNkFBMDIwMDA4Nzc5NyAvKiBTZWN1cml0eS5mcmFtZXdvcmsgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29y
azsgbmFtZSA9IFNlY3VyaXR5LmZyYW1ld29yazsgcGF0aCA9IFBsYXRmb3Jtcy9NYWNPU1gucGxh
dGZvcm0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYMTAuMTEuc2RrL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvU2VjdXJpdHkuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gREVWRUxPUEVSX0RJUjsgfTsK
IAkJQTUwRTRCNUQxODgwOURENTAwNjhBNDZEIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JSdW50aW1lQWdl
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTBFNEI1RTE4ODA5REQ1MDA2
OEE0NkQgLyogSW5zcGVjdG9yUnVudGltZUFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNTBFNEI1RjE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50aW1l
QWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNHbG9iYWxP
YmplY3RSdW50aW1lQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDI5
OCw2ICs0MzAwLDcgQEAKIAkJCWZpbGVzID0gKAogCQkJCTkzMkY1QkQzMDgyMkExQzcwMDczNjk3
NSAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQlBNzMx
QjI1QTEzMDA5Mzg4MDA0MEE3RkEgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLywKKwkJCQlBNTA5OEIwNDFDMTZBQTAyMDAwODc3OTcgLyogU2VjdXJpdHkuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8sCiAJCQkJOTMyRjVCRDcwODIyQTFDNzAwNzM2OTc1IC8qIGxpYmlj
dWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQk5MzJGNUJENjA4MjJBMUM3MDA3MzY5
NzUgLyogbGlib2JqYy5keWxpYiBpbiBGcmFtZXdvcmtzICovLAogCQkJCUE4QTQ3NDhFMTUxQTgz
MDYwMDQxMjNGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICovLApAQCAtNDM4Niw2ICs0Mzg5
LDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTY1NjBBNENGMDRCM0IzRTcwMDhBRTk1MiAvKiBD
b3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJNTFGMEVCNjEwNUM4NkM2QjAwRTZERjFC
IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovLAorCQkJCUE1MDk4QjAzMUMxNkFBMDIwMDA4Nzc5
NyAvKiBTZWN1cml0eS5mcmFtZXdvcmsgKi8sCiAJCQkJNUQ1RDhBRDAwRTBEMEVCRTAwRjlDNjky
IC8qIGxpYmVkaXQuZHlsaWIgKi8sCiAJCQkJOTMyMkEwMDMwNkMzNDFEMzAwOTA2N0JCIC8qIGxp
YmljdWNvcmUuZHlsaWIgKi8sCiAJCQkJNTFGMEVDMDcwNUM4NkM5QTAwRTZERjFCIC8qIGxpYm9i
amMuZHlsaWIgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3JlbW90ZS9SZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uLmgKaW5k
ZXggZTk3Y2E3MS4uZWYwNGMyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3RvclhQQ0Nvbm5l
Y3Rpb24uaApAQCAtNjcsNyArNjcsMTAgQEAgcHJpdmF0ZToKICAgICB4cGNfY29ubmVjdGlvbl90
IG1fY29ubmVjdGlvbjsKICAgICBkaXNwYXRjaF9xdWV1ZV90IG1fcXVldWU7CiAgICAgQ2xpZW50
KiBtX2NsaWVudDsKLSAgICBib29sIG1fY2xvc2VkOworICAgIGJvb2wgbV9jbG9zZWQgeyBmYWxz
ZSB9OworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMjAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDAwMDApCisgICAgYm9vbCBtX3ZhbGlkYXRlZCB7IGZhbHNlIH07Cisj
ZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVj
dGlvbi5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUlu
c3BlY3RvclhQQ0Nvbm5lY3Rpb24ubW0KaW5kZXggMWM1OWRhOC4uZGVlNzQwZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9y
WFBDQ29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Jl
bW90ZS9SZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uLm1tCkBAIC0zNCw2ICszNCw3IEBACiAj
aW1wb3J0IDx3dGYvTG9jay5oPgogI2ltcG9ydCA8d3RmL1JlZi5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oPgogI2ltcG9y
dCA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+CiAKICNpZiBfX2hhc19pbmNsdWRlKDxDb3JlRm91
bmRhdGlvbi9DRlhQQ0JyaWRnZS5oPikKQEAgLTQ1LDYgKzQ2LDI0IEBAIGV4dGVybiAiQyIgewog
fQogI2VuZGlmCiAKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTIwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAwMDAwKQorc3RhdGljIGJvb2wgYXVkaXRUb2tlbkhhc0Vu
dGl0bGVtZW50KGF1ZGl0X3Rva2VuX3QgdG9rZW4sIE5TU3RyaW5nICplbnRpdGxlbWVudCkKK3sK
KyAgICBhdXRvIHRhc2sgPSBhZG9wdENGKFNlY1Rhc2tDcmVhdGVXaXRoQXVkaXRUb2tlbihrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCB0b2tlbikpOworICAgIGlmICghdGFzaykKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgYXV0byB2YWx1ZSA9IGFkb3B0Q0YoU2VjVGFza0NvcHlWYWx1ZUZvckVu
dGl0bGVtZW50KHRhc2suZ2V0KCksIChDRlN0cmluZ1JlZillbnRpdGxlbWVudCwgbnVsbHB0cikp
OworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChDRkdl
dFR5cGVJRCh2YWx1ZS5nZXQoKSkgIT0gQ0ZCb29sZWFuR2V0VHlwZUlEKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIHJldHVybiBDRkJvb2xlYW5HZXRWYWx1ZShzdGF0aWNfY2FzdDxD
RkJvb2xlYW5SZWY+KHZhbHVlLmdldCgpKSk7Cit9CisjZW5kaWYKKwogbmFtZXNwYWNlIEluc3Bl
Y3RvciB7CiAKIC8vIENvbnN0YW50cyBwcml2YXRlIHRvIHRoaXMgZmlsZSBmb3IgbWVzc2FnZSBz
ZXJpYWxpemF0aW9uIG9uIGJvdGggZW5kcy4KQEAgLTU2LDcgKzc1LDYgQEAgUmVtb3RlSW5zcGVj
dG9yWFBDQ29ubmVjdGlvbjo6UmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbih4cGNfY29ubmVj
dGlvbl90IGNvbm4KICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICwgbV9xdWV1
ZShxdWV1ZSkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKLSAgICAsIG1fY2xvc2VkKGZhbHNlKQog
ewogICAgIGRpc3BhdGNoX3JldGFpbihtX3F1ZXVlKTsKIApAQCAtMTUwLDYgKzE2OCwyNyBAQCB2
b2lkIFJlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb246OmhhbmRsZUV2ZW50KHhwY19vYmplY3Rf
dCBvYmplY3QpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyNpZiAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMCkgfHwgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAwMDAwKQorICAg
IGlmICghbV92YWxpZGF0ZWQpIHsKKyAgICAgICAgYXVkaXRfdG9rZW5fdCB0b2tlbjsKKyAgICAg
ICAgeHBjX2Nvbm5lY3Rpb25fZ2V0X2F1ZGl0X3Rva2VuKG1fY29ubmVjdGlvbiwgJnRva2VuKTsK
KyAgICAgICAgaWYgKCFhdWRpdFRva2VuSGFzRW50aXRsZW1lbnQodG9rZW4sIEAiY29tLmFwcGxl
LnByaXZhdGUud2ViaW5zcGVjdG9yLndlYmluc3BlY3RvcmQiKSkgeworICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fbXV0ZXgpOworICAg
ICAgICAgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgICAgICAgICAgbV9jbGllbnQt
PnhwY0Nvbm5lY3Rpb25GYWlsZWQodGhpcyk7CisKKyAgICAgICAgICAgICAgICBtX2Nsb3NlZCA9
IHRydWU7CisgICAgICAgICAgICAgICAgbV9jbGllbnQgPSBudWxscHRyOworICAgICAgICAgICAg
ICAgIGNsb3NlT25RdWV1ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVyZWYoKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX3ZhbGlkYXRlZCA9IHRy
dWU7CisgICAgfQorI2VuZGlmCisKICAgICBOU0RpY3Rpb25hcnkgKmRhdGFEaWN0aW9uYXJ5ID0g
ZGVzZXJpYWxpemVNZXNzYWdlKG9iamVjdCk7CiAgICAgaWYgKCFkYXRhRGljdGlvbmFyeSkKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZwppbmRleCAzMGU4NTQ3Li5mY2I4OWZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDE1LTEyLTEwICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgUmVtb3RlIEluc3BlY3RvcjogVmVyaWZ5IHRoZSBpZGVudGl0eSBvZiB0aGUgb3RoZXIg
c2lkZSBvZiBYUEMgY29ubmVjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1MjE1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogd3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3BpL2NvY29hL1NlY3VyaXR5U1BJLmguCisgICAgICAgIFB1c2ggdGhpcyBk
b3duIGludG8gV1RGIGZyb20gV2ViQ29yZSBhbmQgYWRkIGEgbmV3IG1ldGhvZC4KKwogMjAxNS0x
Mi0wOCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEZUTCBCMyBz
aG91bGQgaGF2ZSBiYXNpYyBHZXRCeUlkIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGFjM2M3MWEuLjNmMzc1MDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE2LDYgKzExNiw3IEBACiAJCTlCQzcwRjA1
MTc2QzM3OUQwMDEwMURFQyAvKiBBdG9taWNTdHJpbmdUYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkM3MEYwNDE3NkMzNzlEMDAxMDFERUMg
LyogQXRvbWljU3RyaW5nVGFibGUuY3BwICovOyB9OwogCQk5QkQ4RjQwQjE3NkMyQjQ3MDAwMkQ4
NjUgLyogQXRvbWljU3RyaW5nVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlCRDhGNDBBMTc2QzJBRDgwMDAyRDg2NSAvKiBBdG9taWNTdHJpbmdU
YWJsZS5oICovOyB9OwogCQlBNTA5OEIwMDFDMTY5RTA3MDAwODc3OTcgLyogU2FuZGJveFNQSS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUwOThBRkYx
QzE2OUUwNzAwMDg3Nzk3IC8qIFNhbmRib3hTUEkuaCAqLzsgfTsKKwkJQTUwOThCMDIxQzE2QTRG
OTAwMDg3Nzk3IC8qIFNlY3VyaXR5U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNTA5OEIwMTFDMTZBNEY5MDAwODc3OTcgLyogU2VjdXJpdHlTUEku
aCAqLzsgfTsKIAkJQTVCQTE1RjMxODI0MzNBOTAwQTgyRTY5IC8qIFN0cmluZ01hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1QkExNUYyMTgyNDMz
QTkwMEE4MkU2OSAvKiBTdHJpbmdNYWMubW0gKi87IH07CiAJCUE1QkExNUY1MTgyNDM0ODAwMEE4
MkU2OSAvKiBTdHJpbmdJbXBsTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTVCQTE1RjQxODI0MzQ4MDAwQTgyRTY5IC8qIFN0cmluZ0ltcGxNYWMu
bW0gKi87IH07CiAJCUE1QkExNUZBMTgyNDM1QTYwMEE4MkU2OSAvKiBBdG9taWNTdHJpbmdJbXBs
Q0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVC
QTE1RjcxODI0MzVBNjAwQTgyRTY5IC8qIEF0b21pY1N0cmluZ0ltcGxDRi5jcHAgKi87IH07CkBA
IC00MjQsNiArNDI1LDcgQEAKIAkJOUJDNzBGMDQxNzZDMzc5RDAwMTAxREVDIC8qIEF0b21pY1N0
cmluZ1RhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF0b21p
Y1N0cmluZ1RhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJEOEY0MEEx
NzZDMkFEODAwMDJEODY1IC8qIEF0b21pY1N0cmluZ1RhYmxlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF0
b21pY1N0cmluZ1RhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1MDk4QUZG
MUMxNjlFMDcwMDA4Nzc5NyAvKiBTYW5kYm94U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNhbmRib3hTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTUw
OThCMDExQzE2QTRGOTAwMDg3Nzk3IC8qIFNlY3VyaXR5U1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNlY3VyaXR5U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE1QkExNUYyMTgyNDMzQTkwMEE4MkU2OSAvKiBTdHJpbmdNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBTdHJpbmdNYWMubW07IHBhdGggPSBtYWMvU3Ry
aW5nTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNUJBMTVGNDE4MjQzNDgw
MDBBODJFNjkgLyogU3RyaW5nSW1wbE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IFN0cmluZ0ltcGxNYWMubW07IHBhdGggPSBtYWMvU3RyaW5nSW1wbE1hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVCQTE1RjcxODI0MzVBNjAwQTgyRTY5
IC8qIEF0b21pY1N0cmluZ0ltcGxDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBBdG9taWNTdHJpbmdJbXBsQ0YuY3BwOyBwYXRoID0gY2YvQXRvbWljU3RyaW5nSW1w
bENGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNTQsNiArMTA1Niw3IEBA
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUNFNDY1MTZEMTlEQjFG
QjQwMDNFQ0EwNSAvKiBOU01hcFRhYmxlU1BJLmggKi8sCisJCQkJQTUwOThCMDExQzE2QTRGOTAw
MDg3Nzk3IC8qIFNlY3VyaXR5U1BJLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTExMTksNiArMTEyMiw3IEBACiAJCQkJQThBNDc0
NTIxNTFBODI1QjAwNDEyM0ZGIC8qIEJpbmFyeVNlbWFwaG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQThBNDczOEExNTFBODI1QjAwNDEyM0ZGIC8qIEJpdG1hcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQThBNDczOEMxNTFBODI1QjAwNDEyM0ZGIC8qIEJpdFZlY3Rvci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQTUwOThCMDIxQzE2QTRGOTAwMDg3Nzk3IC8qIFNlY3VyaXR5U1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOEE0NzM4RTE1MUE4MjVCMDA0MTIzRkYgLyogQmxvY2tTdGFjay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQThBNDczOEYxNTFBODI1QjAwNDEyM0ZGIC8qIEJsb29tRmlsdGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzM5MTE1MUE4MjVCMDA0MTIzRkYgLyogQnVtcFBvaW50
ZXJBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3BpL2NvY29hL1NlY3VyaXR5U1BJLmggYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29j
b2EvU2VjdXJpdHlTUEkuaApzaW1pbGFyaXR5IGluZGV4IDk2JQpyZW5hbWUgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvU2VjdXJpdHlTUEkuaApyZW5hbWUgdG8gU291cmNl
L1dURi93dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmgKaW5kZXggZmU0MTUxYi4uNDg5YWFmOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1NlY3VyaXR5U1BJ
LmgKKysrIGIvU291cmNlL1dURi93dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmgKQEAgLTI3LDIw
ICsyNywxMiBAQAogI2RlZmluZSBTZWN1cml0eVNQSV9oCiAKICNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorCiAjaW5jbHVkZSA8U2VjdXJpdHkvU2VjQ2VydGlmaWNhdGVQcml2Lmg+Ci0KLSNp
ZiBQTEFURk9STShJT1MpCiAjaW5jbHVkZSA8U2VjdXJpdHkvU2VjVGFzay5oPgotI2VuZGlmCiAK
ICNlbHNlCiAKLSNpZiBQTEFURk9STShJT1MpCi10eXBlZGVmIHN0cnVjdCBfX1NlY1Rhc2sgKlNl
Y1Rhc2tSZWY7Ci1FWFRFUk5fQyBTZWNUYXNrUmVmIFNlY1Rhc2tDcmVhdGVGcm9tU2VsZihDRkFs
bG9jYXRvclJlZik7Ci1FWFRFUk5fQyBDRlR5cGVSZWYgU2VjVGFza0NvcHlWYWx1ZUZvckVudGl0
bGVtZW50KFNlY1Rhc2tSZWYsIENGU3RyaW5nUmVmIGVudGl0bGVtZW50LCBDRkVycm9yUmVmICop
OwotI2VuZGlmCi0KICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTEwMCkgfHwgUExBVEZPUk0oSU9TKQogdHlwZWRlZiB1aW50MzJfdCBT
ZWNTaWduYXR1cmVIYXNoQWxnb3JpdGhtOwogZW51bSB7CkBAIC01Niw5ICs0OCwxMyBAQCBlbnVt
IHsKIH07CiAKIEVYVEVSTl9DIFNlY1NpZ25hdHVyZUhhc2hBbGdvcml0aG0gU2VjQ2VydGlmaWNh
dGVHZXRTaWduYXR1cmVIYXNoQWxnb3JpdGhtKFNlY0NlcnRpZmljYXRlUmVmKTsKLQogI2VuZGlm
CiAKICNlbmRpZgogCit0eXBlZGVmIHN0cnVjdCBfX1NlY1Rhc2sgKlNlY1Rhc2tSZWY7CitFWFRF
Uk5fQyBTZWNUYXNrUmVmIFNlY1Rhc2tDcmVhdGVXaXRoQXVkaXRUb2tlbihDRkFsbG9jYXRvclJl
ZiwgYXVkaXRfdG9rZW5fdCk7CitFWFRFUk5fQyBTZWNUYXNrUmVmIFNlY1Rhc2tDcmVhdGVGcm9t
U2VsZihDRkFsbG9jYXRvclJlZik7CitFWFRFUk5fQyBDRlR5cGVSZWYgU2VjVGFza0NvcHlWYWx1
ZUZvckVudGl0bGVtZW50KFNlY1Rhc2tSZWYsIENGU3RyaW5nUmVmIGVudGl0bGVtZW50LCBDRkVy
cm9yUmVmICopOworCiAjZW5kaWYgLy8gU2VjdXJpdHlTUElfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUzNzNl
YmYuLjA3YTU2ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNS0xMi0xMCAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW90ZSBJbnNw
ZWN0b3I6IFZlcmlmeSB0aGUgaWRlbnRpdHkgb2YgdGhlIG90aGVyIHNpZGUgb2YgWFBDIGNvbm5l
Y3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTIxNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL21hYy9DZXJ0aWZpY2F0ZUluZm9NYWMubW06CisgICAgICAgIFVzZSB0aGUgbmV3IGhl
YWRlci4KKwogMjAxNS0xMi0xMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5MzUwMC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkODA1
ZGViLi5kNWMyNzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMzc3LDcgKzEzNzcsNiBAQAogCQkzMzlCNUI2MzEzMURBQTMy
MDBGNDhEMDIgLyogQ29va2llc1N0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMzlCNUI2MjEzMURBQTMyMDBGNDhEMDIgLyogQ29va2llc1N0
cmF0ZWd5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMzNEMDIxMkQxMzFEQjM3QjAwNDA5MUE4IC8qIENvb2tpZVN0b3JhZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxM0YwMUVBMTI3MEUxMEQwMERG
QkE3MSAvKiBDb29raWVTdG9yYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMzU3MTg4M0VFRjYxODc5Mzc1MUU0MDg5IC8qIFJlbmRlck1hdGhN
TE1lbmNsb3NlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDM2NjJGOTg0MDQ3Q0VEQkU1REREQUZBQSAvKiBSZW5kZXJNYXRoTUxNZW5jbG9zZS5jcHAg
Ki87IH07Ci0JCTM3MTc4MzNBMUFBQ0RDRjcwMDA5MTBFMyAvKiBTZWN1cml0eVNQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzcxNzgzMzkxQUFDRENG
NzAwMDkxMEUzIC8qIFNlY3VyaXR5U1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzcxN0Q3RTgxN0VDQzU5MTAwM0MyNzZEIC8qIGV4dHJhY3Qt
bG9jYWxpemFibGUtc3RyaW5ncy5wbCBpbiBDb3B5IFNjcmlwdHMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzcxN0Q3RTUxN0VDQzNBNjAwM0MyNzZEIC8qIGV4dHJhY3QtbG9j
YWxpemFibGUtc3RyaW5ncy5wbCAqLzsgfTsKIAkJMzcxQTY3Q0IxMUM2QzdEQjAwMDQ3QjhCIC8q
IEh5cGhlbmF0aW9uQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzcxQTY3Q0ExMUM2QzdEQjAwMDQ3QjhCIC8qIEh5cGhlbmF0aW9uQ0YuY3BwICov
OyB9OwogCQkzNzFFNjVDQzEzNjYxRURDMDBCRUVEQjAgLyogUGFnZVNlcmlhbGl6ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MUU2NUNCMTM2NjFF
REMwMEJFRURCMCAvKiBQYWdlU2VyaWFsaXplci5oICovOyB9OwpAQCAtODc0NSw3ICs4NzQ0LDYg
QEAKIAkJMzM5MENBNTMwRkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNlbnRlci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTm90aWZpY2F0aW9uQ2VudGVyLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzM5QjVCNjIxMzFEQUEzMjAwRjQ4RDAyIC8qIENvb2tpZXNT
dHJhdGVneS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWVzU3RyYXRl
Z3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzY2MkY5ODQwNDdDRURCRTVERERB
RkFBIC8qIFJlbmRlck1hdGhNTE1lbmNsb3NlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbmRlck1hdGhNTE1lbmNsb3NlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMzcxNzgzMzkxQUFDRENGNzAwMDkxMEUzIC8qIFNlY3VyaXR5U1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlY3VyaXR5U1BJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTM3MTdEN0U1MTdFQ0MzQTYwMDNDMjc2RCAvKiBleHRyYWN0LWxv
Y2FsaXphYmxlLXN0cmluZ3MucGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5wZXJsOyBwYXRoID0gImV4dHJhY3QtbG9jYWxpemFi
bGUtc3RyaW5ncy5wbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3MUE2N0NBMTFD
NkM3REIwMDA0N0I4QiAvKiBIeXBoZW5hdGlvbkNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEh5cGhlbmF0aW9uQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzNzFFNjVDQjEzNjYxRURDMDBCRUVEQjAgLyogUGFnZVNlcmlhbGl6ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZVNlcmlhbGl6ZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MjU5LDcgKzE3MjU3LDYgQEAKIAkJCQkzMUIzMTNEQzFC
Njk4N0RCMDBGMkFBQkMgLyogTlNVUkxSZXF1ZXN0U1BJLmggKi8sCiAJCQkJQ0VFMjdBQ0ExQkJC
NTNBMjAwNzI0MDBBIC8qIHB0aHJlYWRTUEkuaCAqLywKIAkJCQlDRTEyNTIzQzFBMTY3NkNEMDA4
NjQ0ODAgLyogUXVhcnR6Q29yZVNQSS5oICovLAotCQkJCTM3MTc4MzM5MUFBQ0RDRjcwMDA5MTBF
MyAvKiBTZWN1cml0eVNQSS5oICovLAogCQkJCUNFQzMzN0FDMUE0NjA3MUYwMDlCODUyMyAvKiBT
ZXJ2ZXJzU1BJLmggKi8sCiAJCQkJQTE5RDkzNDUxQTlGRUM3MjAwQjQ2QzI0IC8qIFdlYkZpbHRl
ckV2YWx1YXRvclNQSS5oICovLAogCQkJKTsKQEAgLTI3MzMxLDcgKzI3MzI4LDYgQEAKIAkJCQkx
QUY3QUZDODFBNDhBOEJDMDBDOEU0RTcgLyogU2VjdXJpdHlPcmlnaW5Qb2xpY3kuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3NEQyREE1MTQ2QTUzNUQwMEQ1MUY4QiAvKiBTZWN1cml0eVBvbGljeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ1QkM0MjcxNkY4ODJFRTAwNzA0OEQwIC8qIFNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTM3MTc4MzNBMUFBQ0RD
RjcwMDA5MTBFMyAvKiBTZWN1cml0eVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlDQzBCNUUx
OEJFOTg0QTAwNkNFQkNDIC8qIFNlZ21lbnRlZElucHV0U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjJDM0RBMkYwRDAwNkMxRDAwRUY2RjI2IC8qIFNlZ21lbnRlZFN0cmluZy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkVBODA3QzkwRjcxNEEwMzAwNTI0MTk5IC8qIFNlbGVjdGlvblJlY3Qu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvQ2VydGlmaWNhdGVJbmZvTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvQ2VydGlmaWNhdGVJbmZvTWFjLm1tCmluZGV4IGMwY2ZhMWEuLjc5OTFmNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0NlcnRpZmlj
YXRlSW5mb01hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9D
ZXJ0aWZpY2F0ZUluZm9NYWMubW0KQEAgLTI3LDcgKzI3LDcgQEAKICNpbXBvcnQgIkNlcnRpZmlj
YXRlSW5mby5oIgogCiAjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgotI2ltcG9ydCAiU2VjdXJp
dHlTUEkuaCIKKyNpbXBvcnQgPHd0Zi9zcGkvY29jb2EvU2VjdXJpdHlTUEkuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmJkODg3ZC4uZjU0MTQ2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTEyLTEwICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFy
b0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3RlIEluc3BlY3RvcjogVmVyaWZ5IHRoZSBpZGVu
dGl0eSBvZiB0aGUgb3RoZXIgc2lkZSBvZiBYUEMgY29ubmVjdGlvbnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjE1MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL21hYy9TYW5kYm94VXRp
bGl0aWVzLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRlVHJhY2tlci5t
bToKKyAgICAgICAgVXNlIG5ldyBoZWFkZXIuCisKIDIwMTUtMTItMTAgIFphbiBEb2JlcnNlayAg
PHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDb29yZGluYXRlZEdyYXBoaWNzXSBS
ZXNlcnZlIGNhcGFjaXR5IGZvciB0aGUgY2hpbGRyZW4gdmVjdG9yIGluIENvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6c2V0TGF5ZXJDaGlsZHJlbklmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJveFV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2FuZGJveFV0aWxpdGllcy5tbQppbmRleCA1Nzg0ODk5Li5mZTY3ZTQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hVdGlsaXRpZXMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94VXRpbGl0aWVzLm1tCkBAIC0y
Niw5ICsyNiw5IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlNhbmRib3hVdGlsaXRp
ZXMuaCIKIAotI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eVNQSS5oPgogI2ltcG9ydCA8YXJyYXk+
CiAjaW1wb3J0IDxzeXMvcGFyYW0uaD4KKyNpbXBvcnQgPHd0Zi9zcGkvY29jb2EvU2VjdXJpdHlT
UEkuaD4KICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4KICNpbXBvcnQgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QXBwbGljYXRpb25TdGF0ZVRyYWNrZXIubW0KaW5kZXggYWRhNmFmOC4uNmQ1NWQyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRlVHJhY2tlci5t
bQpAQCAtMzEsOSArMzEsOSBAQAogI2ltcG9ydCAiQXNzZXJ0aW9uU2VydmljZXNTUEkuaCIKICNp
bXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCi0jaW1wb3J0
IDxXZWJDb3JlL1NlY3VyaXR5U1BJLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL3NwaS9jb2Nv
YS9TZWN1cml0eVNQSS5oPgogCiBAaW50ZXJmYWNlIFVJV2luZG93IChXS0RldGFpbHMpCiAtIChC
T09MKV9pc0hvc3RlZEluQW5vdGhlclByb2Nlc3M7Cg==
</data>
<flag name="review"
          id="292172"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
      

    </bug>

</bugzilla>