<?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>105647</bug_id>
          
          <creation_ts>2012-12-21 11:38:32 -0800</creation_ts>
          <short_desc>Unprefixed transitionend event doesn&apos;t seem to be implemented, which breaks many sites</short_desc>
          <delta_ts>2019-02-06 09:18:43 -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>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.8</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>105771</dependson>
          <blocked>93136</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philip Walton">philip</reporter>
          <assigned_to name="Alexis Menard (darktears)">menard</assigned_to>
          <cc>dino</cc>
    
    <cc>eoconnor</cc>
    
    <cc>fishd</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>kevin</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>paulirish</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thakis</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>796398</commentid>
    <comment_count>0</comment_count>
    <who name="Philip Walton">philip</who>
    <bug_when>2012-12-21 11:38:32 -0800</bug_when>
    <thetext>Many libraries (including bootstrap and modernizr) recommend detecting the transitionend event with code like the following:

var transitionEnd = (function() {
    
  var el = document.createElement(&apos;div&apos;);
  var eventMap = {
    // list the w3 event first so it&apos;s used if found
    &apos;transition&apos;       : &apos;transitionend&apos;,
    &apos;WebkitTransition&apos; : &apos;webkitTransitionEnd&apos;,
    &apos;MozTransition&apos;    : &apos;transitionend&apos;,
    &apos;OTransition&apos;      : &apos;oTransitionEnd otransitionend&apos;
  };

  for (var key in eventMap) {
    if (eventMap.hasOwnProperty(key) &amp;&amp; el.style[key] != null) {

      // return the transition end event in the map
      return eventMap[key];
    }
  };
})();

Recently the the plain old &quot;transitionend&quot; event started to appear (unprefixed) as a key in the DOM elements style object, but the unprefixed transitionend event doesn&apos;t seem to be working via JavaScript.

I&apos;ve confirmed that this breaks applications in Chrome Canary and Webkit Nightly, but not in Chrome stable.

Here is a test case showing what happens:
http://jsfiddle.net/Pab7e/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796481</commentid>
    <comment_count>1</comment_count>
    <who name="Paul Irish">paulirish</who>
    <bug_when>2012-12-21 14:54:25 -0800</bug_when>
    <thetext>AFAICT, this is due to http://trac.webkit.org/changeset/138184 and enabling by default.

Verified on Chrome Canary that while unprefixed transitions do now work, the unprefixed transitionend event does not. 

Metabug for unprefixing TTA: https://bugs.webkit.org/show_bug.cgi?id=93136</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796661</commentid>
    <comment_count>2</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-12-22 03:02:55 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; AFAICT, this is due to http://trac.webkit.org/changeset/138184 and enabling by default.
&gt; 
&gt; Verified on Chrome Canary that while unprefixed transitions do now work, the unprefixed transitionend event does not. 
&gt; 
&gt; Metabug for unprefixing TTA: https://bugs.webkit.org/show_bug.cgi?id=93136

It&apos;s still implementation in progress so yes stuff like that is missing.I put it blocker of the meta bug so we don&apos;t forget about it. In the other hand chromium should deactivate the feature on their shipping release until it&apos;s ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796705</commentid>
    <comment_count>3</comment_count>
    <who name="Paul Irish">paulirish</who>
    <bug_when>2012-12-22 19:36:53 -0800</bug_when>
    <thetext>Thanks Alexis.. makes sense.
I&quot;m currently looking for someone to flip the feature flag for Chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796732</commentid>
    <comment_count>4</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-12-23 04:56:35 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Thanks Alexis.. makes sense.
&gt; I&quot;m currently looking for someone to flip the feature flag for Chromium.

Thanks. Worst case I&apos;ll send an email to webkit-dev next week. That&apos;s why I put the feature flag in the first place, to avoid shipping an half implemented feature while we are working on it and make sure we&apos;re aligned with the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797331</commentid>
    <comment_count>5</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-12-26 10:00:06 -0800</bug_when>
    <thetext>&gt; It&apos;s still implementation in progress so yes stuff like that is missing.I put it blocker of the meta bug so we don&apos;t forget about it. In the other hand chromium should deactivate the feature on their shipping release until it&apos;s ready.

I&apos;ll turn this off for chromium for now. I see that your patch set the flag to &apos;on&apos; for all ports. Would&apos;t it make more sense to default the flag to 0 everywhere and only flip it once it&apos;s actually working? Tests could set a pref in the mean time if you did this for testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797528</commentid>
    <comment_count>6</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-12-27 06:07:23 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; It&apos;s still implementation in progress so yes stuff like that is missing.I put it blocker of the meta bug so we don&apos;t forget about it. In the other hand chromium should deactivate the feature on their shipping release until it&apos;s ready.
&gt; 
&gt; I&apos;ll turn this off for chromium for now. I see that your patch set the flag to &apos;on&apos; for all ports. Would&apos;t it make more sense to default the flag to 0 everywhere and only flip it once it&apos;s actually working? Tests could set a pref in the mean time if you did this for testing.

Yes it&apos;s on purpose, we have couple of feature activated on trunk but deactivated on shipping products. I need the bots to run the code, I need some people to be able to test so we decided to keep it on by default on trunk only (it was on the email sent on webkit-dev and nobody objected at that time). Also it&apos;s not a feature per say as the transitions are already supported via the prefix -webkit. But don&apos;t worry I&apos;ll fix the events as soon as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798133</commentid>
    <comment_count>7</comment_count>
    <who name="Paul Irish">paulirish</who>
    <bug_when>2012-12-29 08:12:57 -0800</bug_when>
    <thetext>As Bug 104647 was fixed, this issue is now resolved at least for Chrome Canary. I imagine it is still broken for WebKit nightly , but I see no immediate reason to resolve that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798134</commentid>
    <comment_count>8</comment_count>
    <who name="Paul Irish">paulirish</who>
    <bug_when>2012-12-29 08:14:01 -0800</bug_when>
    <thetext>&gt; As Bug 104647 was fixed...

Apologies, make that Bug 105771</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805456</commentid>
    <comment_count>9</comment_count>
      <attachid>182382</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-01-11 11:30:54 -0800</bug_when>
    <thetext>Created attachment 182382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805460</commentid>
    <comment_count>10</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-01-11 11:32:11 -0800</bug_when>
    <thetext>*** Bug 106529 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806222</commentid>
    <comment_count>11</comment_count>
      <attachid>182540</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-01-14 03:28:40 -0800</bug_when>
    <thetext>Created attachment 182540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806440</commentid>
    <comment_count>12</comment_count>
      <attachid>182540</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-14 10:06:01 -0800</bug_when>
    <thetext>Comment on attachment 182540
Patch

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

&gt; Source/WebCore/ChangeLog:31
&gt; +        (Event):

Let&apos;s remove those meaningless lines.

&gt; Source/WebCore/ChangeLog:33
&gt; +        (WebCore::Event::mutateToPrefixed): this will swap the event name from

Sentences start with a capital letter.

&gt; Source/WebCore/dom/Event.cpp:84
&gt; +: m_type(eventType)
&gt; +, m_prefixedType(prefixedEventType)
&gt; +, m_canBubble(canBubbleArg)
&gt; +, m_cancelable(cancelableArg)
&gt; +, m_propagationStopped(false)
&gt; +, m_immediatePropagationStopped(false)
&gt; +, m_defaultPrevented(false)
&gt; +, m_defaultHandled(false)
&gt; +, m_cancelBubble(false)
&gt; +, m_eventPhase(0)
&gt; +, m_currentTarget(0)
&gt; +, m_createTime(convertSecondsToDOMTimeStamp(currentTime()))

Doh&apos;! Style violation: it should be indented.

&gt; Source/WebCore/dom/Event.h:187
&gt; +    AtomicString m_prefixedType;

It&apos;s bad that now every Event is bigger just to handle a corner case. Also because of this design, you *have* to pass both unprefixed and prefixed version around which adds a lot of boilerplate code.

I would prefer an out-of-band mechanism to handling sending the unprefixed version. For example, in EventTarget, you could keep track of prefixed events matching the corresponding unprefixed so that you properly apply your fallback logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807158</commentid>
    <comment_count>13</comment_count>
      <attachid>182730</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-01-15 03:23:05 -0800</bug_when>
    <thetext>Created attachment 182730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807159</commentid>
    <comment_count>14</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-01-15 03:23:34 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Created an attachment (id=182730) [details]
&gt; Patch

Alternative approach, julien what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807177</commentid>
    <comment_count>15</comment_count>
      <attachid>182735</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-01-15 04:11:49 -0800</bug_when>
    <thetext>Created attachment 182735
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807351</commentid>
    <comment_count>16</comment_count>
      <attachid>182783</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-01-15 08:55:29 -0800</bug_when>
    <thetext>Created attachment 182783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807426</commentid>
    <comment_count>17</comment_count>
      <attachid>182783</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-15 10:26:59 -0800</bug_when>
    <thetext>Comment on attachment 182783
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        work on CSS Transitions. This patch adds support to save a prefixed and
&gt; +        an unprefixed name in the Event class which is used later in the event
&gt; +        dispatching to figure out whether we want to send the prefixed or the
&gt; +        unprefixed event. In the case of the CSS Transitions, WebKit will now

The sentence is stale: you don&apos;t store any information in the event anymore.

&gt; Source/WebCore/ChangeLog:19
&gt; +

Nit: Adding the thread to webkit-dev would be nice as this was discussed broadly and no one objected or found a better alternative.

&gt; Source/WebCore/ChangeLog:26
&gt; +        (WebCore::Document::addListenerTypeIfNeeded): Add support for
&gt; +        transitionend in case there is only an event listener on the unprefixed
&gt; +        event.

I see what you meant but the wording feels weird. How about something like (feel free to edit to your needs):

Register the prefixed listener too as transitionend listeners so that we properly dispatch events for them.

&gt; Source/WebCore/dom/Document.cpp:3733
&gt; +    else if (eventType == eventNames().transitionendEvent)
&gt; +        addListenerType(TRANSITIONEND_LISTENER);

Nit: You could put the 2 ifs on the same line as they are logically equivalent.

if (eventType == eventNames().webkitTransitionEndEvent || eventType == eventNames().transitionendEvent)

&gt; Source/WebCore/dom/EventTarget.cpp:164
&gt; +static PassRefPtr&lt;Event&gt; createPrefixedEvent(const Event* event)

Nit: I would rename this to createMatchingPrefixedEvent to emphasize that it&apos;s strictly the same event but prefixed.

&gt; Source/WebCore/dom/EventTarget.cpp:204
&gt; +        prefixedEvent-&gt;setTarget(event-&gt;target());
&gt; +        prefixedEvent-&gt;setCurrentTarget(event-&gt;currentTarget());
&gt; +        prefixedEvent-&gt;setEventPhase(event-&gt;eventPhase());

This should probably go into the createPrefixedEvent as you really want to create a cloned / match event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807453</commentid>
    <comment_count>18</comment_count>
      <attachid>182806</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2013-01-15 10:50:14 -0800</bug_when>
    <thetext>Created attachment 182806
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807492</commentid>
    <comment_count>19</comment_count>
      <attachid>182806</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-15 11:19:09 -0800</bug_when>
    <thetext>Comment on attachment 182806
Patch for landing

Clearing flags on attachment: 182806

Committed r139762: &lt;http://trac.webkit.org/changeset/139762&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807493</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-15 11:19:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503232</commentid>
    <comment_count>21</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:18:43 -0800</bug_when>
    <thetext>Mass move bugs into the DOM component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182382</attachid>
            <date>2013-01-11 11:30:54 -0800</date>
            <delta_ts>2013-01-14 03:28:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105647-20130111162755.patch</filename>
            <type>text/plain</type>
            <size>23473</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc0YjZiMGI2YzJlOGRk
