<?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>154999</bug_id>
          
          <creation_ts>2016-03-03 18:42:26 -0800</creation_ts>
          <short_desc>Regression(r196770): Unable to use HipChat Mac app</short_desc>
          <delta_ts>2016-03-05 17:52:38 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>154396</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1170449</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-03-03 18:42:26 -0800</bug_when>
    <thetext>Unable to use HipChat after &lt;http://trac.webkit.org/changeset/196770&gt;. It basically fails to connect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170450</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-03-03 18:42:45 -0800</bug_when>
    <thetext>rdar://problem/24931959</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170459</commentid>
    <comment_count>2</comment_count>
      <attachid>272817</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-03-03 19:14:36 -0800</bug_when>
    <thetext>Created attachment 272817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170465</commentid>
    <comment_count>3</comment_count>
      <attachid>272819</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-03-03 19:34:20 -0800</bug_when>
    <thetext>Created attachment 272819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170481</commentid>
    <comment_count>4</comment_count>
      <attachid>272819</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-03 20:23:19 -0800</bug_when>
    <thetext>Comment on attachment 272819
Patch

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

&gt; Source/JavaScriptCore/runtime/PutPropertySlot.h:97
&gt; +    void setIsStrictMode(bool value)

I think this can be named just setStrictMode.

&gt; Source/WebCore/platform/RuntimeApplicationChecks.cpp:51
&gt; +static String&amp; applicationBundleIdentifier()

I find the way this function works to be tricky and subtle. The way it works in all processes is a mix of multiple techniques. I think we might need a why comment or two explaining how things work.

&gt; Source/WebCore/platform/RuntimeApplicationChecks.cpp:59
&gt; +#if USE(CF)
&gt; +    if (identifier.get().isNull())
&gt; +        identifier.get() = String(mainBundleIdentifier());
&gt; +#endif

Inelegant to use a null check. Can we do this in a cleaner way? If it wasn’t for the #if it could be:

    static NeverDestroyed&lt;String&gt; identifier(mainBundleIdentifier());

Can we figure out a way to make it something closer to that?

&gt; Source/WebCore/platform/RuntimeApplicationChecks.cpp:165
&gt; +    static const bool isHipChat = applicationBundleIdentifier() == &quot;com.hipchat.HipChat&quot;;

I don’t think the const adds anything here.

We might consider renaming mainBundleIsEqualTo to applicationBundleIsEqualTo and handle these additional cases for all the apps. I suppose safer not to do that. I think the distinction is currently unclear. The idea is that these other quirks are all only for WebKit 1 so it’s good to confine these quirks to the main process. On the other hand, this quirk is for WebKit 2 so we want it across all processes. But that is subtle and confusing with the term &quot;main bundle&quot; and &quot;application bundle&quot; being precise about this difference, I suppose, but subtle. Seems like it would be better to just have a single technique or to use more explicit language.

It’s also tricky that setApplicationBundleIdentifier must be called before any of the other functions. Otherwise, they will permanently, inaccurately return false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170492</commentid>
    <comment_count>5</comment_count>
      <attachid>272819</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-03-03 20:53:15 -0800</bug_when>
    <thetext>Comment on attachment 272819
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/PutPropertySlot.h:97
&gt;&gt; +    void setIsStrictMode(bool value)
&gt; 
&gt; I think this can be named just setStrictMode.

Will rename before landing.

&gt;&gt; Source/WebCore/platform/RuntimeApplicationChecks.cpp:51
&gt;&gt; +static String&amp; applicationBundleIdentifier()
&gt; 
&gt; I find the way this function works to be tricky and subtle. The way it works in all processes is a mix of multiple techniques. I think we might need a why comment or two explaining how things work.

Will add a comment before landing.

&gt;&gt; Source/WebCore/platform/RuntimeApplicationChecks.cpp:59
&gt;&gt; +#endif
&gt; 
&gt; Inelegant to use a null check. Can we do this in a cleaner way? If it wasn’t for the #if it could be:
&gt; 
&gt;     static NeverDestroyed&lt;String&gt; identifier(mainBundleIdentifier());
&gt; 
&gt; Can we figure out a way to make it something closer to that?

Proposing this:
#if USE(CF)
    static NeverDestroyed&lt;String&gt; identifier(mainBundleIdentifier());
#else
    static NeverDestroyed&lt;String&gt; identifier;
#endif

&gt;&gt; Source/WebCore/platform/RuntimeApplicationChecks.cpp:165
&gt;&gt; +    static const bool isHipChat = applicationBundleIdentifier() == &quot;com.hipchat.HipChat&quot;;
&gt; 
&gt; I don’t think the const adds anything here.
&gt; 
&gt; We might consider renaming mainBundleIsEqualTo to applicationBundleIsEqualTo and handle these additional cases for all the apps. I suppose safer not to do that. I think the distinction is currently unclear. The idea is that these other quirks are all only for WebKit 1 so it’s good to confine these quirks to the main process. On the other hand, this quirk is for WebKit 2 so we want it across all processes. But that is subtle and confusing with the term &quot;main bundle&quot; and &quot;application bundle&quot; being precise about this difference, I suppose, but subtle. Seems like it would be better to just have a single technique or to use more explicit language.
&gt; 
&gt; It’s also tricky that setApplicationBundleIdentifier must be called before any of the other functions. Otherwise, they will permanently, inaccurately return false.

1. Will drop the const.
2. I agree about the refactoring so that everything would use the applicationBundle. However, I did not want to do it in this patch. I will follow up on this.
3. I will add an assertion to protect against applicationIsHipChat() getting called before setApplicationBundleIdentifier().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170499</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-03 21:04:08 -0800</bug_when>
    <thetext>All sounds good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170502</commentid>
    <comment_count>7</comment_count>
      <attachid>272829</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-03-03 21:11:45 -0800</bug_when>
    <thetext>Created attachment 272829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170521</commentid>
    <comment_count>8</comment_count>
      <attachid>272829</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-03 21:59:53 -0800</bug_when>
    <thetext>Comment on attachment 272829
Patch

Clearing flags on attachment: 272829

Committed r197548: &lt;http://trac.webkit.org/changeset/197548&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170522</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-03 21:59:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171275</commentid>
    <comment_count>10</comment_count>
      <attachid>272829</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-03-05 15:06:11 -0800</bug_when>
    <thetext>Comment on attachment 272829
Patch

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

&gt; Source/WebCore/bindings/js/JSLocationCustom.cpp:91
&gt; +    if (applicationIsHipChat())
&gt; +        slot.setStrictMode(false);

This appears to match how we do it currently, however I&apos;m not sure if I like the new approach better than the old one.

We used to have such policy checks centralized and configured via semantically meaningful preferences. See e.g. _needsPreHTML5ParserQuirks in WebView.mm or Settings::setNeedsKeyboardEventDisambiguationQuirks.

Also, we used to only add quirks for versions linked against old WebKit. The upside was that application authors had to eventually fix their code, and the downside was of course that this was an incredibly passive aggressive way to communicate. I&apos;m not sure whether this was a good thing overall.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171334</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-05 17:52:38 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Also, we used to only add quirks for versions linked against old WebKit. The
&gt; upside was that application authors had to eventually fix their code, and
&gt; the downside was of course that this was an incredibly passive aggressive
&gt; way to communicate.

I’d like to quibble with something here: Using a linked-on-or-after check is not a &quot;way to communicate&quot;. It&apos;s a way to safely make an important change without affecting software already in the hands of users. We often make important changes that are not developer-specific in this safer way, not just ones that are app-specific, for example when we added main thread exceptions to WebKit.

It only qualifies &quot;an incredibly passive aggressive way to communicate&quot; if we expect WebKit itself to be our communication tool. We have other tools such as email, iOS and OS X release notes and other documentation, the WebKit blog and more.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272817</attachid>
            <date>2016-03-03 19:14:36 -0800</date>
            <delta_ts>2016-03-03 19:34:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154999-20160303191421.patch</filename>
            <type>text/plain</type>
            <size>11081</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NzJkNjA4YzgzNDU5ZWY2YmRkYWYwYWNmMzkzMzBiN2UzNWNkY2UyLi5kMzY0YzdlNzA5ZjUwNjdk
