<?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>128006</bug_id>
          
          <creation_ts>2014-01-31 12:01:43 -0800</creation_ts>
          <short_desc>Coalesce authentication credential requests</short_desc>
          <delta_ts>2015-08-09 15:21:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>974403</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-01-31 12:01:43 -0800</bug_when>
    <thetext>We should look to coalesce authentication credential requests such that we ask the client to display the minimum number of authentication dialogs needed to access the requested resources.

One example of how this issue manifests itself is in the WebKit Bot Watcher&apos;s Dashboard with a Buildbot that requires HTTP authentication. At the time of writing, the WebKit Bot Watcher&apos;s Dashboard is coded such that each queue makes an independent XML HTTP request to its associated Buildbot for content. Assuming there are at least two queues associated with a Buildbot that requires HTTP authentication and looking only at requests sent by the queues, there may be at most two XML HTTP requests that are made and hence Safari will prompt for credentials twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974480</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-31 14:37:59 -0800</bug_when>
    <thetext>This is usually not an issue because main resource tends to be authenticated, and subsequent loads don&apos;t start until it loads.

But it can get really annoying for something like the dashboard. Also, reopening windows after browser restart can result in multiple requests for the same credentials, if you had the same site open in multiple windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977909</commentid>
    <comment_count>2</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-02-07 10:55:11 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; This is usually not an issue because main resource tends to be authenticated, and subsequent loads don&apos;t start until it loads.
&gt; 
&gt; But it can get really annoying for something like the dashboard. Also, reopening windows after browser restart can result in multiple requests for the same credentials, if you had the same site open in multiple windows.

This behavior drives me crazy every time I restart Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007328</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-05-07 07:57:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/16839069&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113880</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-31 15:02:53 -0700</bug_when>
    <thetext>*** Bug 147496 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113882</commentid>
    <comment_count>5</comment_count>
      <attachid>257965</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-31 15:07:31 -0700</bug_when>
    <thetext>Created attachment 257965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113911</commentid>
    <comment_count>6</comment_count>
      <attachid>257965</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-07-31 16:04:29 -0700</bug_when>
    <thetext>Comment on attachment 257965
Patch

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

&gt; Source/WebKit2/Shared/Authentication/AuthenticationManager.cpp:58
&gt; +    // Do not coalesce server trust evaluation requests.

This comment either needs to explain why, or to be dropped.

&gt; Source/WebKit2/Shared/Authentication/AuthenticationManager.cpp:73
&gt; +uint64_t AuthenticationManager::addChallengeToHashMap(const WebCore::AuthenticationChallenge&amp; authenticationChallenge)

I&apos;d say addChallengeToChallengeMap. Not a great name, but spelling out the data type in &quot;addChallengeToHashMap&quot; seems even less useful.

&gt; Source/WebKit2/Shared/Authentication/AuthenticationManager.cpp:95
&gt; +Vector&lt;uint64_t&gt; AuthenticationManager::coalesceChallenges(uint64_t challengeID) const

This took me awhile to understand - why does a &quot;coalesce&quot; function take a single challenge, what can it coalesce it with?