NDQ5MTVmZTY5OGNjNzZlMzRmMmU3ZjI0Ny4uMjhiY2UwOWUyNDgyMjFlM2YxOTIzOTA2NmQ0NTli
MmQ1ODIyYjI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEzLTAxLTExICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5wcmVmaXhlZCB0cmFu
c2l0aW9uZW5kIGV2ZW50IGRvZXNuJ3Qgc2VlbSB0byBiZSBpbXBsZW1lbnRlZCwgd2hpY2ggYnJl
YWtzIG1hbnkgc2l0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNTY0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciB0cmFuc2l0aW9uZW5kIGV2ZW50IGRlbGl2ZXJ5IGFzIHBh
cnQgYXMgdGhlIHVucHJlZml4aW5nCisgICAgICAgIHdvcmsgb24gQ1NTIFRyYW5zaXRpb25zLiBU
aGlzIHBhdGNoIGFkZHMgc3VwcG9ydCB0byBzYXZlIGEgcHJlZml4ZWQgYW5kCisgICAgICAgIHVu
cHJlZml4ZWQgbmFtZSBpbiB0aGUgRXZlbnQgY2xhc3Mgd2hpY2ggaXMgdXNlZCBsYXRlciBpbiB0
aGUgZXZlbnQKKyAgICAgICAgZGlzcGF0Y2hpbmcgdG8gZmlndXJlIG91dCB3aGV0aGVyIHdlIHdh
bnQgdG8gc2VuZCB0aGUgcHJlZml4ZWQgb3IgdGhlCisgICAgICAgIHVucHJlZml4ZWQgZXZlbnQu
IEluIHRoZSBjYXNlIG9mIHRoZSBDU1MgVHJhbnNpdGlvbnMsIFdlYktpdCB3aWxsIG5vdworICAg
ICAgICBiZWhhdmUgYXMgZm9sbG93IDogaWYgYW4gZXZlbnQgbGlzdGVuZXIgaXMgYXR0YWNoZWQg
dG8gdGhlIHByZWZpeGVkCisgICAgICAgIHZlcnNpb24gb2YgdGhlIHRyYW5zaXRpb24gZW5kIGV2
ZW50IHRoZW4gb25seSB0aGUgcHJlZml4ZWQgZXZlbnQgd2lsbCBiZQorICAgICAgICBzZW5kLiBJ
ZiBhbiBldmVudCBsaXN0ZW5lciBpcyBhdHRhY2hlZCB0byB0aGUgdW5wcmVmaXhlZCB2ZXJzaW9u
CisgICAgICAgIG9mIHRoZSB0cmFuc2l0aW9uIGVuZCBldmVudCB0aGVuIG9ubHkgdGhlIHVucHJl
Zml4ZWQgZXZlbnQgd2lsbCBiZQorICAgICAgICBzZW5kLiBJZiB0aGVyZSBhcmUgZXZlbnQgbGlz
dGVuZXJzIG9uIGJvdGggdW5wcmVmaXhlZCBhbmQgcHJlZml4ZWQKKyAgICAgICAgZXZlbnRzIHRo
ZW4gb25seSB0aGUgdW5wcmVmaXhlZCBldmVudCB3aWxsIGJlIHNlbmQuCisKKyAgICAgICAgVGVz
dHM6IHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDEuaHRtbAor
ICAgICAgICAgICAgICAgdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhl
ZC0wMi5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OmFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKTogYWRkIHN1cHBvcnQgZm9yCisg
ICAgICAgIHRyYW5zaXRpb25lbmQKKyAgICAgICAgKiBkb20vRXZlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnQ6OkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRv
bS9FdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6cHJlZml4ZWRUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50OjptdXRhdGVUb1ByZWZpeGVkKTogdGhpcyB3aWxsIHN3YXAgdGhlIGV2
ZW50IG5hbWUgZnJvbQorICAgICAgICB0aGUgdW5wcmVmaXhlZCB2ZXJzaW9uIChkZWZhdWx0KSB0
byB1bnByZWZpeGVkIHZlcnNpb24uCisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOiBBZGQgdGhlIG5ldyB0cmFuc2l0aW9uZW5kIG5hbWUKKyAgICAgICAgKiBk
b20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OmZpcmVF
dmVudExpc3RlbmVycyk6IEZpbmQgb3V0IGlmIHNvbWVib2R5IGlzCisgICAgICAgIGxpc3Rlbmlu
ZyBmb3IgdW5wcmVmaXhlZCBldmVudHMsIGlmIHNvIHdlIGFsd2F5cyBzZW5kIHRoZSB1bnByZWZp
eGVkCisgICAgICAgIGV2ZW50LCBpZiBub3QgdGhlbiB3ZSAibXV0YXRlIiB0aGUgZXZlbnQgdG8g
YSBwcmVmaXhlZCBvbmUgYW5kIHNlbmQgaXQuCisgICAgICAgICogZG9tL1dlYktpdFRyYW5zaXRp
b25FdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRUcmFuc2l0aW9uRXZlbnQ6Oldl
YktpdFRyYW5zaXRpb25FdmVudCk6CisgICAgICAgICogZG9tL1dlYktpdFRyYW5zaXRpb25FdmVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0VHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0VHJhbnNpdGlvbkV2ZW50KToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNv
bnRyb2xsZXJQcml2YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFkZEV2ZW50VG9EaXNwYXRjaCk6Cisg
ICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaDoKKyAg
ICAgICAgKEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKToKKyAgICAgICAgKEV2ZW50VG9EaXNw
YXRjaCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246Om9uQW5pbWF0aW9uRW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjpzZW5kVHJhbnNpdGlvbkV2ZW50KToK
KyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oOgorICAgICAgICAo
SW1wbGljaXRBbmltYXRpb24pOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5p
bWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5p
bWF0aW9uRXZlbnQpOiBGb3Igbm93IHNlbmQgYm90aAorICAgICAgICB1bnByZWZpeGVkIG5hbWVz
IGJ1dCB3aWxsIGJlIGNoYW5nZSBzb29uZXIgd2hlbiBhbmltYXRpb25zIGFyZSBnb2luZyB0bwor
ICAgICAgICBiZSB1bnByZWZpeGVkLgorCiAyMDEzLTAxLTExICBKb2NoZW4gRWlzaW5nZXIgIDxq
b2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENvbm5lY3QgVXNlckdlc3R1cmVJbmRpY2F0
b3IgZm9yIG1vdXNlZG93biBhbmQgbW91c2V1cCBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IGI3Y2ZhMzE3ODg4MDUzYTc4ZWVjMDUxZWEwZDliZjcwMjQyMzUyOTQuLmRhMzVhZmFh
ZGUzMTNhMGNhMzY0ZGZmM2JiZTE4NGVjZGE4MjcwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtMzcyMSw2ICszNzIxLDggQEAgdm9pZCBEb2N1bWVudDo6YWRkTGlzdGVuZXJUeXBlSWZO
ZWVkZWQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpCiAgICAgICAgIGFkZExpc3RlbmVy
VHlwZShBTklNQVRJT05JVEVSQVRJT05fTElTVEVORVIpOwogICAgIGVsc2UgaWYgKGV2ZW50VHlw
ZSA9PSBldmVudE5hbWVzKCkud2Via2l0VHJhbnNpdGlvbkVuZEV2ZW50KQogICAgICAgICBhZGRM
aXN0ZW5lclR5cGUoVFJBTlNJVElPTkVORF9MSVNURU5FUik7CisgICAgZWxzZSBpZiAoZXZlbnRU
eXBlID09IGV2ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZlbnQpCisgICAgICAgIGFkZExpc3Rl
bmVyVHlwZShUUkFOU0lUSU9ORU5EX0xJU1RFTkVSKTsKICAgICBlbHNlIGlmIChldmVudFR5cGUg
PT0gZXZlbnROYW1lcygpLmJlZm9yZWxvYWRFdmVudCkKICAgICAgICAgYWRkTGlzdGVuZXJUeXBl
KEJFRk9SRUxPQURfTElTVEVORVIpOwogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5h
bWVzKCkuc2Nyb2xsRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAppbmRleCBjMWU2MDlmZjQwYTA2MTFh
NzJjMmM3YzExMDgxNTEyYmViMjhkYzU1Li5jNGM0ZGEwZWY3MzhmNDc1MzgwYmY3ZTQ0YmIwYjVh
OWRhOTk3ODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAKQEAgLTY5LDYgKzY5LDIyIEBAIEV2ZW50OjpF
dmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJv
b2wgY2FuY2VsYWJsZUFyCiB7CiB9CiAKK0V2ZW50OjpFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXhlZEV2ZW50VHlwZSwgYm9vbCBj
YW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZykKKzogbV90eXBlKGV2ZW50VHlwZSkKKywg
bV9wcmVmaXhlZFR5cGUocHJlZml4ZWRFdmVudFR5cGUpCissIG1fY2FuQnViYmxlKGNhbkJ1YmJs
ZUFyZykKKywgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCissIG1fcHJvcGFnYXRpb25TdG9w
cGVkKGZhbHNlKQorLCBtX2ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZChmYWxzZSkKKywgbV9k
ZWZhdWx0UHJldmVudGVkKGZhbHNlKQorLCBtX2RlZmF1bHRIYW5kbGVkKGZhbHNlKQorLCBtX2Nh
bmNlbEJ1YmJsZShmYWxzZSkKKywgbV9ldmVudFBoYXNlKDApCissIG1fY3VycmVudFRhcmdldCgw
KQorLCBtX2NyZWF0ZVRpbWUoY29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChjdXJyZW50VGlt
ZSgpKSkKK3sKK30KKwogRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBjb25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1fY2FuQnViYmxlKGluaXRpYWxpemVyLmJ1YmJsZXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oCmluZGV4
IDM2ZjAyOTM1NmFhZmNiMDcxYzMxZjAzMDE2MTY3NTk3ZjZkMjVkYjguLjVkOWUwNTIzOTM5MGYz
MjUyYzA2ZGU2MjhhYjZjZjI4NzAxNWFmNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oCkBAIC04Myw2ICs4Mywx
MSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXZlbnQodHlwZSwgY2Fu
QnViYmxlLCBjYW5jZWxhYmxlKSk7CiAgICAgfQogCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RXZl
bnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
cHJlZml4ZWRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFdmVudCh0eXBlLCBwcmVmaXhlZFR5cGUsIGNhbkJ1
YmJsZSwgY2FuY2VsYWJsZSkpOworICAgIH0KKwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV2ZW50
PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBFdmVudEluaXQmIGluaXRp
YWxpemVyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFdmVudCh0eXBlLCBp
bml0aWFsaXplcikpOwpAQCAtOTMsNyArOTgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgaW5pdEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSk7CiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGU7IH0KKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHByZWZpeGVkVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJlZml4ZWRUeXBlOyB9CiAgICAgCisgICAgdm9pZCBtdXRhdGVUb1ByZWZpeGVk
KCkgeyBtX3R5cGUgPSBtX3ByZWZpeGVkVHlwZTsgfQorCiAgICAgRXZlbnRUYXJnZXQqIHRhcmdl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0LmdldCgpOyB9CiAgICAgdm9pZCBzZXRUYXJnZXQo
UGFzc1JlZlB0cjxFdmVudFRhcmdldD4pOwogCkBAIC0xNjgsNiArMTc2LDcgQEAgcHVibGljOgog
cHJvdGVjdGVkOgogICAgIEV2ZW50KCk7CiAgICAgRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlKTsKKyAgICBFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4ZWRUeXBlLCBib29s
IGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlKTsKICAgICBFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGNvbnN0IEV2ZW50SW5pdCYpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVk
VGFyZ2V0KCk7CkBAIC0xNzUsNiArMTg0LDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAg
IEF0b21pY1N0cmluZyBtX3R5cGU7CisgICAgQXRvbWljU3RyaW5nIG1fcHJlZml4ZWRUeXBlOwog
ICAgIGJvb2wgbV9jYW5CdWJibGU7CiAgICAgYm9vbCBtX2NhbmNlbGFibGU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5oCmluZGV4IGRjM2VmYmU3ODM5YzFkYTFlNTlmNTJkZTA2MjUyODg3YjY2MDM2
NTAuLjVjZjYyMTk1YWIxNjJmMzBmNTllNzdlOTM5NDlmYTUyOThmZjZlZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaApAQCAtMTgyLDYgKzE4Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBtYWNybyh3ZWJraXRBbmltYXRpb25JdGVyYXRpb24pIFwKICAgICBcCiAgICAgbWFjcm8od2Vi
a2l0VHJhbnNpdGlvbkVuZCkgXAorICAgIG1hY3JvKHRyYW5zaXRpb25lbmQpIFwKICAgICBcCiAg
ICAgbWFjcm8ob3JpZW50YXRpb25jaGFuZ2UpIFwKICAgICBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0LmNwcAppbmRleCAyMTRmOWEzZTYwZjA0NTc1NDk3NjkzZTA3ZDljY2RkODgxZmVhYTRlLi4x
ZDIwMjU1ZTJhOWZlMzdmYjg1MDdjYjU0MTMxZTQ5NGU5MWU5NThjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldC5jcHAKQEAgLTE2OSwxMCArMTY5LDE4IEBAIGJvb2wgRXZlbnRUYXJnZXQ6OmZp
cmVFdmVudExpc3RlbmVycyhFdmVudCogZXZlbnQpCiAgICAgaWYgKCFkKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAotICAgIEV2ZW50TGlzdGVuZXJWZWN0b3IqIGxpc3RlbmVyVmVjdG9yID0gZC0+
ZXZlbnRMaXN0ZW5lck1hcC5maW5kKGV2ZW50LT50eXBlKCkpOworICAgIEV2ZW50TGlzdGVuZXJW
ZWN0b3IqIGxpc3RlbmVyUHJlZml4ZWRWZWN0b3IgPSAwOworICAgIGlmIChldmVudC0+cHJlZml4
ZWRUeXBlKCkubGVuZ3RoKCkpCisgICAgICAgIGxpc3RlbmVyUHJlZml4ZWRWZWN0b3IgPSBkLT5l
dmVudExpc3RlbmVyTWFwLmZpbmQoZXZlbnQtPnByZWZpeGVkVHlwZSgpKTsKIAotICAgIGlmIChs
aXN0ZW5lclZlY3RvcikKLSAgICAgICAgZmlyZUV2ZW50TGlzdGVuZXJzKGV2ZW50LCBkLCAqbGlz
dGVuZXJWZWN0b3IpOworICAgIEV2ZW50TGlzdGVuZXJWZWN0b3IqIGxpc3RlbmVyVW5wcmVmaXhl
ZFZlY3RvciA9IGQtPmV2ZW50TGlzdGVuZXJNYXAuZmluZChldmVudC0+dHlwZSgpKTsKKworICAg
IGlmIChsaXN0ZW5lclVucHJlZml4ZWRWZWN0b3IpCisgICAgICAgIGZpcmVFdmVudExpc3RlbmVy
cyhldmVudCwgZCwgKmxpc3RlbmVyVW5wcmVmaXhlZFZlY3Rvcik7CisgICAgZWxzZSBpZiAobGlz
dGVuZXJQcmVmaXhlZFZlY3RvcikgeworICAgICAgICBldmVudC0+bXV0YXRlVG9QcmVmaXhlZCgp
OworICAgICAgICBmaXJlRXZlbnRMaXN0ZW5lcnMoZXZlbnQsIGQsICpsaXN0ZW5lclByZWZpeGVk
VmVjdG9yKTsKKyAgICB9CiAgICAgCiAgICAgcmV0dXJuICFldmVudC0+ZGVmYXVsdFByZXZlbnRl
ZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdFRyYW5zaXRpb25F
dmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcApp
bmRleCA0NWMyYjQ3MmNhZWYxNWFhNmI1ODE0ZDJlNGUyYTZmNDMzMjE1NDRmLi4zMGEwY2UwYjJj
NTBlZmU0NjAwNTI2NjQyNTE3M2Y1YWYxZTBmMTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
V2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcApAQCAtNDIsOCArNDIsOCBAQCBXZWJLaXRUcmFuc2l0
aW9uRXZlbnQ6OldlYktpdFRyYW5zaXRpb25FdmVudCgpCiB7CiB9CiAKLVdlYktpdFRyYW5zaXRp
b25FdmVudDo6V2ViS2l0VHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Y29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSkKLSAgICA6IEV2
ZW50KHR5cGUsIHRydWUsIHRydWUpCitXZWJLaXRUcmFuc2l0aW9uRXZlbnQ6OldlYktpdFRyYW5z
aXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
cHJlZml4ZWRUeXBlLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRU
aW1lKQorICAgIDogRXZlbnQodHlwZSwgcHJlZml4ZWRUeXBlLCB0cnVlLCB0cnVlKQogICAgICwg
bV9wcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKQogICAgICwgbV9lbGFwc2VkVGltZShlbGFwc2Vk
VGltZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0aW9u
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaAppbmRl
eCAyMzJjMTA1NTJlYjMyZTAyMjY4MmVlM2I1NjNiNTRhZDY4OTRmNGUwLi5hYjAzZjFjMjQ0ZmQ5
M2I0NDg4NWM0NDllYjkyOTAzMWVlYjQxMTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktp
dFRyYW5zaXRpb25FdmVudC5oCkBAIC00Myw5ICs0Myw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0VHJhbnNpdGlvbkV2ZW50KTsKICAgICB9Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0VHJhbnNpdGlvbkV2ZW50PiBjcmVhdGUoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVs
YXBzZWRUaW1lKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdFRyYW5zaXRpb25FdmVudD4g
Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBwcmVm
aXhlZFR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdFRyYW5zaXRpb25FdmVu
dCh0eXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViS2l0VHJhbnNpdGlvbkV2ZW50KHR5cGUsIHByZWZpeGVkVHlwZSwgcHJvcGVy
dHlOYW1lLCBlbGFwc2VkVGltZSkpOwogICAgIH0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJL
aXRUcmFuc2l0aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0
IFdlYktpdFRyYW5zaXRpb25FdmVudEluaXQmIGluaXRpYWxpemVyKQogICAgIHsKQEAgLTYxLDcg
KzYxLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFdlYktpdFRyYW5zaXRpb25FdmVudCgp
OwotICAgIFdlYktpdFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpOworICAgIFdlYktp
dFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEF0b21pY1N0
cmluZyYgcHJlZml4ZWRUeXBlLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVs
YXBzZWRUaW1lKTsKICAgICBXZWJLaXRUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBjb25zdCBXZWJLaXRUcmFuc2l0aW9uRXZlbnRJbml0JiBpbml0aWFsaXplcik7CiAK
ICAgICBTdHJpbmcgbV9wcm9wZXJ0eU5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDMzNGU0OGI3M2ViOGM0
MDAxNjVkMGY0MjMwM2FkYTMyODk0NTNhMzEuLjVlYmE0YjI1ZTU5Y2U5ODFjYjk3YmVhOGFjYmIx
MGI1NWUwYjZhMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xNzksOCArMTc5LDggQEAgdm9pZCBBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZTo6ZmlyZUV2ZW50c0FuZFVwZGF0ZVN0eWxlKCkKICAgICBtX2V2
ZW50c1RvRGlzcGF0Y2guY2xlYXIoKTsKICAgICBWZWN0b3I8RXZlbnRUb0Rpc3BhdGNoPjo6Y29u
c3RfaXRlcmF0b3IgZXZlbnRzVG9EaXNwYXRjaEVuZCA9IGV2ZW50c1RvRGlzcGF0Y2guZW5kKCk7
CiAgICAgZm9yIChWZWN0b3I8RXZlbnRUb0Rpc3BhdGNoPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBl
dmVudHNUb0Rpc3BhdGNoLmJlZ2luKCk7IGl0ICE9IGV2ZW50c1RvRGlzcGF0Y2hFbmQ7ICsraXQp
IHsKLSAgICAgICAgaWYgKGl0LT5ldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndlYmtpdFRyYW5z
aXRpb25FbmRFdmVudCkKLSAgICAgICAgICAgIGl0LT5lbGVtZW50LT5kaXNwYXRjaEV2ZW50KFdl
YktpdFRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGl0LT5ldmVudFR5cGUsIGl0LT5uYW1lLCBpdC0+
ZWxhcHNlZFRpbWUpKTsKKyAgICAgICAgaWYgKGl0LT5ldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
LnRyYW5zaXRpb25lbmRFdmVudCkKKyAgICAgICAgICAgIGl0LT5lbGVtZW50LT5kaXNwYXRjaEV2
ZW50KFdlYktpdFRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGl0LT5ldmVudFR5cGUsIGl0LT5wcmVm
aXhlZEV2ZW50VHlwZSwgaXQtPm5hbWUsIGl0LT5lbGFwc2VkVGltZSkpOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBpdC0+ZWxlbWVudC0+ZGlzcGF0Y2hFdmVudChXZWJLaXRBbmltYXRpb25F
dmVudDo6Y3JlYXRlKGl0LT5ldmVudFR5cGUsIGl0LT5uYW1lLCBpdC0+ZWxhcHNlZFRpbWUpKTsK
ICAgICB9CkBAIC0yMDIsMTIgKzIwMiwxMyBAQCB2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlOjpzdGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCkKICAgICAgICAgbV91cGRh
dGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlci5zdGFydE9uZVNob3QoMCk7CiB9CiAKLXZvaWQgQW5p
bWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFkZEV2ZW50VG9EaXNwYXRjaChQYXNzUmVmUHRyPEVs
ZW1lbnQ+IGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSkKK3ZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGU6OmFkZEV2ZW50VG9EaXNwYXRjaChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBBdG9taWNTdHJpbmcmIHByZWZpeGVk
RXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSkKIHsKICAg
ICBtX2V2ZW50c1RvRGlzcGF0Y2guZ3JvdyhtX2V2ZW50c1RvRGlzcGF0Y2guc2l6ZSgpKzEpOwog
ICAgIEV2ZW50VG9EaXNwYXRjaCYgZXZlbnQgPSBtX2V2ZW50c1RvRGlzcGF0Y2hbbV9ldmVudHNU
b0Rpc3BhdGNoLnNpemUoKS0xXTsKICAgICBldmVudC5lbGVtZW50ID0gZWxlbWVudDsKICAgICBl
dmVudC5ldmVudFR5cGUgPSBldmVudFR5cGU7CisgICAgZXZlbnQucHJlZml4ZWRFdmVudFR5cGUg
PSBwcmVmaXhlZEV2ZW50VHlwZTsKICAgICBldmVudC5uYW1lID0gbmFtZTsKICAgICBldmVudC5l
bGFwc2VkVGltZSA9IGVsYXBzZWRUaW1lOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKaW5kZXgg
MDdhZmI3NGQwYTEwM2QxNGE0ODdmMWY2NzcyNTJjZTZjOWQzOTJiOC4uOTFiNDU3NDkwZWIzZWY4
ZTNkOGRkNmI2ZWVjNDQwY2U2MTcwZGE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCkBAIC03MCw3
ICs3MCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNo
ZXJGaXJlZChUaW1lcjxBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZT4qKTsKICAgICB2b2lkIHN0
YXJ0VXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIoKTsKLSAgICB2b2lkIGFkZEV2ZW50VG9E
aXNwYXRjaChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSk7CisgICAg
dm9pZCBhZGRFdmVudFRvRGlzcGF0Y2goUGFzc1JlZlB0cjxFbGVtZW50PiwgY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4ZWRFdmVudFR5cGUs
IGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKTsKICAgICB2b2lkIGFkZE5v
ZGVDaGFuZ2VUb0Rpc3BhdGNoKFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgYm9vbCBoYXNBbmlt
YXRpb25zKCkgY29uc3QgeyByZXR1cm4gIW1fY29tcG9zaXRlQW5pbWF0aW9ucy5pc0VtcHR5KCk7
IH0KQEAgLTEyNiw2ICsxMjYsNyBAQCBwcml2YXRlOgogICAgIHB1YmxpYzoKICAgICAgICAgUmVm
UHRyPEVsZW1lbnQ+IGVsZW1lbnQ7CiAgICAgICAgIEF0b21pY1N0cmluZyBldmVudFR5cGU7Cisg
ICAgICAgIEF0b21pY1N0cmluZyBwcmVmaXhlZEV2ZW50VHlwZTsKICAgICAgICAgU3RyaW5nIG5h
bWU7CiAgICAgICAgIGRvdWJsZSBlbGFwc2VkVGltZTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCmluZGV4IDQ5N2Nh
M2Y1NDg3ODYwYTgxZTIwM2VhOGE2MTUyZTQ0NTIwZGJmMjUuLjg1OGYzZjU5ZGMyMzVkYzVlNGJk
N2M5YTU0MDY0NzAyODVhNmUyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKQEAgLTE1MSwxMyArMTUxLDEzIEBAIHZvaWQg
SW1wbGljaXRBbmltYXRpb246Om9uQW5pbWF0aW9uRW5kKGRvdWJsZSBlbGFwc2VkVGltZSkKICAg
ICBpZiAoa2V5ZnJhbWVBbmltKQogICAgICAgICBrZXlmcmFtZUFuaW0tPnNldFVuYW5pbWF0ZWRT
dHlsZShtX3RvU3R5bGUpOwogICAgIAotICAgIHNlbmRUcmFuc2l0aW9uRXZlbnQoZXZlbnROYW1l
cygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCwgZWxhcHNlZFRpbWUpOworICAgIHNlbmRUcmFu
c2l0aW9uRXZlbnQoZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCwgZXZlbnROYW1lcygp
LndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCwgZWxhcHNlZFRpbWUpOwogICAgIGVuZEFuaW1hdGlv
bigpOwogfQogCi1ib29sIEltcGxpY2l0QW5pbWF0aW9uOjpzZW5kVHJhbnNpdGlvbkV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBkb3VibGUgZWxhcHNlZFRpbWUpCitib29sIElt
cGxpY2l0QW5pbWF0aW9uOjpzZW5kVHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBjb25zdCBBdG9taWNTdHJpbmcmIHByZWZpeGVkRXZlbnRUeXBlLCBkb3VibGUg
ZWxhcHNlZFRpbWUpCiB7Ci0gICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkud2Via2l0
VHJhbnNpdGlvbkVuZEV2ZW50KSB7CisgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCku
dHJhbnNpdGlvbmVuZEV2ZW50KSB7CiAgICAgICAgIERvY3VtZW50OjpMaXN0ZW5lclR5cGUgbGlz
dGVuZXJUeXBlID0gRG9jdW1lbnQ6OlRSQU5TSVRJT05FTkRfTElTVEVORVI7CiAKICAgICAgICAg
aWYgKHNob3VsZFNlbmRFdmVudEZvckxpc3RlbmVyKGxpc3RlbmVyVHlwZSkpIHsKQEAgLTE3Mywx
MCArMTczLDEwIEBAIGJvb2wgSW1wbGljaXRBbmltYXRpb246OnNlbmRUcmFuc2l0aW9uRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgICAgICAgICAvLyBTY2hlZHVsZSBldmVudCBoYW5kbGluZwotICAg
ICAgICAgICAgbV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5hZGRFdmVudFRvRGlz
cGF0Y2goZWxlbWVudCwgZXZlbnRUeXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lKTsKKyAg
ICAgICAgICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+YWRkRXZlbnRUb0Rp
c3BhdGNoKGVsZW1lbnQsIGV2ZW50VHlwZSwgcHJlZml4ZWRFdmVudFR5cGUsIHByb3BlcnR5TmFt
ZSwgZWxhcHNlZFRpbWUpOwogCiAgICAgICAgICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCAo
dW5hbmltYXRlZCkgc3R5bGUKLSAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCAmJiBlbGVtZW50LT5yZW5kZXJlcigpKQorICAg
ICAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50
ICYmIGVsZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICAgICAgc2V0TmVlZHNTdHlsZVJl
Y2FsYyhlbGVtZW50LmdldCgpKTsKIAogICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIERpZCBk
aXNwYXRjaCBhbiBldmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vSW1wbGljaXRBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0lt
cGxpY2l0QW5pbWF0aW9uLmgKaW5kZXggZTlmNjk0MmVkZWE3ZTlhZTg5MzBhYjQ5NDYwZWZiODgz
YmQyZjE1MS4uOTIwMWQ1YzdlMWVkNWYyNDViMGM5MzliODU3NTQ0ZGIxYmY2YzEzNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCkBA
IC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIGJvb2wgc2hvdWxkU2Vu
ZEV2ZW50Rm9yTGlzdGVuZXIoRG9jdW1lbnQ6Okxpc3RlbmVyVHlwZSkgY29uc3Q7ICAgIAotICAg
IGJvb2wgc2VuZFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBkb3VibGUgZWxh
cHNlZFRpbWUpOworICAgIGJvb2wgc2VuZFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXhlZEV2ZW50VHlwZSwgZG91
YmxlIGVsYXBzZWRUaW1lKTsKIAogICAgIHZvaWQgdmFsaWRhdGVUcmFuc2Zvcm1GdW5jdGlvbkxp
c3QoKTsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKaW5kZXggZGEyOTE1ZDUyOTIzMTMx
ODYyMDAxYTJjMTY2ZjRjOThiZjZjYTdlZi4uM2E1YmJmNDE2ZTI5YmVkMDNhZjNiOWM5ODQ0ZTkw
ODRhNmIzOTczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5
ZnJhbWVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tl
eWZyYW1lQW5pbWF0aW9uLmNwcApAQCAtMzIyLDcgKzMyMiw3IEBAIGJvb2wgS2V5ZnJhbWVBbmlt
YXRpb246OnNlbmRBbmltYXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
ZG91YmxlCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgLy8gU2NoZWR1bGUg
ZXZlbnQgaGFuZGxpbmcKLSAgICAgICAgbV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigp
LT5hZGRFdmVudFRvRGlzcGF0Y2goZWxlbWVudCwgZXZlbnRUeXBlLCBtX2tleWZyYW1lcy5hbmlt
YXRpb25OYW1lKCksIGVsYXBzZWRUaW1lKTsKKyAgICAgICAgbV9jb21wQW5pbS0+YW5pbWF0aW9u
Q29udHJvbGxlcigpLT5hZGRFdmVudFRvRGlzcGF0Y2goZWxlbWVudCwgZXZlbnRUeXBlLCBldmVu
dFR5cGUsIG1fa2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSwgZWxhcHNlZFRpbWUpOwogCiAgICAg
ICAgIC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsICh1bmFuaW1hdGVkKSBzdHlsZQogICAgICAgICBp
ZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS53ZWJraXRBbmltYXRpb25FbmRFdmVudCAmJiBl
bGVtZW50LT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFjNmEwZmNkMWJhMjA3MmVlMzI0NzdjMTBhZTgy
NTkzNzBhMTRhYTguLmMyNjliYWIyNjIxY2FjNjg2ZGEzMzhiOWIzNDk5NzU2OGNkZGVjY2YgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMS0xMSAgQWxleGlzIE1lbmFyZCAgPGFsZXhpc0B3
ZWJraXQub3JnPgorCisgICAgICAgIFVucHJlZml4ZWQgdHJhbnNpdGlvbmVuZCBldmVudCBkb2Vz
bid0IHNlZW0gdG8gYmUgaW1wbGVtZW50ZWQsIHdoaWNoIGJyZWFrcyBtYW55IHNpdGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2NDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlciB0aGF0IGV2
ZW50IGRlbGl2ZXJ5IGlzIGNvcnJlY3QgOiB3ZSByZWNlaXZlZCB1bnByZWZpeGVkIGV2ZW50cy4K
KworICAgICAgICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LWhlbHBlcnMuanM6
CisgICAgICAgIChyZWNvcmRUcmFuc2l0aW9uRW5kRXZlbnQpOgorICAgICAgICAqIHRyYW5zaXRp
b25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDEtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVk
LTAxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2
ZW50LXVucHJlZml4ZWQtMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2l0
aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAyLmh0bWw6IEFkZGVkLgorCiAy
MDEzLTAxLTExICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIENvbm5lY3QgVXNlckdlc3R1cmVJbmRpY2F0b3IgZm9yIG1vdXNlZG93biBhbmQgbW91c2V1
cCBldmVudHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24t
ZW5kLWV2ZW50LWhlbHBlcnMuanMgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9u
LWVuZC1ldmVudC1oZWxwZXJzLmpzCmluZGV4IGQ3NzczNWJlMmU0OGZlNjAyMzgxYjVmMWJiYmY2
ZmJjOGFkNDcyNGYuLmZhNWYzNTJjMmIyOThmMTRhNmNjZWMzNzlhMDE3ZTcxNjI2M2IwZGEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LWhl
bHBlcnMuanMKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZl
bnQtaGVscGVycy5qcwpAQCAtMTAsMTIgKzEwLDEyIEBAIHZhciBfcHJvY2Vzc2VkRXZlbnRzID0g
ZmFsc2U7CiAvKiBDYWxsIHRoaXMgZnVuY3Rpb24gdG8gcmVjb3JkIG1hbnVhbGx5IHRyYW5zaXRp
b24gZW5kIGV2ZW50czoKIAogRnVuY3Rpb24gcGFyYW1ldGVyczoKLSAgICBldmVudCBbcmVxdWly
ZWRdOiB0aGUgZXZlbnQgcGFzc2VkIHdpdGggIndlYmtpdFRyYW5zaXRpb25FbmQiCisgICAgZXZl
bnQgW3JlcXVpcmVkXTogdGhlIGV2ZW50IHBhc3NlZCB3aXRoICJ3ZWJraXRUcmFuc2l0aW9uRW5k
IiBvciAidHJhbnNpdGlvbmVuZCIKIAogKi8KIGZ1bmN0aW9uIHJlY29yZFRyYW5zaXRpb25FbmRF
dmVudChldmVudCkKIHsKLSAgaWYgKGV2ZW50LnR5cGUgIT0gIndlYmtpdFRyYW5zaXRpb25FbmQi
KQorICBpZiAoZXZlbnQudHlwZSAhPSAid2Via2l0VHJhbnNpdGlvbkVuZCIgJiYgZXZlbnQudHlw
ZSAhPSAidHJhbnNpdGlvbmVuZCIgKQogICAgIHRocm93KCJJbnZhbGlkIHRyYW5zaXRpb24gZW5k
IGV2ZW50ISIpOwogCiAgIF9yZWNvcmRlZEV2ZW50cy5wdXNoKFsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDEtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQt
dW5wcmVmaXhlZC0wMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdhNDgwMzZiYzNhMTg2ZDk0
MTBiOTUxNWRhY2NiNTkyZDgxMDY2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Ry
YW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDEtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNCBAQAorSW5pdGlhdGluZyBhIHRyYW5zaXRpb24gYW5kIGNhdGNoaW5nIHRo
ZSB0cmFuc2l0aW9uIHVucHJlZml4ZWQgZXZlbnQuCisKK1BBU1MgLS0tIFtFeHBlY3RlZF0gUHJv
cGVydHk6IGxlZnQgVGFyZ2V0OiBib3gxIEVsYXBzZWQgVGltZTogMC41CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQt
MDEuaHRtbCBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVu
cHJlZml4ZWQtMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmY0NTQ4ZWMyMjNkZmE2MWE2ZTQxN2NlOThh
N2UzZjFiMzFhYzYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMv
dHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMS5odG1sCkBAIC0wLDAgKzEsNDcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgIC5ib3ggewor
ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgbGVmdDogMDsKKyAgICAgIGhlaWdodDog
MTAwcHg7CisgICAgICB3aWR0aDogMTAwcHg7CisgICAgICBtYXJnaW46IDEwcHg7CisgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdDsK
KyAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7CisgICAgICAtd2Via2l0LXRyYW5zaXRp
b24tcHJvcGVydHk6IGxlZnQ7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAu
NXM7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0idHJhbnNpdGlvbi1lbmQtZXZl
bnQtaGVscGVycy5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKyAgICAKKyAgICB2YXIgZXhwZWN0ZWRFbmRFdmVudHMgPSBbCisgICAgICAvLyBbcHJvcGVy
dHktbmFtZSwgZWxlbWVudC1pZCwgZWxhcHNlZC10aW1lLCBsaXN0ZW5dCisgICAgICBbImxlZnQi
LCAiYm94MSIsIDAuNSwgZmFsc2VdCisgICAgXTsKKworICAgIGZ1bmN0aW9uIHNldHVwVGVzdCgp
CisgICAgeyAKKyAgICAgIHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94MScp
OworICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHJlY29y
ZFRyYW5zaXRpb25FbmRFdmVudCwgZmFsc2UpOworICAgICAgYm94LnN0eWxlLmxlZnQgPSAnMjAw
cHgnOworICAgIH0KKyAgICAKKyAgICBydW5UcmFuc2l0aW9uVGVzdChleHBlY3RlZEVuZEV2ZW50
cywgc2V0dXBUZXN0KTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHA+SW5pdGlh
dGluZyBhIHRyYW5zaXRpb24gYW5kIGNhdGNoaW5nIHRoZSB0cmFuc2l0aW9uIHVucHJlZml4ZWQg
ZXZlbnQuPC9wPgorCis8ZGl2IGlkPSJjb250YWluZXIiPgorICA8ZGl2IGlkPSJib3gxIiBjbGFz
cz0iYm94Ij48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorCis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVu
dC11bnByZWZpeGVkLTAyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWUxNzRkZDg0YTYzZDVi
ZmI2ZmMyNGYyYjRlYjhkYjU2ZjMyMzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
dHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0IEBACitJbml0aWF0aW5nIGEgdHJhbnNpdGlvbiBjYXRjaGluZyBvbmUg
dHJhbnNpdGlvbiBldmVudCBvbmx5IGRlc3BpdGUgbGlzdGVuaW5nIHRoZSBwcmVmaXhlZCBhbmQg
dW5wcmVmaXhlZCBldmVudC4KKworUEFTUyAtLS0gW0V4cGVjdGVkXSBQcm9wZXJ0eTogbGVmdCBU
YXJnZXQ6IGJveDEgRWxhcHNlZCBUaW1lOiAwLjUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
dHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMi5odG1sIGIvTGF5
b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY5MmJmN2IxZTYzMmYxMDY3ZGZlNzExNjk5MTdiMzcxYjY3ZThjZDkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVu
ZC1ldmVudC11bnByZWZpeGVkLTAyLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGU+CisgICAgLmJveCB7CisgICAgICBwb3NpdGlv
bjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAwOworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAg
IHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJhY2tncm91bmQtY29s
b3I6IGJsdWU7CisgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0OworICAgICAgdHJhbnNp
dGlvbi1kdXJhdGlvbjogMC41czsKKyAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTog
bGVmdDsKKyAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41czsKKyAgICB9Cisg
IDwvc3R5bGU+CisgIDxzY3JpcHQgc3JjPSJ0cmFuc2l0aW9uLWVuZC1ldmVudC1oZWxwZXJzLmpz
Ij48L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIAorICAg
IHZhciBleHBlY3RlZEVuZEV2ZW50cyA9IFsKKyAgICAgIC8vIFtwcm9wZXJ0eS1uYW1lLCBlbGVt
ZW50LWlkLCBlbGFwc2VkLXRpbWUsIGxpc3Rlbl0KKyAgICAgIFsibGVmdCIsICJib3gxIiwgMC41
LCBmYWxzZV0KKyAgICBdOworCisgICAgZnVuY3Rpb24gc2V0dXBUZXN0KCkKKyAgICB7IAorICAg
ICAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gxJyk7CisgICAgICBkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRUcmFuc2l0aW9uRW5kJywgcmVjb3JkVHJhbnNp
dGlvbkVuZEV2ZW50LCBmYWxzZSk7CisgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0
cmFuc2l0aW9uZW5kJywgcmVjb3JkVHJhbnNpdGlvbkVuZEV2ZW50LCBmYWxzZSk7CisgICAgICBi
b3guc3R5bGUubGVmdCA9ICcyMDBweCc7CisgICAgfQorICAgIAorICAgIHJ1blRyYW5zaXRpb25U
ZXN0KGV4cGVjdGVkRW5kRXZlbnRzLCBzZXR1cFRlc3QpOworICA8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorCis8cD5Jbml0aWF0aW5nIGEgdHJhbnNpdGlvbiBjYXRjaGluZyBvbmUgdHJhbnNp
dGlvbiBldmVudCBvbmx5IGRlc3BpdGUgbGlzdGVuaW5nIHRoZSBwcmVmaXhlZCBhbmQgdW5wcmVm
aXhlZCBldmVudC48L3A+CisKKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgIDxkaXYgaWQ9ImJveDEi
IGNsYXNzPSJib3giPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+CisK
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182540</attachid>
            <date>2013-01-14 03:28:40 -0800</date>
            <delta_ts>2013-01-15 03:22:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105647-20130114082540.patch</filename>
            <type>text/plain</type>
            <size>23456</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc0YjZiMGI2YzJlOGRk