NWM5ZWU3N2FlZjFjOTNiZTllNTM2MzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNi0wMy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlZ3Jlc3Npb24ocjE5Njc3MCk6IFVuYWJsZSB0byB1c2UgSGlwQ2hhdCBNYWMg
YXBwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ5
OTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0OTMxOTU5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHNldHRlciB0byBQdXRQcm9wZXJ0
eVNsb3QgdG8gb3ZlcnJpZGUgdGhlICdpc1N0cmljdE1vZGUnIGZsYWcuCisKKyAgICAgICAgKiBy
dW50aW1lL1B1dFByb3BlcnR5U2xvdC5oOgorICAgICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNsb3Q6
OnNldElzU3RyaWN0TW9kZSk6CisKIDIwMTYtMDMtMDMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21p
bGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgW0VTNl0gQWRkIHN1cHBvcnQgZm9yIFN5bWJvbC50
b1ByaW1pdGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ5NDQ0MmMzNGQ4Y2I5YWRjMTE4MDM1NDdkNmFlNGFl
YzRjZTUwM2IuLjEzN2Y5OTk1YmYxYmIyMDljYjA4ZTkwZGU4M2I0MDc0ZjA4ZDMwNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxNi0wMy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFJlZ3Jlc3Npb24ocjE5Njc3MCk6IFVuYWJsZSB0byB1c2Ug
SGlwQ2hhdCBNYWMgYXBwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTQ5OTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0OTMxOTU5PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHIxOTY3NzAgbWFkZSBb
VW5mb3JnZWFibGVdIG9wZXJhdGlvbnMgc3VjaCBhcyBMb2NhdGlvbi5yZWxvYWQoKQorICAgICAg
ICBub24td3JpdGFibGUgYXMgcGVyIHRoZSBXZWIgSURMIHNwZWNpZmljYXRpb24uIEFzIGEgcmVz
dWx0LAorICAgICAgICB0cnlpbmcgdG8gc2V0IHN1Y2ggcHJvcGVydGllcyB3aWxsIGJlIGlnbm9y
ZWQgaW4gbm9uLXN0cmljdAorICAgICAgICBtb2RlIGFuZCB3aWxsIHRocm93IGFuIGV4Y2VwdGlv
biBpcyBzdHJpY3QgbW9kZS4gVGhpcyBhbHNvIG1hdGNoZXMKKyAgICAgICAgRmlyZWZveCBhbmQg
Q2hyb21lLgorCisgICAgICAgIEhvd2V2ZXIsIHRoaXMgYnJva2UgdGhlIEhpcENoYXQgTWFjIEFw
cCAodGhlIFdlYiBBcHAgc2VlbXMgZmluZSkKKyAgICAgICAgYmVjYXVzZSBpdCBzZXRzIExvY2F0
aW9uLnJlbG9hZCgpIGFuZCBpcyB1c2luZyBzdHJpY3QgbW9kZSwgdGhlcmVmb3JlCisgICAgICAg
IGNhdXNpbmcgYW4gZXhjZXB0aW9uIHRvIGJlIHRocm93bi4KKworICAgICAgICBUaGlzIHBhdGNo
IGFkZHMgYSBxdWlyayB0byBKU0xvY2F0aW9uOjpwdXREZWxlZ2F0ZSgpIHdoaWNoIGRpc2FibGUK
KyAgICAgICAgc3RyaWN0IG1vZGUgd2hlbiB3ZSBkZXRlY3QgdGhhdCB0aGUgYXBwbGljYXRpb24g
aXMgSGlwQ2hhdC4gQXMgYQorICAgICAgICByZXN1bHQsIHdlIG5vIGxvbmdlciB0aHJvdyB3aGVu
IEhpcENoYXQgdHJpZXMgdG8gc2V0IExvY2F0aW9uLnJlbG9hZAorICAgICAgICBhbmQgdGhlIGFw
cGxpY2F0aW9uIGlzIGFibGUgdG8gY29ubmVjdCBhZ2Fpbi4KKworICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNMb2NhdGlvbjo6
cHV0RGVsZWdhdGUpOgorICAgICAgICBBZGQgYSBxdWlyayB3aGljaCBkaXNhYmxlcyBzdHJpY3Qg
bW9kZSBpZiB0aGUgYXBwbGljYXRpb24gaXMgSGlwQ2hhdC4KKworICAgICAgICAqIHBsYXRmb3Jt
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYWluQnVu
ZGxlSWRlbnRpZmllcik6CisgICAgICAgIEV4dHJhY3QgdGhpcyBmcm9tIG1haW5CdW5kbGVJc0Vx
dWFsVG8oKSBzbyBpdCBjYW4gYmUgc2hhcmVkIHdpdGgKKyAgICAgICAgYXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyKCkuCisKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcik6CisgICAgICAgIFJldHVybnMgdGhlIGFwcGxpY2F0aW9uIGJ1bmRsZSBpZGVudGlm
aWVyLCB3aGljaCBpcyBhIHN0YXRpYyB2YXJpYWJsZS4KKyAgICAgICAgRm9yIHRoZSBXZWJDb250
ZW50IC8gTmV0d29ya2luZyBwcm9jZXNzZXMsIHRoZSBhcHBsaWNhdGlvbiBidW5kbGUKKyAgICAg
ICAgaWRlbnRpZmllciBnZXRzIHNldCB0byB0aGUgVUlQcm9jZXNzIGJ1bmRsZSBpZGVudGlmaWVy
IHVwb24KKyAgICAgICAgaW5pdGlhbGl6YXRpb24uIElmIHVuc2V0LCB3ZSBmYWxsIGJhY2sgdG8g
dXNpbmcgbWFpbkJ1bmRsZUlkZW50aWZpZXIoKQorICAgICAgICB3aGljaCB3aWxsIGRvIHRoZSBy
aWdodCB0aGluZyBmb3IgdGhlIFdLMiBVSVByb2Nlc3MgYW5kIFdLMS4KKworICAgICAgICAoV2Vi
Q29yZTo6bWFpbkJ1bmRsZUlzRXF1YWxUbyk6CisgICAgICAgIEV4dHJhY3QgcGFydCBvZiB0aGUg
Y29kZSB0byBtYWluQnVuZGxlSWRlbnRpZmllcigpIHRvIGJldHRlciBzaGFyZQorICAgICAgICBj
b2RlLgorCisgICAgICAgIChXZWJDb3JlOjphcHBsaWNhdGlvbklzSGlwQ2hhdCk6CisgICAgICAg
IEFkZCB1dGlsaXR5IGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBI
aXBDaGF0LiBUaGlzCisgICAgICAgIHdpbGwgZG8gdGhlIHJpZ2h0IHRoaW5nIHdoZXRoZXIgaXQg
aXMgY2FsbGVkIGZyb20gdGhlIFVJUHJvY2VzcywgdGhlCisgICAgICAgIFdlYlByb2Nlc3Mgb3Ig
dGhlIFVJUHJvY2Vzcy4KKworICAgICAgICAoV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyKToKKyAgICAgICAgQWRkIHV0aWxpdHkgZnVuY3Rpb24gdG8gc2V0IHRoZSBhcHBs
aWNhdGlvbiBidW5kbGUgaWRlbnRpZmllci4gSXQgZ2V0cworICAgICAgICBjYWxsZWQgd2l0aCB0
aGUgVUlQcm9jZXNzIGJ1bmRsZSBpZGVudGlmaWVyIGJ5IHRoZSBOZXR3b3JrUHJvY2VzcyBhbmQK
KyAgICAgICAgdGhlIFdlYlByb2Nlc3MgdXBvbiBpbml0aWFsaXphdGlvbi4KKworICAgICAgICAq
IHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oOgorCiAyMDE2LTAzLTAzICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIERpc2FsbG93IGN1c3RvbSBl
bGVtZW50cyBpbnNpZGUgYSB3aW5kb3ctbGVzcyBkb2N1bWVudHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3NGNl
MjYyYjhkMjc0YzdjYzQ3NGRiZTExYWJjODhhYjQ4NWQzN2IzLi4yNWYyMzJkMmM2M2NmNTEyMzUx
NjZjMzdlNGI3NTVkOGMyNzliZDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTYt
MDMtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZWdyZXNz
aW9uKHIxOTY3NzApOiBVbmFibGUgdG8gdXNlIEhpcENoYXQgTWFjIGFwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0OTk5CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8yNDkzMTk1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBIYXZlIHRoZSBOZXR3b3JrUHJvY2VzcyBhbmQgdGhlIFdlYlByb2Nlc3Mg
cGFzcyB0aGUgVUlQcm9jZXNzIGJ1bmRsZQorICAgICAgICBpZGVudGlmaWVyIHRvIFdlYkNvcmUg
c28gdGhhdCB3ZSBjYW4gZG8gYXBwIGRldGVjdGlvbiBvZiBhcHBsaWNhdGlvbnMKKyAgICAgICAg
dXNpbmcgYSBXSzIgV2ViVmlldyAoc3VjaCBhcyBIaXBDaGF0KS4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgorCiAyMDE2LTAzLTAzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBTUEkgdG8gQ0ZOZXR3b3JrU1BJLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1B1dFByb3BlcnR5U2xvdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHV0UHJvcGVydHlTbG90LmgKaW5kZXggNWQx
MGI4MjkwNDZjZDhmZGRjZTM2ZWI2ZDQzNzQyNzNkN2UxYzg2MC4uNzUyZDllZmNmNTYzMWM5Mzg3
YmU4YmNmMTgyZWY0MDhiMjc1NWY5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHV0UHJvcGVydHlTbG90LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHV0UHJvcGVydHlTbG90LmgKQEAgLTk0LDYgKzk0LDExIEBAIHB1YmxpYzoKICAgICAg
ICAgbV90aGlzVmFsdWUgPSB0aGlzVmFsdWU7CiAgICAgfQogCisgICAgdm9pZCBzZXRJc1N0cmlj
dE1vZGUoYm9vbCB2YWx1ZSkKKyAgICB7CisgICAgICAgIG1faXNTdHJpY3RNb2RlID0gdmFsdWU7
CisgICAgfQorCiAgICAgUHV0VmFsdWVGdW5jIGN1c3RvbVNldHRlcigpIGNvbnN0CiAgICAgewog
ICAgICAgICBBU1NFUlQoaXNDYWNoZWFibGVDdXN0b20oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCmluZGV4IGIxMDgyNjIxN2ZlYWFiOWY5
Yjg0NWZhNDcxNWMyZDI1MTZhMjk3NzguLjBlNjM4YzI3NzhjN2M2NDg4YzA3MTRjNTBhYTg3YmYx
OTA1NDA1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRp
b25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25D
dXN0b20uY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiSlNMb2NhdGlvbi5oIgogCiAj
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0Z1bmN0aW9uLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CkBAIC04NCw2ICs4NSwxMiBAQCBib29sIEpTTG9jYXRpb246OnB1dERlbGVnYXRlKEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZQogICAgIGlm
IChwcm9wZXJ0eU5hbWUgIT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmhyZWYgJiYgIXNhbWVEb21h
aW5BY2Nlc3MpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IC8vIEZJWE1FOiBIaXBDaGF0IHRyaWVzIHRvIHNldCBMb2NhdGlvbi5yZWxvYWQgd2hpY2ggY2F1
c2VzIGFuIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24gaW4gc3RyaWN0IG1vZGUgKHNlZSA8cmRhcjov
L3Byb2JsZW0vMjQ5MzE5NTk+KS4KKyAgICBpZiAoYXBwbGljYXRpb25Jc0hpcENoYXQoKSkKKyAg
ICAgICAgc2xvdC5zZXRJc1N0cmljdE1vZGUoZmFsc2UpOworI2VuZGlmCisKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuY3BwCmluZGV4IDM1Zjk3NGU2YmRmMTE2ZjkxYzg5OGYzOTMzNmY5ZDZm
ZDkzZTEwN2MuLjUyMjhiMGQ3ZWI0NWJjMzYzM2U1ODI2NzJmZGJjNmYzMTY2M2UwOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmNwcApAQCAtMjYsMjUgKzI2LDQ1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwogI2lmIFVTRShDRikKICNp
bmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNlbmRpZgogCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmIFVTRShDRikKK3N0YXRpYyBDRlN0cmluZ1JlZiBt
YWluQnVuZGxlSWRlbnRpZmllcigpCit7CisgICAgQ0ZCdW5kbGVSZWYgbWFpbkJ1bmRsZSA9IENG
QnVuZGxlR2V0TWFpbkJ1bmRsZSgpOworICAgIGlmICghbWFpbkJ1bmRsZSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gQ0ZCdW5kbGVHZXRJZGVudGlmaWVyKG1haW5CdW5k
bGUpOworfQorI2VuZGlmCisKK3N0YXRpYyBTdHJpbmcmIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllcigpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IGlkZW50aWZpZXI7CisjaWYgVVNFKENGKQorICAgIGlmIChp
ZGVudGlmaWVyLmdldCgpLmlzTnVsbCgpKQorICAgICAgICBpZGVudGlmaWVyLmdldCgpID0gU3Ry
aW5nKG1haW5CdW5kbGVJZGVudGlmaWVyKCkpOworI2VuZGlmCisgICAgcmV0dXJuIGlkZW50aWZp
ZXI7Cit9CiAgICAgCiBzdGF0aWMgYm9vbCBtYWluQnVuZGxlSXNFcXVhbFRvKGNvbnN0IFN0cmlu
ZyYgYnVuZGxlSWRlbnRpZmllclN0cmluZykKIHsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNv
bnNpZGVyIG1lcmdpbmcgdGhpcyBmaWxlIHdpdGggUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9T
Lm1tLgogICAgIC8vIFRoZW4gd2UgY2FuIHJlbW92ZSB0aGUgUExBVEZPUk0oSU9TKS1ndWFyZC4K
ICNpZiBVU0UoQ0YpICYmICFQTEFURk9STShJT1MpCi0gICAgQ0ZCdW5kbGVSZWYgbWFpbkJ1bmRs
ZSA9IENGQnVuZGxlR2V0TWFpbkJ1bmRsZSgpOwotICAgIGlmICghbWFpbkJ1bmRsZSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgQ0ZTdHJpbmdSZWYgYnVuZGxlSWRlbnRpZmllciA9IENG
QnVuZGxlR2V0SWRlbnRpZmllcihtYWluQnVuZGxlKTsKKyAgICBDRlN0cmluZ1JlZiBidW5kbGVJ
ZGVudGlmaWVyID0gbWFpbkJ1bmRsZUlkZW50aWZpZXIoKTsKICAgICBpZiAoIWJ1bmRsZUlkZW50
aWZpZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTM5LDQgKzE1OSwxNSBAQCBib29s
IGFwcGxpY2F0aW9uSXNTb2xpZFN0YXRlTmV0d29ya3NEb3dubG9hZGVyKCkKICAgICByZXR1cm4g
aXNTb2xpZFN0YXRlTmV0d29ya3NEb3dubG9hZGVyOwogfQogCitib29sIGFwcGxpY2F0aW9uSXNI
aXBDaGF0KCkKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBpc0hpcENoYXQgPSBhcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXIoKSA9PSAiY29tLmhpcGNoYXQuSGlwQ2hhdCI7CisgICAgcmV0dXJu
IGlzSGlwQ2hhdDsKK30KKwordm9pZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoY29u
c3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyKQoreworICAgIGFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcigpID0gYnVuZGxlSWRlbnRpZmllcjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVj
a3MuaAppbmRleCBjMzgyNzRlYTZlMDI0MmQ3M2Y0Nzk4MjA1ODUzNzczMjc5Njg0MGQ3Li41Yzdm
ZWQwOWE1ZWViMWQ5MzE1YzkzMWViZTQwYjQ3MzIzZjM2Y2E2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaApAQCAtMjYsNiArMjYs
OCBAQAogI2lmbmRlZiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NfaAogI2RlZmluZSBSdW50aW1l
QXBwbGljYXRpb25DaGVja3NfaAogCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBXRUJDT1JFX0VYUE9SVCBib29sIGFwcGxpY2F0aW9uSXNBT0xJbnN0
YW50TWVzc2VuZ2VyKCk7CkBAIC00Miw2ICs0NCw5IEBAIFdFQkNPUkVfRVhQT1JUIGJvb2wgYXBw
bGljYXRpb25Jc1NhZmFyaSgpOwogYm9vbCBhcHBsaWNhdGlvbklzU29saWRTdGF0ZU5ldHdvcmtz
RG93bmxvYWRlcigpOwogV0VCQ09SRV9FWFBPUlQgYm9vbCBhcHBsaWNhdGlvbklzVmVyc2lvbnMo
KTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgYXBwbGljYXRpb25Jc0hSQmxvY2soKTsKK1dFQkNPUkVf
RVhQT1JUIGJvb2wgYXBwbGljYXRpb25Jc0hpcENoYXQoKTsKKworV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJik7CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGZhYzI2NjFhOTZiMTI2NTY1YTlhNWUxYjZkNjU0MTZi
YzI5NGEyMWQuLjEzZTZlNmI2NDhhZmExYjBiNjFjMTc5MDlmMTYyNzNjNDliMzUxMmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAg
LTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZWN1cml0eU9yaWdpbkhhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgpA
QCAtMjE0LDYgKzIxNSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3Jr
UHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1lCiAgICAgc2V0Q2FuSGFu
ZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24ocGFyYW1ldGVycy5jYW5IYW5kbGVIVFRQU1Nl
cnZlclRydXN0RXZhbHVhdGlvbik7CiAKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGTkVU
V09SSykKKyAgICBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIocGFyYW1ldGVycy51aVBy
b2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKICAgICBTZXNzaW9uVHJhY2tlcjo6c2V0SWRlbnRpZmll
ckJhc2UocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA2NzY1NmJiODRmZTNi
OTUzYzg5NWEyZTU5YmUxMzQ3MjI5YWE5OThiLi5mN2JkZjZhNzY2ZmU4MzA0NjgyYWU4M2VjOTg1
MWNiNDUyZTNjNTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
QEAgLTg2LDYgKzg2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VHcm91cC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2VjdXJpdHlPcmlnaW4uaD4KQEAgLTMyNyw2ICszMjgsNyBAQCB2b2lkIFdlYlByb2Nlc3M6Omlu
aXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0
ZXJzKQogICAgICAgICBzZXRTaG91bGRVc2VGb250U21vb3RoaW5nKHRydWUpOwogCiAjaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFVTRShDRk5FVFdPUkspCisgICAgc2V0QXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcik7CiAgICAgU2Vz
c2lvblRyYWNrZXI6OnNldElkZW50aWZpZXJCYXNlKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxl
SWRlbnRpZmllcik7CiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272819</attachid>
            <date>2016-03-03 19:34:20 -0800</date>
            <delta_ts>2016-03-03 21:11:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154999-20160303193404.patch</filename>
            <type>text/plain</type>
            <size>11107</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NzJkNjA4YzgzNDU5ZWY2YmRkYWYwYWNmMzkzMzBiN2UzNWNkY2UyLi5kMzY0YzdlNzA5ZjUwNjdk