How would you feel about one of these ideas:
- coalesceChallengesMatching(uint64_t challengeID)
- or coalesceChallenges(const ProtectionSpace&amp;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113912</commentid>
    <comment_count>7</comment_count>
      <attachid>257965</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-31 16:09:24 -0700</bug_when>
    <thetext>Comment on attachment 257965
Patch

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

&gt;&gt; Source/WebKit2/Shared/Authentication/AuthenticationManager.cpp:58
&gt;&gt; +    // Do not coalesce server trust evaluation requests.
&gt; 
&gt; This comment either needs to explain why, or to be dropped.

Proposing: &quot;Do not coalesce server trust evaluation requests because ProtectionSpace comparison does not evaluate server trust (e.g. certificate).&quot;

&gt;&gt; Source/WebKit2/Shared/Authentication/AuthenticationManager.cpp:95
&gt;&gt; +Vector&lt;uint64_t&gt; AuthenticationManager::coalesceChallenges(uint64_t challengeID) const
&gt; 
&gt; This took me awhile to understand - why does a &quot;coalesce&quot; function take a single challenge, what can it coalesce it with?
&gt; 
&gt; How would you feel about one of these ideas:
&gt; - coalesceChallengesMatching(uint64_t challengeID)
&gt; - or coalesceChallenges(const ProtectionSpace&amp;)

I&apos;d prefer the first one. The second one is clear but a bit annoying because we then have to move the HashMap lookup to every call site.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113915</commentid>
    <comment_count>8</comment_count>
      <attachid>257977</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-31 16:14:20 -0700</bug_when>
    <thetext>Created attachment 257977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113921</commentid>
    <comment_count>9</comment_count>
      <attachid>257977</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-31 16:56:05 -0700</bug_when>
    <thetext>Comment on attachment 257977
Patch

Clearing flags on attachment: 257977

Committed r187691: &lt;http://trac.webkit.org/changeset/187691&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113922</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-31 16:56:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116078</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-08 20:19:03 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116079</commentid>
    <comment_count>12</comment_count>
      <attachid>258586</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-08 20:19:07 -0700</bug_when>
    <thetext>Created attachment 258586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116081</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-08 20:22:00 -0700</bug_when>
    <thetext>Uploaded a follow-up patch to fix post-mortem review comments from Darin on Bug 147496.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116132</commentid>
    <comment_count>14</comment_count>
      <attachid>258586</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-09 15:20:54 -0700</bug_when>
    <thetext>Comment on attachment 258586
Patch

Clearing flags on attachment: 258586

Committed r188198: &lt;http://trac.webkit.org/changeset/188198&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116133</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-09 15:21:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257965</attachid>
            <date>2015-07-31 15:07:31 -0700</date>
            <delta_ts>2015-07-31 16:14:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128006-20150731150728.patch</filename>
            <type>text/plain</type>
            <size>12851</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdiMjA4ZWQyODM5Nzdm
NjIyYTQ0MjZjMWUwYzk0MTE0YmNhYWZlYy4uMzQ1ZTZiYzkxZDE0YmE2ZTFmNTgxZmIxMjczNjA5
OTlhYzY5N2RkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA3LTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ29hbGVzY2UgYXV0aGVudGlj
YXRpb24gY3JlZGVudGlhbCByZXF1ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjgzOTA2
OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBv
cnQgc3ltYm9sIGZvciBQcm90ZWN0aW9uU3BhY2U6OmNvbXBhcmUoKSBzbyBpdCBjYW4gYmUgY2Fs
bGVkIGZyb20KKyAgICAgICAgV2ViS2l0Mi4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
UHJvdGVjdGlvblNwYWNlQmFzZS5oOgorCiAyMDE1LTA3LTMwICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENvbnZlcnQgUGF0aCBhcHBsaWVyIHRvIHVz
ZSBzdGQ6OmZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGVhZWE5MDQ5MzkyYTc1NDJiZjQyZGIyZTE3
ZDgyNWJkYTBiMDM1OC4uNjg5MTQzOWNmZDBhZWRkMGUzZWZhYTgyZTdmMjE4NDJlM2EyNDJlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE1LTA3LTMxICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ29hbGVzY2UgYXV0aGVudGljYXRpb24gY3JlZGVu
dGlhbCByZXF1ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI4MDA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjgzOTA2OT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb2FsZXNjZSBjb25jdXJy
ZW50IGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZXMgZm9yIHRoZSBzYW1lIFByb3RlY3Rpb25TcGFj
ZS4KKyAgICAgICAgSWRlYWxseSwgdGhpcyB3b3VsZCBiZSBkb25lIGluIHRoZSBuZXR3b3JrIGxh
eWVyIGJ1dCBzaG9ydCB0ZXJtLCB0aGlzIHdpbGwKKyAgICAgICAgbWFrZSBzdXJlIHRoZSB1c2Vy
IG5vIGxvbmdlciBnZXRzIHJlcGVhdGluZyBhdXRoZW50aWNhdGlvbiBkaWFsb2dzIGZvciB0aGUK
KyAgICAgICAgc2FtZSBwcm90ZWN0aW9uIHNwYWNlLgorCisgICAgICAgIFRoaXMgZ2V0cyByaWQg
b2YgYSBsb25nLXN0YW5kaW5nIGJ1ZyBpbiBXZWJLaXQgLyBTYWZhcmkgd2hlcmUgdmlzaXRpbmcg
YQorICAgICAgICBzaXRlIHVzaW5nIEhUVFAgYXV0aGVudGljYXRpb24gd291bGQgcG9wIHVwIG9u
ZSBhdXRoZW50aWNhdGlvbiBkaWFsb2cgZm9yCisgICAgICAgIGVhY2ggc3VicmVzb3VyY2UgYmVp
bmcgbG9hZGVkIGZyb20gdGhlIG5ldHdvcmsgKGVzcGVjaWFsbHkgd2hlbiB0aGUgbWFpbgorICAg
ICAgICByZXNvdXJjZSBpcyBsb2FkZWQgZnJvbSB0aGUgY2FjaGUpLgorCisgICAgICAgICogU2hh
cmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OmNhbkNvYWxlc2NlQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGlj
YXRpb25NYW5hZ2VyOjphZGRDaGFsbGVuZ2VUb0hhc2hNYXApOgorICAgICAgICAoV2ViS2l0OjpB
dXRoZW50aWNhdGlvbk1hbmFnZXI6OnNob3VsZENvYWxlc2NlQ2hhbGxlbmdlKToKKyAgICAgICAg
KFdlYktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpjb2FsZXNjZUNoYWxsZW5nZXMpOgorICAg
ICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6
dXNlQ3JlZGVudGlhbEZvckNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0
aW9uTWFuYWdlcjo6dXNlQ3JlZGVudGlhbEZvclNpbmdsZUNoYWxsZW5nZSk6CisgICAgICAgIChX
ZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29udGludWVXaXRob3V0Q3JlZGVudGlhbEZv
ckNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29u
dGludWVXaXRob3V0Q3JlZGVudGlhbEZvclNpbmdsZUNoYWxsZW5nZSk6CisgICAgICAgIChXZWJL
aXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsQ2hhbGxlbmdlKToKKyAgICAgICAgKFdl
YktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpjYW5jZWxTaW5nbGVDaGFsbGVuZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnBlcmZvcm1EZWZhdWx0SGFuZGxp
bmcpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnBlcmZvcm1EZWZh
dWx0SGFuZGxpbmdGb3JTaW5nbGVDaGFsbGVuZ2UpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50
aWNhdGlvbk1hbmFnZXI6OnJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlKToKKyAgICAg
ICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpyZWplY3RQcm90ZWN0aW9uU3BhY2VB
bmRDb250aW51ZUZvclNpbmdsZUNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6QXV0aGVudGljYXRpb25NYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAg
KiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisKIDIwMTUt
MDctMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
Q29udmVydCBQYXRoIGFwcGxpZXIgdG8gdXNlIHN0ZDo6ZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlQmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmgKaW5kZXgg
MzFjYWZmZDU3MmYyM2FmYjE1YzQ3NmFhMzZlYjRjMTc3ZGNmMGVjMi4uMDIxNDlmNTNkZmJkZjlj
OWJjZDBhMjI0OTM2MjI3NjlmNGE3MDRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmgKQEAgLTcyLDcgKzcyLDcgQEAg
cHVibGljOgogCiAgICAgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRhKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHN0YXRpYyBib29sIGNvbXBhcmUoY29uc3QgUHJvdGVj
dGlvblNwYWNlJiBhLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmIGIpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBib29sIGNvbXBhcmUoY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgY29uc3QgUHJv
dGVjdGlvblNwYWNlJik7CiAKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBQcm90ZWN0
aW9uU3BhY2VCYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDg5NTI4YmNi
M2EyODcwZjQzMGIyOGM3MjJlMDQ3YmMwNjdmNzdmMTkuLmJlNmJkOTZlZDgzNmE0MTI3OWU3OTE5
NmI3NTJlYjg2NDZiODExZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC01Myw2
ICs1MywxMiBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZUlEKCkKICAgICByZXR1cm4gKyt1bmlxdWVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUlEOwogfQog
CitzdGF0aWMgYm9vbCBjYW5Db2FsZXNjZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQoreworICAgIC8vIERvIG5vdCBjb2FsZXNjZSBz
ZXJ2ZXIgdHJ1c3QgZXZhbHVhdGlvbiByZXF1ZXN0cy4KKyAgICByZXR1cm4gY2hhbGxlbmdlLnBy
b3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgIT0gUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ7Cit9CisK
IGNvbnN0IGNoYXIqIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQogewog
ICAgIHJldHVybiAiQXV0aGVudGljYXRpb25NYW5hZ2VyIjsKQEAgLTY0LDcgKzcwLDcgQEAgQXV0
aGVudGljYXRpb25NYW5hZ2VyOjpBdXRoZW50aWNhdGlvbk1hbmFnZXIoQ2hpbGRQcm9jZXNzKiBw
cm9jZXNzKQogICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpBdXRo
ZW50aWNhdGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOwogfQogCi11
aW50NjRfdCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmVzdGFibGlzaElkZW50aWZpZXJGb3JDaGFs
bGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKQordWludDY0X3QgQXV0aGVudGljYXRpb25NYW5hZ2VyOjphZGRDaGFsbGVu
Z2VUb0hhc2hNYXAoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAK
QEAgLTczLDEyICs3OSw1MSBAQCB1aW50NjRfdCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmVzdGFi
bGlzaElkZW50aWZpZXJGb3JDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QQogICAgIHJldHVybiBj
aGFsbGVuZ2VJRDsKIH0KIAorYm9vbCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnNob3VsZENvYWxl
c2NlQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlELCBjb25zdCBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYgY2hhbGxlbmdlKSBjb25zdAoreworICAgIGlmICghY2FuQ29hbGVzY2VDaGFsbGVu
Z2UoY2hhbGxlbmdlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBlbmQgPSAg
bV9jaGFsbGVuZ2VzLmVuZCgpOworICAgIGZvciAoYXV0byBpdCA9IG1fY2hhbGxlbmdlcy5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgaWYgKGl0LT5rZXkgIT0gY2hhbGxlbmdl
SUQgJiYgUHJvdGVjdGlvblNwYWNlOjpjb21wYXJlKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uo
KSwgaXQtPnZhbHVlLnByb3RlY3Rpb25TcGFjZSgpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1ZlY3Rvcjx1aW50NjRfdD4gQXV0aGVu
dGljYXRpb25NYW5hZ2VyOjpjb2FsZXNjZUNoYWxsZW5nZXModWludDY0X3QgY2hhbGxlbmdlSUQp
IGNvbnN0Cit7CisgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlID0gbV9jaGFs
bGVuZ2VzLmdldChjaGFsbGVuZ2VJRCk7CisgICAgQVNTRVJUKCFjaGFsbGVuZ2UuaXNOdWxsKCkp
OworCisgICAgVmVjdG9yPHVpbnQ2NF90PiBjaGFsbGVuZ2VzVG9Db2FsZXNjZTsKKyAgICBjaGFs
bGVuZ2VzVG9Db2FsZXNjZS5hcHBlbmQoY2hhbGxlbmdlSUQpOworCisgICAgaWYgKCFjYW5Db2Fs
ZXNjZUNoYWxsZW5nZShjaGFsbGVuZ2UpKQorICAgICAgICByZXR1cm4gY2hhbGxlbmdlc1RvQ29h
bGVzY2U7CisKKyAgICBhdXRvIGVuZCA9IG1fY2hhbGxlbmdlcy5lbmQoKTsKKyAgICBmb3IgKGF1
dG8gaXQgPSBtX2NoYWxsZW5nZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAg
IGlmIChpdC0+a2V5ICE9IGNoYWxsZW5nZUlEICYmIFByb3RlY3Rpb25TcGFjZTo6Y29tcGFyZShj
aGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCksIGl0LT52YWx1ZS5wcm90ZWN0aW9uU3BhY2UoKSkp
CisgICAgICAgICAgICBjaGFsbGVuZ2VzVG9Db2FsZXNjZS5hcHBlbmQoaXQtPmtleSk7CisgICAg
fQorCisgICAgcmV0dXJuIGNoYWxsZW5nZXNUb0NvYWxlc2NlOworfQorCiB2b2lkIEF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkZyYW1l
KiBmcmFtZSwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKQogewogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgQVNTRVJUKGZyYW1lLT5wYWdlKCkp
OworCisgICAgdWludDY0X3QgY2hhbGxlbmdlSUQgPSBhZGRDaGFsbGVuZ2VUb0hhc2hNYXAoYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UpOworCisgICAgLy8gQ29hbGVzY2UgY2hhbGxlbmdlcyBpbiB0
aGUgc2FtZSBwcm90ZWN0aW9uIHNwYWNlLgorICAgIGlmIChzaG91bGRDb2FsZXNjZUNoYWxsZW5n
ZShjaGFsbGVuZ2VJRCwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpKQorICAgICAgICByZXR1cm47
CiAgICAgCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShmcmFtZS0+ZnJhbWVJRCgpLCBhdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSwgZXN0YWJsaXNoSWRlbnRpZmllckZvckNoYWxsZW5nZShhdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSkpLCBmcmFtZS0+cGFnZSgpLT5wYWdlSUQoKSk7CisgICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShmcmFtZS0+ZnJhbWVJRCgpLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgY2hhbGxl
bmdlSUQpLCBmcmFtZS0+cGFnZSgpLT5wYWdlSUQoKSk7CiB9CiAKICNpZiBFTkFCTEUoTkVUV09S
S19QUk9DRVNTKQpAQCAtODYsMTQgKzEzMSwyMiBAQCB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdl
cjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdQog
ewogICAgIEFTU0VSVChwYWdlSUQpOwogICAgIEFTU0VSVChmcmFtZUlEKTsKKworICAgIHVpbnQ2
NF90IGNoYWxsZW5nZUlEID0gYWRkQ2hhbGxlbmdlVG9IYXNoTWFwKGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKTsKKyAgICBpZiAoc2hvdWxkQ29hbGVzY2VDaGFsbGVuZ2UoY2hhbGxlbmdlSUQsIGF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSkKKyAgICAgICAgcmV0dXJuOwogICAgIAotICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKHBhZ2VJRCwgZnJhbWVJRCwgYXV0aGVudGljYXRpb25DaGFsbGVu
Z2UsIGVzdGFibGlzaElkZW50aWZpZXJGb3JDaGFsbGVuZ2UoYXV0aGVudGljYXRpb25DaGFsbGVu
Z2UpKSk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UocGFnZUlELCBmcmFtZUlELCBhdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSwgYWRkQ2hhbGxlbmdlVG9IYXNoTWFwKGF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKSkpOwogfQogI2VuZGlmCiAKIHZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG93bmxvYWQqIGRvd25sb2FkLCBjb25z
dCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCiB7Ci0g
ICAgZG93bmxvYWQtPnNlbmQoTWVzc2FnZXM6OkRvd25sb2FkUHJveHk6OkRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgZXN0YWJsaXNoSWRl
bnRpZmllckZvckNoYWxsZW5nZShhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkpKTsKKyAgICB1aW50
NjRfdCBjaGFsbGVuZ2VJRCA9IGFkZENoYWxsZW5nZVRvSGFzaE1hcChhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSk7CisgICAgaWYgKHNob3VsZENvYWxlc2NlQ2hhbGxlbmdlKGNoYWxsZW5nZUlELCBh
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSkpCisgICAgICAgIHJldHVybjsKKworICAgIGRvd25sb2Fk
LT5zZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGFkZENoYWxsZW5nZVRvSGFzaE1hcChh
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSkpKTsKIH0KIAogLy8gQ3VycmVudGx5LCBvbmx5IE1hYyBr
bm93cyBob3cgdG8gcmVzcG9uZCB0byBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2VzIHdpdGggY2Vy
dGlmaWNhdGUgaW5mby4KQEAgLTEwOCw2ICsxNjEsMTIgQEAgdm9pZCBBdXRoZW50aWNhdGlvbk1h
bmFnZXI6OnVzZUNyZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQsIGNv
bnMKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgZm9yIChhdXRvJiBj
b2FsZXNjZWRDaGFsbGVuZ2VJRCA6IGNvYWxlc2NlQ2hhbGxlbmdlcyhjaGFsbGVuZ2VJRCkpCisg
ICAgICAgIHVzZUNyZWRlbnRpYWxGb3JTaW5nbGVDaGFsbGVuZ2UoY29hbGVzY2VkQ2hhbGxlbmdl
SUQsIGNyZWRlbnRpYWwsIGNlcnRpZmljYXRlSW5mbyk7Cit9CisKK3ZvaWQgQXV0aGVudGljYXRp
b25NYW5hZ2VyOjp1c2VDcmVkZW50aWFsRm9yU2luZ2xlQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxs
ZW5nZUlELCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsLCBjb25zdCBDZXJ0aWZpY2F0ZUlu
Zm8mIGNlcnRpZmljYXRlSW5mbykKK3sKICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFs
bGVuZ2UgPSBtX2NoYWxsZW5nZXMudGFrZShjaGFsbGVuZ2VJRCk7CiAgICAgQVNTRVJUKCFjaGFs
bGVuZ2UuaXNOdWxsKCkpOwogICAgIApAQCAtMTI5LDYgKzE4OCwxMiBAQCB2b2lkIEF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6Y29udGludWVXaXRob3V0Q3JlZGVudGlhbEZvckNoYWxsZW5nZSh1aW50
NjRfdCBjaGFsbAogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKKyAgICBmb3Ig
KGF1dG8mIGNvYWxlc2NlZENoYWxsZW5nZUlEIDogY29hbGVzY2VDaGFsbGVuZ2VzKGNoYWxsZW5n
ZUlEKSkKKyAgICAgICAgY29udGludWVXaXRob3V0Q3JlZGVudGlhbEZvclNpbmdsZUNoYWxsZW5n
ZShjb2FsZXNjZWRDaGFsbGVuZ2VJRCk7Cit9CisKK3ZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2Vy
Ojpjb250aW51ZVdpdGhvdXRDcmVkZW50aWFsRm9yU2luZ2xlQ2hhbGxlbmdlKHVpbnQ2NF90IGNo
YWxsZW5nZUlEKQorewogICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSA9IG1f
Y2hhbGxlbmdlcy50YWtlKGNoYWxsZW5nZUlEKTsKICAgICBBU1NFUlQoIWNoYWxsZW5nZS5pc051
bGwoKSk7CiAgICAgQXV0aGVudGljYXRpb25DbGllbnQqIGNvcmVDbGllbnQgPSBjaGFsbGVuZ2Uu
YXV0aGVudGljYXRpb25DbGllbnQoKTsKQEAgLTE0Niw2ICsyMTEsMTIgQEAgdm9pZCBBdXRoZW50
aWNhdGlvbk1hbmFnZXI6OmNhbmNlbENoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCkKIHsK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgZm9yIChhdXRvJiBjb2FsZXNj
ZWRDaGFsbGVuZ2VJRCA6IGNvYWxlc2NlQ2hhbGxlbmdlcyhjaGFsbGVuZ2VJRCkpCisgICAgICAg
IGNhbmNlbFNpbmdsZUNoYWxsZW5nZShjb2FsZXNjZWRDaGFsbGVuZ2VJRCk7Cit9CisKK3ZvaWQg
QXV0aGVudGljYXRpb25NYW5hZ2VyOjpjYW5jZWxTaW5nbGVDaGFsbGVuZ2UodWludDY0X3QgY2hh
bGxlbmdlSUQpCit7CiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlID0gbV9j
aGFsbGVuZ2VzLnRha2UoY2hhbGxlbmdlSUQpOwogICAgIEFTU0VSVCghY2hhbGxlbmdlLmlzTnVs
bCgpKTsKICAgICBBdXRoZW50aWNhdGlvbkNsaWVudCogY29yZUNsaWVudCA9IGNoYWxsZW5nZS5h
dXRoZW50aWNhdGlvbkNsaWVudCgpOwpAQCAtMTYzLDYgKzIzNCwxMiBAQCB2b2lkIEF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6cGVyZm9ybURlZmF1bHRIYW5kbGluZyh1aW50NjRfdCBjaGFsbGVuZ2VJ
RCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgZm9yIChhdXRvJiBj
b2FsZXNjZWRDaGFsbGVuZ2VJRCA6IGNvYWxlc2NlQ2hhbGxlbmdlcyhjaGFsbGVuZ2VJRCkpCisg
ICAgICAgIHBlcmZvcm1EZWZhdWx0SGFuZGxpbmdGb3JTaW5nbGVDaGFsbGVuZ2UoY29hbGVzY2Vk
Q2hhbGxlbmdlSUQpOworfQorCit2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6cGVyZm9ybURl
ZmF1bHRIYW5kbGluZ0ZvclNpbmdsZUNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCkKK3sK
ICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UgPSBtX2NoYWxsZW5nZXMudGFr
ZShjaGFsbGVuZ2VJRCk7CiAgICAgQVNTRVJUKCFjaGFsbGVuZ2UuaXNOdWxsKCkpOwogICAgIEF1
dGhlbnRpY2F0aW9uQ2xpZW50KiBjb3JlQ2xpZW50ID0gY2hhbGxlbmdlLmF1dGhlbnRpY2F0aW9u
Q2xpZW50KCk7CkBAIC0xODAsNiArMjU3LDEyIEBAIHZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2Vy
OjpyZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZSh1aW50NjRfdCBjaGFsbGVuZ2VJCiB7
CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIGZvciAoYXV0byYgY29hbGVz
Y2VkQ2hhbGxlbmdlSUQgOiBjb2FsZXNjZUNoYWxsZW5nZXMoY2hhbGxlbmdlSUQpKQorICAgICAg
ICByZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZUZvclNpbmdsZUNoYWxsZW5nZShjb2Fs
ZXNjZWRDaGFsbGVuZ2VJRCk7Cit9CisKK3ZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpyZWpl
Y3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZUZvclNpbmdsZUNoYWxsZW5nZSh1aW50NjRfdCBj
aGFsbGVuZ2VJRCkKK3sKICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UgPSBt
X2NoYWxsZW5nZXMudGFrZShjaGFsbGVuZ2VJRCk7CiAgICAgQVNTRVJUKCFjaGFsbGVuZ2UuaXNO
dWxsKCkpOwogICAgIEF1dGhlbnRpY2F0aW9uQ2xpZW50KiBjb3JlQ2xpZW50ID0gY2hhbGxlbmdl
LmF1dGhlbnRpY2F0aW9uQ2xpZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKaW5kZXggZjll
ZTgxNzU2NmUzMzEzZjhmMWE1NzcyOTUyYTgyNTQ1ZTRkZmQzMC4uMDNmYmM4ZTk4NzU1N2U2MWNm
YmI5ZDM3ZDVjODdhNGU2NTE5NTBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaApAQCAtNzMs
NyArNzMsMTYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgdHJ5VXNlQ2VydGlmaWNhdGVJbmZvRm9y
Q2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3Qg
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAKLSAgICB1aW50NjRfdCBlc3RhYmxpc2hJZGVu
dGlmaWVyRm9yQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
Jik7CisgICAgdWludDY0X3QgYWRkQ2hhbGxlbmdlVG9IYXNoTWFwKGNvbnN0IFdlYkNvcmU6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CisgICAgYm9vbCBzaG91bGRDb2FsZXNjZUNoYWxsZW5n
ZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKSBjb25zdDsKKworICAgIHZvaWQgdXNlQ3JlZGVudGlhbEZvclNpbmdsZUNoYWxsZW5n
ZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYsIGNvbnN0
IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpOworICAgIHZvaWQgY29udGludWVXaXRob3V0Q3Jl
ZGVudGlhbEZvclNpbmdsZUNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CisgICAgdm9p
ZCBjYW5jZWxTaW5nbGVDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQpOworICAgIHZvaWQg
cGVyZm9ybURlZmF1bHRIYW5kbGluZ0ZvclNpbmdsZUNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVu
Z2VJRCk7CisgICAgdm9pZCByZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZUZvclNpbmds
ZUNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CisKKyAgICBWZWN0b3I8dWludDY0X3Q+
IGNvYWxlc2NlQ2hhbGxlbmdlcyh1aW50NjRfdCBjaGFsbGVuZ2VJRCkgY29uc3Q7CiAKICAgICBD
aGlsZFByb2Nlc3MqIG1fcHJvY2VzczsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257977</attachid>
            <date>2015-07-31 16:14:20 -0700</date>
            <delta_ts>2015-08-08 20:19:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128006-20150731161417.patch</filename>
            <type>text/plain</type>
            <size>13081</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdiMjA4ZWQyODM5Nzdm
NjIyYTQ0MjZjMWUwYzk0MTE0YmNhYWZlYy4uZDgyZGVjNDllYTdlY2JhMzcyMDdlOWI0ODBhOTg5
NDM1MDU0OTI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA3LTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ29hbGVzY2UgYXV0aGVudGlj
YXRpb24gY3JlZGVudGlhbCByZXF1ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjgzOTA2
OT4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAg
IEV4cG9ydCBzeW1ib2wgZm9yIFByb3RlY3Rpb25TcGFjZTo6Y29tcGFyZSgpIHNvIGl0IGNhbiBi
ZSBjYWxsZWQgZnJvbQorICAgICAgICBXZWJLaXQyLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmg6CisKIDIwMTUtMDctMzAgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQ29udmVydCBQYXRoIGFwcGxpZXIg
dG8gdXNlIHN0ZDo6ZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4ZWFlYTkwNDkzOTJhNzU0MmJmNDJk
YjJlMTdkODI1YmRhMGIwMzU4Li43NGI3Njk5ZmQwYzQ3YTU3YTE4ZDk1Y2RkNTFmYTFhZWI2MzEy
Y2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTUtMDctMzEgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDb2FsZXNjZSBjb25jdXJyZW50IGF1dGhl
bnRpY2F0aW9uIGNoYWxsZW5nZXMgZm9yIHRoZSBzYW1lIFByb3RlY3Rpb25TcGFjZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDk2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xNjgzOTA2OT4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkg
UHJvc2t1cnlha292LgorCisgICAgICAgIENvYWxlc2NlIGNvbmN1cnJlbnQgYXV0aGVudGljYXRp
b24gY2hhbGxlbmdlcyBmb3IgdGhlIHNhbWUgUHJvdGVjdGlvblNwYWNlLgorICAgICAgICBJZGVh
bGx5LCB0aGlzIHdvdWxkIGJlIGRvbmUgaW4gdGhlIG5ldHdvcmsgbGF5ZXIgYnV0IHNob3J0IHRl
cm0sIHRoaXMgd2lsbAorICAgICAgICBtYWtlIHN1cmUgdGhlIHVzZXIgbm8gbG9uZ2VyIGdldHMg
cmVwZWF0aW5nIGF1dGhlbnRpY2F0aW9uIGRpYWxvZ3MgZm9yIHRoZQorICAgICAgICBzYW1lIHBy
b3RlY3Rpb24gc3BhY2UuCisKKyAgICAgICAgVGhpcyBnZXRzIHJpZCBvZiBhIGxvbmctc3RhbmRp
bmcgYnVnIGluIFdlYktpdCAvIFNhZmFyaSB3aGVyZSB2aXNpdGluZyBhCisgICAgICAgIHNpdGUg
dXNpbmcgSFRUUCBhdXRoZW50aWNhdGlvbiB3b3VsZCBwb3AgdXAgb25lIGF1dGhlbnRpY2F0aW9u
IGRpYWxvZyBmb3IKKyAgICAgICAgZWFjaCBzdWJyZXNvdXJjZSBiZWluZyBsb2FkZWQgZnJvbSB0
aGUgbmV0d29yayAoZXNwZWNpYWxseSB3aGVuIHRoZSBtYWluCisgICAgICAgIHJlc291cmNlIGlz
IGxvYWRlZCBmcm9tIHRoZSBjYWNoZSkuCisKKyAgICAgICAgKiBTaGFyZWQvQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y2FuQ29hbGVz
Y2VDaGFsbGVuZ2UpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmFk
ZENoYWxsZW5nZVRvQ2hhbGxlbmdlTWFwKToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRp
b25NYW5hZ2VyOjpzaG91bGRDb2FsZXNjZUNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1
dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29hbGVzY2VDaGFsbGVuZ2VzTWF0Y2hpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6dXNl
Q3JlZGVudGlhbEZvckNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9u
TWFuYWdlcjo6dXNlQ3JlZGVudGlhbEZvclNpbmdsZUNoYWxsZW5nZSk6CisgICAgICAgIChXZWJL
aXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29udGludWVXaXRob3V0Q3JlZGVudGlhbEZvckNo
YWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29udGlu
dWVXaXRob3V0Q3JlZGVudGlhbEZvclNpbmdsZUNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6
OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYktp
dDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpjYW5jZWxTaW5nbGVDaGFsbGVuZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnBlcmZvcm1EZWZhdWx0SGFuZGxpbmcp
OgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnBlcmZvcm1EZWZhdWx0
SGFuZGxpbmdGb3JTaW5nbGVDaGFsbGVuZ2UpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNh
dGlvbk1hbmFnZXI6OnJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlKToKKyAgICAgICAg
KFdlYktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpyZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRD
b250aW51ZUZvclNpbmdsZUNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0
aW9uTWFuYWdlcjo6QXV0aGVudGljYXRpb25NYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBT
aGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisKIDIwMTUtMDct
MzAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQ29u
dmVydCBQYXRoIGFwcGxpZXIgdG8gdXNlIHN0ZDo6ZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlQmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmgKaW5kZXggMzFj
YWZmZDU3MmYyM2FmYjE1YzQ3NmFhMzZlYjRjMTc3ZGNmMGVjMi4uMDIxNDlmNTNkZmJkZjljOWJj
ZDBhMjI0OTM2MjI3NjlmNGE3MDRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVi
bGljOgogCiAgICAgYm9vbCBlbmNvZGluZ1JlcXVpcmVzUGxhdGZvcm1EYXRhKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIAotICAgIHN0YXRpYyBib29sIGNvbXBhcmUoY29uc3QgUHJvdGVjdGlv
blNwYWNlJiBhLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmIGIpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBib29sIGNvbXBhcmUoY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgY29uc3QgUHJvdGVj
dGlvblNwYWNlJik7CiAKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBQcm90ZWN0aW9u
U3BhY2VCYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDg5NTI4YmNiM2Ey
ODcwZjQzMGIyOGM3MjJlMDQ3YmMwNjdmNzdmMTkuLjE2Yjk3ZjRiNDliYTk0M2U3MDk1ZWE3NjYy
NmY0ODI3ZDRhOTMxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC01Myw2ICs1
MywxMiBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUlE
KCkKICAgICByZXR1cm4gKyt1bmlxdWVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUlEOwogfQogCitz
dGF0aWMgYm9vbCBjYW5Db2FsZXNjZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQoreworICAgIC8vIERvIG5vdCBjb2FsZXNjZSBzZXJ2
ZXIgdHJ1c3QgZXZhbHVhdGlvbiByZXF1ZXN0cyBiZWNhdXNlIFByb3RlY3Rpb25TcGFjZSBjb21w
YXJpc29uIGRvZXMgbm90IGV2YWx1YXRlIHNlcnZlciB0cnVzdCAoZS5nLiBjZXJ0aWZpY2F0ZSku
CisgICAgcmV0dXJuIGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNj
aGVtZSgpICE9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RF
dmFsdWF0aW9uUmVxdWVzdGVkOworfQorCiBjb25zdCBjaGFyKiBBdXRoZW50aWNhdGlvbk1hbmFn
ZXI6OnN1cHBsZW1lbnROYW1lKCkKIHsKICAgICByZXR1cm4gIkF1dGhlbnRpY2F0aW9uTWFuYWdl
ciI7CkBAIC02NCw3ICs3MCw3IEBAIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6QXV0aGVudGljYXRp
b25NYW5hZ2VyKENoaWxkUHJvY2VzcyogcHJvY2VzcykKICAgICBtX3Byb2Nlc3MtPmFkZE1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksICp0aGlzKTsKIH0KIAotdWludDY0X3QgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpl
c3RhYmxpc2hJZGVudGlmaWVyRm9yQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKK3VpbnQ2NF90IEF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6YWRkQ2hhbGxlbmdlVG9DaGFsbGVuZ2VNYXAoY29uc3QgV2ViQ29yZTo6
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQogewogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTczLDEyICs3OSw1MSBAQCB1aW50NjRf
dCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmVzdGFibGlzaElkZW50aWZpZXJGb3JDaGFsbGVuZ2Uo
Y29uc3QgV2ViQ29yZTo6QQogICAgIHJldHVybiBjaGFsbGVuZ2VJRDsKIH0KIAorYm9vbCBBdXRo
ZW50aWNhdGlvbk1hbmFnZXI6OnNob3VsZENvYWxlc2NlQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxs
ZW5nZUlELCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKSBjb25zdAor
eworICAgIGlmICghY2FuQ29hbGVzY2VDaGFsbGVuZ2UoY2hhbGxlbmdlKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgYXV0byBlbmQgPSAgbV9jaGFsbGVuZ2VzLmVuZCgpOworICAgIGZv
ciAoYXV0byBpdCA9IG1fY2hhbGxlbmdlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAg
ICAgICAgaWYgKGl0LT5rZXkgIT0gY2hhbGxlbmdlSUQgJiYgUHJvdGVjdGlvblNwYWNlOjpjb21w
YXJlKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSwgaXQtPnZhbHVlLnByb3RlY3Rpb25TcGFj
ZSgpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK1ZlY3Rvcjx1aW50NjRfdD4gQXV0aGVudGljYXRpb25NYW5hZ2VyOjpjb2FsZXNjZUNo
YWxsZW5nZXNNYXRjaGluZyh1aW50NjRfdCBjaGFsbGVuZ2VJRCkgY29uc3QKK3sKKyAgICBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UgPSBtX2NoYWxsZW5nZXMuZ2V0KGNoYWxsZW5n
ZUlEKTsKKyAgICBBU1NFUlQoIWNoYWxsZW5nZS5pc051bGwoKSk7CisKKyAgICBWZWN0b3I8dWlu
dDY0X3Q+IGNoYWxsZW5nZXNUb0NvYWxlc2NlOworICAgIGNoYWxsZW5nZXNUb0NvYWxlc2NlLmFw
cGVuZChjaGFsbGVuZ2VJRCk7CisKKyAgICBpZiAoIWNhbkNvYWxlc2NlQ2hhbGxlbmdlKGNoYWxs
ZW5nZSkpCisgICAgICAgIHJldHVybiBjaGFsbGVuZ2VzVG9Db2FsZXNjZTsKKworICAgIGF1dG8g
ZW5kID0gbV9jaGFsbGVuZ2VzLmVuZCgpOworICAgIGZvciAoYXV0byBpdCA9IG1fY2hhbGxlbmdl
cy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgaWYgKGl0LT5rZXkgIT0gY2hh
bGxlbmdlSUQgJiYgUHJvdGVjdGlvblNwYWNlOjpjb21wYXJlKGNoYWxsZW5nZS5wcm90ZWN0aW9u
U3BhY2UoKSwgaXQtPnZhbHVlLnByb3RlY3Rpb25TcGFjZSgpKSkKKyAgICAgICAgICAgIGNoYWxs
ZW5nZXNUb0NvYWxlc2NlLmFwcGVuZChpdC0+a2V5KTsKKyAgICB9CisKKyAgICByZXR1cm4gY2hh
bGxlbmdlc1RvQ29hbGVzY2U7Cit9CisKIHZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCiB7CiAgICAgQVNT
RVJUKGZyYW1lKTsKICAgICBBU1NFUlQoZnJhbWUtPnBhZ2UoKSk7CisKKyAgICB1aW50NjRfdCBj
aGFsbGVuZ2VJRCA9IGFkZENoYWxsZW5nZVRvQ2hhbGxlbmdlTWFwKGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKTsKKworICAgIC8vIENvYWxlc2NlIGNoYWxsZW5nZXMgaW4gdGhlIHNhbWUgcHJvdGVj
dGlvbiBzcGFjZS4KKyAgICBpZiAoc2hvdWxkQ29hbGVzY2VDaGFsbGVuZ2UoY2hhbGxlbmdlSUQs
IGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSkKKyAgICAgICAgcmV0dXJuOwogICAgIAotICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoZnJhbWUtPmZyYW1lSUQoKSwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2Us
IGVzdGFibGlzaElkZW50aWZpZXJGb3JDaGFsbGVuZ2UoYXV0aGVudGljYXRpb25DaGFsbGVuZ2Up
KSwgZnJhbWUtPnBhZ2UoKS0+cGFnZUlEKCkpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoZnJhbWUt
PmZyYW1lSUQoKSwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNoYWxsZW5nZUlEKSwgZnJhbWUt
PnBhZ2UoKS0+cGFnZUlEKCkpOwogfQogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKQEAg
LTg2LDE0ICsxMzEsMjIgQEAgdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBwYWdlSUQsIHUKIHsKICAgICBBU1NFUlQo
cGFnZUlEKTsKICAgICBBU1NFUlQoZnJhbWVJRCk7CisKKyAgICB1aW50NjRfdCBjaGFsbGVuZ2VJ
RCA9IGFkZENoYWxsZW5nZVRvQ2hhbGxlbmdlTWFwKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKTsK
KyAgICBpZiAoc2hvdWxkQ29hbGVzY2VDaGFsbGVuZ2UoY2hhbGxlbmdlSUQsIGF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKSkKKyAgICAgICAgcmV0dXJuOwogICAgIAotICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKHBhZ2VJRCwgZnJhbWVJRCwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGVzdGFi
bGlzaElkZW50aWZpZXJGb3JDaGFsbGVuZ2UoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpKSk7Cisg
ICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpEaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UocGFnZUlELCBmcmFtZUlELCBhdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSwgYWRkQ2hhbGxlbmdlVG9DaGFsbGVuZ2VNYXAoYXV0aGVudGljYXRpb25DaGFs
bGVuZ2UpKSk7CiB9CiAjZW5kaWYKIAogdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb3dubG9hZCogZG93bmxvYWQsIGNvbnN0IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKIHsKLSAgICBk
b3dubG9hZC0+c2VuZChNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBlc3RhYmxpc2hJZGVudGlm
aWVyRm9yQ2hhbGxlbmdlKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSkpOworICAgIHVpbnQ2NF90
IGNoYWxsZW5nZUlEID0gYWRkQ2hhbGxlbmdlVG9DaGFsbGVuZ2VNYXAoYXV0aGVudGljYXRpb25D
aGFsbGVuZ2UpOworICAgIGlmIChzaG91bGRDb2FsZXNjZUNoYWxsZW5nZShjaGFsbGVuZ2VJRCwg
YXV0aGVudGljYXRpb25DaGFsbGVuZ2UpKQorICAgICAgICByZXR1cm47CisKKyAgICBkb3dubG9h
ZC0+c2VuZChNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBhZGRDaGFsbGVuZ2VUb0NoYWxsZW5n
ZU1hcChhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkpKTsKIH0KIAogLy8gQ3VycmVudGx5LCBvbmx5
IE1hYyBrbm93cyBob3cgdG8gcmVzcG9uZCB0byBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2VzIHdp
dGggY2VydGlmaWNhdGUgaW5mby4KQEAgLTEwOCw2ICsxNjEsMTIgQEAgdm9pZCBBdXRoZW50aWNh
dGlvbk1hbmFnZXI6OnVzZUNyZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdl
SUQsIGNvbnMKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgZm9yIChh
dXRvJiBjb2FsZXNjZWRDaGFsbGVuZ2VJRCA6IGNvYWxlc2NlQ2hhbGxlbmdlc01hdGNoaW5nKGNo
YWxsZW5nZUlEKSkKKyAgICAgICAgdXNlQ3JlZGVudGlhbEZvclNpbmdsZUNoYWxsZW5nZShjb2Fs
ZXNjZWRDaGFsbGVuZ2VJRCwgY3JlZGVudGlhbCwgY2VydGlmaWNhdGVJbmZvKTsKK30KKwordm9p
ZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnVzZUNyZWRlbnRpYWxGb3JTaW5nbGVDaGFsbGVuZ2Uo
dWludDY0X3QgY2hhbGxlbmdlSUQsIGNvbnN0IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwsIGNvbnN0
IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQorewogICAgIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlIGNoYWxsZW5nZSA9IG1fY2hhbGxlbmdlcy50YWtlKGNoYWxsZW5nZUlEKTsKICAg
ICBBU1NFUlQoIWNoYWxsZW5nZS5pc051bGwoKSk7CiAgICAgCkBAIC0xMjksNiArMTg4LDEyIEBA
IHZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpjb250aW51ZVdpdGhvdXRDcmVkZW50aWFsRm9y
Q2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKIAorICAgIGZvciAoYXV0byYgY29hbGVzY2VkQ2hhbGxlbmdlSUQgOiBjb2FsZXNjZUNoYWxs
ZW5nZXNNYXRjaGluZyhjaGFsbGVuZ2VJRCkpCisgICAgICAgIGNvbnRpbnVlV2l0aG91dENyZWRl
bnRpYWxGb3JTaW5nbGVDaGFsbGVuZ2UoY29hbGVzY2VkQ2hhbGxlbmdlSUQpOworfQorCit2b2lk
IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29udGludWVXaXRob3V0Q3JlZGVudGlhbEZvclNpbmds
ZUNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCkKK3sKICAgICBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSBjaGFsbGVuZ2UgPSBtX2NoYWxsZW5nZXMudGFrZShjaGFsbGVuZ2VJRCk7CiAgICAg
QVNTRVJUKCFjaGFsbGVuZ2UuaXNOdWxsKCkpOwogICAgIEF1dGhlbnRpY2F0aW9uQ2xpZW50KiBj
b3JlQ2xpZW50ID0gY2hhbGxlbmdlLmF1dGhlbnRpY2F0aW9uQ2xpZW50KCk7CkBAIC0xNDYsNiAr
MjExLDEyIEBAIHZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpjYW5jZWxDaGFsbGVuZ2UodWlu
dDY0X3QgY2hhbGxlbmdlSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAor
ICAgIGZvciAoYXV0byYgY29hbGVzY2VkQ2hhbGxlbmdlSUQgOiBjb2FsZXNjZUNoYWxsZW5nZXNN
YXRjaGluZyhjaGFsbGVuZ2VJRCkpCisgICAgICAgIGNhbmNlbFNpbmdsZUNoYWxsZW5nZShjb2Fs
ZXNjZWRDaGFsbGVuZ2VJRCk7Cit9CisKK3ZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpjYW5j
ZWxTaW5nbGVDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQpCit7CiAgICAgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlID0gbV9jaGFsbGVuZ2VzLnRha2UoY2hhbGxlbmdlSUQp
OwogICAgIEFTU0VSVCghY2hhbGxlbmdlLmlzTnVsbCgpKTsKICAgICBBdXRoZW50aWNhdGlvbkNs
aWVudCogY29yZUNsaWVudCA9IGNoYWxsZW5nZS5hdXRoZW50aWNhdGlvbkNsaWVudCgpOwpAQCAt
MTYzLDYgKzIzNCwxMiBAQCB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6cGVyZm9ybURlZmF1
bHRIYW5kbGluZyh1aW50NjRfdCBjaGFsbGVuZ2VJRCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwogCisgICAgZm9yIChhdXRvJiBjb2FsZXNjZWRDaGFsbGVuZ2VJRCA6IGNvYWxl
c2NlQ2hhbGxlbmdlc01hdGNoaW5nKGNoYWxsZW5nZUlEKSkKKyAgICAgICAgcGVyZm9ybURlZmF1
bHRIYW5kbGluZ0ZvclNpbmdsZUNoYWxsZW5nZShjb2FsZXNjZWRDaGFsbGVuZ2VJRCk7Cit9CisK
K3ZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpwZXJmb3JtRGVmYXVsdEhhbmRsaW5nRm9yU2lu
Z2xlQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlEKQorewogICAgIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlIGNoYWxsZW5nZSA9IG1fY2hhbGxlbmdlcy50YWtlKGNoYWxsZW5nZUlEKTsKICAg
ICBBU1NFUlQoIWNoYWxsZW5nZS5pc051bGwoKSk7CiAgICAgQXV0aGVudGljYXRpb25DbGllbnQq
IGNvcmVDbGllbnQgPSBjaGFsbGVuZ2UuYXV0aGVudGljYXRpb25DbGllbnQoKTsKQEAgLTE4MCw2
ICsyNTcsMTIgQEAgdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnJlamVjdFByb3RlY3Rpb25T
cGFjZUFuZENvbnRpbnVlKHVpbnQ2NF90IGNoYWxsZW5nZUkKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogCisgICAgZm9yIChhdXRvJiBjb2FsZXNjZWRDaGFsbGVuZ2VJRCA6IGNv
YWxlc2NlQ2hhbGxlbmdlc01hdGNoaW5nKGNoYWxsZW5nZUlEKSkKKyAgICAgICAgcmVqZWN0UHJv
dGVjdGlvblNwYWNlQW5kQ29udGludWVGb3JTaW5nbGVDaGFsbGVuZ2UoY29hbGVzY2VkQ2hhbGxl
bmdlSUQpOworfQorCit2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6cmVqZWN0UHJvdGVjdGlv
blNwYWNlQW5kQ29udGludWVGb3JTaW5nbGVDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQp
Cit7CiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlID0gbV9jaGFsbGVuZ2Vz
LnRha2UoY2hhbGxlbmdlSUQpOwogICAgIEFTU0VSVCghY2hhbGxlbmdlLmlzTnVsbCgpKTsKICAg
ICBBdXRoZW50aWNhdGlvbkNsaWVudCogY29yZUNsaWVudCA9IGNoYWxsZW5nZS5hdXRoZW50aWNh
dGlvbkNsaWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCmluZGV4IGY5ZWU4MTc1NjZlMzMx
M2Y4ZjFhNTc3Mjk1MmE4MjU0NWU0ZGZkMzAuLjNmYjc5NWIwZTk1N2M5NDUzNmMzMDNmZWQ1NTFk
NDIzYjIzY2Y0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTczLDcgKzczLDE2IEBA
IHByaXZhdGU6CiAKICAgICBib29sIHRyeVVzZUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZShj
b25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIGNvbnN0IFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyYpOwogCi0gICAgdWludDY0X3QgZXN0YWJsaXNoSWRlbnRpZmllckZvckNo
YWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOworICAgIHVp
bnQ2NF90IGFkZENoYWxsZW5nZVRvQ2hhbGxlbmdlTWFwKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJik7CisgICAgYm9vbCBzaG91bGRDb2FsZXNjZUNoYWxsZW5nZSh1aW50
NjRfdCBjaGFsbGVuZ2VJRCwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
KSBjb25zdDsKKworICAgIHZvaWQgdXNlQ3JlZGVudGlhbEZvclNpbmdsZUNoYWxsZW5nZSh1aW50
NjRfdCBjaGFsbGVuZ2VJRCwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYsIGNvbnN0IFdlYkNv
cmU6OkNlcnRpZmljYXRlSW5mbyYpOworICAgIHZvaWQgY29udGludWVXaXRob3V0Q3JlZGVudGlh
bEZvclNpbmdsZUNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CisgICAgdm9pZCBjYW5j
ZWxTaW5nbGVDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQpOworICAgIHZvaWQgcGVyZm9y
bURlZmF1bHRIYW5kbGluZ0ZvclNpbmdsZUNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7
CisgICAgdm9pZCByZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZUZvclNpbmdsZUNoYWxs
ZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CisKKyAgICBWZWN0b3I8dWludDY0X3Q+IGNvYWxl
c2NlQ2hhbGxlbmdlc01hdGNoaW5nKHVpbnQ2NF90IGNoYWxsZW5nZUlEKSBjb25zdDsKIAogICAg
IENoaWxkUHJvY2VzcyogbV9wcm9jZXNzOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258586</attachid>
            <date>2015-08-08 20:19:07 -0700</date>
            <delta_ts>2015-08-09 15:20:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128006-20150808201855.patch</filename>
            <type>text/plain</type>
            <size>2504</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmY1NmU0NTYyMTc0ZWE0
NmMyMGJjODJmMzgxY2IyYjc5ZTE1MjBkMC4uYWZkMGU2MjVjOGM1ZjUwYTVhMjkyNTRiMTg1YTQ2
Mzg5Yjc3MWNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA4LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRm9sbG93LXVwIG5pdCBmaXhl
cyBhZnRlciByMTg3NjkxLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI4MDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXNlIG1vZGVybiBmb3ItbG9vcHMgaW5zdGVhZCBvZiBleHBsaWNpdCBpdGVyYXRv
cnMuCisKKyAgICAgICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpzaG91bGRD
b2FsZXNjZUNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdl
cjo6Y29hbGVzY2VDaGFsbGVuZ2VzTWF0Y2hpbmcpOgorCiAyMDE1LTA4LTA3ICBGaWxpcCBQaXps
byAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgTGlnaHR3ZWlnaHQgbG9ja3Mgc2hvdWxk
IGJlIGFkYXB0aXZlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDE2Yjk3ZjRiNDli
YTk0M2U3MDk1ZWE3NjYyNmY0ODI3ZDRhOTMxMTUuLjRkMDMyN2I1ODM4ZDNmZWQ0OTk2MjZkNzc4
NzQ3OWFlMjBmOWNhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC04NCw5ICs4
NCw4IEBAIGJvb2wgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpzaG91bGRDb2FsZXNjZUNoYWxsZW5n
ZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgY29uc3QKICAgICBpZiAoIWNhbkNvYWxlc2NlQ2hhbGxl
bmdlKGNoYWxsZW5nZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gZW5kID0g
IG1fY2hhbGxlbmdlcy5lbmQoKTsKLSAgICBmb3IgKGF1dG8gaXQgPSBtX2NoYWxsZW5nZXMuYmVn
aW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+a2V5ICE9IGNoYWxsZW5n
ZUlEICYmIFByb3RlY3Rpb25TcGFjZTo6Y29tcGFyZShjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNl
KCksIGl0LT52YWx1ZS5wcm90ZWN0aW9uU3BhY2UoKSkpCisgICAgZm9yIChhdXRvJiBpdGVtIDog
bV9jaGFsbGVuZ2VzKSB7CisgICAgICAgIGlmIChpdGVtLmtleSAhPSBjaGFsbGVuZ2VJRCAmJiBQ
cm90ZWN0aW9uU3BhY2U6OmNvbXBhcmUoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLCBpdGVt
LnZhbHVlLnByb3RlY3Rpb25TcGFjZSgpKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDMsMTAgKzEwMiw5IEBAIFZlY3Rvcjx1aW50NjRf
dD4gQXV0aGVudGljYXRpb25NYW5hZ2VyOjpjb2FsZXNjZUNoYWxsZW5nZXNNYXRjaGluZyh1aW50
NjRfdCBjaGFsCiAgICAgaWYgKCFjYW5Db2FsZXNjZUNoYWxsZW5nZShjaGFsbGVuZ2UpKQogICAg
ICAgICByZXR1cm4gY2hhbGxlbmdlc1RvQ29hbGVzY2U7CiAKLSAgICBhdXRvIGVuZCA9IG1fY2hh
bGxlbmdlcy5lbmQoKTsKLSAgICBmb3IgKGF1dG8gaXQgPSBtX2NoYWxsZW5nZXMuYmVnaW4oKTsg
aXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+a2V5ICE9IGNoYWxsZW5nZUlEICYm
IFByb3RlY3Rpb25TcGFjZTo6Y29tcGFyZShjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCksIGl0
LT52YWx1ZS5wcm90ZWN0aW9uU3BhY2UoKSkpCi0gICAgICAgICAgICBjaGFsbGVuZ2VzVG9Db2Fs
ZXNjZS5hcHBlbmQoaXQtPmtleSk7CisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9jaGFsbGVuZ2Vz
KSB7CisgICAgICAgIGlmIChpdGVtLmtleSAhPSBjaGFsbGVuZ2VJRCAmJiBQcm90ZWN0aW9uU3Bh
Y2U6OmNvbXBhcmUoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLCBpdGVtLnZhbHVlLnByb3Rl
Y3Rpb25TcGFjZSgpKSkKKyAgICAgICAgICAgIGNoYWxsZW5nZXNUb0NvYWxlc2NlLmFwcGVuZChp
dGVtLmtleSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGNoYWxsZW5nZXNUb0NvYWxlc2NlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>