NDQ5MTVmZTY5OGNjNzZlMzRmMmU3ZjI0Ny4uOTYxOGQ4Y2Y5NWNhOWIwM2NhOWE0ZjM3ZTJkZGFi
YTM4OWNiNGIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEzLTAxLTExICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5wcmVmaXhlZCB0cmFu
c2l0aW9uZW5kIGV2ZW50IGRvZXNuJ3Qgc2VlbSB0byBiZSBpbXBsZW1lbnRlZCwgd2hpY2ggYnJl
YWtzIG1hbnkgc2l0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNTY0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciB0cmFuc2l0aW9uZW5kIGV2ZW50IGRlbGl2ZXJ5IGFzIHBh
cnQgYXMgdGhlIHVucHJlZml4aW5nCisgICAgICAgIHdvcmsgb24gQ1NTIFRyYW5zaXRpb25zLiBU
aGlzIHBhdGNoIGFkZHMgc3VwcG9ydCB0byBzYXZlIGEgcHJlZml4ZWQgYW5kCisgICAgICAgIGFu
IHVucHJlZml4ZWQgbmFtZSBpbiB0aGUgRXZlbnQgY2xhc3Mgd2hpY2ggaXMgdXNlZCBsYXRlciBp
biB0aGUgZXZlbnQKKyAgICAgICAgZGlzcGF0Y2hpbmcgdG8gZmlndXJlIG91dCB3aGV0aGVyIHdl
IHdhbnQgdG8gc2VuZCB0aGUgcHJlZml4ZWQgb3IgdGhlCisgICAgICAgIHVucHJlZml4ZWQgZXZl
bnQuIEluIHRoZSBjYXNlIG9mIHRoZSBDU1MgVHJhbnNpdGlvbnMsIFdlYktpdCB3aWxsIG5vdwor
ICAgICAgICBiZWhhdmUgYXMgZm9sbG93IDogaWYgYW4gZXZlbnQgbGlzdGVuZXIgaXMgYXR0YWNo
ZWQgdG8gdGhlIHByZWZpeGVkCisgICAgICAgIHZlcnNpb24gb2YgdGhlIHRyYW5zaXRpb24gZW5k
IGV2ZW50IHRoZW4gb25seSB0aGUgcHJlZml4ZWQgZXZlbnQgd2lsbCBiZQorICAgICAgICBzZW5k
LiBJZiBhbiBldmVudCBsaXN0ZW5lciBpcyBhdHRhY2hlZCB0byB0aGUgdW5wcmVmaXhlZCB2ZXJz
aW9uCisgICAgICAgIG9mIHRoZSB0cmFuc2l0aW9uIGVuZCBldmVudCB0aGVuIG9ubHkgdGhlIHVu
cHJlZml4ZWQgZXZlbnQgd2lsbCBiZQorICAgICAgICBzZW5kLiBJZiB0aGVyZSBhcmUgZXZlbnQg
bGlzdGVuZXJzIG9uIGJvdGggdW5wcmVmaXhlZCBhbmQgcHJlZml4ZWQKKyAgICAgICAgZXZlbnRz
IHRoZW4gb25seSB0aGUgdW5wcmVmaXhlZCBldmVudCB3aWxsIGJlIHNlbmQuCisKKyAgICAgICAg
VGVzdHM6IHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDEuaHRt
bAorICAgICAgICAgICAgICAgdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVm
aXhlZC0wMi5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKTogYWRkIHN1cHBvcnQgZm9y
CisgICAgICAgIHRyYW5zaXRpb25lbmQKKyAgICAgICAgKiBkb20vRXZlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnQ6OkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGRvbS9FdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6OmNyZWF0ZSk6CisgICAgICAg
IChFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6cHJlZml4ZWRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50OjptdXRhdGVUb1ByZWZpeGVkKTogdGhpcyB3aWxsIHN3YXAgdGhl
IGV2ZW50IG5hbWUgZnJvbQorICAgICAgICB0aGUgdW5wcmVmaXhlZCB2ZXJzaW9uIChkZWZhdWx0
KSB0byBwcmVmaXhlZCB2ZXJzaW9uLgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAg
ICAgIChXZWJDb3JlKTogQWRkIHRoZSBuZXcgdHJhbnNpdGlvbmVuZCBuYW1lCisgICAgICAgICog
ZG9tL0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpmaXJl
RXZlbnRMaXN0ZW5lcnMpOiBGaW5kIG91dCBpZiBzb21lYm9keSBpcworICAgICAgICBsaXN0ZW5p
bmcgZm9yIHVucHJlZml4ZWQgZXZlbnRzLCBpZiBzbyB3ZSBhbHdheXMgc2VuZCB0aGUgdW5wcmVm
aXhlZAorICAgICAgICBldmVudCwgaWYgbm90IHRoZW4gd2UgIm11dGF0ZSIgdGhlIGV2ZW50IHRv
IGEgcHJlZml4ZWQgb25lIGFuZCBzZW5kIGl0LgorICAgICAgICAqIGRvbS9XZWJLaXRUcmFuc2l0
aW9uRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0VHJhbnNpdGlvbkV2ZW50OjpX
ZWJLaXRUcmFuc2l0aW9uRXZlbnQpOgorICAgICAgICAqIGRvbS9XZWJLaXRUcmFuc2l0aW9uRXZl
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdFRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdFRyYW5zaXRpb25FdmVudCk6CisgICAgICAgICogcGFnZS9hbmltYXRp
b24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25D
b250cm9sbGVyUHJpdmF0ZTo6ZmlyZUV2ZW50c0FuZFVwZGF0ZVN0eWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2gpOgor
ICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmg6Cisg
ICAgICAgIChBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSk6CisgICAgICAgIChFdmVudFRvRGlz
cGF0Y2gpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjpvbkFuaW1hdGlvbkVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudCk6
CisgICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaDoKKyAgICAgICAg
KEltcGxpY2l0QW5pbWF0aW9uKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFu
aW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6c2VuZEFu
aW1hdGlvbkV2ZW50KTogRm9yIG5vdyBzZW5kIGJvdGgKKyAgICAgICAgdW5wcmVmaXhlZCBuYW1l
cyBidXQgd2lsbCBiZSBjaGFuZ2Ugc29vbmVyIHdoZW4gYW5pbWF0aW9ucyBhcmUgZ29pbmcgdG8K
KyAgICAgICAgYmUgdW5wcmVmaXhlZC4KKwogMjAxMy0wMS0xMSAgSm9jaGVuIEVpc2luZ2VyICA8
am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb25uZWN0IFVzZXJHZXN0dXJlSW5kaWNh
dG9yIGZvciBtb3VzZWRvd24gYW5kIG1vdXNldXAgZXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCBiN2NmYTMxNzg4ODA1M2E3OGVlYzA1MWVhMGQ5YmY3MDI0MjM1Mjk0Li5kYTM1YWZh
YWRlMzEzYTBjYTM2NGRmZjNiYmUxODRlY2RhODI3MGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTM3MjEsNiArMzcyMSw4IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZExpc3RlbmVyVHlwZUlm
TmVlZGVkKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKQogICAgICAgICBhZGRMaXN0ZW5l
clR5cGUoQU5JTUFUSU9OSVRFUkFUSU9OX0xJU1RFTkVSKTsKICAgICBlbHNlIGlmIChldmVudFR5
cGUgPT0gZXZlbnROYW1lcygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCkKICAgICAgICAgYWRk
TGlzdGVuZXJUeXBlKFRSQU5TSVRJT05FTkRfTElTVEVORVIpOworICAgIGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50KQorICAgICAgICBhZGRMaXN0
ZW5lclR5cGUoVFJBTlNJVElPTkVORF9MSVNURU5FUik7CiAgICAgZWxzZSBpZiAoZXZlbnRUeXBl
ID09IGV2ZW50TmFtZXMoKS5iZWZvcmVsb2FkRXZlbnQpCiAgICAgICAgIGFkZExpc3RlbmVyVHlw
ZShCRUZPUkVMT0FEX0xJU1RFTkVSKTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnRO
YW1lcygpLnNjcm9sbEV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAKaW5kZXggYzFlNjA5ZmY0MGEwNjEx
YTcyYzJjN2MxMTA4MTUxMmJlYjI4ZGM1NS4uYzRjNGRhMGVmNzM4ZjQ3NTM4MGJmN2U0NGJiMGI1
YTlkYTk5NzgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCkBAIC02OSw2ICs2OSwyMiBAQCBFdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcgogewogfQogCitFdmVudDo6RXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4ZWRFdmVudFR5cGUsIGJvb2wg
Y2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcpCis6IG1fdHlwZShldmVudFR5cGUpCiss
IG1fcHJlZml4ZWRUeXBlKHByZWZpeGVkRXZlbnRUeXBlKQorLCBtX2NhbkJ1YmJsZShjYW5CdWJi
bGVBcmcpCissIG1fY2FuY2VsYWJsZShjYW5jZWxhYmxlQXJnKQorLCBtX3Byb3BhZ2F0aW9uU3Rv
cHBlZChmYWxzZSkKKywgbV9pbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoZmFsc2UpCissIG1f
ZGVmYXVsdFByZXZlbnRlZChmYWxzZSkKKywgbV9kZWZhdWx0SGFuZGxlZChmYWxzZSkKKywgbV9j
YW5jZWxCdWJibGUoZmFsc2UpCissIG1fZXZlbnRQaGFzZSgwKQorLCBtX2N1cnJlbnRUYXJnZXQo
MCkKKywgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAoY3VycmVudFRp
bWUoKSkpCit7Cit9CisKIEV2ZW50OjpFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgY29uc3QgRXZlbnRJbml0JiBpbml0aWFsaXplcikKICAgICA6IG1fdHlwZShldmVudFR5cGUp
CiAgICAgLCBtX2NhbkJ1YmJsZShpbml0aWFsaXplci5idWJibGVzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAppbmRl
eCAzNmYwMjkzNTZhYWZjYjA3MWMzMWYwMzAxNjE2NzU5N2Y2ZDI1ZGI4Li41ZDllMDUyMzkzOTBm
MzI1MmMwNmRlNjI4YWI2Y2YyODcwMTVhZjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaApAQCAtODMsNiArODMs
MTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV2ZW50KHR5cGUsIGNh
bkJ1YmJsZSwgY2FuY2VsYWJsZSkpOwogICAgIH0KIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV2
ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBBdG9taWNTdHJpbmcm
IHByZWZpeGVkVHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXZlbnQodHlwZSwgcHJlZml4ZWRUeXBlLCBjYW5C
dWJibGUsIGNhbmNlbGFibGUpKTsKKyAgICB9CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxFdmVu
dD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXZlbnRJbml0JiBpbml0
aWFsaXplcikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXZlbnQodHlwZSwg
aW5pdGlhbGl6ZXIpKTsKQEAgLTkzLDcgKzk4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXRF
dmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNl
bGFibGUpOwogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlOyB9CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXhlZFR5cGUoKSBjb25zdCB7
IHJldHVybiBtX3ByZWZpeGVkVHlwZTsgfQogICAgIAorICAgIHZvaWQgbXV0YXRlVG9QcmVmaXhl
ZCgpIHsgbV90eXBlID0gbV9wcmVmaXhlZFR5cGU7IH0KKwogICAgIEV2ZW50VGFyZ2V0KiB0YXJn
ZXQoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldC5nZXQoKTsgfQogICAgIHZvaWQgc2V0VGFyZ2V0
KFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+KTsKIApAQCAtMTY4LDYgKzE3Niw3IEBAIHB1YmxpYzoK
IHByb3RlY3RlZDoKICAgICBFdmVudCgpOwogICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSk7CisgICAgRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBBdG9taWNTdHJpbmcmIHByZWZpeGVkVHlwZSwgYm9v
bCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSk7CiAgICAgRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBjb25zdCBFdmVudEluaXQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZl
ZFRhcmdldCgpOwpAQCAtMTc1LDYgKzE4NCw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAg
ICBBdG9taWNTdHJpbmcgbV90eXBlOworICAgIEF0b21pY1N0cmluZyBtX3ByZWZpeGVkVHlwZTsK
ICAgICBib29sIG1fY2FuQnViYmxlOwogICAgIGJvb2wgbV9jYW5jZWxhYmxlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaAppbmRleCBkYzNlZmJlNzgzOWMxZGExZTU5ZjUyZGUwNjI1Mjg4N2I2NjAz
NjUwLi41Y2Y2MjE5NWFiMTYyZjMwZjU5ZTc3ZTkzOTQ5ZmE1Mjk4ZmY2ZWYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudE5hbWVzLmgKQEAgLTE4Miw2ICsxODIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgbWFjcm8od2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uKSBcCiAgICAgXAogICAgIG1hY3JvKHdl
YmtpdFRyYW5zaXRpb25FbmQpIFwKKyAgICBtYWNybyh0cmFuc2l0aW9uZW5kKSBcCiAgICAgXAog
ICAgIG1hY3JvKG9yaWVudGF0aW9uY2hhbmdlKSBcCiAgICAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRh
cmdldC5jcHAKaW5kZXggMjE0ZjlhM2U2MGYwNDU3NTQ5NzY5M2UwN2Q5Y2NkZDg4MWZlYWE0ZS4u
MWQyMDI1NWUyYTlmZTM3ZmI4NTA3Y2I1NDEzMWU0OTRlOTFlOTU4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXQuY3BwCkBAIC0xNjksMTAgKzE2OSwxOCBAQCBib29sIEV2ZW50VGFyZ2V0Ojpm
aXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQqIGV2ZW50KQogICAgIGlmICghZCkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKLSAgICBFdmVudExpc3RlbmVyVmVjdG9yKiBsaXN0ZW5lclZlY3RvciA9IGQt
PmV2ZW50TGlzdGVuZXJNYXAuZmluZChldmVudC0+dHlwZSgpKTsKKyAgICBFdmVudExpc3RlbmVy
VmVjdG9yKiBsaXN0ZW5lclByZWZpeGVkVmVjdG9yID0gMDsKKyAgICBpZiAoZXZlbnQtPnByZWZp
eGVkVHlwZSgpLmxlbmd0aCgpKQorICAgICAgICBsaXN0ZW5lclByZWZpeGVkVmVjdG9yID0gZC0+
ZXZlbnRMaXN0ZW5lck1hcC5maW5kKGV2ZW50LT5wcmVmaXhlZFR5cGUoKSk7CiAKLSAgICBpZiAo
bGlzdGVuZXJWZWN0b3IpCi0gICAgICAgIGZpcmVFdmVudExpc3RlbmVycyhldmVudCwgZCwgKmxp
c3RlbmVyVmVjdG9yKTsKKyAgICBFdmVudExpc3RlbmVyVmVjdG9yKiBsaXN0ZW5lclVucHJlZml4
ZWRWZWN0b3IgPSBkLT5ldmVudExpc3RlbmVyTWFwLmZpbmQoZXZlbnQtPnR5cGUoKSk7CisKKyAg
ICBpZiAobGlzdGVuZXJVbnByZWZpeGVkVmVjdG9yKQorICAgICAgICBmaXJlRXZlbnRMaXN0ZW5l
cnMoZXZlbnQsIGQsICpsaXN0ZW5lclVucHJlZml4ZWRWZWN0b3IpOworICAgIGVsc2UgaWYgKGxp
c3RlbmVyUHJlZml4ZWRWZWN0b3IpIHsKKyAgICAgICAgZXZlbnQtPm11dGF0ZVRvUHJlZml4ZWQo
KTsKKyAgICAgICAgZmlyZUV2ZW50TGlzdGVuZXJzKGV2ZW50LCBkLCAqbGlzdGVuZXJQcmVmaXhl
ZFZlY3Rvcik7CisgICAgfQogICAgIAogICAgIHJldHVybiAhZXZlbnQtPmRlZmF1bHRQcmV2ZW50
ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0aW9u
RXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAK
aW5kZXggNDVjMmI0NzJjYWVmMTVhYTZiNTgxNGQyZTRlMmE2ZjQzMzIxNTQ0Zi4uMzBhMGNlMGIy
YzUwZWZlNDYwMDUyNjY0MjUxNzNmNWFmMWUwZjEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAKQEAgLTQyLDggKzQyLDggQEAgV2ViS2l0VHJhbnNp
dGlvbkV2ZW50OjpXZWJLaXRUcmFuc2l0aW9uRXZlbnQoKQogewogfQogCi1XZWJLaXRUcmFuc2l0
aW9uRXZlbnQ6OldlYktpdFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCi0gICAgOiBF
dmVudCh0eXBlLCB0cnVlLCB0cnVlKQorV2ViS2l0VHJhbnNpdGlvbkV2ZW50OjpXZWJLaXRUcmFu
c2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBBdG9taWNTdHJpbmcm
IHByZWZpeGVkVHlwZSwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSBlbGFwc2Vk
VGltZSkKKyAgICA6IEV2ZW50KHR5cGUsIHByZWZpeGVkVHlwZSwgdHJ1ZSwgdHJ1ZSkKICAgICAs
IG1fcHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSkKICAgICAsIG1fZWxhcHNlZFRpbWUoZWxhcHNl
ZFRpbWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlv
bkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgKaW5k
ZXggMjMyYzEwNTUyZWIzMmUwMjI2ODJlZTNiNTYzYjU0YWQ2ODk0ZjRlMC4uYWIwM2YxYzI0NGZk
OTNiNDQ4ODVjNDQ5ZWI5MjkwMzFlZWI0MTE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJL
aXRUcmFuc2l0aW9uRXZlbnQuaApAQCAtNDMsOSArNDMsOSBAQCBwdWJsaWM6CiAgICAgewogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdFRyYW5zaXRpb25FdmVudCk7CiAgICAgfQot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdFRyYW5zaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSBl
bGFwc2VkVGltZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRUcmFuc2l0aW9uRXZlbnQ+
IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcHJl
Zml4ZWRUeXBlLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRUaW1l
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRUcmFuc2l0aW9uRXZl
bnQodHlwZSwgcHJvcGVydHlOYW1lLCBlbGFwc2VkVGltZSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFdlYktpdFRyYW5zaXRpb25FdmVudCh0eXBlLCBwcmVmaXhlZFR5cGUsIHByb3Bl
cnR5TmFtZSwgZWxhcHNlZFRpbWUpKTsKICAgICB9CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2Vi
S2l0VHJhbnNpdGlvbkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25z
dCBXZWJLaXRUcmFuc2l0aW9uRXZlbnRJbml0JiBpbml0aWFsaXplcikKICAgICB7CkBAIC02MSw3
ICs2MSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBXZWJLaXRUcmFuc2l0aW9uRXZlbnQo
KTsKLSAgICBXZWJLaXRUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKTsKKyAgICBXZWJL
aXRUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBBdG9taWNT
dHJpbmcmIHByZWZpeGVkVHlwZSwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSBl
bGFwc2VkVGltZSk7CiAgICAgV2ViS2l0VHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSwgY29uc3QgV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW5pdCYgaW5pdGlhbGl6ZXIpOwog
CiAgICAgU3RyaW5nIG1fcHJvcGVydHlOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCAzMzRlNDhiNzNlYjhj
NDAwMTY1ZDBmNDIzMDNhZGEzMjg5NDUzYTMxLi41ZWJhNGIyNWU1OWNlOTgxY2I5N2JlYThhY2Ji
MTBiNTVlMGI2YTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtMTc5LDggKzE3OSw4IEBAIHZvaWQgQW5pbWF0
aW9uQ29udHJvbGxlclByaXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVTdHlsZSgpCiAgICAgbV9l
dmVudHNUb0Rpc3BhdGNoLmNsZWFyKCk7CiAgICAgVmVjdG9yPEV2ZW50VG9EaXNwYXRjaD46OmNv
bnN0X2l0ZXJhdG9yIGV2ZW50c1RvRGlzcGF0Y2hFbmQgPSBldmVudHNUb0Rpc3BhdGNoLmVuZCgp
OwogICAgIGZvciAoVmVjdG9yPEV2ZW50VG9EaXNwYXRjaD46OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
ZXZlbnRzVG9EaXNwYXRjaC5iZWdpbigpOyBpdCAhPSBldmVudHNUb0Rpc3BhdGNoRW5kOyArK2l0
KSB7Ci0gICAgICAgIGlmIChpdC0+ZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS53ZWJraXRUcmFu
c2l0aW9uRW5kRXZlbnQpCi0gICAgICAgICAgICBpdC0+ZWxlbWVudC0+ZGlzcGF0Y2hFdmVudChX
ZWJLaXRUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShpdC0+ZXZlbnRUeXBlLCBpdC0+bmFtZSwgaXQt
PmVsYXBzZWRUaW1lKSk7CisgICAgICAgIGlmIChpdC0+ZXZlbnRUeXBlID09IGV2ZW50TmFtZXMo
KS50cmFuc2l0aW9uZW5kRXZlbnQpCisgICAgICAgICAgICBpdC0+ZWxlbWVudC0+ZGlzcGF0Y2hF
dmVudChXZWJLaXRUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShpdC0+ZXZlbnRUeXBlLCBpdC0+cHJl
Zml4ZWRFdmVudFR5cGUsIGl0LT5uYW1lLCBpdC0+ZWxhcHNlZFRpbWUpKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgaXQtPmVsZW1lbnQtPmRpc3BhdGNoRXZlbnQoV2ViS2l0QW5pbWF0aW9u
RXZlbnQ6OmNyZWF0ZShpdC0+ZXZlbnRUeXBlLCBpdC0+bmFtZSwgaXQtPmVsYXBzZWRUaW1lKSk7
CiAgICAgfQpAQCAtMjAyLDEyICsyMDIsMTMgQEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJp
dmF0ZTo6c3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlcigpCiAgICAgICAgIG1fdXBk
YXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIuc3RhcnRPbmVTaG90KDApOwogfQogCi12b2lkIEFu
aW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2goUGFzc1JlZlB0cjxF
bGVtZW50PiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCit2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQ
cml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2goUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXhl
ZEV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCiB7CiAg
ICAgbV9ldmVudHNUb0Rpc3BhdGNoLmdyb3cobV9ldmVudHNUb0Rpc3BhdGNoLnNpemUoKSsxKTsK
ICAgICBFdmVudFRvRGlzcGF0Y2gmIGV2ZW50ID0gbV9ldmVudHNUb0Rpc3BhdGNoW21fZXZlbnRz
VG9EaXNwYXRjaC5zaXplKCktMV07CiAgICAgZXZlbnQuZWxlbWVudCA9IGVsZW1lbnQ7CiAgICAg
ZXZlbnQuZXZlbnRUeXBlID0gZXZlbnRUeXBlOworICAgIGV2ZW50LnByZWZpeGVkRXZlbnRUeXBl
ID0gcHJlZml4ZWRFdmVudFR5cGU7CiAgICAgZXZlbnQubmFtZSA9IG5hbWU7CiAgICAgZXZlbnQu
ZWxhcHNlZFRpbWUgPSBlbGFwc2VkVGltZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCmluZGV4
IDA3YWZiNzRkMGExMDNkMTRhNDg3ZjFmNjc3MjUyY2U2YzlkMzkyYjguLjkxYjQ1NzQ5MGViM2Vm
OGUzZDhkZDZiNmVlYzQ0MGNlNjE3MGRhNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaApAQCAtNzAs
NyArNzAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRj
aGVyRmlyZWQoVGltZXI8QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU+Kik7CiAgICAgdm9pZCBz
dGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7Ci0gICAgdm9pZCBhZGRFdmVudFRv
RGlzcGF0Y2goUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpOworICAg
IHZvaWQgYWRkRXZlbnRUb0Rpc3BhdGNoKFBhc3NSZWZQdHI8RWxlbWVudD4sIGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBBdG9taWNTdHJpbmcmIHByZWZpeGVkRXZlbnRUeXBl
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSk7CiAgICAgdm9pZCBhZGRO
b2RlQ2hhbmdlVG9EaXNwYXRjaChQYXNzUmVmUHRyPE5vZGU+KTsKIAogICAgIGJvb2wgaGFzQW5p
bWF0aW9ucygpIGNvbnN0IHsgcmV0dXJuICFtX2NvbXBvc2l0ZUFuaW1hdGlvbnMuaXNFbXB0eSgp
OyB9CkBAIC0xMjYsNiArMTI2LDcgQEAgcHJpdmF0ZToKICAgICBwdWJsaWM6CiAgICAgICAgIFJl
ZlB0cjxFbGVtZW50PiBlbGVtZW50OwogICAgICAgICBBdG9taWNTdHJpbmcgZXZlbnRUeXBlOwor
ICAgICAgICBBdG9taWNTdHJpbmcgcHJlZml4ZWRFdmVudFR5cGU7CiAgICAgICAgIFN0cmluZyBu
YW1lOwogICAgICAgICBkb3VibGUgZWxhcHNlZFRpbWU7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAppbmRleCA0OTdj
YTNmNTQ4Nzg2MGE4MWUyMDNlYThhNjE1MmU0NDUyMGRiZjI1Li44NThmM2Y1OWRjMjM1ZGM1ZTRi
ZDdjOWE1NDA2NDcwMjg1YTZlMjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC0xNTEsMTMgKzE1MSwxMyBAQCB2b2lk
IEltcGxpY2l0QW5pbWF0aW9uOjpvbkFuaW1hdGlvbkVuZChkb3VibGUgZWxhcHNlZFRpbWUpCiAg
ICAgaWYgKGtleWZyYW1lQW5pbSkKICAgICAgICAga2V5ZnJhbWVBbmltLT5zZXRVbmFuaW1hdGVk
U3R5bGUobV90b1N0eWxlKTsKICAgICAKLSAgICBzZW5kVHJhbnNpdGlvbkV2ZW50KGV2ZW50TmFt
ZXMoKS53ZWJraXRUcmFuc2l0aW9uRW5kRXZlbnQsIGVsYXBzZWRUaW1lKTsKKyAgICBzZW5kVHJh
bnNpdGlvbkV2ZW50KGV2ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZlbnQsIGV2ZW50TmFtZXMo
KS53ZWJraXRUcmFuc2l0aW9uRW5kRXZlbnQsIGVsYXBzZWRUaW1lKTsKICAgICBlbmRBbmltYXRp
b24oKTsKIH0KIAotYm9vbCBJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgZG91YmxlIGVsYXBzZWRUaW1lKQorYm9vbCBJ
bXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXhlZEV2ZW50VHlwZSwgZG91Ymxl
IGVsYXBzZWRUaW1lKQogewotICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndlYmtp
dFRyYW5zaXRpb25FbmRFdmVudCkgeworICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
LnRyYW5zaXRpb25lbmRFdmVudCkgewogICAgICAgICBEb2N1bWVudDo6TGlzdGVuZXJUeXBlIGxp
c3RlbmVyVHlwZSA9IERvY3VtZW50OjpUUkFOU0lUSU9ORU5EX0xJU1RFTkVSOwogCiAgICAgICAg
IGlmIChzaG91bGRTZW5kRXZlbnRGb3JMaXN0ZW5lcihsaXN0ZW5lclR5cGUpKSB7CkBAIC0xNzMs
MTAgKzE3MywxMCBAQCBib29sIEltcGxpY2l0QW5pbWF0aW9uOjpzZW5kVHJhbnNpdGlvbkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBkb3VibAogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgICAgICAgICAgLy8gU2NoZWR1bGUgZXZlbnQgaGFuZGxpbmcKLSAg
ICAgICAgICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+YWRkRXZlbnRUb0Rp
c3BhdGNoKGVsZW1lbnQsIGV2ZW50VHlwZSwgcHJvcGVydHlOYW1lLCBlbGFwc2VkVGltZSk7Cisg
ICAgICAgICAgICBtX2NvbXBBbmltLT5hbmltYXRpb25Db250cm9sbGVyKCktPmFkZEV2ZW50VG9E
aXNwYXRjaChlbGVtZW50LCBldmVudFR5cGUsIHByZWZpeGVkRXZlbnRUeXBlLCBwcm9wZXJ0eU5h
bWUsIGVsYXBzZWRUaW1lKTsKIAogICAgICAgICAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwg
KHVuYW5pbWF0ZWQpIHN0eWxlCi0gICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS53ZWJraXRUcmFuc2l0aW9uRW5kRXZlbnQgJiYgZWxlbWVudC0+cmVuZGVyZXIoKSkKKyAg
ICAgICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVu
dCAmJiBlbGVtZW50LT5yZW5kZXJlcigpKQogICAgICAgICAgICAgICAgIHNldE5lZWRzU3R5bGVS
ZWNhbGMoZWxlbWVudC5nZXQoKSk7CiAKICAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyBEaWQg
ZGlzcGF0Y2ggYW4gZXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9J
bXBsaWNpdEFuaW1hdGlvbi5oCmluZGV4IGU5ZjY5NDJlZGVhN2U5YWU4OTMwYWI0OTQ2MGVmYjg4
M2JkMmYxNTEuLjkyMDFkNWM3ZTFlZDVmMjQ1YjBjOTM5Yjg1NzU0NGRiMWJmNmMxMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaApA
QCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBib29sIHNob3VsZFNl
bmRFdmVudEZvckxpc3RlbmVyKERvY3VtZW50OjpMaXN0ZW5lclR5cGUpIGNvbnN0OyAgICAKLSAg
ICBib29sIHNlbmRUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgZG91YmxlIGVs
YXBzZWRUaW1lKTsKKyAgICBib29sIHNlbmRUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4ZWRFdmVudFR5cGUsIGRv
dWJsZSBlbGFwc2VkVGltZSk7CiAKICAgICB2b2lkIHZhbGlkYXRlVHJhbnNmb3JtRnVuY3Rpb25M
aXN0KCk7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCmluZGV4IGRhMjkxNWQ1MjkyMzEz
MTg2MjAwMWEyYzE2NmY0Yzk4YmY2Y2E3ZWYuLjNhNWJiZjQxNmUyOWJlZDAzYWYzYjljOTg0NGU5
MDg0YTZiMzk3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tl
eWZyYW1lQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9L
ZXlmcmFtZUFuaW1hdGlvbi5jcHAKQEAgLTMyMiw3ICszMjIsNyBAQCBib29sIEtleWZyYW1lQW5p
bWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IGRvdWJsZQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIC8vIFNjaGVkdWxl
IGV2ZW50IGhhbmRsaW5nCi0gICAgICAgIG1fY29tcEFuaW0tPmFuaW1hdGlvbkNvbnRyb2xsZXIo
KS0+YWRkRXZlbnRUb0Rpc3BhdGNoKGVsZW1lbnQsIGV2ZW50VHlwZSwgbV9rZXlmcmFtZXMuYW5p
bWF0aW9uTmFtZSgpLCBlbGFwc2VkVGltZSk7CisgICAgICAgIG1fY29tcEFuaW0tPmFuaW1hdGlv
bkNvbnRyb2xsZXIoKS0+YWRkRXZlbnRUb0Rpc3BhdGNoKGVsZW1lbnQsIGV2ZW50VHlwZSwgZXZl
bnRUeXBlLCBtX2tleWZyYW1lcy5hbmltYXRpb25OYW1lKCksIGVsYXBzZWRUaW1lKTsKIAogICAg
ICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCAodW5hbmltYXRlZCkgc3R5bGUKICAgICAgICAg
aWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkud2Via2l0QW5pbWF0aW9uRW5kRXZlbnQgJiYg
ZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhYzZhMGZjZDFiYTIwNzJlZTMyNDc3YzEwYWU4
MjU5MzcwYTE0YWE4Li5jMjY5YmFiMjYyMWNhYzY4NmRhMzM4YjliMzQ5OTc1NjhjZGRlY2NmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMDEtMTEgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXNA
d2Via2l0Lm9yZz4KKworICAgICAgICBVbnByZWZpeGVkIHRyYW5zaXRpb25lbmQgZXZlbnQgZG9l
c24ndCBzZWVtIHRvIGJlIGltcGxlbWVudGVkLCB3aGljaCBicmVha3MgbWFueSBzaXRlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NjQ3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXIgdGhhdCBl
dmVudCBkZWxpdmVyeSBpcyBjb3JyZWN0IDogd2UgcmVjZWl2ZWQgdW5wcmVmaXhlZCBldmVudHMu
CisKKyAgICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1oZWxwZXJzLmpz
OgorICAgICAgICAocmVjb3JkVHJhbnNpdGlvbkVuZEV2ZW50KToKKyAgICAgICAgKiB0cmFuc2l0
aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAxLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhl
ZC0wMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1l
dmVudC11bnByZWZpeGVkLTAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdHJhbnNp
dGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMi5odG1sOiBBZGRlZC4KKwog
MjAxMy0wMS0xMSAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBDb25uZWN0IFVzZXJHZXN0dXJlSW5kaWNhdG9yIGZvciBtb3VzZWRvd24gYW5kIG1vdXNl
dXAgZXZlbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9u
LWVuZC1ldmVudC1oZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlv
bi1lbmQtZXZlbnQtaGVscGVycy5qcwppbmRleCBkNzc3MzViZTJlNDhmZTYwMjM4MWI1ZjFiYmJm
NmZiYzhhZDQ3MjRmLi5mYTVmMzUyYzJiMjk4ZjE0YTZjY2VjMzc5YTAxN2U3MTYyNjNiMGRhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1o
ZWxwZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2
ZW50LWhlbHBlcnMuanMKQEAgLTEwLDEyICsxMCwxMiBAQCB2YXIgX3Byb2Nlc3NlZEV2ZW50cyA9
IGZhbHNlOwogLyogQ2FsbCB0aGlzIGZ1bmN0aW9uIHRvIHJlY29yZCBtYW51YWxseSB0cmFuc2l0
aW9uIGVuZCBldmVudHM6CiAKIEZ1bmN0aW9uIHBhcmFtZXRlcnM6Ci0gICAgZXZlbnQgW3JlcXVp
cmVkXTogdGhlIGV2ZW50IHBhc3NlZCB3aXRoICJ3ZWJraXRUcmFuc2l0aW9uRW5kIgorICAgIGV2
ZW50IFtyZXF1aXJlZF06IHRoZSBldmVudCBwYXNzZWQgd2l0aCAid2Via2l0VHJhbnNpdGlvbkVu
ZCIgb3IgInRyYW5zaXRpb25lbmQiCiAKICovCiBmdW5jdGlvbiByZWNvcmRUcmFuc2l0aW9uRW5k
RXZlbnQoZXZlbnQpCiB7Ci0gIGlmIChldmVudC50eXBlICE9ICJ3ZWJraXRUcmFuc2l0aW9uRW5k
IikKKyAgaWYgKGV2ZW50LnR5cGUgIT0gIndlYmtpdFRyYW5zaXRpb25FbmQiICYmIGV2ZW50LnR5
cGUgIT0gInRyYW5zaXRpb25lbmQiICkKICAgICB0aHJvdygiSW52YWxpZCB0cmFuc2l0aW9uIGVu
ZCBldmVudCEiKTsKIAogICBfcmVjb3JkZWRFdmVudHMucHVzaChbCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAxLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50
LXVucHJlZml4ZWQtMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3YTQ4MDM2YmMzYTE4NmQ5
NDEwYjk1MTVkYWNjYjU5MmQ4MTA2NjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAxLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKK0luaXRpYXRpbmcgYSB0cmFuc2l0aW9uIGFuZCBjYXRjaGluZyB0
aGUgdHJhbnNpdGlvbiB1bnByZWZpeGVkIGV2ZW50LgorCitQQVNTIC0tLSBbRXhwZWN0ZWRdIFBy
b3BlcnR5OiBsZWZ0IFRhcmdldDogYm94MSBFbGFwc2VkIFRpbWU6IDAuNQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVk
LTAxLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11
bnByZWZpeGVkLTAxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc3MTBjZmM1ODRmMWJhMjAwMGJjM2VhNzVh
ZTY1YWVjY2RjODNjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25z
L3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDEuaHRtbApAQCAtMCwwICsxLDQ3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZT4KKyAgICAuYm94IHsK
KyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDA7CisgICAgICBoZWlnaHQ6
IDEwMHB4OworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgbWFyZ2luOiAxMHB4OworICAgICAg
YmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7
CisgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzOworICAgICAgLXdlYmtpdC10cmFuc2l0
aW9uLXByb3BlcnR5OiBsZWZ0OworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAw
LjVzOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9InRyYW5zaXRpb24tZW5kLWV2
ZW50LWhlbHBlcnMuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CisKKyAgICB2YXIgZXhwZWN0ZWRFbmRFdmVudHMgPSBbCisgICAgICAvLyBbcHJvcGVydHkt
bmFtZSwgZWxlbWVudC1pZCwgZWxhcHNlZC10aW1lLCBsaXN0ZW5dCisgICAgICBbImxlZnQiLCAi
Ym94MSIsIDAuNSwgZmFsc2VdCisgICAgXTsKKworICAgIGZ1bmN0aW9uIHNldHVwVGVzdCgpCisg
ICAgeworICAgICAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gxJyk7Cisg
ICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0cmFuc2l0aW9uZW5kJywgcmVjb3JkVHJh
bnNpdGlvbkVuZEV2ZW50LCBmYWxzZSk7CisgICAgICBib3guc3R5bGUubGVmdCA9ICcyMDBweCc7
CisgICAgfQorCisgICAgcnVuVHJhbnNpdGlvblRlc3QoZXhwZWN0ZWRFbmRFdmVudHMsIHNldHVw
VGVzdCk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxwPkluaXRpYXRpbmcgYSB0
cmFuc2l0aW9uIGFuZCBjYXRjaGluZyB0aGUgdHJhbnNpdGlvbiB1bnByZWZpeGVkIGV2ZW50Ljwv
cD4KKworPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgPGRpdiBpZD0iYm94MSIgY2xhc3M9ImJveCI+
PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKworPC9ib2R5PgorPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVm
aXhlZC0wMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVlMTc0ZGQ4NGE2M2Q1YmZiNmZjMjRm
MmI0ZWI4ZGI1NmYzMjM3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRp
b25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorSW5pdGlhdGluZyBhIHRyYW5zaXRpb24gY2F0Y2hpbmcgb25lIHRyYW5zaXRp
b24gZXZlbnQgb25seSBkZXNwaXRlIGxpc3RlbmluZyB0aGUgcHJlZml4ZWQgYW5kIHVucHJlZml4
ZWQgZXZlbnQuCisKK1BBU1MgLS0tIFtFeHBlY3RlZF0gUHJvcGVydHk6IGxlZnQgVGFyZ2V0OiBi
b3gxIEVsYXBzZWQgVGltZTogMC41CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRp
b25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDIuaHRtbCBiL0xheW91dFRlc3Rz
L3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YmRlMGI5OThlNzQ4YWYzMzAwMDhhYzNkNTE2MTU4YjkyZjdiY2YzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQt
dW5wcmVmaXhlZC0wMi5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJlbGF0
aXZlOworICAgICAgbGVmdDogMDsKKyAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICB3aWR0aDog
MTAwcHg7CisgICAgICBtYXJnaW46IDEwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVl
OworICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdDsKKyAgICAgIHRyYW5zaXRpb24tZHVy
YXRpb246IDAuNXM7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7Cisg
ICAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7CisgICAgfQorICA8L3N0eWxl
PgorICA8c2NyaXB0IHNyYz0idHJhbnNpdGlvbi1lbmQtZXZlbnQtaGVscGVycy5qcyI+PC9zY3Jp
cHQ+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKworICAgIHZhciBleHBlY3Rl
ZEVuZEV2ZW50cyA9IFsKKyAgICAgIC8vIFtwcm9wZXJ0eS1uYW1lLCBlbGVtZW50LWlkLCBlbGFw
c2VkLXRpbWUsIGxpc3Rlbl0KKyAgICAgIFsibGVmdCIsICJib3gxIiwgMC41LCBmYWxzZV0KKyAg
ICBdOworCisgICAgZnVuY3Rpb24gc2V0dXBUZXN0KCkKKyAgICB7CisgICAgICB2YXIgYm94ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveDEnKTsKKyAgICAgIGRvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoJ3dlYmtpdFRyYW5zaXRpb25FbmQnLCByZWNvcmRUcmFuc2l0aW9uRW5kRXZlbnQs
IGZhbHNlKTsKKyAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQn
LCByZWNvcmRUcmFuc2l0aW9uRW5kRXZlbnQsIGZhbHNlKTsKKyAgICAgIGJveC5zdHlsZS5sZWZ0
ID0gJzIwMHB4JzsKKyAgICB9CisKKyAgICBydW5UcmFuc2l0aW9uVGVzdChleHBlY3RlZEVuZEV2
ZW50cywgc2V0dXBUZXN0KTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHA+SW5p
dGlhdGluZyBhIHRyYW5zaXRpb24gY2F0Y2hpbmcgb25lIHRyYW5zaXRpb24gZXZlbnQgb25seSBk
ZXNwaXRlIGxpc3RlbmluZyB0aGUgcHJlZml4ZWQgYW5kIHVucHJlZml4ZWQgZXZlbnQuPC9wPgor
Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICA8ZGl2IGlkPSJib3gxIiBjbGFzcz0iYm94Ij48L2Rp
dj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182730</attachid>
            <date>2013-01-15 03:23:05 -0800</date>
            <delta_ts>2013-01-15 04:11:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105647-20130115082004.patch</filename>
            <type>text/plain</type>
            <size>15116</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTUwNDRjZWY4OGRkMWMx