NWM5ZWU3N2FlZjFjOTNiZTllNTM2MzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNi0wMy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlZ3Jlc3Npb24ocjE5Njc3MCk6IFVuYWJsZSB0byB1c2UgSGlwQ2hhdCBNYWMg
YXBwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ5
OTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0OTMxOTU5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHNldHRlciB0byBQdXRQcm9wZXJ0
eVNsb3QgdG8gb3ZlcnJpZGUgdGhlICdpc1N0cmljdE1vZGUnIGZsYWcuCisKKyAgICAgICAgKiBy
dW50aW1lL1B1dFByb3BlcnR5U2xvdC5oOgorICAgICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNsb3Q6
OnNldElzU3RyaWN0TW9kZSk6CisKIDIwMTYtMDMtMDMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21p
bGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgW0VTNl0gQWRkIHN1cHBvcnQgZm9yIFN5bWJvbC50
b1ByaW1pdGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ5NDQ0MmMzNGQ4Y2I5YWRjMTE4MDM1NDdkNmFlNGFl
YzRjZTUwM2IuLjEzN2Y5OTk1YmYxYmIyMDljYjA4ZTkwZGU4M2I0MDc0ZjA4ZDMwNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxNi0wMy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFJlZ3Jlc3Npb24ocjE5Njc3MCk6IFVuYWJsZSB0byB1c2Ug
SGlwQ2hhdCBNYWMgYXBwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTQ5OTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0OTMxOTU5PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHIxOTY3NzAgbWFkZSBb
VW5mb3JnZWFibGVdIG9wZXJhdGlvbnMgc3VjaCBhcyBMb2NhdGlvbi5yZWxvYWQoKQorICAgICAg
ICBub24td3JpdGFibGUgYXMgcGVyIHRoZSBXZWIgSURMIHNwZWNpZmljYXRpb24uIEFzIGEgcmVz
dWx0LAorICAgICAgICB0cnlpbmcgdG8gc2V0IHN1Y2ggcHJvcGVydGllcyB3aWxsIGJlIGlnbm9y
ZWQgaW4gbm9uLXN0cmljdAorICAgICAgICBtb2RlIGFuZCB3aWxsIHRocm93IGFuIGV4Y2VwdGlv
biBpcyBzdHJpY3QgbW9kZS4gVGhpcyBhbHNvIG1hdGNoZXMKKyAgICAgICAgRmlyZWZveCBhbmQg
Q2hyb21lLgorCisgICAgICAgIEhvd2V2ZXIsIHRoaXMgYnJva2UgdGhlIEhpcENoYXQgTWFjIEFw
cCAodGhlIFdlYiBBcHAgc2VlbXMgZmluZSkKKyAgICAgICAgYmVjYXVzZSBpdCBzZXRzIExvY2F0
aW9uLnJlbG9hZCgpIGFuZCBpcyB1c2luZyBzdHJpY3QgbW9kZSwgdGhlcmVmb3JlCisgICAgICAg
IGNhdXNpbmcgYW4gZXhjZXB0aW9uIHRvIGJlIHRocm93bi4KKworICAgICAgICBUaGlzIHBhdGNo
IGFkZHMgYSBxdWlyayB0byBKU0xvY2F0aW9uOjpwdXREZWxlZ2F0ZSgpIHdoaWNoIGRpc2FibGUK
KyAgICAgICAgc3RyaWN0IG1vZGUgd2hlbiB3ZSBkZXRlY3QgdGhhdCB0aGUgYXBwbGljYXRpb24g
aXMgSGlwQ2hhdC4gQXMgYQorICAgICAgICByZXN1bHQsIHdlIG5vIGxvbmdlciB0aHJvdyB3aGVu
IEhpcENoYXQgdHJpZXMgdG8gc2V0IExvY2F0aW9uLnJlbG9hZAorICAgICAgICBhbmQgdGhlIGFw
cGxpY2F0aW9uIGlzIGFibGUgdG8gY29ubmVjdCBhZ2Fpbi4KKworICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNMb2NhdGlvbjo6
cHV0RGVsZWdhdGUpOgorICAgICAgICBBZGQgYSBxdWlyayB3aGljaCBkaXNhYmxlcyBzdHJpY3Qg
bW9kZSBpZiB0aGUgYXBwbGljYXRpb24gaXMgSGlwQ2hhdC4KKworICAgICAgICAqIHBsYXRmb3Jt
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYWluQnVu
ZGxlSWRlbnRpZmllcik6CisgICAgICAgIEV4dHJhY3QgdGhpcyBmcm9tIG1haW5CdW5kbGVJc0Vx
dWFsVG8oKSBzbyBpdCBjYW4gYmUgc2hhcmVkIHdpdGgKKyAgICAgICAgYXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyKCkuCisKKyAgICAgICAgKFdlYkNvcmU6OmFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcik6CisgICAgICAgIFJldHVybnMgdGhlIGFwcGxpY2F0aW9uIGJ1bmRsZSBpZGVudGlm
aWVyLCB3aGljaCBpcyBhIHN0YXRpYyB2YXJpYWJsZS4KKyAgICAgICAgRm9yIHRoZSBXZWJDb250
ZW50IC8gTmV0d29ya2luZyBwcm9jZXNzZXMsIHRoZSBhcHBsaWNhdGlvbiBidW5kbGUKKyAgICAg
ICAgaWRlbnRpZmllciBnZXRzIHNldCB0byB0aGUgVUlQcm9jZXNzIGJ1bmRsZSBpZGVudGlmaWVy
IHVwb24KKyAgICAgICAgaW5pdGlhbGl6YXRpb24uIElmIHVuc2V0LCB3ZSBmYWxsIGJhY2sgdG8g
dXNpbmcgbWFpbkJ1bmRsZUlkZW50aWZpZXIoKQorICAgICAgICB3aGljaCB3aWxsIGRvIHRoZSBy
aWdodCB0aGluZyBmb3IgdGhlIFdLMiBVSVByb2Nlc3MgYW5kIFdLMS4KKworICAgICAgICAoV2Vi
Q29yZTo6bWFpbkJ1bmRsZUlzRXF1YWxUbyk6CisgICAgICAgIEV4dHJhY3QgcGFydCBvZiB0aGUg
Y29kZSB0byBtYWluQnVuZGxlSWRlbnRpZmllcigpIHRvIGJldHRlciBzaGFyZQorICAgICAgICBj
b2RlLgorCisgICAgICAgIChXZWJDb3JlOjphcHBsaWNhdGlvbklzSGlwQ2hhdCk6CisgICAgICAg
IEFkZCB1dGlsaXR5IGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBI
aXBDaGF0LiBUaGlzCisgICAgICAgIHdpbGwgZG8gdGhlIHJpZ2h0IHRoaW5nIHdoZXRoZXIgaXQg
aXMgY2FsbGVkIGZyb20gdGhlIFVJUHJvY2VzcywgdGhlCisgICAgICAgIFdlYlByb2Nlc3Mgb3Ig
dGhlIFVJUHJvY2Vzcy4KKworICAgICAgICAoV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyKToKKyAgICAgICAgQWRkIHV0aWxpdHkgZnVuY3Rpb24gdG8gc2V0IHRoZSBhcHBs
aWNhdGlvbiBidW5kbGUgaWRlbnRpZmllci4gSXQgZ2V0cworICAgICAgICBjYWxsZWQgd2l0aCB0
aGUgVUlQcm9jZXNzIGJ1bmRsZSBpZGVudGlmaWVyIGJ5IHRoZSBOZXR3b3JrUHJvY2VzcyBhbmQK
KyAgICAgICAgdGhlIFdlYlByb2Nlc3MgdXBvbiBpbml0aWFsaXphdGlvbi4KKworICAgICAgICAq
IHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oOgorCiAyMDE2LTAzLTAzICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIERpc2FsbG93IGN1c3RvbSBl
bGVtZW50cyBpbnNpZGUgYSB3aW5kb3ctbGVzcyBkb2N1bWVudHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3NGNl
MjYyYjhkMjc0YzdjYzQ3NGRiZTExYWJjODhhYjQ4NWQzN2IzLi4yNWYyMzJkMmM2M2NmNTEyMzUx
NjZjMzdlNGI3NTVkOGMyNzliZDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTYt
MDMtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZWdyZXNz
aW9uKHIxOTY3NzApOiBVbmFibGUgdG8gdXNlIEhpcENoYXQgTWFjIGFwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0OTk5CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8yNDkzMTk1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBIYXZlIHRoZSBOZXR3b3JrUHJvY2VzcyBhbmQgdGhlIFdlYlByb2Nlc3Mg
cGFzcyB0aGUgVUlQcm9jZXNzIGJ1bmRsZQorICAgICAgICBpZGVudGlmaWVyIHRvIFdlYkNvcmUg
c28gdGhhdCB3ZSBjYW4gZG8gYXBwIGRldGVjdGlvbiBvZiBhcHBsaWNhdGlvbnMKKyAgICAgICAg
dXNpbmcgYSBXSzIgV2ViVmlldyAoc3VjaCBhcyBIaXBDaGF0KS4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgorCiAyMDE2LTAzLTAzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBTUEkgdG8gQ0ZOZXR3b3JrU1BJLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1B1dFByb3BlcnR5U2xvdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHV0UHJvcGVydHlTbG90LmgKaW5kZXggNWQx
MGI4MjkwNDZjZDhmZGRjZTM2ZWI2ZDQzNzQyNzNkN2UxYzg2MC4uNzUyZDllZmNmNTYzMWM5Mzg3
YmU4YmNmMTgyZWY0MDhiMjc1NWY5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHV0UHJvcGVydHlTbG90LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHV0UHJvcGVydHlTbG90LmgKQEAgLTk0LDYgKzk0LDExIEBAIHB1YmxpYzoKICAgICAg
ICAgbV90aGlzVmFsdWUgPSB0aGlzVmFsdWU7CiAgICAgfQogCisgICAgdm9pZCBzZXRJc1N0cmlj
dE1vZGUoYm9vbCB2YWx1ZSkKKyAgICB7CisgICAgICAgIG1faXNTdHJpY3RNb2RlID0gdmFsdWU7
CisgICAgfQorCiAgICAgUHV0VmFsdWVGdW5jIGN1c3RvbVNldHRlcigpIGNvbnN0CiAgICAgewog
ICAgICAgICBBU1NFUlQoaXNDYWNoZWFibGVDdXN0b20oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCmluZGV4IGIxMDgyNjIxN2ZlYWFiOWY5
Yjg0NWZhNDcxNWMyZDI1MTZhMjk3NzguLjBlNjM4YzI3NzhjN2M2NDg4YzA3MTRjNTBhYTg3YmYx
OTA1NDA1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRp
b25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25D
dXN0b20uY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiSlNMb2NhdGlvbi5oIgogCiAj
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0Z1bmN0aW9uLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CkBAIC04NCw2ICs4NSwxMiBAQCBib29sIEpTTG9jYXRpb246OnB1dERlbGVnYXRlKEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZQogICAgIGlm
IChwcm9wZXJ0eU5hbWUgIT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmhyZWYgJiYgIXNhbWVEb21h
aW5BY2Nlc3MpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IC8vIEZJWE1FOiBIaXBDaGF0IHRyaWVzIHRvIHNldCBMb2NhdGlvbi5yZWxvYWQgd2hpY2ggY2F1
c2VzIGFuIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24gaW4gc3RyaWN0IG1vZGUgKHNlZSA8cmRhcjov
L3Byb2JsZW0vMjQ5MzE5NTk+KS4KKyAgICBpZiAoYXBwbGljYXRpb25Jc0hpcENoYXQoKSkKKyAg
ICAgICAgc2xvdC5zZXRJc1N0cmljdE1vZGUoZmFsc2UpOworI2VuZGlmCisKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuY3BwCmluZGV4IDM1Zjk3NGU2YmRmMTE2ZjkxYzg5OGYzOTMzNmY5ZDZm
ZDkzZTEwN2MuLmFkMmYwYTI4MTI0MzVhNDNiZmEzOTA3OGVmN2E2MzZjMWFkNDE3MzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmNwcApAQCAtMjYsMjUgKzI2LDQ2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCiAjaWYgVVNFKENGKQogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3Vu
ZGF0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2VuZGlmCiAKLSNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQogbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgVVNF
KENGKQorc3RhdGljIENGU3RyaW5nUmVmIG1haW5CdW5kbGVJZGVudGlmaWVyKCkKK3sKKyAgICBD
RkJ1bmRsZVJlZiBtYWluQnVuZGxlID0gQ0ZCdW5kbGVHZXRNYWluQnVuZGxlKCk7CisgICAgaWYg
KCFtYWluQnVuZGxlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBDRkJ1
bmRsZUdldElkZW50aWZpZXIobWFpbkJ1bmRsZSk7Cit9CisjZW5kaWYKKworc3RhdGljIFN0cmlu
ZyYgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOworCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gaWRlbnRpZmll
cjsKKyNpZiBVU0UoQ0YpCisgICAgaWYgKGlkZW50aWZpZXIuZ2V0KCkuaXNOdWxsKCkpCisgICAg
ICAgIGlkZW50aWZpZXIuZ2V0KCkgPSBTdHJpbmcobWFpbkJ1bmRsZUlkZW50aWZpZXIoKSk7Cisj
ZW5kaWYKKyAgICByZXR1cm4gaWRlbnRpZmllcjsKK30KICAgICAKIHN0YXRpYyBib29sIG1haW5C
dW5kbGVJc0VxdWFsVG8oY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyU3RyaW5nKQogewog
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY29uc2lkZXIgbWVyZ2luZyB0aGlzIGZpbGUgd2l0aCBS
dW50aW1lQXBwbGljYXRpb25DaGVja3NJT1MubW0uCiAgICAgLy8gVGhlbiB3ZSBjYW4gcmVtb3Zl
IHRoZSBQTEFURk9STShJT1MpLWd1YXJkLgogI2lmIFVTRShDRikgJiYgIVBMQVRGT1JNKElPUykK
LSAgICBDRkJ1bmRsZVJlZiBtYWluQnVuZGxlID0gQ0ZCdW5kbGVHZXRNYWluQnVuZGxlKCk7Ci0g
ICAgaWYgKCFtYWluQnVuZGxlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBDRlN0cmlu
Z1JlZiBidW5kbGVJZGVudGlmaWVyID0gQ0ZCdW5kbGVHZXRJZGVudGlmaWVyKG1haW5CdW5kbGUp
OworICAgIENGU3RyaW5nUmVmIGJ1bmRsZUlkZW50aWZpZXIgPSBtYWluQnVuZGxlSWRlbnRpZmll
cigpOwogICAgIGlmICghYnVuZGxlSWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CkBAIC0xMzksNCArMTYwLDE1IEBAIGJvb2wgYXBwbGljYXRpb25Jc1NvbGlkU3RhdGVOZXR3b3Jr
c0Rvd25sb2FkZXIoKQogICAgIHJldHVybiBpc1NvbGlkU3RhdGVOZXR3b3Jrc0Rvd25sb2FkZXI7
CiB9CiAKK2Jvb2wgYXBwbGljYXRpb25Jc0hpcENoYXQoKQoreworICAgIHN0YXRpYyBjb25zdCBi
b29sIGlzSGlwQ2hhdCA9IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpID09ICJjb20uaGlw
Y2hhdC5IaXBDaGF0IjsKKyAgICByZXR1cm4gaXNIaXBDaGF0OworfQorCit2b2lkIHNldEFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIpCit7
CisgICAgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkgPSBidW5kbGVJZGVudGlmaWVyOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCmluZGV4IGMzODI3NGVhNmUwMjQyZDczZjQ3
OTgyMDU4NTM3NzMyNzk2ODQwZDcuLjVjN2ZlZDA5YTVlZWIxZDkzMTVjOTMxZWJlNDBiNDczMjNm
MzZjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZuZGVmIFJ1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrc19oCiAjZGVmaW5lIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc19oCiAKKyNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdFQkNPUkVfRVhQT1JU
IGJvb2wgYXBwbGljYXRpb25Jc0FPTEluc3RhbnRNZXNzZW5nZXIoKTsKQEAgLTQyLDYgKzQ0LDkg
QEAgV0VCQ09SRV9FWFBPUlQgYm9vbCBhcHBsaWNhdGlvbklzU2FmYXJpKCk7CiBib29sIGFwcGxp
Y2F0aW9uSXNTb2xpZFN0YXRlTmV0d29ya3NEb3dubG9hZGVyKCk7CiBXRUJDT1JFX0VYUE9SVCBi
b29sIGFwcGxpY2F0aW9uSXNWZXJzaW9ucygpOwogV0VCQ09SRV9FWFBPUlQgYm9vbCBhcHBsaWNh
dGlvbklzSFJCbG9jaygpOworV0VCQ09SRV9FWFBPUlQgYm9vbCBhcHBsaWNhdGlvbklzSGlwQ2hh
dCgpOworCitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
cihjb25zdCBTdHJpbmcmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggZmFjMjY2
MWE5NmIxMjY1NjVhOWE1ZTFiNmQ2NTQxNmJjMjk0YTIxZC4uMTNlNmU2YjY0OGFmYTFiMGI2MWMx
NzkwOWYxNjI3M2M0OWIzNTEyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvTG9nZ2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luSGFzaC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CkBAIC0yMTQsNiArMjE1LDcgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWUKICAgICBzZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbihw
YXJhbWV0ZXJzLmNhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKTsKIAogI2lmIFBM
QVRGT1JNKENPQ09BKSB8fCBVU0UoQ0ZORVRXT1JLKQorICAgIHNldEFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllcihwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIpOwogICAgIFNl
c3Npb25UcmFja2VyOjpzZXRJZGVudGlmaWVyQmFzZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRs
ZUlkZW50aWZpZXIpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCmluZGV4IDY3NjU2YmI4NGZlM2I5NTNjODk1YTJlNTliZTEzNDcyMjlhYTk5OGIuLmY3
YmRmNmE3NjZmZTgzMDQ2ODJhZTgzZWM5ODUxY2I0NTJlM2M1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtODYsNiArODYsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lz
dHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgpAQCAtMzI3LDYgKzMy
OCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgIHNldFNob3VsZFVzZUZvbnRT
bW9vdGhpbmcodHJ1ZSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGTkVUV09SSykK
KyAgICBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIocGFyYW1ldGVycy51aVByb2Nlc3NC
dW5kbGVJZGVudGlmaWVyKTsKICAgICBTZXNzaW9uVHJhY2tlcjo6c2V0SWRlbnRpZmllckJhc2Uo
cGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272829</attachid>
            <date>2016-03-03 21:11:45 -0800</date>
            <delta_ts>2016-03-03 21:59:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154999-20160303211130.patch</filename>
            <type>text/plain</type>
            <size>11744</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NzJkNjA4YzgzNDU5ZWY2YmRkYWYwYWNmMzkzMzBiN2UzNWNkY2UyLi5lMDgwYjdjZjk4OWY2M2Ri