MjZhMmQzZjlkODg0OTA0MGU4MzVlNzc2Ny4uMDBiZDcxMmYzZDk3MTAxYTI1MDQ0NDQ1NzQwNTlj
NzFhMzgwZjhlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTAxLTExICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5wcmVmaXhlZCB0cmFu
c2l0aW9uZW5kIGV2ZW50IGRvZXNuJ3Qgc2VlbSB0byBiZSBpbXBsZW1lbnRlZCwgd2hpY2ggYnJl
YWtzIG1hbnkgc2l0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNTY0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciB0cmFuc2l0aW9uZW5kIGV2ZW50IGRlbGl2ZXJ5IGFzIHBh
cnQgYXMgdGhlIHVucHJlZml4aW5nCisgICAgICAgIHdvcmsgb24gQ1NTIFRyYW5zaXRpb25zLiBU
aGlzIHBhdGNoIGFkZHMgc3VwcG9ydCB0byBzYXZlIGEgcHJlZml4ZWQgYW5kCisgICAgICAgIGFu
IHVucHJlZml4ZWQgbmFtZSBpbiB0aGUgRXZlbnQgY2xhc3Mgd2hpY2ggaXMgdXNlZCBsYXRlciBp
biB0aGUgZXZlbnQKKyAgICAgICAgZGlzcGF0Y2hpbmcgdG8gZmlndXJlIG91dCB3aGV0aGVyIHdl
IHdhbnQgdG8gc2VuZCB0aGUgcHJlZml4ZWQgb3IgdGhlCisgICAgICAgIHVucHJlZml4ZWQgZXZl
bnQuIEluIHRoZSBjYXNlIG9mIHRoZSBDU1MgVHJhbnNpdGlvbnMsIFdlYktpdCB3aWxsIG5vdwor
ICAgICAgICBiZWhhdmUgYXMgZm9sbG93IDogaWYgYW4gZXZlbnQgbGlzdGVuZXIgaXMgYXR0YWNo
ZWQgdG8gdGhlIHByZWZpeGVkCisgICAgICAgIHZlcnNpb24gb2YgdGhlIHRyYW5zaXRpb24gZW5k
IGV2ZW50IHRoZW4gb25seSB0aGUgcHJlZml4ZWQgZXZlbnQgd2lsbCBiZQorICAgICAgICBzZW5k
LiBJZiBhbiBldmVudCBsaXN0ZW5lciBpcyBhdHRhY2hlZCB0byB0aGUgdW5wcmVmaXhlZCB2ZXJz
aW9uCisgICAgICAgIG9mIHRoZSB0cmFuc2l0aW9uIGVuZCBldmVudCB0aGVuIG9ubHkgdGhlIHVu
cHJlZml4ZWQgZXZlbnQgd2lsbCBiZQorICAgICAgICBzZW5kLiBJZiB0aGVyZSBhcmUgZXZlbnQg
bGlzdGVuZXJzIG9uIGJvdGggdW5wcmVmaXhlZCBhbmQgcHJlZml4ZWQKKyAgICAgICAgZXZlbnRz
IHRoZW4gb25seSB0aGUgdW5wcmVmaXhlZCBldmVudCB3aWxsIGJlIHNlbmQuCisKKyAgICAgICAg
VGVzdHM6IHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDEuaHRt
bAorICAgICAgICAgICAgICAgdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVm
aXhlZC0wMi5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKTogQWRkIHN1cHBvcnQgZm9y
CisgICAgICAgIHRyYW5zaXRpb25lbmQgaW4gY2FzZSB0aGVyZSBpcyBvbmx5IGFuIGV2ZW50IGxp
c3RlbmVyIG9uIHRoZSB1bnByZWZpeGVkCisgICAgICAgIGV2ZW50LgorICAgICAgICAqIGRvbS9F
dmVudE5hbWVzLmg6CisgICAgICAgIChXZWJDb3JlKTogQWRkIHRoZSBuZXcgdHJhbnNpdGlvbmVu
ZCBuYW1lLgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudFRhcmdldDo6ZmlyZUV2ZW50TGlzdGVuZXJzKTogRmluZCBvdXQgaWYgc29tZWJvZHkg
aXMKKyAgICAgICAgbGlzdGVuaW5nIGZvciB1bnByZWZpeGVkIGV2ZW50cywgaWYgc28gd2UgYWx3
YXlzIHNlbmQgdGhlIHVucHJlZml4ZWQKKyAgICAgICAgZXZlbnQsIGlmIG5vdCB0aGVuIHdlIGNy
ZWF0ZSBhIHByZWZpeGVkIGV2ZW50IGFuZCBzZW5kIGl0LgorICAgICAgICAqIHBhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9u
Q29udHJvbGxlclByaXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVTdHlsZSk6CisgICAgICAgICog
cGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1wbGljaXRBbmltYXRpb246OnNlbmRUcmFuc2l0aW9uRXZlbnQpOiBBbHdheXMgY3JlYXRlIGJ5
CisgICAgICAgIGRlZmF1bHQgdW5wcmVmaXhlZCBldmVudHMuCisKIDIwMTMtMDEtMTQgIFRvbW15
IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW0g
QVBJOiBVcGRhdGUgdGhlIHRyYWNrIGFjY2Vzc29ycyBvbiBNZWRpYVN0cmVhbSB0byBtYXRjaCB0
aGUgbGF0ZXN0IHNwZWNpZmljYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGY4NTlk
ZWE3MjkzMDBiOWIxZGVkYjg2OGIzMmJhMTNiZWM3NDhjZTUuLjYyZjY5NzJlYWIzYjk5MWNmNDhi
NzI3MzIyOTk5NjcyZWMzMzg5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzcyOSw2
ICszNzI5LDggQEAgdm9pZCBEb2N1bWVudDo6YWRkTGlzdGVuZXJUeXBlSWZOZWVkZWQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUpCiAgICAgICAgIGFkZExpc3RlbmVyVHlwZShBTklNQVRJ
T05JVEVSQVRJT05fTElTVEVORVIpOwogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5h
bWVzKCkud2Via2l0VHJhbnNpdGlvbkVuZEV2ZW50KQogICAgICAgICBhZGRMaXN0ZW5lclR5cGUo
VFJBTlNJVElPTkVORF9MSVNURU5FUik7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZlbnQpCisgICAgICAgIGFkZExpc3RlbmVyVHlwZShUUkFO
U0lUSU9ORU5EX0xJU1RFTkVSKTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmJlZm9yZWxvYWRFdmVudCkKICAgICAgICAgYWRkTGlzdGVuZXJUeXBlKEJFRk9SRUxPQURf
TElTVEVORVIpOwogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc2Nyb2xs
RXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCBkYzNlZmJlNzgzOWMxZGExZTU5ZjUy
ZGUwNjI1Mjg4N2I2NjAzNjUwLi41Y2Y2MjE5NWFiMTYyZjMwZjU5ZTc3ZTkzOTQ5ZmE1Mjk4ZmY2
ZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTE4Miw2ICsxODIsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgbWFjcm8od2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uKSBcCiAgICAg
XAogICAgIG1hY3JvKHdlYmtpdFRyYW5zaXRpb25FbmQpIFwKKyAgICBtYWNybyh0cmFuc2l0aW9u
ZW5kKSBcCiAgICAgXAogICAgIG1hY3JvKG9yaWVudGF0aW9uY2hhbmdlKSBcCiAgICAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldC5jcHAKaW5kZXggMjE0ZjlhM2U2MGYwNDU3NTQ5NzY5M2UwN2Q5
Y2NkZDg4MWZlYWE0ZS4uZTZiMDY4ZWNjMDQwOTczOTEzNTY4ZDdjZjkzZDllODU0YzYyZDA3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIldlYktpdFRyYW5zaXRpb25FdmVudC5o
IgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTE2MCw2ICsxNjEsMjQgQEAgdm9pZCBF
dmVudFRhcmdldDo6dW5jYXVnaHRFeGNlcHRpb25JbkV2ZW50SGFuZGxlcigpCiB7CiB9CiAKK3N0
YXRpYyBQYXNzUmVmUHRyPEV2ZW50PiBjcmVhdGVQcmVmaXhlZEV2ZW50KGNvbnN0IEV2ZW50KiBl
dmVudCkKK3sKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlv
bmVuZEV2ZW50KSB7CisgICAgICAgIGNvbnN0IFdlYktpdFRyYW5zaXRpb25FdmVudCogdHJhbnNp
dGlvbkV2ZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgV2ViS2l0VHJhbnNpdGlvbkV2ZW50Kj4oZXZl
bnQpOworICAgICAgICByZXR1cm4gV2ViS2l0VHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCwgdHJhbnNpdGlvbkV2ZW50LT5wcm9wZXJ0
eU5hbWUoKSwgdHJhbnNpdGlvbkV2ZW50LT5lbGFwc2VkVGltZSgpKTsKKyAgICB9CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBBdG9taWNTdHJp
bmcgcHJlZml4ZWRUeXBlKGNvbnN0IEV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAoZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50KQorICAgICAgICByZXR1cm4g
ZXZlbnROYW1lcygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudDsKKyAgICAKKyAgICByZXR1cm4g
IiI7Cit9CisKIGJvb2wgRXZlbnRUYXJnZXQ6OmZpcmVFdmVudExpc3RlbmVycyhFdmVudCogZXZl
bnQpCiB7CiAgICAgQVNTRVJUKCFOb0V2ZW50RGlzcGF0Y2hBc3NlcnRpb246OmlzRXZlbnREaXNw
YXRjaEZvcmJpZGRlbigpKTsKQEAgLTE2OSwxMCArMTg4LDIyIEBAIGJvb2wgRXZlbnRUYXJnZXQ6
OmZpcmVFdmVudExpc3RlbmVycyhFdmVudCogZXZlbnQpCiAgICAgaWYgKCFkKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAotICAgIEV2ZW50TGlzdGVuZXJWZWN0b3IqIGxpc3RlbmVyVmVjdG9yID0g
ZC0+ZXZlbnRMaXN0ZW5lck1hcC5maW5kKGV2ZW50LT50eXBlKCkpOwotCi0gICAgaWYgKGxpc3Rl
bmVyVmVjdG9yKQotICAgICAgICBmaXJlRXZlbnRMaXN0ZW5lcnMoZXZlbnQsIGQsICpsaXN0ZW5l
clZlY3Rvcik7CisgICAgRXZlbnRMaXN0ZW5lclZlY3RvciogbGlzdGVuZXJQcmVmaXhlZFZlY3Rv
ciA9IDA7CisgICAgQXRvbWljU3RyaW5nIHByZWZpeGVkVHlwZU5hbWUgPSBwcmVmaXhlZFR5cGUo
ZXZlbnQpOworICAgIGlmIChwcmVmaXhlZFR5cGVOYW1lLmxlbmd0aCgpKQorICAgICAgICBsaXN0
ZW5lclByZWZpeGVkVmVjdG9yID0gZC0+ZXZlbnRMaXN0ZW5lck1hcC5maW5kKHByZWZpeGVkVHlw
ZU5hbWUpOworCisgICAgRXZlbnRMaXN0ZW5lclZlY3RvciogbGlzdGVuZXJVbnByZWZpeGVkVmVj
dG9yID0gZC0+ZXZlbnRMaXN0ZW5lck1hcC5maW5kKGV2ZW50LT50eXBlKCkpOworCisgICAgaWYg
KGxpc3RlbmVyVW5wcmVmaXhlZFZlY3RvcikKKyAgICAgICAgZmlyZUV2ZW50TGlzdGVuZXJzKGV2
ZW50LCBkLCAqbGlzdGVuZXJVbnByZWZpeGVkVmVjdG9yKTsKKyAgICBlbHNlIGlmIChsaXN0ZW5l
clByZWZpeGVkVmVjdG9yKSB7CisgICAgICAgIFJlZlB0cjxFdmVudD4gcHJlZml4ZWRFdmVudCA9
IGNyZWF0ZVByZWZpeGVkRXZlbnQoZXZlbnQpOworICAgICAgICBwcmVmaXhlZEV2ZW50LT5zZXRU
YXJnZXQoZXZlbnQtPnRhcmdldCgpKTsKKyAgICAgICAgcHJlZml4ZWRFdmVudC0+c2V0Q3VycmVu
dFRhcmdldChldmVudC0+Y3VycmVudFRhcmdldCgpKTsKKyAgICAgICAgcHJlZml4ZWRFdmVudC0+
c2V0RXZlbnRQaGFzZShldmVudC0+ZXZlbnRQaGFzZSgpKTsKKyAgICAgICAgZmlyZUV2ZW50TGlz
dGVuZXJzKHByZWZpeGVkRXZlbnQuZ2V0KCksIGQsICpsaXN0ZW5lclByZWZpeGVkVmVjdG9yKTsK
KyAgICB9CiAgICAgCiAgICAgcmV0dXJuICFldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9s
bGVyLmNwcAppbmRleCAzMzRlNDhiNzNlYjhjNDAwMTY1ZDBmNDIzMDNhZGEzMjg5NDUzYTMxLi5j
NmQ1ZWUyZGZhMjAzYTE3YWJlMzMyZTlhMDQ5ZjE5MDczMTk0MDBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAt
MTc5LDcgKzE3OSw3IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmZpcmVFdmVu
dHNBbmRVcGRhdGVTdHlsZSgpCiAgICAgbV9ldmVudHNUb0Rpc3BhdGNoLmNsZWFyKCk7CiAgICAg
VmVjdG9yPEV2ZW50VG9EaXNwYXRjaD46OmNvbnN0X2l0ZXJhdG9yIGV2ZW50c1RvRGlzcGF0Y2hF
bmQgPSBldmVudHNUb0Rpc3BhdGNoLmVuZCgpOwogICAgIGZvciAoVmVjdG9yPEV2ZW50VG9EaXNw
YXRjaD46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZXZlbnRzVG9EaXNwYXRjaC5iZWdpbigpOyBpdCAh
PSBldmVudHNUb0Rpc3BhdGNoRW5kOyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+ZXZlbnRUeXBl
ID09IGV2ZW50TmFtZXMoKS53ZWJraXRUcmFuc2l0aW9uRW5kRXZlbnQpCisgICAgICAgIGlmIChp
dC0+ZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZlbnQpCiAgICAgICAg
ICAgICBpdC0+ZWxlbWVudC0+ZGlzcGF0Y2hFdmVudChXZWJLaXRUcmFuc2l0aW9uRXZlbnQ6OmNy
ZWF0ZShpdC0+ZXZlbnRUeXBlLCBpdC0+bmFtZSwgaXQtPmVsYXBzZWRUaW1lKSk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIGl0LT5lbGVtZW50LT5kaXNwYXRjaEV2ZW50KFdlYktpdEFuaW1h
dGlvbkV2ZW50OjpjcmVhdGUoaXQtPmV2ZW50VHlwZSwgaXQtPm5hbWUsIGl0LT5lbGFwc2VkVGlt
ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRB
bmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmlt
YXRpb24uY3BwCmluZGV4IDQ5N2NhM2Y1NDg3ODYwYTgxZTIwM2VhOGE2MTUyZTQ0NTIwZGJmMjUu
LmIxMjg5YmI4YWUzYWViNzBjZGNjZjZmOWJlNGVkZDJlMzliODNmYTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKQEAgLTE1
MSwxMyArMTUxLDEzIEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246Om9uQW5pbWF0aW9uRW5kKGRv
dWJsZSBlbGFwc2VkVGltZSkKICAgICBpZiAoa2V5ZnJhbWVBbmltKQogICAgICAgICBrZXlmcmFt
ZUFuaW0tPnNldFVuYW5pbWF0ZWRTdHlsZShtX3RvU3R5bGUpOwogICAgIAotICAgIHNlbmRUcmFu
c2l0aW9uRXZlbnQoZXZlbnROYW1lcygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCwgZWxhcHNl
ZFRpbWUpOworICAgIHNlbmRUcmFuc2l0aW9uRXZlbnQoZXZlbnROYW1lcygpLnRyYW5zaXRpb25l
bmRFdmVudCwgZWxhcHNlZFRpbWUpOwogICAgIGVuZEFuaW1hdGlvbigpOwogfQogCiBib29sIElt
cGxpY2l0QW5pbWF0aW9uOjpzZW5kVHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBkb3VibGUgZWxhcHNlZFRpbWUpCiB7Ci0gICAgaWYgKGV2ZW50VHlwZSA9PSBl
dmVudE5hbWVzKCkud2Via2l0VHJhbnNpdGlvbkVuZEV2ZW50KSB7CisgICAgaWYgKGV2ZW50VHlw
ZSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50KSB7CiAgICAgICAgIERvY3VtZW50
OjpMaXN0ZW5lclR5cGUgbGlzdGVuZXJUeXBlID0gRG9jdW1lbnQ6OlRSQU5TSVRJT05FTkRfTElT
VEVORVI7CiAKICAgICAgICAgaWYgKHNob3VsZFNlbmRFdmVudEZvckxpc3RlbmVyKGxpc3RlbmVy
VHlwZSkpIHsKQEAgLTE3Niw3ICsxNzYsNyBAQCBib29sIEltcGxpY2l0QW5pbWF0aW9uOjpzZW5k
VHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBkb3VibAogICAg
ICAgICAgICAgbV9jb21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5hZGRFdmVudFRvRGlz
cGF0Y2goZWxlbWVudCwgZXZlbnRUeXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lKTsKIAog
ICAgICAgICAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgKHVuYW5pbWF0ZWQpIHN0eWxlCi0g
ICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS53ZWJraXRUcmFuc2l0aW9u
RW5kRXZlbnQgJiYgZWxlbWVudC0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgIGlmIChldmVudFR5
cGUgPT0gZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCAmJiBlbGVtZW50LT5yZW5kZXJl
cigpKQogICAgICAgICAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoZWxlbWVudC5nZXQoKSk7
CiAKICAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyBEaWQgZGlzcGF0Y2ggYW4gZXZlbnQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBiMDMzZGFjYzRlNGFjYTc4Mjg2M2VhMjJjZTU3MDEwMGMzNTE5ZTg5Li5lYjNlNTUyZmMy
ZWVhZTc0NjdlOGRhNzFkMWMyYzA1MzM5MGE3NGRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTMtMDEtMTEgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXNAd2Via2l0Lm9yZz4KKworICAgICAgICBV
bnByZWZpeGVkIHRyYW5zaXRpb25lbmQgZXZlbnQgZG9lc24ndCBzZWVtIHRvIGJlIGltcGxlbWVu
dGVkLCB3aGljaCBicmVha3MgbWFueSBzaXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NjQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ292ZXIgdGhhdCBldmVudCBkZWxpdmVyeSBpcyBjb3JyZWN0
IDogd2UgcmVjZWl2ZWQgdW5wcmVmaXhlZCBldmVudHMuCisKKyAgICAgICAgKiB0cmFuc2l0aW9u
cy90cmFuc2l0aW9uLWVuZC1ldmVudC1oZWxwZXJzLmpzOgorICAgICAgICAocmVjb3JkVHJhbnNp
dGlvbkVuZEV2ZW50KToKKyAgICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVu
dC11bnByZWZpeGVkLTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdHJhbnNpdGlv
bnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZl
bnQtdW5wcmVmaXhlZC0wMi5odG1sOiBBZGRlZC4KKwogMjAxMy0wMS0xNCAgVG9tbXkgV2lkZW5m
bHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IFVw
ZGF0ZSB0aGUgdHJhY2sgYWNjZXNzb3JzIG9uIE1lZGlhU3RyZWFtIHRvIG1hdGNoIHRoZSBsYXRl
c3Qgc3BlY2lmaWNhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJh
bnNpdGlvbi1lbmQtZXZlbnQtaGVscGVycy5qcyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3Ry
YW5zaXRpb24tZW5kLWV2ZW50LWhlbHBlcnMuanMKaW5kZXggZDc3NzM1YmUyZTQ4ZmU2MDIzODFi
NWYxYmJiZjZmYmM4YWQ0NzI0Zi4uZmE1ZjM1MmMyYjI5OGYxNGE2Y2NlYzM3OWEwMTdlNzE2MjYz
YjBkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQt
ZXZlbnQtaGVscGVycy5qcworKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9u
LWVuZC1ldmVudC1oZWxwZXJzLmpzCkBAIC0xMCwxMiArMTAsMTIgQEAgdmFyIF9wcm9jZXNzZWRF
dmVudHMgPSBmYWxzZTsKIC8qIENhbGwgdGhpcyBmdW5jdGlvbiB0byByZWNvcmQgbWFudWFsbHkg
dHJhbnNpdGlvbiBlbmQgZXZlbnRzOgogCiBGdW5jdGlvbiBwYXJhbWV0ZXJzOgotICAgIGV2ZW50
IFtyZXF1aXJlZF06IHRoZSBldmVudCBwYXNzZWQgd2l0aCAid2Via2l0VHJhbnNpdGlvbkVuZCIK
KyAgICBldmVudCBbcmVxdWlyZWRdOiB0aGUgZXZlbnQgcGFzc2VkIHdpdGggIndlYmtpdFRyYW5z
aXRpb25FbmQiIG9yICJ0cmFuc2l0aW9uZW5kIgogCiAqLwogZnVuY3Rpb24gcmVjb3JkVHJhbnNp
dGlvbkVuZEV2ZW50KGV2ZW50KQogewotICBpZiAoZXZlbnQudHlwZSAhPSAid2Via2l0VHJhbnNp
dGlvbkVuZCIpCisgIGlmIChldmVudC50eXBlICE9ICJ3ZWJraXRUcmFuc2l0aW9uRW5kIiAmJiBl
dmVudC50eXBlICE9ICJ0cmFuc2l0aW9uZW5kIiApCiAgICAgdGhyb3coIkludmFsaWQgdHJhbnNp
dGlvbiBlbmQgZXZlbnQhIik7CiAKICAgX3JlY29yZGVkRXZlbnRzLnB1c2goWwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhl
ZC0wMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVu
ZC1ldmVudC11bnByZWZpeGVkLTAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2E0ODAzNmJj
M2ExODZkOTQxMGI5NTE1ZGFjY2I1OTJkODEwNjYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitJbml0aWF0aW5nIGEgdHJhbnNpdGlvbiBhbmQgY2F0
Y2hpbmcgdGhlIHRyYW5zaXRpb24gdW5wcmVmaXhlZCBldmVudC4KKworUEFTUyAtLS0gW0V4cGVj
dGVkXSBQcm9wZXJ0eTogbGVmdCBUYXJnZXQ6IGJveDEgRWxhcHNlZCBUaW1lOiAwLjUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5w
cmVmaXhlZC0wMS5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQt
ZXZlbnQtdW5wcmVmaXhlZC0wMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2NjZkNWY1MDlmYWFlYmQ5Y2Fj
MTVmOTQ4OGIzYjk2ODM5YTk1ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90cmFu
c2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAxLmh0bWwKQEAgLTAsMCAr
MSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGU+CisgICAg
LmJveCB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAwOworICAgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsK
KyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5
OiBsZWZ0OworICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41czsKKyAgICAgIC13ZWJraXQt
dHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdDsKKyAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJh
dGlvbjogMC41czsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgc3JjPSJ0cmFuc2l0aW9u
LWVuZC1ldmVudC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgorCisgICAgdmFyIGV4cGVjdGVkRW5kRXZlbnRzID0gWworICAgICAgLy8gW3By
b3BlcnR5LW5hbWUsIGVsZW1lbnQtaWQsIGVsYXBzZWQtdGltZSwgbGlzdGVuXQorICAgICAgWyJs
ZWZ0IiwgImJveDEiLCAwLjUsIGZhbHNlXQorICAgIF07CisKKyAgICBmdW5jdGlvbiBzZXR1cFRl
c3QoKQorICAgIHsKKyAgICAgIHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94
MScpOworICAgICAgYm94LmFkZEV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnLCByZWNvcmRU
cmFuc2l0aW9uRW5kRXZlbnQsIGZhbHNlKTsKKyAgICAgIGJveC5zdHlsZS5sZWZ0ID0gJzIwMHB4
JzsKKyAgICAgIHZhciBib3gyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveDInKTsKKyAg
ICAgIGJveDIuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0VHJhbnNpdGlvbkVuZCcsIHJlY29yZFRy
YW5zaXRpb25FbmRFdmVudCwgZmFsc2UpOworICAgICAgYm94Mi5zdHlsZS5sZWZ0ID0gJzIwMHB4
JzsKKyAgICB9CisKKyAgICBydW5UcmFuc2l0aW9uVGVzdChleHBlY3RlZEVuZEV2ZW50cywgc2V0
dXBUZXN0KTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHA+SW5pdGlhdGluZyBh
IHRyYW5zaXRpb24gYW5kIGNhdGNoaW5nIHRoZSB0cmFuc2l0aW9uIHVucHJlZml4ZWQgZXZlbnQu
PC9wPgorCis8ZGl2IGlkPSJjb250YWluZXIiPgorICA8ZGl2IGlkPSJib3gxIiBjbGFzcz0iYm94
Ij48L2Rpdj4KKyAgPGRpdiBpZD0iYm94MiIgY2xhc3M9ImJveCI+PC9kaXY+Cis8L2Rpdj4KKwor
PGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5z
aXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
dHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWVlMTc0ZGQ4NGE2M2Q1YmZiNmZjMjRmMmI0ZWI4ZGI1NmYzMjM3NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5k
LWV2ZW50LXVucHJlZml4ZWQtMDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorSW5pdGlh
dGluZyBhIHRyYW5zaXRpb24gY2F0Y2hpbmcgb25lIHRyYW5zaXRpb24gZXZlbnQgb25seSBkZXNw
aXRlIGxpc3RlbmluZyB0aGUgcHJlZml4ZWQgYW5kIHVucHJlZml4ZWQgZXZlbnQuCisKK1BBU1Mg
LS0tIFtFeHBlY3RlZF0gUHJvcGVydHk6IGxlZnQgVGFyZ2V0OiBib3gxIEVsYXBzZWQgVGltZTog
MC41CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5k
LWV2ZW50LXVucHJlZml4ZWQtMDIuaHRtbCBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5z
aXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmRlMGI5OThl
NzQ4YWYzMzAwMDhhYzNkNTE2MTU4YjkyZjdiY2YzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMi5odG1s
CkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHN0
eWxlPgorICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgbGVmdDog
MDsKKyAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICB3aWR0aDogMTAwcHg7CisgICAgICBtYXJn
aW46IDEwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgdHJhbnNpdGlv
bi1wcm9wZXJ0eTogbGVmdDsKKyAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7CisgICAg
ICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7CisgICAgICAtd2Via2l0LXRyYW5z
aXRpb24tZHVyYXRpb246IDAuNXM7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0i
dHJhbnNpdGlvbi1lbmQtZXZlbnQtaGVscGVycy5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKworICAgIHZhciBleHBlY3RlZEVuZEV2ZW50cyA9IFsKKyAg
ICAgIC8vIFtwcm9wZXJ0eS1uYW1lLCBlbGVtZW50LWlkLCBlbGFwc2VkLXRpbWUsIGxpc3Rlbl0K
KyAgICAgIFsibGVmdCIsICJib3gxIiwgMC41LCBmYWxzZV0KKyAgICBdOworCisgICAgZnVuY3Rp
b24gc2V0dXBUZXN0KCkKKyAgICB7CisgICAgICB2YXIgYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2JveDEnKTsKKyAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdFRy
YW5zaXRpb25FbmQnLCByZWNvcmRUcmFuc2l0aW9uRW5kRXZlbnQsIGZhbHNlKTsKKyAgICAgIGRv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnLCByZWNvcmRUcmFuc2l0aW9u
RW5kRXZlbnQsIGZhbHNlKTsKKyAgICAgIGJveC5zdHlsZS5sZWZ0ID0gJzIwMHB4JzsKKyAgICB9
CisKKyAgICBydW5UcmFuc2l0aW9uVGVzdChleHBlY3RlZEVuZEV2ZW50cywgc2V0dXBUZXN0KTsK
KyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHA+SW5pdGlhdGluZyBhIHRyYW5zaXRp
b24gY2F0Y2hpbmcgb25lIHRyYW5zaXRpb24gZXZlbnQgb25seSBkZXNwaXRlIGxpc3RlbmluZyB0
aGUgcHJlZml4ZWQgYW5kIHVucHJlZml4ZWQgZXZlbnQuPC9wPgorCis8ZGl2IGlkPSJjb250YWlu
ZXIiPgorICA8ZGl2IGlkPSJib3gxIiBjbGFzcz0iYm94Ij48L2Rpdj4KKzwvZGl2PgorCis8ZGl2
IGlkPSJyZXN1bHQiPjwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182735</attachid>
            <date>2013-01-15 04:11:49 -0800</date>
            <delta_ts>2013-01-15 08:55:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105647-20130115090847.patch</filename>
            <type>text/plain</type>
            <size>14909</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTUwNDRjZWY4OGRkMWMx
MjZhMmQzZjlkODg0OTA0MGU4MzVlNzc2Ny4uMDBiZDcxMmYzZDk3MTAxYTI1MDQ0NDQ1NzQwNTlj
NzFhMzgwZjhlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTAxLTExICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5wcmVmaXhlZCB0cmFu
c2l0aW9uZW5kIGV2ZW50IGRvZXNuJ3Qgc2VlbSB0byBiZSBpbXBsZW1lbnRlZCwgd2hpY2ggYnJl
YWtzIG1hbnkgc2l0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNTY0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciB0cmFuc2l0aW9uZW5kIGV2ZW50IGRlbGl2ZXJ5IGFzIHBh
cnQgYXMgdGhlIHVucHJlZml4aW5nCisgICAgICAgIHdvcmsgb24gQ1NTIFRyYW5zaXRpb25zLiBU
aGlzIHBhdGNoIGFkZHMgc3VwcG9ydCB0byBzYXZlIGEgcHJlZml4ZWQgYW5kCisgICAgICAgIGFu
IHVucHJlZml4ZWQgbmFtZSBpbiB0aGUgRXZlbnQgY2xhc3Mgd2hpY2ggaXMgdXNlZCBsYXRlciBp
biB0aGUgZXZlbnQKKyAgICAgICAgZGlzcGF0Y2hpbmcgdG8gZmlndXJlIG91dCB3aGV0aGVyIHdl
IHdhbnQgdG8gc2VuZCB0aGUgcHJlZml4ZWQgb3IgdGhlCisgICAgICAgIHVucHJlZml4ZWQgZXZl
bnQuIEluIHRoZSBjYXNlIG9mIHRoZSBDU1MgVHJhbnNpdGlvbnMsIFdlYktpdCB3aWxsIG5vdwor
ICAgICAgICBiZWhhdmUgYXMgZm9sbG93IDogaWYgYW4gZXZlbnQgbGlzdGVuZXIgaXMgYXR0YWNo
ZWQgdG8gdGhlIHByZWZpeGVkCisgICAgICAgIHZlcnNpb24gb2YgdGhlIHRyYW5zaXRpb24gZW5k
IGV2ZW50IHRoZW4gb25seSB0aGUgcHJlZml4ZWQgZXZlbnQgd2lsbCBiZQorICAgICAgICBzZW5k
LiBJZiBhbiBldmVudCBsaXN0ZW5lciBpcyBhdHRhY2hlZCB0byB0aGUgdW5wcmVmaXhlZCB2ZXJz
aW9uCisgICAgICAgIG9mIHRoZSB0cmFuc2l0aW9uIGVuZCBldmVudCB0aGVuIG9ubHkgdGhlIHVu
cHJlZml4ZWQgZXZlbnQgd2lsbCBiZQorICAgICAgICBzZW5kLiBJZiB0aGVyZSBhcmUgZXZlbnQg
bGlzdGVuZXJzIG9uIGJvdGggdW5wcmVmaXhlZCBhbmQgcHJlZml4ZWQKKyAgICAgICAgZXZlbnRz
IHRoZW4gb25seSB0aGUgdW5wcmVmaXhlZCBldmVudCB3aWxsIGJlIHNlbmQuCisKKyAgICAgICAg
VGVzdHM6IHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDEuaHRt
bAorICAgICAgICAgICAgICAgdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVm
aXhlZC0wMi5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKTogQWRkIHN1cHBvcnQgZm9y
CisgICAgICAgIHRyYW5zaXRpb25lbmQgaW4gY2FzZSB0aGVyZSBpcyBvbmx5IGFuIGV2ZW50IGxp
c3RlbmVyIG9uIHRoZSB1bnByZWZpeGVkCisgICAgICAgIGV2ZW50LgorICAgICAgICAqIGRvbS9F
dmVudE5hbWVzLmg6CisgICAgICAgIChXZWJDb3JlKTogQWRkIHRoZSBuZXcgdHJhbnNpdGlvbmVu
ZCBuYW1lLgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudFRhcmdldDo6ZmlyZUV2ZW50TGlzdGVuZXJzKTogRmluZCBvdXQgaWYgc29tZWJvZHkg
aXMKKyAgICAgICAgbGlzdGVuaW5nIGZvciB1bnByZWZpeGVkIGV2ZW50cywgaWYgc28gd2UgYWx3
YXlzIHNlbmQgdGhlIHVucHJlZml4ZWQKKyAgICAgICAgZXZlbnQsIGlmIG5vdCB0aGVuIHdlIGNy
ZWF0ZSBhIHByZWZpeGVkIGV2ZW50IGFuZCBzZW5kIGl0LgorICAgICAgICAqIHBhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9u
Q29udHJvbGxlclByaXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVTdHlsZSk6CisgICAgICAgICog
cGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1wbGljaXRBbmltYXRpb246OnNlbmRUcmFuc2l0aW9uRXZlbnQpOiBBbHdheXMgY3JlYXRlIGJ5
CisgICAgICAgIGRlZmF1bHQgdW5wcmVmaXhlZCBldmVudHMuCisKIDIwMTMtMDEtMTQgIFRvbW15
IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW0g
QVBJOiBVcGRhdGUgdGhlIHRyYWNrIGFjY2Vzc29ycyBvbiBNZWRpYVN0cmVhbSB0byBtYXRjaCB0
aGUgbGF0ZXN0IHNwZWNpZmljYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGY4NTlk
ZWE3MjkzMDBiOWIxZGVkYjg2OGIzMmJhMTNiZWM3NDhjZTUuLjYyZjY5NzJlYWIzYjk5MWNmNDhi
NzI3MzIyOTk5NjcyZWMzMzg5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzcyOSw2
ICszNzI5LDggQEAgdm9pZCBEb2N1bWVudDo6YWRkTGlzdGVuZXJUeXBlSWZOZWVkZWQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUpCiAgICAgICAgIGFkZExpc3RlbmVyVHlwZShBTklNQVRJ
T05JVEVSQVRJT05fTElTVEVORVIpOwogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5h
bWVzKCkud2Via2l0VHJhbnNpdGlvbkVuZEV2ZW50KQogICAgICAgICBhZGRMaXN0ZW5lclR5cGUo
VFJBTlNJVElPTkVORF9MSVNURU5FUik7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZlbnQpCisgICAgICAgIGFkZExpc3RlbmVyVHlwZShUUkFO
U0lUSU9ORU5EX0xJU1RFTkVSKTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmJlZm9yZWxvYWRFdmVudCkKICAgICAgICAgYWRkTGlzdGVuZXJUeXBlKEJFRk9SRUxPQURf
TElTVEVORVIpOwogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc2Nyb2xs
RXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCBkYzNlZmJlNzgzOWMxZGExZTU5ZjUy
ZGUwNjI1Mjg4N2I2NjAzNjUwLi41Y2Y2MjE5NWFiMTYyZjMwZjU5ZTc3ZTkzOTQ5ZmE1Mjk4ZmY2
ZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTE4Miw2ICsxODIsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgbWFjcm8od2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uKSBcCiAgICAg
XAogICAgIG1hY3JvKHdlYmtpdFRyYW5zaXRpb25FbmQpIFwKKyAgICBtYWNybyh0cmFuc2l0aW9u
ZW5kKSBcCiAgICAgXAogICAgIG1hY3JvKG9yaWVudGF0aW9uY2hhbmdlKSBcCiAgICAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldC5jcHAKaW5kZXggMjE0ZjlhM2U2MGYwNDU3NTQ5NzY5M2UwN2Q5
Y2NkZDg4MWZlYWE0ZS4uMjVmOGIwNDFjZmU2N2RhNjQ0YTkzNDFiMmM5Y2VkYTQ3NDgxYTNmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIldlYktpdFRyYW5zaXRpb25FdmVudC5o
IgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTE2MCw2ICsxNjEsMjQgQEAgdm9pZCBF
dmVudFRhcmdldDo6dW5jYXVnaHRFeGNlcHRpb25JbkV2ZW50SGFuZGxlcigpCiB7CiB9CiAKK3N0
YXRpYyBQYXNzUmVmUHRyPEV2ZW50PiBjcmVhdGVQcmVmaXhlZEV2ZW50KGNvbnN0IEV2ZW50KiBl
dmVudCkKK3sKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlv
bmVuZEV2ZW50KSB7CisgICAgICAgIGNvbnN0IFdlYktpdFRyYW5zaXRpb25FdmVudCogdHJhbnNp
dGlvbkV2ZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgV2ViS2l0VHJhbnNpdGlvbkV2ZW50Kj4oZXZl
bnQpOworICAgICAgICByZXR1cm4gV2ViS2l0VHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCwgdHJhbnNpdGlvbkV2ZW50LT5wcm9wZXJ0
eU5hbWUoKSwgdHJhbnNpdGlvbkV2ZW50LT5lbGFwc2VkVGltZSgpKTsKKyAgICB9CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBBdG9taWNTdHJp
bmcgcHJlZml4ZWRUeXBlKGNvbnN0IEV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAoZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50KQorICAgICAgICByZXR1cm4g
ZXZlbnROYW1lcygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudDsKKworICAgIHJldHVybiAiIjsK
K30KKwogYm9vbCBFdmVudFRhcmdldDo6ZmlyZUV2ZW50TGlzdGVuZXJzKEV2ZW50KiBldmVudCkK
IHsKICAgICBBU1NFUlQoIU5vRXZlbnREaXNwYXRjaEFzc2VydGlvbjo6aXNFdmVudERpc3BhdGNo
Rm9yYmlkZGVuKCkpOwpAQCAtMTY5LDEwICsxODgsMjIgQEAgYm9vbCBFdmVudFRhcmdldDo6Zmly
ZUV2ZW50TGlzdGVuZXJzKEV2ZW50KiBldmVudCkKICAgICBpZiAoIWQpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgRXZlbnRMaXN0ZW5lclZlY3RvciogbGlzdGVuZXJWZWN0b3IgPSBkLT5l
dmVudExpc3RlbmVyTWFwLmZpbmQoZXZlbnQtPnR5cGUoKSk7Ci0KLSAgICBpZiAobGlzdGVuZXJW
ZWN0b3IpCi0gICAgICAgIGZpcmVFdmVudExpc3RlbmVycyhldmVudCwgZCwgKmxpc3RlbmVyVmVj
dG9yKTsKKyAgICBFdmVudExpc3RlbmVyVmVjdG9yKiBsaXN0ZW5lclByZWZpeGVkVmVjdG9yID0g
MDsKKyAgICBBdG9taWNTdHJpbmcgcHJlZml4ZWRUeXBlTmFtZSA9IHByZWZpeGVkVHlwZShldmVu
dCk7CisgICAgaWYgKHByZWZpeGVkVHlwZU5hbWUubGVuZ3RoKCkpCisgICAgICAgIGxpc3RlbmVy
UHJlZml4ZWRWZWN0b3IgPSBkLT5ldmVudExpc3RlbmVyTWFwLmZpbmQocHJlZml4ZWRUeXBlTmFt
ZSk7CisKKyAgICBFdmVudExpc3RlbmVyVmVjdG9yKiBsaXN0ZW5lclVucHJlZml4ZWRWZWN0b3Ig
PSBkLT5ldmVudExpc3RlbmVyTWFwLmZpbmQoZXZlbnQtPnR5cGUoKSk7CisKKyAgICBpZiAobGlz
dGVuZXJVbnByZWZpeGVkVmVjdG9yKQorICAgICAgICBmaXJlRXZlbnRMaXN0ZW5lcnMoZXZlbnQs
IGQsICpsaXN0ZW5lclVucHJlZml4ZWRWZWN0b3IpOworICAgIGVsc2UgaWYgKGxpc3RlbmVyUHJl
Zml4ZWRWZWN0b3IpIHsKKyAgICAgICAgUmVmUHRyPEV2ZW50PiBwcmVmaXhlZEV2ZW50ID0gY3Jl
YXRlUHJlZml4ZWRFdmVudChldmVudCk7CisgICAgICAgIHByZWZpeGVkRXZlbnQtPnNldFRhcmdl
dChldmVudC0+dGFyZ2V0KCkpOworICAgICAgICBwcmVmaXhlZEV2ZW50LT5zZXRDdXJyZW50VGFy
Z2V0KGV2ZW50LT5jdXJyZW50VGFyZ2V0KCkpOworICAgICAgICBwcmVmaXhlZEV2ZW50LT5zZXRF
dmVudFBoYXNlKGV2ZW50LT5ldmVudFBoYXNlKCkpOworICAgICAgICBmaXJlRXZlbnRMaXN0ZW5l
cnMocHJlZml4ZWRFdmVudC5nZXQoKSwgZCwgKmxpc3RlbmVyUHJlZml4ZWRWZWN0b3IpOworICAg
IH0KICAgICAKICAgICByZXR1cm4gIWV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCmluZGV4IDMzNGU0OGI3M2ViOGM0MDAxNjVkMGY0MjMwM2FkYTMyODk0NTNhMzEuLmM2ZDVl
ZTJkZmEyMDNhMTdhYmUzMzJlOWEwNDlmMTkwNzMxOTQwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xNzks
NyArMTc5LDcgQEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6ZmlyZUV2ZW50c0Fu
ZFVwZGF0ZVN0eWxlKCkKICAgICBtX2V2ZW50c1RvRGlzcGF0Y2guY2xlYXIoKTsKICAgICBWZWN0
b3I8RXZlbnRUb0Rpc3BhdGNoPjo6Y29uc3RfaXRlcmF0b3IgZXZlbnRzVG9EaXNwYXRjaEVuZCA9
IGV2ZW50c1RvRGlzcGF0Y2guZW5kKCk7CiAgICAgZm9yIChWZWN0b3I8RXZlbnRUb0Rpc3BhdGNo
Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBldmVudHNUb0Rpc3BhdGNoLmJlZ2luKCk7IGl0ICE9IGV2
ZW50c1RvRGlzcGF0Y2hFbmQ7ICsraXQpIHsKLSAgICAgICAgaWYgKGl0LT5ldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCkKKyAgICAgICAgaWYgKGl0LT5l
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCkKICAgICAgICAgICAg
IGl0LT5lbGVtZW50LT5kaXNwYXRjaEV2ZW50KFdlYktpdFRyYW5zaXRpb25FdmVudDo6Y3JlYXRl
KGl0LT5ldmVudFR5cGUsIGl0LT5uYW1lLCBpdC0+ZWxhcHNlZFRpbWUpKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgaXQtPmVsZW1lbnQtPmRpc3BhdGNoRXZlbnQoV2ViS2l0QW5pbWF0aW9u
RXZlbnQ6OmNyZWF0ZShpdC0+ZXZlbnRUeXBlLCBpdC0+bmFtZSwgaXQtPmVsYXBzZWRUaW1lKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1h
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlv
bi5jcHAKaW5kZXggNDk3Y2EzZjU0ODc4NjBhODFlMjAzZWE4YTYxNTJlNDQ1MjBkYmYyNS4uYjEy
ODliYjhhZTNhZWI3MGNkY2NmNmY5YmU0ZWRkMmUzOWI4M2ZhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcApAQCAtMTUxLDEz
ICsxNTEsMTMgQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6b25BbmltYXRpb25FbmQoZG91Ymxl
IGVsYXBzZWRUaW1lKQogICAgIGlmIChrZXlmcmFtZUFuaW0pCiAgICAgICAgIGtleWZyYW1lQW5p
bS0+c2V0VW5hbmltYXRlZFN0eWxlKG1fdG9TdHlsZSk7CiAgICAgCi0gICAgc2VuZFRyYW5zaXRp
b25FdmVudChldmVudE5hbWVzKCkud2Via2l0VHJhbnNpdGlvbkVuZEV2ZW50LCBlbGFwc2VkVGlt
ZSk7CisgICAgc2VuZFRyYW5zaXRpb25FdmVudChldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2
ZW50LCBlbGFwc2VkVGltZSk7CiAgICAgZW5kQW5pbWF0aW9uKCk7CiB9CiAKIGJvb2wgSW1wbGlj
aXRBbmltYXRpb246OnNlbmRUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dFR5cGUsIGRvdWJsZSBlbGFwc2VkVGltZSkKIHsKLSAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS53ZWJraXRUcmFuc2l0aW9uRW5kRXZlbnQpIHsKKyAgICBpZiAoZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZlbnQpIHsKICAgICAgICAgRG9jdW1lbnQ6Okxp
c3RlbmVyVHlwZSBsaXN0ZW5lclR5cGUgPSBEb2N1bWVudDo6VFJBTlNJVElPTkVORF9MSVNURU5F
UjsKIAogICAgICAgICBpZiAoc2hvdWxkU2VuZEV2ZW50Rm9yTGlzdGVuZXIobGlzdGVuZXJUeXBl
KSkgewpAQCAtMTc2LDcgKzE3Niw3IEBAIGJvb2wgSW1wbGljaXRBbmltYXRpb246OnNlbmRUcmFu
c2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsCiAgICAgICAg
ICAgICBtX2NvbXBBbmltLT5hbmltYXRpb25Db250cm9sbGVyKCktPmFkZEV2ZW50VG9EaXNwYXRj
aChlbGVtZW50LCBldmVudFR5cGUsIHByb3BlcnR5TmFtZSwgZWxhcHNlZFRpbWUpOwogCiAgICAg
ICAgICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCAodW5hbmltYXRlZCkgc3R5bGUKLSAgICAg
ICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndlYmtpdFRyYW5zaXRpb25FbmRF
dmVudCAmJiBlbGVtZW50LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50ICYmIGVsZW1lbnQtPnJlbmRlcmVyKCkp
CiAgICAgICAgICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYyhlbGVtZW50LmdldCgpKTsKIAog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIERpZCBkaXNwYXRjaCBhbiBldmVudApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGIwMzNkYWNjNGU0YWNhNzgyODYzZWEyMmNlNTcwMTAwYzM1MTllODkuLmViM2U1NTJmYzJlZWFl
NzQ2N2U4ZGE3MWQxYzJjMDUzMzkwYTc0ZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0w
MS0xMSAgQWxleGlzIE1lbmFyZCAgPGFsZXhpc0B3ZWJraXQub3JnPgorCisgICAgICAgIFVucHJl
Zml4ZWQgdHJhbnNpdGlvbmVuZCBldmVudCBkb2Vzbid0IHNlZW0gdG8gYmUgaW1wbGVtZW50ZWQs
IHdoaWNoIGJyZWFrcyBtYW55IHNpdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDU2NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDb3ZlciB0aGF0IGV2ZW50IGRlbGl2ZXJ5IGlzIGNvcnJlY3QgOiB3
ZSByZWNlaXZlZCB1bnByZWZpeGVkIGV2ZW50cy4KKworICAgICAgICAqIHRyYW5zaXRpb25zL3Ry
YW5zaXRpb24tZW5kLWV2ZW50LWhlbHBlcnMuanM6CisgICAgICAgIChyZWNvcmRUcmFuc2l0aW9u
RW5kRXZlbnQpOgorICAgICAgICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVu
cHJlZml4ZWQtMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2l0aW9ucy90
cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAxLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11
bnByZWZpeGVkLTAyLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAxLTE0ICBUb21teSBXaWRlbmZseWNo
dCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogVXBkYXRl
IHRoZSB0cmFjayBhY2Nlc3NvcnMgb24gTWVkaWFTdHJlYW0gdG8gbWF0Y2ggdGhlIGxhdGVzdCBz
cGVjaWZpY2F0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0
aW9uLWVuZC1ldmVudC1oZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNp
dGlvbi1lbmQtZXZlbnQtaGVscGVycy5qcwppbmRleCBkNzc3MzViZTJlNDhmZTYwMjM4MWI1ZjFi
YmJmNmZiYzhhZDQ3MjRmLi5mYTVmMzUyYzJiMjk4ZjE0YTZjY2VjMzc5YTAxN2U3MTYyNjNiMGRh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVu
dC1oZWxwZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5k
LWV2ZW50LWhlbHBlcnMuanMKQEAgLTEwLDEyICsxMCwxMiBAQCB2YXIgX3Byb2Nlc3NlZEV2ZW50
cyA9IGZhbHNlOwogLyogQ2FsbCB0aGlzIGZ1bmN0aW9uIHRvIHJlY29yZCBtYW51YWxseSB0cmFu
c2l0aW9uIGVuZCBldmVudHM6CiAKIEZ1bmN0aW9uIHBhcmFtZXRlcnM6Ci0gICAgZXZlbnQgW3Jl
cXVpcmVkXTogdGhlIGV2ZW50IHBhc3NlZCB3aXRoICJ3ZWJraXRUcmFuc2l0aW9uRW5kIgorICAg
IGV2ZW50IFtyZXF1aXJlZF06IHRoZSBldmVudCBwYXNzZWQgd2l0aCAid2Via2l0VHJhbnNpdGlv
bkVuZCIgb3IgInRyYW5zaXRpb25lbmQiCiAKICovCiBmdW5jdGlvbiByZWNvcmRUcmFuc2l0aW9u
RW5kRXZlbnQoZXZlbnQpCiB7Ci0gIGlmIChldmVudC50eXBlICE9ICJ3ZWJraXRUcmFuc2l0aW9u
RW5kIikKKyAgaWYgKGV2ZW50LnR5cGUgIT0gIndlYmtpdFRyYW5zaXRpb25FbmQiICYmIGV2ZW50
LnR5cGUgIT0gInRyYW5zaXRpb25lbmQiICkKICAgICB0aHJvdygiSW52YWxpZCB0cmFuc2l0aW9u
IGVuZCBldmVudCEiKTsKIAogICBfcmVjb3JkZWRFdmVudHMucHVzaChbCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAx
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2
ZW50LXVucHJlZml4ZWQtMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3YTQ4MDM2YmMzYTE4
NmQ5NDEwYjk1MTVkYWNjYjU5MmQ4MTA2NjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAxLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDQgQEAKK0luaXRpYXRpbmcgYSB0cmFuc2l0aW9uIGFuZCBjYXRjaGlu
ZyB0aGUgdHJhbnNpdGlvbiB1bnByZWZpeGVkIGV2ZW50LgorCitQQVNTIC0tLSBbRXhwZWN0ZWRd
IFByb3BlcnR5OiBsZWZ0IFRhcmdldDogYm94MSBFbGFwc2VkIFRpbWU6IDAuNQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZp
eGVkLTAxLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVu
dC11bnByZWZpeGVkLTAxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc3MTBjZmM1ODRmMWJhMjAwMGJjM2Vh
NzVhZTY1YWVjY2RjODNjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRp
b25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDEuaHRtbApAQCAtMCwwICsxLDQ3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZT4KKyAgICAuYm94
IHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDA7CisgICAgICBoZWln
aHQ6IDEwMHB4OworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgbWFyZ2luOiAxMHB4OworICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGxl
ZnQ7CisgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzOworICAgICAgLXdlYmtpdC10cmFu
c2l0aW9uLXByb3BlcnR5OiBsZWZ0OworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9u
OiAwLjVzOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9InRyYW5zaXRpb24tZW5k
LWV2ZW50LWhlbHBlcnMuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CisKKyAgICB2YXIgZXhwZWN0ZWRFbmRFdmVudHMgPSBbCisgICAgICAvLyBbcHJvcGVy
dHktbmFtZSwgZWxlbWVudC1pZCwgZWxhcHNlZC10aW1lLCBsaXN0ZW5dCisgICAgICBbImxlZnQi
LCAiYm94MSIsIDAuNSwgZmFsc2VdCisgICAgXTsKKworICAgIGZ1bmN0aW9uIHNldHVwVGVzdCgp
CisgICAgeworICAgICAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gxJyk7
CisgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0cmFuc2l0aW9uZW5kJywgcmVjb3Jk
VHJhbnNpdGlvbkVuZEV2ZW50LCBmYWxzZSk7CisgICAgICBib3guc3R5bGUubGVmdCA9ICcyMDBw
eCc7CisgICAgfQorCisgICAgcnVuVHJhbnNpdGlvblRlc3QoZXhwZWN0ZWRFbmRFdmVudHMsIHNl
dHVwVGVzdCk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxwPkluaXRpYXRpbmcg
YSB0cmFuc2l0aW9uIGFuZCBjYXRjaGluZyB0aGUgdHJhbnNpdGlvbiB1bnByZWZpeGVkIGV2ZW50
LjwvcD4KKworPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgPGRpdiBpZD0iYm94MSIgY2xhc3M9ImJv
eCI+PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKworPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5w
cmVmaXhlZC0wMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVlMTc0ZGQ4NGE2M2Q1YmZiNmZj
MjRmMmI0ZWI4ZGI1NmYzMjM3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RyYW5z
aXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorSW5pdGlhdGluZyBhIHRyYW5zaXRpb24gY2F0Y2hpbmcgb25lIHRyYW5z
aXRpb24gZXZlbnQgb25seSBkZXNwaXRlIGxpc3RlbmluZyB0aGUgcHJlZml4ZWQgYW5kIHVucHJl
Zml4ZWQgZXZlbnQuCisKK1BBU1MgLS0tIFtFeHBlY3RlZF0gUHJvcGVydHk6IGxlZnQgVGFyZ2V0
OiBib3gxIEVsYXBzZWQgVGltZTogMC41CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5z
aXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDIuaHRtbCBiL0xheW91dFRl
c3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDIuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44YmRlMGI5OThlNzQ4YWYzMzAwMDhhYzNkNTE2MTU4YjkyZjdiY2YzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZl
bnQtdW5wcmVmaXhlZC0wMi5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJl
bGF0aXZlOworICAgICAgbGVmdDogMDsKKyAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICB3aWR0
aDogMTAwcHg7CisgICAgICBtYXJnaW46IDEwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBi
bHVlOworICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdDsKKyAgICAgIHRyYW5zaXRpb24t
ZHVyYXRpb246IDAuNXM7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7
CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7CisgICAgfQorICA8L3N0
eWxlPgorICA8c2NyaXB0IHNyYz0idHJhbnNpdGlvbi1lbmQtZXZlbnQtaGVscGVycy5qcyI+PC9z
Y3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKworICAgIHZhciBleHBl
Y3RlZEVuZEV2ZW50cyA9IFsKKyAgICAgIC8vIFtwcm9wZXJ0eS1uYW1lLCBlbGVtZW50LWlkLCBl
bGFwc2VkLXRpbWUsIGxpc3Rlbl0KKyAgICAgIFsibGVmdCIsICJib3gxIiwgMC41LCBmYWxzZV0K
KyAgICBdOworCisgICAgZnVuY3Rpb24gc2V0dXBUZXN0KCkKKyAgICB7CisgICAgICB2YXIgYm94
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveDEnKTsKKyAgICAgIGRvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIoJ3dlYmtpdFRyYW5zaXRpb25FbmQnLCByZWNvcmRUcmFuc2l0aW9uRW5kRXZl
bnQsIGZhbHNlKTsKKyAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25l
bmQnLCByZWNvcmRUcmFuc2l0aW9uRW5kRXZlbnQsIGZhbHNlKTsKKyAgICAgIGJveC5zdHlsZS5s
ZWZ0ID0gJzIwMHB4JzsKKyAgICB9CisKKyAgICBydW5UcmFuc2l0aW9uVGVzdChleHBlY3RlZEVu
ZEV2ZW50cywgc2V0dXBUZXN0KTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHA+
SW5pdGlhdGluZyBhIHRyYW5zaXRpb24gY2F0Y2hpbmcgb25lIHRyYW5zaXRpb24gZXZlbnQgb25s
eSBkZXNwaXRlIGxpc3RlbmluZyB0aGUgcHJlZml4ZWQgYW5kIHVucHJlZml4ZWQgZXZlbnQuPC9w
PgorCis8ZGl2IGlkPSJjb250YWluZXIiPgorICA8ZGl2IGlkPSJib3gxIiBjbGFzcz0iYm94Ij48
L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorCis8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182783</attachid>
            <date>2013-01-15 08:55:29 -0800</date>
            <delta_ts>2013-01-15 10:50:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105647-20130115135227.patch</filename>
            <type>text/plain</type>
            <size>14860</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU0YWI2NGE3MWQxNTNm