YWFjZTA0NzU0ZTBkMzVjMTRjNzNmNDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNi0wMy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlZ3Jlc3Npb24ocjE5Njc3MCk6IFVuYWJsZSB0byB1c2UgSGlwQ2hhdCBNYWMg
YXBwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ5
OTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0OTMxOTU5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkZCBhIHNldHRlciB0byBQdXRQcm9wZXJ0eVNs
b3QgdG8gb3ZlcnJpZGUgdGhlICdpc1N0cmljdE1vZGUnIGZsYWcuCisKKyAgICAgICAgKiBydW50
aW1lL1B1dFByb3BlcnR5U2xvdC5oOgorICAgICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNsb3Q6OnNl
dFN0cmljdE1vZGUpOgorCiAyMDE2LTAzLTAzICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFtFUzZdIEFkZCBzdXBwb3J0IGZvciBTeW1ib2wudG9Qcmlt
aXRpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA0OTQ0NDJjMzRkOGNiOWFkYzExODAzNTQ3ZDZhZTRhZWM0Y2U1
MDNiLi5hYWIzODAwY2YwYWUxMTk2NjI2NDNhZDIwZTdlMTk4NTcwODczMmZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTggQEAKKzIwMTYtMDMtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBSZWdyZXNzaW9uKHIxOTY3NzApOiBVbmFibGUgdG8gdXNlIEhpcENo
YXQgTWFjIGFwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU0OTk5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDkzMTk1OT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICByMTk2NzcwIG1hZGUgW1VuZm9yZ2Vh
YmxlXSBvcGVyYXRpb25zIHN1Y2ggYXMgTG9jYXRpb24ucmVsb2FkKCkKKyAgICAgICAgbm9uLXdy
aXRhYmxlIGFzIHBlciB0aGUgV2ViIElETCBzcGVjaWZpY2F0aW9uLiBBcyBhIHJlc3VsdCwKKyAg
ICAgICAgdHJ5aW5nIHRvIHNldCBzdWNoIHByb3BlcnRpZXMgd2lsbCBiZSBpZ25vcmVkIGluIG5v
bi1zdHJpY3QKKyAgICAgICAgbW9kZSBhbmQgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaXMgc3Ry
aWN0IG1vZGUuIFRoaXMgYWxzbyBtYXRjaGVzCisgICAgICAgIEZpcmVmb3ggYW5kIENocm9tZS4K
KworICAgICAgICBIb3dldmVyLCB0aGlzIGJyb2tlIHRoZSBIaXBDaGF0IE1hYyBBcHAgKHRoZSBX
ZWIgQXBwIHNlZW1zIGZpbmUpCisgICAgICAgIGJlY2F1c2UgaXQgc2V0cyBMb2NhdGlvbi5yZWxv
YWQoKSBhbmQgaXMgdXNpbmcgc3RyaWN0IG1vZGUsIHRoZXJlZm9yZQorICAgICAgICBjYXVzaW5n
IGFuIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24uCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEg
cXVpcmsgdG8gSlNMb2NhdGlvbjo6cHV0RGVsZWdhdGUoKSB3aGljaCBkaXNhYmxlCisgICAgICAg
IHN0cmljdCBtb2RlIHdoZW4gd2UgZGV0ZWN0IHRoYXQgdGhlIGFwcGxpY2F0aW9uIGlzIEhpcENo
YXQuIEFzIGEKKyAgICAgICAgcmVzdWx0LCB3ZSBubyBsb25nZXIgdGhyb3cgd2hlbiBIaXBDaGF0
IHRyaWVzIHRvIHNldCBMb2NhdGlvbi5yZWxvYWQKKyAgICAgICAgYW5kIHRoZSBhcHBsaWNhdGlv
biBpcyBhYmxlIHRvIGNvbm5lY3QgYWdhaW4uCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xv
Y2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTG9jYXRpb246OnB1dERlbGVn
YXRlKToKKyAgICAgICAgQWRkIGEgcXVpcmsgd2hpY2ggZGlzYWJsZXMgc3RyaWN0IG1vZGUgaWYg
dGhlIGFwcGxpY2F0aW9uIGlzIEhpcENoYXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFpbkJ1bmRsZUlkZW50
aWZpZXIpOgorICAgICAgICBFeHRyYWN0IHRoaXMgZnJvbSBtYWluQnVuZGxlSXNFcXVhbFRvKCkg
c28gaXQgY2FuIGJlIHNoYXJlZCB3aXRoCisgICAgICAgIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllcigpLgorCisgICAgICAgIChXZWJDb3JlOjphcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIp
OgorICAgICAgICBSZXR1cm5zIHRoZSBhcHBsaWNhdGlvbiBidW5kbGUgaWRlbnRpZmllciwgd2hp
Y2ggaXMgYSBzdGF0aWMgdmFyaWFibGUuCisgICAgICAgIEZvciB0aGUgV2ViQ29udGVudCAvIE5l
dHdvcmtpbmcgcHJvY2Vzc2VzLCB0aGUgYXBwbGljYXRpb24gYnVuZGxlCisgICAgICAgIGlkZW50
aWZpZXIgZ2V0cyBzZXQgdG8gdGhlIFVJUHJvY2VzcyBidW5kbGUgaWRlbnRpZmllciB1cG9uCisg
ICAgICAgIGluaXRpYWxpemF0aW9uLiBJZiB1bnNldCwgd2UgZmFsbCBiYWNrIHRvIHVzaW5nIG1h
aW5CdW5kbGVJZGVudGlmaWVyKCkKKyAgICAgICAgd2hpY2ggd2lsbCBkbyB0aGUgcmlnaHQgdGhp
bmcgZm9yIHRoZSBXSzIgVUlQcm9jZXNzIGFuZCBXSzEuCisKKyAgICAgICAgKFdlYkNvcmU6Om1h
aW5CdW5kbGVJc0VxdWFsVG8pOgorICAgICAgICBFeHRyYWN0IHBhcnQgb2YgdGhlIGNvZGUgdG8g
bWFpbkJ1bmRsZUlkZW50aWZpZXIoKSB0byBiZXR0ZXIgc2hhcmUKKyAgICAgICAgY29kZS4KKwor
ICAgICAgICAoV2ViQ29yZTo6YXBwbGljYXRpb25Jc0hpcENoYXQpOgorICAgICAgICBBZGQgdXRp
bGl0eSBmdW5jdGlvbiB0aGF0IGNoZWNrcyBpZiB0aGUgYXBwbGljYXRpb24gaXMgSGlwQ2hhdC4g
VGhpcworICAgICAgICB3aWxsIGRvIHRoZSByaWdodCB0aGluZyB3aGV0aGVyIGl0IGlzIGNhbGxl
ZCBmcm9tIHRoZSBVSVByb2Nlc3MsIHRoZQorICAgICAgICBXZWJQcm9jZXNzIG9yIHRoZSBVSVBy
b2Nlc3MuCisKKyAgICAgICAgKFdlYkNvcmU6OnNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
cik6CisgICAgICAgIEFkZCB1dGlsaXR5IGZ1bmN0aW9uIHRvIHNldCB0aGUgYXBwbGljYXRpb24g
YnVuZGxlIGlkZW50aWZpZXIuIEl0IGdldHMKKyAgICAgICAgY2FsbGVkIHdpdGggdGhlIFVJUHJv
Y2VzcyBidW5kbGUgaWRlbnRpZmllciBieSB0aGUgTmV0d29ya1Byb2Nlc3MgYW5kCisgICAgICAg
IHRoZSBXZWJQcm9jZXNzIHVwb24gaW5pdGlhbGl6YXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaDoKKwogMjAxNi0wMy0wMyAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBEaXNhbGxvdyBjdXN0b20gZWxlbWVudHMg
aW5zaWRlIGEgd2luZG93LWxlc3MgZG9jdW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzRjZTI2MmI4ZDI3
NGM3Y2M0NzRkYmUxMWFiYzg4YWI0ODVkMzdiMy4uZTQ4YTljNmRlN2RiNjlmZGQzMzJlYWVjZWQ4
YTIzYjAwODAyY2JiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE2LTAzLTAzICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVncmVzc2lvbihyMTk2
NzcwKTogVW5hYmxlIHRvIHVzZSBIaXBDaGF0IE1hYyBhcHAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDk5OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjQ5MzE5NTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgSGF2ZSB0aGUgTmV0d29ya1Byb2Nlc3MgYW5kIHRoZSBXZWJQcm9jZXNzIHBhc3MgdGhlIFVJ
UHJvY2VzcyBidW5kbGUKKyAgICAgICAgaWRlbnRpZmllciB0byBXZWJDb3JlIHNvIHRoYXQgd2Ug
Y2FuIGRvIGFwcCBkZXRlY3Rpb24gb2YgYXBwbGljYXRpb25zCisgICAgICAgIHVzaW5nIGEgV0sy
IFdlYlZpZXcgKHN1Y2ggYXMgSGlwQ2hhdCkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbml0
aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToK
KwogMjAxNi0wMy0wMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIE1vdmUgU1BJIHRvIENGTmV0d29ya1NQSS5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9QdXRQcm9wZXJ0eVNsb3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1B1dFByb3BlcnR5U2xvdC5oCmluZGV4IDVkMTBiODI5MDQ2Y2Q4
ZmRkY2UzNmViNmQ0Mzc0MjczZDdlMWM4NjAuLjkwYzU3YmU5MGY4YTFhNGRiZDZlNDMzNTBiNWJj
NjdmZTM2NDFhY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1B1
dFByb3BlcnR5U2xvdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1B1dFBy
b3BlcnR5U2xvdC5oCkBAIC05NCw2ICs5NCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fdGhpc1Zh
bHVlID0gdGhpc1ZhbHVlOwogICAgIH0KIAorICAgIHZvaWQgc2V0U3RyaWN0TW9kZShib29sIHZh
bHVlKQorICAgIHsKKyAgICAgICAgbV9pc1N0cmljdE1vZGUgPSB2YWx1ZTsKKyAgICB9CisKICAg
ICBQdXRWYWx1ZUZ1bmMgY3VzdG9tU2V0dGVyKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VS
VChpc0NhY2hlYWJsZUN1c3RvbSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNMb2NhdGlvbkN1c3RvbS5jcHAKaW5kZXggYjEwODI2MjE3ZmVhYWI5ZjliODQ1ZmE0NzE1YzJk
MjUxNmEyOTc3OC4uYjMzYWQ0ZjViMTFkZjM5OTdkNDUzMGVlYzcyMTU2YmZjNTAxMzI4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKQEAg
LTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJKU0xvY2F0aW9uLmgiCiAKICNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKKyNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNs
dWRlIDxydW50aW1lL0pTRnVuY3Rpb24uaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTg0
LDYgKzg1LDEyIEBAIGJvb2wgSlNMb2NhdGlvbjo6cHV0RGVsZWdhdGUoRXhlY1N0YXRlKiBleGVj
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlCiAgICAgaWYgKHByb3BlcnR5TmFt
ZSAhPSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuaHJlZiAmJiAhc2FtZURvbWFpbkFjY2VzcykKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgLy8gRklYTUU6IEhp
cENoYXQgdHJpZXMgdG8gc2V0IExvY2F0aW9uLnJlbG9hZCB3aGljaCBjYXVzZXMgYW4gZXhjZXB0
aW9uIHRvIGJlIHRocm93biBpbiBzdHJpY3QgbW9kZSAoc2VlIDxyZGFyOi8vcHJvYmxlbS8yNDkz
MTk1OT4pLgorICAgIGlmIChhcHBsaWNhdGlvbklzSGlwQ2hhdCgpKQorICAgICAgICBzbG90LnNl
dFN0cmljdE1vZGUoZmFsc2UpOworI2VuZGlmCisKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwCmluZGV4IDM1Zjk3NGU2YmRmMTE2ZjkxYzg5OGYzOTMzNmY5ZDZmZDkzZTEwN2MuLjQ4YjRm
NjUwNDg5NjU3ZjExNWUxZTI2YjBjNTc5MDkyYmI4YWVjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcApAQCAtMjYsMjUg
KzI2LDU0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmgiCiAKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCiAjaWYg
VVNFKENGKQogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2VuZGlmCiAKLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAorCisjaWYgVVNFKENGKQorc3Rh
dGljIENGU3RyaW5nUmVmIG1haW5CdW5kbGVJZGVudGlmaWVyKCkKK3sKKyAgICBDRkJ1bmRsZVJl
ZiBtYWluQnVuZGxlID0gQ0ZCdW5kbGVHZXRNYWluQnVuZGxlKCk7CisgICAgaWYgKCFtYWluQnVu
ZGxlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBDRkJ1bmRsZUdldElk
ZW50aWZpZXIobWFpbkJ1bmRsZSk7Cit9CisjZW5kaWYKKworLy8gVGhlIGFwcGxpY2F0aW9uIGJ1
bmRsZSBpZGVudGlmaWVyIGdldHMgc2V0IHRvIHRoZSBVSVByb2Nlc3MgYnVuZGxlIGlkZW50aWZp
ZXIgYnkgdGhlIFdlYlByb2Nlc3MgYW5kCisvLyB0aGUgbmV0d29ya2luZyBwcm9jZXNzIHVwb24g
aW5pdGlhbGl6YXRpb24uCisvLyBJZiBub3QgZXhwbGljaXRseSBzZXQsIHRoaXMgd2lsbCByZXR1
cm4gdGhlIG1haW4gYnVuZGxlIGlkZW50aWZpZXIgd2hpY2ggaXMgYWNjdXJhdGUgZm9yIFdLMSBv
cgorLy8gdGhlIFdLMiBVSVByb2Nlc3MuCitzdGF0aWMgU3RyaW5nJiBhcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIoKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyNpZiBV
U0UoQ0YpCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gaWRlbnRpZmllcihtYWlu
QnVuZGxlSWRlbnRpZmllcigpKTsKKyNlbHNlCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0
cmluZz4gaWRlbnRpZmllcjsKKyNlbmRpZgorCisgICAgcmV0dXJuIGlkZW50aWZpZXI7Cit9CisK
Ky8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSByZW5hbWVkIHRvIGFwcGxpY2F0aW9u
QnVuZGxlSXNFcXVhbFRvKCkgYW5kIHVzZSBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKQor
Ly8gaW5zdGVhZCBvZiBtYWluQnVuZGxlSWRlbnRpZmllcigpIGludGVybmFsbHkuIFRoaXMgd291
bGQgaGF2ZSB0aGUgYmVuZWZpdCBvZiB3b3JraW5nIGZvciBib3RoIFdlYktpdDEgYW5kCisvLyBX
ZWJLaXQyLgogc3RhdGljIGJvb2wgbWFpbkJ1bmRsZUlzRXF1YWxUbyhjb25zdCBTdHJpbmcmIGJ1
bmRsZUlkZW50aWZpZXJTdHJpbmcpCiB7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjb25zaWRl
ciBtZXJnaW5nIHRoaXMgZmlsZSB3aXRoIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5tbS4K
ICAgICAvLyBUaGVuIHdlIGNhbiByZW1vdmUgdGhlIFBMQVRGT1JNKElPUyktZ3VhcmQuCiAjaWYg
VVNFKENGKSAmJiAhUExBVEZPUk0oSU9TKQotICAgIENGQnVuZGxlUmVmIG1haW5CdW5kbGUgPSBD
RkJ1bmRsZUdldE1haW5CdW5kbGUoKTsKLSAgICBpZiAoIW1haW5CdW5kbGUpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIENGU3RyaW5nUmVmIGJ1bmRsZUlkZW50aWZpZXIgPSBDRkJ1bmRs
ZUdldElkZW50aWZpZXIobWFpbkJ1bmRsZSk7CisgICAgQ0ZTdHJpbmdSZWYgYnVuZGxlSWRlbnRp
ZmllciA9IG1haW5CdW5kbGVJZGVudGlmaWVyKCk7CiAgICAgaWYgKCFidW5kbGVJZGVudGlmaWVy
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTEzOSw0ICsxNjgsMTYgQEAgYm9vbCBhcHBs
aWNhdGlvbklzU29saWRTdGF0ZU5ldHdvcmtzRG93bmxvYWRlcigpCiAgICAgcmV0dXJuIGlzU29s
aWRTdGF0ZU5ldHdvcmtzRG93bmxvYWRlcjsKIH0KIAorYm9vbCBhcHBsaWNhdGlvbklzSGlwQ2hh
dCgpCit7CisgICAgc3RhdGljIGJvb2wgaXNIaXBDaGF0ID0gYXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyKCkgPT0gImNvbS5oaXBjaGF0LkhpcENoYXQiOworICAgIEFTU0VSVF9XSVRIX01FU1NB
R0UoaXNIaXBDaGF0ID09IChhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSA9PSAiY29tLmhp
cGNoYXQuSGlwQ2hhdCIpLCAiU2hvdWxkIG5vdCBiZSBjYWxsZWQgYmVmb3JlIHNldEFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllcigpIik7CisgICAgcmV0dXJuIGlzSGlwQ2hhdDsKK30KKwordm9p
ZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBidW5kbGVJZGVu
dGlmaWVyKQoreworICAgIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpID0gYnVuZGxlSWRl
bnRpZmllcjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAppbmRleCBjMzgyNzRlYTZl
MDI0MmQ3M2Y0Nzk4MjA1ODUzNzczMjc5Njg0MGQ3Li41YzdmZWQwOWE1ZWViMWQ5MzE1YzkzMWVi
ZTQwYjQ3MzIzZjM2Y2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3MuaApAQCAtMjYsNiArMjYsOCBAQAogI2lmbmRlZiBSdW50aW1l
QXBwbGljYXRpb25DaGVja3NfaAogI2RlZmluZSBSdW50aW1lQXBwbGljYXRpb25DaGVja3NfaAog
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXRUJD
T1JFX0VYUE9SVCBib29sIGFwcGxpY2F0aW9uSXNBT0xJbnN0YW50TWVzc2VuZ2VyKCk7CkBAIC00
Miw2ICs0NCw5IEBAIFdFQkNPUkVfRVhQT1JUIGJvb2wgYXBwbGljYXRpb25Jc1NhZmFyaSgpOwog
Ym9vbCBhcHBsaWNhdGlvbklzU29saWRTdGF0ZU5ldHdvcmtzRG93bmxvYWRlcigpOwogV0VCQ09S
RV9FWFBPUlQgYm9vbCBhcHBsaWNhdGlvbklzVmVyc2lvbnMoKTsKIFdFQkNPUkVfRVhQT1JUIGJv
b2wgYXBwbGljYXRpb25Jc0hSQmxvY2soKTsKK1dFQkNPUkVfRVhQT1JUIGJvb2wgYXBwbGljYXRp
b25Jc0hpcENoYXQoKTsKKworV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmlu
ZGV4IGZhYzI2NjFhOTZiMTI2NTY1YTlhNWUxYjZkNjU0MTZiYzI5NGEyMWQuLjEzZTZlNmI2NDhh
ZmExYjBiNjFjMTc5MDlmMTYyNzNjNDliMzUxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2ll
SmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vj
dXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2gu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgpAQCAtMjE0LDYgKzIxNSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1lCiAgICAgc2V0Q2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2
YWx1YXRpb24ocGFyYW1ldGVycy5jYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbik7
CiAKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGTkVUV09SSykKKyAgICBzZXRBcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVy
KTsKICAgICBTZXNzaW9uVHJhY2tlcjo6c2V0SWRlbnRpZmllckJhc2UocGFyYW1ldGVycy51aVBy
b2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAppbmRleCA2NzY1NmJiODRmZTNiOTUzYzg5NWEyZTU5YmUxMzQ3MjI5
YWE5OThiLi5mN2JkZjZhNzY2ZmU4MzA0NjgyYWU4M2VjOTg1MWNiNDUyZTNjNTdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTg2LDYgKzg2LDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
Y2hlbWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KQEAg
LTMyNyw2ICszMjgsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgICAgICBzZXRTaG91
bGRVc2VGb250U21vb3RoaW5nKHRydWUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShD
Rk5FVFdPUkspCisgICAgc2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKHBhcmFtZXRlcnMu
dWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcik7CiAgICAgU2Vzc2lvblRyYWNrZXI6OnNldElkZW50
aWZpZXJCYXNlKHBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcik7CiAjZW5kaWYK
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>