MGVjZWU3MjQzMTQxYjA4YzBiOWViOTFjYS4uOThlYTIzM2RkM2JmN2ZiY2QzNjRjMzgzM2YyZmEw
ZTMyYmViMzYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTAxLTExICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5wcmVmaXhlZCB0cmFu
c2l0aW9uZW5kIGV2ZW50IGRvZXNuJ3Qgc2VlbSB0byBiZSBpbXBsZW1lbnRlZCwgd2hpY2ggYnJl
YWtzIG1hbnkgc2l0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNTY0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciB0cmFuc2l0aW9uZW5kIGV2ZW50IGRlbGl2ZXJ5IGFzIHBh
cnQgYXMgdGhlIHVucHJlZml4aW5nCisgICAgICAgIHdvcmsgb24gQ1NTIFRyYW5zaXRpb25zLiBU
aGlzIHBhdGNoIGFkZHMgc3VwcG9ydCB0byBzYXZlIGEgcHJlZml4ZWQgYW5kCisgICAgICAgIGFu
IHVucHJlZml4ZWQgbmFtZSBpbiB0aGUgRXZlbnQgY2xhc3Mgd2hpY2ggaXMgdXNlZCBsYXRlciBp
biB0aGUgZXZlbnQKKyAgICAgICAgZGlzcGF0Y2hpbmcgdG8gZmlndXJlIG91dCB3aGV0aGVyIHdl
IHdhbnQgdG8gc2VuZCB0aGUgcHJlZml4ZWQgb3IgdGhlCisgICAgICAgIHVucHJlZml4ZWQgZXZl
bnQuIEluIHRoZSBjYXNlIG9mIHRoZSBDU1MgVHJhbnNpdGlvbnMsIFdlYktpdCB3aWxsIG5vdwor
ICAgICAgICBiZWhhdmUgYXMgZm9sbG93IDogaWYgYW4gZXZlbnQgbGlzdGVuZXIgaXMgYXR0YWNo
ZWQgdG8gdGhlIHByZWZpeGVkCisgICAgICAgIHZlcnNpb24gb2YgdGhlIHRyYW5zaXRpb24gZW5k
IGV2ZW50IHRoZW4gb25seSB0aGUgcHJlZml4ZWQgZXZlbnQgd2lsbCBiZQorICAgICAgICBzZW5k
LiBJZiBhbiBldmVudCBsaXN0ZW5lciBpcyBhdHRhY2hlZCB0byB0aGUgdW5wcmVmaXhlZCB2ZXJz
aW9uCisgICAgICAgIG9mIHRoZSB0cmFuc2l0aW9uIGVuZCBldmVudCB0aGVuIG9ubHkgdGhlIHVu
cHJlZml4ZWQgZXZlbnQgd2lsbCBiZQorICAgICAgICBzZW5kLiBJZiB0aGVyZSBhcmUgZXZlbnQg
bGlzdGVuZXJzIG9uIGJvdGggdW5wcmVmaXhlZCBhbmQgcHJlZml4ZWQKKyAgICAgICAgZXZlbnRz
IHRoZW4gb25seSB0aGUgdW5wcmVmaXhlZCBldmVudCB3aWxsIGJlIHNlbmQuCisKKyAgICAgICAg
VGVzdHM6IHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDEuaHRt
bAorICAgICAgICAgICAgICAgdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVm
aXhlZC0wMi5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKTogQWRkIHN1cHBvcnQgZm9y
CisgICAgICAgIHRyYW5zaXRpb25lbmQgaW4gY2FzZSB0aGVyZSBpcyBvbmx5IGFuIGV2ZW50IGxp
c3RlbmVyIG9uIHRoZSB1bnByZWZpeGVkCisgICAgICAgIGV2ZW50LgorICAgICAgICAqIGRvbS9F
dmVudE5hbWVzLmg6CisgICAgICAgIChXZWJDb3JlKTogQWRkIHRoZSBuZXcgdHJhbnNpdGlvbmVu
ZCBuYW1lLgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudFRhcmdldDo6ZmlyZUV2ZW50TGlzdGVuZXJzKTogRmluZCBvdXQgaWYgc29tZWJvZHkg
aXMKKyAgICAgICAgbGlzdGVuaW5nIGZvciB1bnByZWZpeGVkIGV2ZW50cywgaWYgc28gd2UgYWx3
YXlzIHNlbmQgdGhlIHVucHJlZml4ZWQKKyAgICAgICAgZXZlbnQsIGlmIG5vdCB0aGVuIHdlIGNy
ZWF0ZSBhIHByZWZpeGVkIGV2ZW50IGFuZCBzZW5kIGl0LgorICAgICAgICAqIHBhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9u
Q29udHJvbGxlclByaXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVTdHlsZSk6CisgICAgICAgICog
cGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1wbGljaXRBbmltYXRpb246OnNlbmRUcmFuc2l0aW9uRXZlbnQpOiBBbHdheXMgY3JlYXRlIGJ5
CisgICAgICAgIGRlZmF1bHQgdW5wcmVmaXhlZCBldmVudHMuCisKIDIwMTMtMDEtMTQgIEtlbnRh
cm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0gTWFrZSBhbiBJ
c29sYXRlIHBhcmFtZXRlciBtYW5kYXRvcnkgaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIG1ldGhv
ZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGY4NTlkZWE3MjkzMDBiOWIxZGVkYjg2OGIz
MmJhMTNiZWM3NDhjZTUuLjYyZjY5NzJlYWIzYjk5MWNmNDhiNzI3MzIyOTk5NjcyZWMzMzg5MjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzcyOSw2ICszNzI5LDggQEAgdm9pZCBEb2N1
bWVudDo6YWRkTGlzdGVuZXJUeXBlSWZOZWVkZWQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUpCiAgICAgICAgIGFkZExpc3RlbmVyVHlwZShBTklNQVRJT05JVEVSQVRJT05fTElTVEVORVIp
OwogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkud2Via2l0VHJhbnNpdGlv
bkVuZEV2ZW50KQogICAgICAgICBhZGRMaXN0ZW5lclR5cGUoVFJBTlNJVElPTkVORF9MSVNURU5F
Uik7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5k
RXZlbnQpCisgICAgICAgIGFkZExpc3RlbmVyVHlwZShUUkFOU0lUSU9ORU5EX0xJU1RFTkVSKTsK
ICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmJlZm9yZWxvYWRFdmVudCkK
ICAgICAgICAgYWRkTGlzdGVuZXJUeXBlKEJFRk9SRUxPQURfTElTVEVORVIpOwogICAgIGVsc2Ug
aWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc2Nyb2xsRXZlbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaAppbmRleCBkYzNlZmJlNzgzOWMxZGExZTU5ZjUyZGUwNjI1Mjg4N2I2NjAzNjUwLi41
Y2Y2MjE5NWFiMTYyZjMwZjU5ZTc3ZTkzOTQ5ZmE1Mjk4ZmY2ZWYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmgKQEAgLTE4Miw2ICsxODIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFj
cm8od2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uKSBcCiAgICAgXAogICAgIG1hY3JvKHdlYmtpdFRy
YW5zaXRpb25FbmQpIFwKKyAgICBtYWNybyh0cmFuc2l0aW9uZW5kKSBcCiAgICAgXAogICAgIG1h
Y3JvKG9yaWVudGF0aW9uY2hhbmdlKSBcCiAgICAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5j
cHAKaW5kZXggMjE0ZjlhM2U2MGYwNDU3NTQ5NzY5M2UwN2Q5Y2NkZDg4MWZlYWE0ZS4uOTBlOTJk
MTk1NGQzMDdkZjNhZjkyMDkxMmYwYmQ5ZDYwNGIzZGMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXQuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRl
ICJFdmVudEV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IgorI2luY2x1ZGUgIldlYktpdFRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KQEAgLTE2MCw2ICsxNjEsMjQgQEAgdm9pZCBFdmVudFRhcmdldDo6dW5jYXVnaHRF
eGNlcHRpb25JbkV2ZW50SGFuZGxlcigpCiB7CiB9CiAKK3N0YXRpYyBQYXNzUmVmUHRyPEV2ZW50
PiBjcmVhdGVQcmVmaXhlZEV2ZW50KGNvbnN0IEV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50KSB7CisgICAgICAg
IGNvbnN0IFdlYktpdFRyYW5zaXRpb25FdmVudCogdHJhbnNpdGlvbkV2ZW50ID0gc3RhdGljX2Nh
c3Q8Y29uc3QgV2ViS2l0VHJhbnNpdGlvbkV2ZW50Kj4oZXZlbnQpOworICAgICAgICByZXR1cm4g
V2ViS2l0VHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdFRyYW5zaXRp
b25FbmRFdmVudCwgdHJhbnNpdGlvbkV2ZW50LT5wcm9wZXJ0eU5hbWUoKSwgdHJhbnNpdGlvbkV2
ZW50LT5lbGFwc2VkVGltZSgpKTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBBdG9taWNTdHJpbmcgcHJlZml4ZWRUeXBlKGNvbnN0
IEV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
dHJhbnNpdGlvbmVuZEV2ZW50KQorICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLndlYmtpdFRy
YW5zaXRpb25FbmRFdmVudDsKKworICAgIHJldHVybiBlbXB0eVN0cmluZygpOworfQorCiBib29s
IEV2ZW50VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQqIGV2ZW50KQogewogICAgIEFT
U0VSVCghTm9FdmVudERpc3BhdGNoQXNzZXJ0aW9uOjppc0V2ZW50RGlzcGF0Y2hGb3JiaWRkZW4o
KSk7CkBAIC0xNjksMTAgKzE4OCwyMiBAQCBib29sIEV2ZW50VGFyZ2V0OjpmaXJlRXZlbnRMaXN0
ZW5lcnMoRXZlbnQqIGV2ZW50KQogICAgIGlmICghZCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
LSAgICBFdmVudExpc3RlbmVyVmVjdG9yKiBsaXN0ZW5lclZlY3RvciA9IGQtPmV2ZW50TGlzdGVu
ZXJNYXAuZmluZChldmVudC0+dHlwZSgpKTsKLQotICAgIGlmIChsaXN0ZW5lclZlY3RvcikKLSAg
ICAgICAgZmlyZUV2ZW50TGlzdGVuZXJzKGV2ZW50LCBkLCAqbGlzdGVuZXJWZWN0b3IpOworICAg
IEV2ZW50TGlzdGVuZXJWZWN0b3IqIGxpc3RlbmVyUHJlZml4ZWRWZWN0b3IgPSAwOworICAgIEF0
b21pY1N0cmluZyBwcmVmaXhlZFR5cGVOYW1lID0gcHJlZml4ZWRUeXBlKGV2ZW50KTsKKyAgICBp
ZiAoIXByZWZpeGVkVHlwZU5hbWUuaXNFbXB0eSgpKQorICAgICAgICBsaXN0ZW5lclByZWZpeGVk
VmVjdG9yID0gZC0+ZXZlbnRMaXN0ZW5lck1hcC5maW5kKHByZWZpeGVkVHlwZU5hbWUpOworCisg
ICAgRXZlbnRMaXN0ZW5lclZlY3RvciogbGlzdGVuZXJVbnByZWZpeGVkVmVjdG9yID0gZC0+ZXZl
bnRMaXN0ZW5lck1hcC5maW5kKGV2ZW50LT50eXBlKCkpOworCisgICAgaWYgKGxpc3RlbmVyVW5w
cmVmaXhlZFZlY3RvcikKKyAgICAgICAgZmlyZUV2ZW50TGlzdGVuZXJzKGV2ZW50LCBkLCAqbGlz
dGVuZXJVbnByZWZpeGVkVmVjdG9yKTsKKyAgICBlbHNlIGlmIChsaXN0ZW5lclByZWZpeGVkVmVj
dG9yKSB7CisgICAgICAgIFJlZlB0cjxFdmVudD4gcHJlZml4ZWRFdmVudCA9IGNyZWF0ZVByZWZp
eGVkRXZlbnQoZXZlbnQpOworICAgICAgICBwcmVmaXhlZEV2ZW50LT5zZXRUYXJnZXQoZXZlbnQt
PnRhcmdldCgpKTsKKyAgICAgICAgcHJlZml4ZWRFdmVudC0+c2V0Q3VycmVudFRhcmdldChldmVu
dC0+Y3VycmVudFRhcmdldCgpKTsKKyAgICAgICAgcHJlZml4ZWRFdmVudC0+c2V0RXZlbnRQaGFz
ZShldmVudC0+ZXZlbnRQaGFzZSgpKTsKKyAgICAgICAgZmlyZUV2ZW50TGlzdGVuZXJzKHByZWZp
eGVkRXZlbnQuZ2V0KCksIGQsICpsaXN0ZW5lclByZWZpeGVkVmVjdG9yKTsKKyAgICB9CiAgICAg
CiAgICAgcmV0dXJuICFldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRl
eCAzMzRlNDhiNzNlYjhjNDAwMTY1ZDBmNDIzMDNhZGEzMjg5NDUzYTMxLi5jNmQ1ZWUyZGZhMjAz
YTE3YWJlMzMyZTlhMDQ5ZjE5MDczMTk0MDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtMTc5LDcgKzE3OSw3
IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVT
dHlsZSgpCiAgICAgbV9ldmVudHNUb0Rpc3BhdGNoLmNsZWFyKCk7CiAgICAgVmVjdG9yPEV2ZW50
VG9EaXNwYXRjaD46OmNvbnN0X2l0ZXJhdG9yIGV2ZW50c1RvRGlzcGF0Y2hFbmQgPSBldmVudHNU
b0Rpc3BhdGNoLmVuZCgpOwogICAgIGZvciAoVmVjdG9yPEV2ZW50VG9EaXNwYXRjaD46OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gZXZlbnRzVG9EaXNwYXRjaC5iZWdpbigpOyBpdCAhPSBldmVudHNUb0Rp
c3BhdGNoRW5kOyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+ZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS53ZWJraXRUcmFuc2l0aW9uRW5kRXZlbnQpCisgICAgICAgIGlmIChpdC0+ZXZlbnRUeXBl
ID09IGV2ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZlbnQpCiAgICAgICAgICAgICBpdC0+ZWxl
bWVudC0+ZGlzcGF0Y2hFdmVudChXZWJLaXRUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShpdC0+ZXZl
bnRUeXBlLCBpdC0+bmFtZSwgaXQtPmVsYXBzZWRUaW1lKSk7CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIGl0LT5lbGVtZW50LT5kaXNwYXRjaEV2ZW50KFdlYktpdEFuaW1hdGlvbkV2ZW50Ojpj
cmVhdGUoaXQtPmV2ZW50VHlwZSwgaXQtPm5hbWUsIGl0LT5lbGFwc2VkVGltZSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCmlu
ZGV4IDQ5N2NhM2Y1NDg3ODYwYTgxZTIwM2VhOGE2MTUyZTQ0NTIwZGJmMjUuLmIxMjg5YmI4YWUz
YWViNzBjZGNjZjZmOWJlNGVkZDJlMzliODNmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKQEAgLTE1MSwxMyArMTUxLDEz
IEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246Om9uQW5pbWF0aW9uRW5kKGRvdWJsZSBlbGFwc2Vk
VGltZSkKICAgICBpZiAoa2V5ZnJhbWVBbmltKQogICAgICAgICBrZXlmcmFtZUFuaW0tPnNldFVu
YW5pbWF0ZWRTdHlsZShtX3RvU3R5bGUpOwogICAgIAotICAgIHNlbmRUcmFuc2l0aW9uRXZlbnQo
ZXZlbnROYW1lcygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCwgZWxhcHNlZFRpbWUpOworICAg
IHNlbmRUcmFuc2l0aW9uRXZlbnQoZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCwgZWxh
cHNlZFRpbWUpOwogICAgIGVuZEFuaW1hdGlvbigpOwogfQogCiBib29sIEltcGxpY2l0QW5pbWF0
aW9uOjpzZW5kVHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBk
b3VibGUgZWxhcHNlZFRpbWUpCiB7Ci0gICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCku
d2Via2l0VHJhbnNpdGlvbkVuZEV2ZW50KSB7CisgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5h
bWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50KSB7CiAgICAgICAgIERvY3VtZW50OjpMaXN0ZW5lclR5
cGUgbGlzdGVuZXJUeXBlID0gRG9jdW1lbnQ6OlRSQU5TSVRJT05FTkRfTElTVEVORVI7CiAKICAg
ICAgICAgaWYgKHNob3VsZFNlbmRFdmVudEZvckxpc3RlbmVyKGxpc3RlbmVyVHlwZSkpIHsKQEAg
LTE3Niw3ICsxNzYsNyBAQCBib29sIEltcGxpY2l0QW5pbWF0aW9uOjpzZW5kVHJhbnNpdGlvbkV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBkb3VibAogICAgICAgICAgICAgbV9j
b21wQW5pbS0+YW5pbWF0aW9uQ29udHJvbGxlcigpLT5hZGRFdmVudFRvRGlzcGF0Y2goZWxlbWVu
dCwgZXZlbnRUeXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lKTsKIAogICAgICAgICAgICAg
Ly8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgKHVuYW5pbWF0ZWQpIHN0eWxlCi0gICAgICAgICAgICBp
ZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS53ZWJraXRUcmFuc2l0aW9uRW5kRXZlbnQgJiYg
ZWxlbWVudC0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnRO
YW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCAmJiBlbGVtZW50LT5yZW5kZXJlcigpKQogICAgICAg
ICAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoZWxlbWVudC5nZXQoKSk7CiAKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOyAvLyBEaWQgZGlzcGF0Y2ggYW4gZXZlbnQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ODU0YjI3
OGE5OGZhN2YwNzRmOWFjOTExNzgxNmFkOTYyOWE4OTg3Li5jNDNlN2Y5YTBjNmE2MmRmMGViOTA3
MDBjYTc2Yjk0NWUxNGNiNmMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMDEtMTEgIEFs
ZXhpcyBNZW5hcmQgIDxhbGV4aXNAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnByZWZpeGVkIHRy
YW5zaXRpb25lbmQgZXZlbnQgZG9lc24ndCBzZWVtIHRvIGJlIGltcGxlbWVudGVkLCB3aGljaCBi
cmVha3MgbWFueSBzaXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA1NjQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ292ZXIgdGhhdCBldmVudCBkZWxpdmVyeSBpcyBjb3JyZWN0IDogd2UgcmVjZWl2
ZWQgdW5wcmVmaXhlZCBldmVudHMuCisKKyAgICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9u
LWVuZC1ldmVudC1oZWxwZXJzLmpzOgorICAgICAgICAocmVjb3JkVHJhbnNpdGlvbkVuZEV2ZW50
KToKKyAgICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVk
LTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlv
bi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2l0
aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAyLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhl
ZC0wMi5odG1sOiBBZGRlZC4KKwogMjAxMy0wMS0xNSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21t
eXdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IEZpeGluZyBjcmFzaGlu
ZyBidWcgaW4gTWVkaWFTdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25z
L3RyYW5zaXRpb24tZW5kLWV2ZW50LWhlbHBlcnMuanMgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9u
cy90cmFuc2l0aW9uLWVuZC1ldmVudC1oZWxwZXJzLmpzCmluZGV4IGQ3NzczNWJlMmU0OGZlNjAy
MzgxYjVmMWJiYmY2ZmJjOGFkNDcyNGYuLmZhNWYzNTJjMmIyOThmMTRhNmNjZWMzNzlhMDE3ZTcx
NjI2M2IwZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24t
ZW5kLWV2ZW50LWhlbHBlcnMuanMKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNp
dGlvbi1lbmQtZXZlbnQtaGVscGVycy5qcwpAQCAtMTAsMTIgKzEwLDEyIEBAIHZhciBfcHJvY2Vz
c2VkRXZlbnRzID0gZmFsc2U7CiAvKiBDYWxsIHRoaXMgZnVuY3Rpb24gdG8gcmVjb3JkIG1hbnVh
bGx5IHRyYW5zaXRpb24gZW5kIGV2ZW50czoKIAogRnVuY3Rpb24gcGFyYW1ldGVyczoKLSAgICBl
dmVudCBbcmVxdWlyZWRdOiB0aGUgZXZlbnQgcGFzc2VkIHdpdGggIndlYmtpdFRyYW5zaXRpb25F
bmQiCisgICAgZXZlbnQgW3JlcXVpcmVkXTogdGhlIGV2ZW50IHBhc3NlZCB3aXRoICJ3ZWJraXRU
cmFuc2l0aW9uRW5kIiBvciAidHJhbnNpdGlvbmVuZCIKIAogKi8KIGZ1bmN0aW9uIHJlY29yZFRy
YW5zaXRpb25FbmRFdmVudChldmVudCkKIHsKLSAgaWYgKGV2ZW50LnR5cGUgIT0gIndlYmtpdFRy
YW5zaXRpb25FbmQiKQorICBpZiAoZXZlbnQudHlwZSAhPSAid2Via2l0VHJhbnNpdGlvbkVuZCIg
JiYgZXZlbnQudHlwZSAhPSAidHJhbnNpdGlvbmVuZCIgKQogICAgIHRocm93KCJJbnZhbGlkIHRy
YW5zaXRpb24gZW5kIGV2ZW50ISIpOwogCiAgIF9yZWNvcmRlZEV2ZW50cy5wdXNoKFsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJl
Zml4ZWQtMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlv
bi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdhNDgw
MzZiYzNhMTg2ZDk0MTBiOTUxNWRhY2NiNTkyZDgxMDY2MQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDEt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorSW5pdGlhdGluZyBhIHRyYW5zaXRpb24gYW5k
IGNhdGNoaW5nIHRoZSB0cmFuc2l0aW9uIHVucHJlZml4ZWQgZXZlbnQuCisKK1BBU1MgLS0tIFtF
eHBlY3RlZF0gUHJvcGVydHk6IGxlZnQgVGFyZ2V0OiBib3gxIEVsYXBzZWQgVGltZTogMC41CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50
LXVucHJlZml4ZWQtMDEuaHRtbCBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24t
ZW5kLWV2ZW50LXVucHJlZml4ZWQtMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzcxMGNmYzU4NGYxYmEy
MDAwYmMzZWE3NWFlNjVhZWNjZGM4M2NjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
dHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMS5odG1sCkBAIC0w
LDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHN0eWxlPgor
ICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgbGVmdDogMDsKKyAg
ICAgIGhlaWdodDogMTAwcHg7CisgICAgICB3aWR0aDogMTAwcHg7CisgICAgICBtYXJnaW46IDEw
cHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgdHJhbnNpdGlvbi1wcm9w
ZXJ0eTogbGVmdDsKKyAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7CisgICAgICAtd2Vi
a2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24t
ZHVyYXRpb246IDAuNXM7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0idHJhbnNp
dGlvbi1lbmQtZXZlbnQtaGVscGVycy5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKworICAgIHZhciBleHBlY3RlZEVuZEV2ZW50cyA9IFsKKyAgICAgIC8v
IFtwcm9wZXJ0eS1uYW1lLCBlbGVtZW50LWlkLCBlbGFwc2VkLXRpbWUsIGxpc3Rlbl0KKyAgICAg
IFsibGVmdCIsICJib3gxIiwgMC41LCBmYWxzZV0KKyAgICBdOworCisgICAgZnVuY3Rpb24gc2V0
dXBUZXN0KCkKKyAgICB7CisgICAgICB2YXIgYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2JveDEnKTsKKyAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQn
LCByZWNvcmRUcmFuc2l0aW9uRW5kRXZlbnQsIGZhbHNlKTsKKyAgICAgIGJveC5zdHlsZS5sZWZ0
ID0gJzIwMHB4JzsKKyAgICB9CisKKyAgICBydW5UcmFuc2l0aW9uVGVzdChleHBlY3RlZEVuZEV2
ZW50cywgc2V0dXBUZXN0KTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHA+SW5p
dGlhdGluZyBhIHRyYW5zaXRpb24gYW5kIGNhdGNoaW5nIHRoZSB0cmFuc2l0aW9uIHVucHJlZml4
ZWQgZXZlbnQuPC9wPgorCis8ZGl2IGlkPSJjb250YWluZXIiPgorICA8ZGl2IGlkPSJib3gxIiBj
bGFzcz0iYm94Ij48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorCis8
L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0w
Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1l
dmVudC11bnByZWZpeGVkLTAyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWUxNzRkZDg0YTYz
ZDViZmI2ZmMyNGYyYjRlYjhkYjU2ZjMyMzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitJbml0aWF0aW5nIGEgdHJhbnNpdGlvbiBjYXRjaGluZyBv
bmUgdHJhbnNpdGlvbiBldmVudCBvbmx5IGRlc3BpdGUgbGlzdGVuaW5nIHRoZSBwcmVmaXhlZCBh
bmQgdW5wcmVmaXhlZCBldmVudC4KKworUEFTUyAtLS0gW0V4cGVjdGVkXSBQcm9wZXJ0eTogbGVm
dCBUYXJnZXQ6IGJveDEgRWxhcHNlZCBUaW1lOiAwLjUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMi5odG1sIGIv
TGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0w
Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhiZGUwYjk5OGU3NDhhZjMzMDAwOGFjM2Q1MTYxNThiOTJmN2Jj
ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9u
LWVuZC1ldmVudC11bnByZWZpeGVkLTAyLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGU+CisgICAgLmJveCB7CisgICAgICBwb3Np
dGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAwOworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJhY2tncm91bmQt
Y29sb3I6IGJsdWU7CisgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0OworICAgICAgdHJh
bnNpdGlvbi1kdXJhdGlvbjogMC41czsKKyAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0
eTogbGVmdDsKKyAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41czsKKyAgICB9
CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgc3JjPSJ0cmFuc2l0aW9uLWVuZC1ldmVudC1oZWxwZXJz
LmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCisgICAg
dmFyIGV4cGVjdGVkRW5kRXZlbnRzID0gWworICAgICAgLy8gW3Byb3BlcnR5LW5hbWUsIGVsZW1l
bnQtaWQsIGVsYXBzZWQtdGltZSwgbGlzdGVuXQorICAgICAgWyJsZWZ0IiwgImJveDEiLCAwLjUs
IGZhbHNlXQorICAgIF07CisKKyAgICBmdW5jdGlvbiBzZXR1cFRlc3QoKQorICAgIHsKKyAgICAg
IHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94MScpOworICAgICAgZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0VHJhbnNpdGlvbkVuZCcsIHJlY29yZFRyYW5zaXRp
b25FbmRFdmVudCwgZmFsc2UpOworICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndHJh
bnNpdGlvbmVuZCcsIHJlY29yZFRyYW5zaXRpb25FbmRFdmVudCwgZmFsc2UpOworICAgICAgYm94
LnN0eWxlLmxlZnQgPSAnMjAwcHgnOworICAgIH0KKworICAgIHJ1blRyYW5zaXRpb25UZXN0KGV4
cGVjdGVkRW5kRXZlbnRzLCBzZXR1cFRlc3QpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorCis8cD5Jbml0aWF0aW5nIGEgdHJhbnNpdGlvbiBjYXRjaGluZyBvbmUgdHJhbnNpdGlvbiBl
dmVudCBvbmx5IGRlc3BpdGUgbGlzdGVuaW5nIHRoZSBwcmVmaXhlZCBhbmQgdW5wcmVmaXhlZCBl
dmVudC48L3A+CisKKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgIDxkaXYgaWQ9ImJveDEiIGNsYXNz
PSJib3giPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+CisKKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182806</attachid>
            <date>2013-01-15 10:50:14 -0800</date>
            <delta_ts>2013-01-15 11:19:09 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-105647-20130115154715.patch</filename>
            <type>text/plain</type>
            <size>15195</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU0YWI2NGE3MWQxNTNm
MGVjZWU3MjQzMTQxYjA4YzBiOWViOTFjYS4uNDlmYjI3MmFlYjJlNmM5N2VkMDg2OGFjYzdhMGZm
NjEyYWNkMjg0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAxLTE1ICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5wcmVmaXhlZCB0cmFu
c2l0aW9uZW5kIGV2ZW50IGRvZXNuJ3Qgc2VlbSB0byBiZSBpbXBsZW1lbnRlZCwgd2hpY2ggYnJl
YWtzIG1hbnkgc2l0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNTY0NworCisgICAgICAgIFJldmlld2VkIGJ5IEp1bGllbiBDaGFmZnJhaXguCisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRyYW5zaXRpb25lbmQgZXZlbnQgZGVsaXZlcnkgYXMg
cGFydCBhcyB0aGUgdW5wcmVmaXhpbmcKKyAgICAgICAgd29yayBvbiBDU1MgVHJhbnNpdGlvbnMu
IFRoaXMgcGF0Y2ggYWRkcyBzb21lIGNvZGUgaW4gRXZlbnRUYXJnZXQgdG8KKyAgICAgICAgZmln
dXJlIG91dCBpZiB0aGUgY3VycmVudCBldmVudCB0byBkaXNwYXRjaCBoYXMgYSBwcmVmaXhlZCB2
ZXJzaW9uIG9yCisgICAgICAgIG5vdC4gVGhlbiBmcm9tIHRoZSBsaXN0IG9mIGxpc3RlbmVycyB3
ZSBkZWR1Y2Ugd2hpY2ggZXZlbnQgc2hvdWxkIGJlIGRlbGl2ZXJlZAorICAgICAgICAocHJlZml4
ZWQgb3IgdW5wcmVmaXhlZCkuCisKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgdGhlIENTUyBUcmFu
c2l0aW9ucywgV2ViS2l0IHdpbGwgbm93IGJlaGF2ZSBhcyBmb2xsb3cgOgorICAgICAgICBpZiBh
biBldmVudCBsaXN0ZW5lciBpcyBhdHRhY2hlZCB0byB0aGUgcHJlZml4ZWQgdmVyc2lvbiBvZiB0
aGUKKyAgICAgICAgdHJhbnNpdGlvbiBlbmQgZXZlbnQgdGhlbiBvbmx5IHRoZSBwcmVmaXhlZCBl
dmVudCB3aWxsIGJlIHNlbmQuCisgICAgICAgIElmIGFuIGV2ZW50IGxpc3RlbmVyIGlzIGF0dGFj
aGVkIHRvIHRoZSB1bnByZWZpeGVkIHZlcnNpb24KKyAgICAgICAgb2YgdGhlIHRyYW5zaXRpb24g
ZW5kIGV2ZW50IHRoZW4gb25seSB0aGUgdW5wcmVmaXhlZCBldmVudCB3aWxsIGJlCisgICAgICAg
IHNlbmQuIElmIHRoZXJlIGFyZSBldmVudCBsaXN0ZW5lcnMgb24gYm90aCB1bnByZWZpeGVkIGFu
ZCBwcmVmaXhlZAorICAgICAgICBldmVudHMgdGhlbiBvbmx5IHRoZSB1bnByZWZpeGVkIGV2ZW50
IHdpbGwgYmUgc2VuZC4KKworICAgICAgICBUaGUgYmVoYXZpb3Igd2FzIGRpc2N1c3NlZCBoZXJl
IDoKKyAgICAgICAgaHR0cDovL2xpc3RzLndlYmtpdC5vcmcvcGlwZXJtYWlsL3dlYmtpdC1kZXYv
MjAxMy1KYW51YXJ5LzAyMzMwMS5odG1sLgorCisgICAgICAgIFRlc3RzOiB0cmFuc2l0aW9ucy90
cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAxLmh0bWwKKyAgICAgICAgICAgICAgIHRy
YW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDIuaHRtbAorCisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRM
aXN0ZW5lclR5cGVJZk5lZWRlZCk6IFJlZ2lzdGVyIHRoZSBwcmVmaXhlZAorICAgICAgICBsaXN0
ZW5lciB0b28gYXMgdHJhbnNpdGlvbmVuZCBsaXN0ZW5lcnMgc28gdGhhdCB3ZSBwcm9wZXJseSBk
aXNwYXRjaAorICAgICAgICBldmVudHMgZm9yIHRoZW0uCisgICAgICAgICogZG9tL0V2ZW50TmFt
ZXMuaDoKKyAgICAgICAgKFdlYkNvcmUpOiBBZGQgdGhlIG5ldyB0cmFuc2l0aW9uZW5kIG5hbWUu
CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZU1hdGNoaW5nUHJlZml4ZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpwcmVmaXhlZFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OmZpcmVFdmVudExpc3RlbmVycyk6IEZp
bmQgb3V0IGlmIHNvbWVib2R5IGlzCisgICAgICAgIGxpc3RlbmluZyBmb3IgdW5wcmVmaXhlZCBl
dmVudHMsIGlmIHNvIHdlIGFsd2F5cyBzZW5kIHRoZSB1bnByZWZpeGVkCisgICAgICAgIGV2ZW50
LCBpZiBub3QgdGhlbiB3ZSBjcmVhdGUgYSBwcmVmaXhlZCBldmVudCBhbmQgc2VuZCBpdC4KKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRl
U3R5bGUpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjpzZW5kVHJhbnNpdGlvbkV2ZW50
KTogQWx3YXlzIGNyZWF0ZSBieQorICAgICAgICBkZWZhdWx0IHVucHJlZml4ZWQgZXZlbnRzLgor
CiAyMDEzLTAxLTE0ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbVjhdIE1ha2UgYW4gSXNvbGF0ZSBwYXJhbWV0ZXIgbWFuZGF0b3J5IGluIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmODU5ZGVh
NzI5MzAwYjliMWRlZGI4NjhiMzJiYTEzYmVjNzQ4Y2U1Li5iMmZhOGE3ZGU4Y2ZkOWNlNWRiNDNi
MGI2ZDkyZWY5OGE3NDBiZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTM3MjcsNyAr
MzcyNyw3IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlKQogICAgICAgICBhZGRMaXN0ZW5lclR5cGUoQU5JTUFUSU9O
RU5EX0xJU1RFTkVSKTsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndl
YmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkV2ZW50KQogICAgICAgICBhZGRMaXN0ZW5lclR5cGUoQU5J
TUFUSU9OSVRFUkFUSU9OX0xJU1RFTkVSKTsKLSAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZl
bnROYW1lcygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCkKKyAgICBlbHNlIGlmIChldmVudFR5
cGUgPT0gZXZlbnROYW1lcygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCB8fCBldmVudFR5cGUg
PT0gZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCkKICAgICAgICAgYWRkTGlzdGVuZXJU
eXBlKFRSQU5TSVRJT05FTkRfTElTVEVORVIpOwogICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBl
dmVudE5hbWVzKCkuYmVmb3JlbG9hZEV2ZW50KQogICAgICAgICBhZGRMaXN0ZW5lclR5cGUoQkVG
T1JFTE9BRF9MSVNURU5FUik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRO
YW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCBkYzNlZmJlNzgz
OWMxZGExZTU5ZjUyZGUwNjI1Mjg4N2I2NjAzNjUwLi41Y2Y2MjE5NWFiMTYyZjMwZjU5ZTc3ZTkz
OTQ5ZmE1Mjk4ZmY2ZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTE4Miw2ICsxODIs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8od2Via2l0QW5pbWF0aW9uSXRlcmF0
aW9uKSBcCiAgICAgXAogICAgIG1hY3JvKHdlYmtpdFRyYW5zaXRpb25FbmQpIFwKKyAgICBtYWNy
byh0cmFuc2l0aW9uZW5kKSBcCiAgICAgXAogICAgIG1hY3JvKG9yaWVudGF0aW9uY2hhbmdlKSBc
CiAgICAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKaW5kZXggMjE0ZjlhM2U2MGYwNDU3
NTQ5NzY5M2UwN2Q5Y2NkZDg4MWZlYWE0ZS4uZTU1NDhkN2Q0ZDA5YTk5NDhhODFiMDhmYzM1OWJk
MjI3NWFhY2MwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCkBAIC0zNSw2ICszNSw3
IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEV4Y2VwdGlvbi5oIgogI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIldlYktpdFRyYW5z
aXRpb25FdmVudC5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTE2MCw2ICsxNjEs
MjggQEAgdm9pZCBFdmVudFRhcmdldDo6dW5jYXVnaHRFeGNlcHRpb25JbkV2ZW50SGFuZGxlcigp
CiB7CiB9CiAKK3N0YXRpYyBQYXNzUmVmUHRyPEV2ZW50PiBjcmVhdGVNYXRjaGluZ1ByZWZpeGVk
RXZlbnQoY29uc3QgRXZlbnQqIGV2ZW50KQoreworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2
ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZlbnQpIHsKKyAgICAgICAgY29uc3QgV2ViS2l0VHJh
bnNpdGlvbkV2ZW50KiB0cmFuc2l0aW9uRXZlbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBXZWJLaXRU
cmFuc2l0aW9uRXZlbnQqPihldmVudCk7CisgICAgICAgIFJlZlB0cjxFdmVudD4gcHJlZml4ZWRF
dmVudCA9IFdlYktpdFRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJraXRU
cmFuc2l0aW9uRW5kRXZlbnQsIHRyYW5zaXRpb25FdmVudC0+cHJvcGVydHlOYW1lKCksIHRyYW5z
aXRpb25FdmVudC0+ZWxhcHNlZFRpbWUoKSk7CisgICAgICAgIHByZWZpeGVkRXZlbnQtPnNldFRh
cmdldChldmVudC0+dGFyZ2V0KCkpOworICAgICAgICBwcmVmaXhlZEV2ZW50LT5zZXRDdXJyZW50
VGFyZ2V0KGV2ZW50LT5jdXJyZW50VGFyZ2V0KCkpOworICAgICAgICBwcmVmaXhlZEV2ZW50LT5z
ZXRFdmVudFBoYXNlKGV2ZW50LT5ldmVudFBoYXNlKCkpOworICAgICAgICByZXR1cm4gcHJlZml4
ZWRFdmVudC5yZWxlYXNlKCk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiAwOworfQorCitzdGF0aWMgQXRvbWljU3RyaW5nIHByZWZpeGVkVHlwZShjb25zdCBF
dmVudCogZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnRy
YW5zaXRpb25lbmRFdmVudCkKKyAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS53ZWJraXRUcmFu
c2l0aW9uRW5kRXZlbnQ7CisKKyAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKK30KKwogYm9vbCBF
dmVudFRhcmdldDo6ZmlyZUV2ZW50TGlzdGVuZXJzKEV2ZW50KiBldmVudCkKIHsKICAgICBBU1NF
UlQoIU5vRXZlbnREaXNwYXRjaEFzc2VydGlvbjo6aXNFdmVudERpc3BhdGNoRm9yYmlkZGVuKCkp
OwpAQCAtMTY5LDEwICsxOTIsMTcgQEAgYm9vbCBFdmVudFRhcmdldDo6ZmlyZUV2ZW50TGlzdGVu
ZXJzKEV2ZW50KiBldmVudCkKICAgICBpZiAoIWQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0g
ICAgRXZlbnRMaXN0ZW5lclZlY3RvciogbGlzdGVuZXJWZWN0b3IgPSBkLT5ldmVudExpc3RlbmVy
TWFwLmZpbmQoZXZlbnQtPnR5cGUoKSk7CisgICAgRXZlbnRMaXN0ZW5lclZlY3RvciogbGlzdGVu
ZXJQcmVmaXhlZFZlY3RvciA9IDA7CisgICAgQXRvbWljU3RyaW5nIHByZWZpeGVkVHlwZU5hbWUg
PSBwcmVmaXhlZFR5cGUoZXZlbnQpOworICAgIGlmICghcHJlZml4ZWRUeXBlTmFtZS5pc0VtcHR5
KCkpCisgICAgICAgIGxpc3RlbmVyUHJlZml4ZWRWZWN0b3IgPSBkLT5ldmVudExpc3RlbmVyTWFw
LmZpbmQocHJlZml4ZWRUeXBlTmFtZSk7CisKKyAgICBFdmVudExpc3RlbmVyVmVjdG9yKiBsaXN0
ZW5lclVucHJlZml4ZWRWZWN0b3IgPSBkLT5ldmVudExpc3RlbmVyTWFwLmZpbmQoZXZlbnQtPnR5
cGUoKSk7CiAKLSAgICBpZiAobGlzdGVuZXJWZWN0b3IpCi0gICAgICAgIGZpcmVFdmVudExpc3Rl
bmVycyhldmVudCwgZCwgKmxpc3RlbmVyVmVjdG9yKTsKKyAgICBpZiAobGlzdGVuZXJVbnByZWZp
eGVkVmVjdG9yKQorICAgICAgICBmaXJlRXZlbnRMaXN0ZW5lcnMoZXZlbnQsIGQsICpsaXN0ZW5l
clVucHJlZml4ZWRWZWN0b3IpOworICAgIGVsc2UgaWYgKGxpc3RlbmVyUHJlZml4ZWRWZWN0b3Ip
CisgICAgICAgIGZpcmVFdmVudExpc3RlbmVycyhjcmVhdGVNYXRjaGluZ1ByZWZpeGVkRXZlbnQo
ZXZlbnQpLmdldCgpLCBkLCAqbGlzdGVuZXJQcmVmaXhlZFZlY3Rvcik7CiAgICAgCiAgICAgcmV0
dXJuICFldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCAzMzRlNDhi
NzNlYjhjNDAwMTY1ZDBmNDIzMDNhZGEzMjg5NDUzYTMxLi5jNmQ1ZWUyZGZhMjAzYTE3YWJlMzMy
ZTlhMDQ5ZjE5MDczMTk0MDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQg
QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVTdHlsZSgpCiAg
ICAgbV9ldmVudHNUb0Rpc3BhdGNoLmNsZWFyKCk7CiAgICAgVmVjdG9yPEV2ZW50VG9EaXNwYXRj
aD46OmNvbnN0X2l0ZXJhdG9yIGV2ZW50c1RvRGlzcGF0Y2hFbmQgPSBldmVudHNUb0Rpc3BhdGNo
LmVuZCgpOwogICAgIGZvciAoVmVjdG9yPEV2ZW50VG9EaXNwYXRjaD46OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gZXZlbnRzVG9EaXNwYXRjaC5iZWdpbigpOyBpdCAhPSBldmVudHNUb0Rpc3BhdGNoRW5k
OyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+ZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS53ZWJr
aXRUcmFuc2l0aW9uRW5kRXZlbnQpCisgICAgICAgIGlmIChpdC0+ZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZlbnQpCiAgICAgICAgICAgICBpdC0+ZWxlbWVudC0+ZGlz
cGF0Y2hFdmVudChXZWJLaXRUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShpdC0+ZXZlbnRUeXBlLCBp
dC0+bmFtZSwgaXQtPmVsYXBzZWRUaW1lKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGl0
LT5lbGVtZW50LT5kaXNwYXRjaEV2ZW50KFdlYktpdEFuaW1hdGlvbkV2ZW50OjpjcmVhdGUoaXQt
PmV2ZW50VHlwZSwgaXQtPm5hbWUsIGl0LT5lbGFwc2VkVGltZSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCmluZGV4IDQ5N2Nh
M2Y1NDg3ODYwYTgxZTIwM2VhOGE2MTUyZTQ0NTIwZGJmMjUuLmIxMjg5YmI4YWUzYWViNzBjZGNj
ZjZmOWJlNGVkZDJlMzliODNmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKQEAgLTE1MSwxMyArMTUxLDEzIEBAIHZvaWQg
SW1wbGljaXRBbmltYXRpb246Om9uQW5pbWF0aW9uRW5kKGRvdWJsZSBlbGFwc2VkVGltZSkKICAg
ICBpZiAoa2V5ZnJhbWVBbmltKQogICAgICAgICBrZXlmcmFtZUFuaW0tPnNldFVuYW5pbWF0ZWRT
dHlsZShtX3RvU3R5bGUpOwogICAgIAotICAgIHNlbmRUcmFuc2l0aW9uRXZlbnQoZXZlbnROYW1l
cygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCwgZWxhcHNlZFRpbWUpOworICAgIHNlbmRUcmFu
c2l0aW9uRXZlbnQoZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCwgZWxhcHNlZFRpbWUp
OwogICAgIGVuZEFuaW1hdGlvbigpOwogfQogCiBib29sIEltcGxpY2l0QW5pbWF0aW9uOjpzZW5k
VHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBkb3VibGUgZWxh
cHNlZFRpbWUpCiB7Ci0gICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkud2Via2l0VHJh
bnNpdGlvbkVuZEV2ZW50KSB7CisgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudHJh
bnNpdGlvbmVuZEV2ZW50KSB7CiAgICAgICAgIERvY3VtZW50OjpMaXN0ZW5lclR5cGUgbGlzdGVu
ZXJUeXBlID0gRG9jdW1lbnQ6OlRSQU5TSVRJT05FTkRfTElTVEVORVI7CiAKICAgICAgICAgaWYg
KHNob3VsZFNlbmRFdmVudEZvckxpc3RlbmVyKGxpc3RlbmVyVHlwZSkpIHsKQEAgLTE3Niw3ICsx
NzYsNyBAQCBib29sIEltcGxpY2l0QW5pbWF0aW9uOjpzZW5kVHJhbnNpdGlvbkV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBkb3VibAogICAgICAgICAgICAgbV9jb21wQW5pbS0+
YW5pbWF0aW9uQ29udHJvbGxlcigpLT5hZGRFdmVudFRvRGlzcGF0Y2goZWxlbWVudCwgZXZlbnRU
eXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lKTsKIAogICAgICAgICAgICAgLy8gUmVzdG9y
ZSB0aGUgb3JpZ2luYWwgKHVuYW5pbWF0ZWQpIHN0eWxlCi0gICAgICAgICAgICBpZiAoZXZlbnRU
eXBlID09IGV2ZW50TmFtZXMoKS53ZWJraXRUcmFuc2l0aW9uRW5kRXZlbnQgJiYgZWxlbWVudC0+
cmVuZGVyZXIoKSkKKyAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnRy
YW5zaXRpb25lbmRFdmVudCAmJiBlbGVtZW50LT5yZW5kZXJlcigpKQogICAgICAgICAgICAgICAg
IHNldE5lZWRzU3R5bGVSZWNhbGMoZWxlbWVudC5nZXQoKSk7CiAKICAgICAgICAgICAgIHJldHVy
biB0cnVlOyAvLyBEaWQgZGlzcGF0Y2ggYW4gZXZlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ODU0YjI3OGE5OGZhN2Yw
NzRmOWFjOTExNzgxNmFkOTYyOWE4OTg3Li4wOTRkYmYyOWU5YjNjMDljYjc4ZTY3NjNlNDM5MmFh
MmExMjljMDA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMDEtMTUgIEFsZXhpcyBNZW5h
cmQgIDxhbGV4aXNAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnByZWZpeGVkIHRyYW5zaXRpb25l
bmQgZXZlbnQgZG9lc24ndCBzZWVtIHRvIGJlIGltcGxlbWVudGVkLCB3aGljaCBicmVha3MgbWFu
eSBzaXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA1NjQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSnVsaWVuIENoYWZmcmFpeC4KKworICAgICAg
ICBDb3ZlciB0aGF0IGV2ZW50IGRlbGl2ZXJ5IGlzIGNvcnJlY3QgOiB3ZSByZWNlaXZlZCB1bnBy
ZWZpeGVkIGV2ZW50cy4KKworICAgICAgICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2
ZW50LWhlbHBlcnMuanM6CisgICAgICAgIChyZWNvcmRUcmFuc2l0aW9uRW5kRXZlbnQpOgorICAg
ICAgICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDEtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1l
dmVudC11bnByZWZpeGVkLTAxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRyYW5zaXRpb25zL3Ry
YW5zaXRpb24tZW5kLWV2ZW50LXVucHJlZml4ZWQtMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAyLmh0
bWw6IEFkZGVkLgorCiAyMDEzLTAxLTE1ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29n
bGUuY29tPgogCiAgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogRml4aW5nIGNyYXNoaW5nIGJ1ZyBp
biBNZWRpYVN0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNp
dGlvbi1lbmQtZXZlbnQtaGVscGVycy5qcyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5z
aXRpb24tZW5kLWV2ZW50LWhlbHBlcnMuanMKaW5kZXggZDc3NzM1YmUyZTQ4ZmU2MDIzODFiNWYx
YmJiZjZmYmM4YWQ0NzI0Zi4uZmE1ZjM1MmMyYjI5OGYxNGE2Y2NlYzM3OWEwMTdlNzE2MjYzYjBk
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZl
bnQtaGVscGVycy5qcworKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVu
ZC1ldmVudC1oZWxwZXJzLmpzCkBAIC0xMCwxMiArMTAsMTIgQEAgdmFyIF9wcm9jZXNzZWRFdmVu
dHMgPSBmYWxzZTsKIC8qIENhbGwgdGhpcyBmdW5jdGlvbiB0byByZWNvcmQgbWFudWFsbHkgdHJh
bnNpdGlvbiBlbmQgZXZlbnRzOgogCiBGdW5jdGlvbiBwYXJhbWV0ZXJzOgotICAgIGV2ZW50IFty
ZXF1aXJlZF06IHRoZSBldmVudCBwYXNzZWQgd2l0aCAid2Via2l0VHJhbnNpdGlvbkVuZCIKKyAg
ICBldmVudCBbcmVxdWlyZWRdOiB0aGUgZXZlbnQgcGFzc2VkIHdpdGggIndlYmtpdFRyYW5zaXRp
b25FbmQiIG9yICJ0cmFuc2l0aW9uZW5kIgogCiAqLwogZnVuY3Rpb24gcmVjb3JkVHJhbnNpdGlv
bkVuZEV2ZW50KGV2ZW50KQogewotICBpZiAoZXZlbnQudHlwZSAhPSAid2Via2l0VHJhbnNpdGlv
bkVuZCIpCisgIGlmIChldmVudC50eXBlICE9ICJ3ZWJraXRUcmFuc2l0aW9uRW5kIiAmJiBldmVu
dC50eXBlICE9ICJ0cmFuc2l0aW9uZW5kIiApCiAgICAgdGhyb3coIkludmFsaWQgdHJhbnNpdGlv
biBlbmQgZXZlbnQhIik7CiAKICAgX3JlY29yZGVkRXZlbnRzLnB1c2goWwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0w
MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1l
dmVudC11bnByZWZpeGVkLTAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2E0ODAzNmJjM2Ex
ODZkOTQxMGI5NTE1ZGFjY2I1OTJkODEwNjYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVmaXhlZC0wMS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitJbml0aWF0aW5nIGEgdHJhbnNpdGlvbiBhbmQgY2F0Y2hp
bmcgdGhlIHRyYW5zaXRpb24gdW5wcmVmaXhlZCBldmVudC4KKworUEFTUyAtLS0gW0V4cGVjdGVk
XSBQcm9wZXJ0eTogbGVmdCBUYXJnZXQ6IGJveDEgRWxhcHNlZCBUaW1lOiAwLjUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdW5wcmVm
aXhlZC0wMS5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZl
bnQtdW5wcmVmaXhlZC0wMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3NzEwY2ZjNTg0ZjFiYTIwMDBiYzNl
YTc1YWU2NWFlY2NkYzgzY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0
aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAxLmh0bWwKQEAgLTAsMCArMSw0
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGU+CisgICAgLmJv
eCB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAwOworICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAg
ICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBs
ZWZ0OworICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41czsKKyAgICAgIC13ZWJraXQtdHJh
bnNpdGlvbi1wcm9wZXJ0eTogbGVmdDsKKyAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlv
bjogMC41czsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgc3JjPSJ0cmFuc2l0aW9uLWVu
ZC1ldmVudC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorCisgICAgdmFyIGV4cGVjdGVkRW5kRXZlbnRzID0gWworICAgICAgLy8gW3Byb3Bl
cnR5LW5hbWUsIGVsZW1lbnQtaWQsIGVsYXBzZWQtdGltZSwgbGlzdGVuXQorICAgICAgWyJsZWZ0
IiwgImJveDEiLCAwLjUsIGZhbHNlXQorICAgIF07CisKKyAgICBmdW5jdGlvbiBzZXR1cFRlc3Qo
KQorICAgIHsKKyAgICAgIHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94MScp
OworICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIHJlY29y
ZFRyYW5zaXRpb25FbmRFdmVudCwgZmFsc2UpOworICAgICAgYm94LnN0eWxlLmxlZnQgPSAnMjAw
cHgnOworICAgIH0KKworICAgIHJ1blRyYW5zaXRpb25UZXN0KGV4cGVjdGVkRW5kRXZlbnRzLCBz
ZXR1cFRlc3QpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8cD5Jbml0aWF0aW5n
IGEgdHJhbnNpdGlvbiBhbmQgY2F0Y2hpbmcgdGhlIHRyYW5zaXRpb24gdW5wcmVmaXhlZCBldmVu
dC48L3A+CisKKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgIDxkaXYgaWQ9ImJveDEiIGNsYXNzPSJi
b3giPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+CisKKzwvYm9keT4K
KzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXVu
cHJlZml4ZWQtMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllZTE3NGRkODRhNjNkNWJmYjZm
YzI0ZjJiNGViOGRiNTZmMzIzNzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90cmFu
c2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKK0luaXRpYXRpbmcgYSB0cmFuc2l0aW9uIGNhdGNoaW5nIG9uZSB0cmFu
c2l0aW9uIGV2ZW50IG9ubHkgZGVzcGl0ZSBsaXN0ZW5pbmcgdGhlIHByZWZpeGVkIGFuZCB1bnBy
ZWZpeGVkIGV2ZW50LgorCitQQVNTIC0tLSBbRXhwZWN0ZWRdIFByb3BlcnR5OiBsZWZ0IFRhcmdl
dDogYm94MSBFbGFwc2VkIFRpbWU6IDAuNQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFu
c2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAyLmh0bWwgYi9MYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC11bnByZWZpeGVkLTAyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGJkZTBiOTk4ZTc0OGFmMzMwMDA4YWMzZDUxNjE1OGI5MmY3YmNmMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2
ZW50LXVucHJlZml4ZWQtMDIuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZT4KKyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiBy
ZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDA7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjog
Ymx1ZTsKKyAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7CisgICAgICB0cmFuc2l0aW9u
LWR1cmF0aW9uOiAwLjVzOworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0
OworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzOworICAgIH0KKyAgPC9z
dHlsZT4KKyAgPHNjcmlwdCBzcmM9InRyYW5zaXRpb24tZW5kLWV2ZW50LWhlbHBlcnMuanMiPjwv
c2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKKyAgICB2YXIgZXhw
ZWN0ZWRFbmRFdmVudHMgPSBbCisgICAgICAvLyBbcHJvcGVydHktbmFtZSwgZWxlbWVudC1pZCwg
ZWxhcHNlZC10aW1lLCBsaXN0ZW5dCisgICAgICBbImxlZnQiLCAiYm94MSIsIDAuNSwgZmFsc2Vd
CisgICAgXTsKKworICAgIGZ1bmN0aW9uIHNldHVwVGVzdCgpCisgICAgeworICAgICAgdmFyIGJv
eCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gxJyk7CisgICAgICBkb2N1bWVudC5hZGRF
dmVudExpc3RlbmVyKCd3ZWJraXRUcmFuc2l0aW9uRW5kJywgcmVjb3JkVHJhbnNpdGlvbkVuZEV2
ZW50LCBmYWxzZSk7CisgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0cmFuc2l0aW9u
ZW5kJywgcmVjb3JkVHJhbnNpdGlvbkVuZEV2ZW50LCBmYWxzZSk7CisgICAgICBib3guc3R5bGUu
bGVmdCA9ICcyMDBweCc7CisgICAgfQorCisgICAgcnVuVHJhbnNpdGlvblRlc3QoZXhwZWN0ZWRF
bmRFdmVudHMsIHNldHVwVGVzdCk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxw
PkluaXRpYXRpbmcgYSB0cmFuc2l0aW9uIGNhdGNoaW5nIG9uZSB0cmFuc2l0aW9uIGV2ZW50IG9u
bHkgZGVzcGl0ZSBsaXN0ZW5pbmcgdGhlIHByZWZpeGVkIGFuZCB1bnByZWZpeGVkIGV2ZW50Ljwv
cD4KKworPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgPGRpdiBpZD0iYm94MSIgY2xhc3M9ImJveCI+
PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKworPC9ib2R5PgorPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>