<?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>32482</bug_id>
          
          <creation_ts>2009-12-13 02:34:56 -0800</creation_ts>
          <short_desc>[Qt] Add support for keyboard modifiers to TouchEvent</short_desc>
          <delta_ts>2009-12-14 12:57:44 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>32484</blocked>
    
    <blocked>32485</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Hausmann">hausmann</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jonni.rainisto</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>171183</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-12-13 02:34:56 -0800</bug_when>
    <thetext>The iPhone&apos;s TouchEvent interface provides access to the keyboard modifiers as properties.

QTouchEvent has the same properties and it should be straight-forward to map those and test the mapping.

(This issue is part of http://bugreports.qt.nokia.com/browse/QTWEBKIT-20 )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171249</commentid>
    <comment_count>1</comment_count>
      <attachid>44766</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-12-13 14:52:53 -0800</bug_when>
    <thetext>Created attachment 44766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171250</commentid>
    <comment_count>2</comment_count>
      <attachid>44767</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-12-13 14:55:38 -0800</bug_when>
    <thetext>Created attachment 44767
Patch with corrected coding style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171251</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-13 14:56:54 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44767 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171287</commentid>
    <comment_count>4</comment_count>
      <attachid>44767</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-12-13 19:51:07 -0800</bug_when>
    <thetext>Comment on attachment 44767
Patch with corrected coding style

Do you plan to do dump the other modifiers in the test case too? It would be interesting to set two modifiers at the same time... mostly to test the bit setting, clearling logic in the Event Sender :)


&gt;      : MouseRelatedEvent(type, true, true, view, 0, screenX, screenY, pageX, pageY,
&gt; -                        false, false, false, false)
&gt; +                        ctrlKey, altKey, shiftKey, metaKey)

maybe add isSimulated as well... that is the only missing one from MouseRelatedEvent...



&gt; +            bool ctrlKey, bool altKey, bool shiftKey, bool metaKey);
&gt;  
&gt;      virtual bool isTo
&gt; +        : m_type(TouchStart)
&gt; +        , m_shiftKey(false)
&gt; +        , m_ctrlKey(false)
&gt; +        , m_altKey(false)
&gt; +        , m_metaKey(false)
&gt; +    {}


and in Qt you change the order... but I don&apos;t see an issue with it.

&gt; +void EventSender::setTouchModifier(const QString &amp;modifier, bool enable)
&gt; +{
&gt; +#if QT_VERSION &gt;= QT_VERSION_CHECK(4, 6, 0)
&gt; +    Qt::KeyboardModifier mod = Qt::NoModifier;
&gt; +    if (!modifier.compare(QLatin1String(&quot;shift&quot;), Qt::CaseInsensitive))
&gt; +        mod = Qt::ShiftModifier;
&gt; +    else if (!modifier.compare(QLatin1String(&quot;alt&quot;), Qt::CaseInsensitive))
&gt; +        mod = Qt::AltModifier;
&gt; +    else if (!modifier.compare(QLatin1String(&quot;meta&quot;), Qt::CaseInsensitive))
&gt; +        mod = Qt::MetaModifier;
&gt; +    else if (!modifier.compare(QLatin1String(&quot;ctrl&quot;), Qt::CaseInsensitive))
&gt; +        mod = Qt::ControlModifier;

I&apos;m confused about the &quot;!&quot;. Can you explain?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171301</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-12-13 23:42:24 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 44767 [details])
&gt; Do you plan to do dump the other modifiers in the test case too? It would be
&gt; interesting to set two modifiers at the same time... mostly to test the bit
&gt; setting, clearling logic in the Event Sender :)

Ok, will do :)

&gt; &gt;      : MouseRelatedEvent(type, true, true, view, 0, screenX, screenY, pageX, pageY,
&gt; &gt; -                        false, false, false, false)
&gt; &gt; +                        ctrlKey, altKey, shiftKey, metaKey)
&gt; 
&gt; maybe add isSimulated as well... that is the only missing one from
&gt; MouseRelatedEvent...

Hm, I could, but it would be completely unused AFAICS.

&gt; &gt; +            bool ctrlKey, bool altKey, bool shiftKey, bool metaKey);
&gt; &gt;  
&gt; &gt;      virtual bool isTo
&gt; &gt; +        : m_type(TouchStart)
&gt; &gt; +        , m_shiftKey(false)
&gt; &gt; +        , m_ctrlKey(false)
&gt; &gt; +        , m_altKey(false)
&gt; &gt; +        , m_metaKey(false)
&gt; &gt; +    {}
&gt; 
&gt; 
&gt; and in Qt you change the order... but I don&apos;t see an issue with it.

Hehe, copy &amp; paste. Will fix

&gt; &gt; +void EventSender::setTouchModifier(const QString &amp;modifier, bool enable)
&gt; &gt; +{
&gt; &gt; +#if QT_VERSION &gt;= QT_VERSION_CHECK(4, 6, 0)
&gt; &gt; +    Qt::KeyboardModifier mod = Qt::NoModifier;
&gt; &gt; +    if (!modifier.compare(QLatin1String(&quot;shift&quot;), Qt::CaseInsensitive))
&gt; &gt; +        mod = Qt::ShiftModifier;
&gt; &gt; +    else if (!modifier.compare(QLatin1String(&quot;alt&quot;), Qt::CaseInsensitive))
&gt; &gt; +        mod = Qt::AltModifier;
&gt; &gt; +    else if (!modifier.compare(QLatin1String(&quot;meta&quot;), Qt::CaseInsensitive))
&gt; &gt; +        mod = Qt::MetaModifier;
&gt; &gt; +    else if (!modifier.compare(QLatin1String(&quot;ctrl&quot;), Qt::CaseInsensitive))
&gt; &gt; +        mod = Qt::ControlModifier;
&gt; 
&gt; I&apos;m confused about the &quot;!&quot;. Can you explain?

QString::compare returns an int, similar to strcmp, which is zero when the strings are equal ;(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171302</commentid>
    <comment_count>6</comment_count>
      <attachid>44776</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-12-13 23:51:05 -0800</bug_when>
    <thetext>Created attachment 44776
Updated patch with better tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171305</commentid>
    <comment_count>7</comment_count>
      <attachid>44778</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-12-13 23:53:11 -0800</bug_when>
    <thetext>Created attachment 44778
Updated patch with indenting glitch in TouchEvent.idl fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171307</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-13 23:56:16 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44778 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171517</commentid>
    <comment_count>9</comment_count>
      <attachid>44778</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-14 12:57:39 -0800</bug_when>
    <thetext>Comment on attachment 44778
Updated patch with indenting glitch in TouchEvent.idl fixed

Clearing flags on attachment: 44778

Committed r52113: &lt;http://trac.webkit.org/changeset/52113&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171518</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-14 12:57:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44766</attachid>
            <date>2009-12-13 14:52:53 -0800</date>
            <delta_ts>2009-12-13 14:55:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32482-20091213235250.patch</filename>
            <type>text/plain</type>
            <size>15238</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMTQ1ZDdkLi41OTg3NTU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTIt
MTMgIFNpbW9uIEhhdXNtYW5uICA8aGF1c21hbm5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEV4dGVuZCBiYXNpYyB0b3Vj
aCBldmVudCB0ZXN0IHdpdGggYSBzaW1wbGUga2V5Ym9hcmQgbW9kaWZpZXIgdGVzdC4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0ODIKKworICAg
ICAgICAqIGZhc3QvZXZlbnRzL2Jhc2ljLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL2Jhc2ljLXRvdWNoLWV2ZW50cy5qczoKKyAg
ICAgICAgKHNpbmdsZVRvdWNoU2VxdWVuY2UpOgorCiAyMDA5LTEyLTEyICBDc2FiYSBPc3p0cm9n
b27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBNaXNzaW5nIGZvcndhcmQg
ZW50cmllcyB3aGVuIGR1bXBpbmcgYmFjay9mb3J3YXJkIGxpc3QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2Jhc2ljLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9iYXNpYy10b3VjaC1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4
IDg1ZWRlNzUuLjczYzU5NGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Jh
c2ljLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvYmFzaWMtdG91Y2gtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtNCw2ICs0LDcgQEAgUEFTUyBs
YXN0RXZlbnQudHlwZSBpcyAidG91Y2hzdGFydCIKIFBBU1MgbGFzdEV2ZW50LnRvdWNoZXMubGVu
Z3RoIGlzIDEKIFBBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBpcyAxCiBQQVNT
IGxhc3RFdmVudC50YXJnZXRUb3VjaGVzLmxlbmd0aCBpcyAxCitQQVNTIGxhc3RFdmVudC5zaGlm
dEtleSBpcyBmYWxzZQogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQgaXMgInRv
dWNodGFyZ2V0IgogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWCBpcyAxMAogUEFTUyBs
YXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWSBpcyAxMApAQCAtMTksNiArMjAsNyBAQCBQQVNTIGxh
c3RFdmVudC50b3VjaGVzWzBdLnBhZ2VZIGlzIDE1CiBQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBd
LmNsaWVudFggaXMgMjAKIFBBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WSBpcyAxNQog
UEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50
LnNoaWZ0S2V5IGlzIHRydWUKIFBBU1MgbGFzdEV2ZW50LnR5cGUgaXMgInRvdWNoZW5kIgogUEFT
UyBsYXN0RXZlbnQudG91Y2hlcy5sZW5ndGggaXMgMAogUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRv
dWNoZXMubGVuZ3RoIGlzIDEKQEAgLTI4LDYgKzMwLDcgQEAgUEFTUyBsYXN0RXZlbnQuY2hhbmdl
ZFRvdWNoZXNbMF0ucGFnZVkgaXMgMTUKIFBBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBd
LmNsaWVudFggaXMgMjAKIFBBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFkg
aXMgMTUKIFBBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXIgaXMgMAor
UEFTUyBsYXN0RXZlbnQuc2hpZnRLZXkgaXMgZmFsc2UKIG11bHRpIHRvdWNoIHNlcXVlbmNlCiBQ
QVNTIGxhc3RFdmVudC50eXBlIGlzICJ0b3VjaHN0YXJ0IgogUEFTUyBsYXN0RXZlbnQudG91Y2hl
cy5sZW5ndGggaXMgMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0
LXRlc3RzL2Jhc2ljLXRvdWNoLWV2ZW50cy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nj
cmlwdC10ZXN0cy9iYXNpYy10b3VjaC1ldmVudHMuanMKaW5kZXggYTAxMDhiNi4uMzhmM2QyZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL2Jhc2ljLXRv
dWNoLWV2ZW50cy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMv
YmFzaWMtdG91Y2gtZXZlbnRzLmpzCkBAIC00NiwxOSArNDYsMjUgQEAgZnVuY3Rpb24gc2luZ2xl
VG91Y2hTZXF1ZW5jZSgpCiAgICAgZXZlbnRTZW5kZXIudG91Y2hTdGFydCgpOwogCiAgICAgdmVy
aWZ5VG91Y2hFdmVudCgidG91Y2hzdGFydCIsIDEsIDEsIDEpOworICAgIHNob3VsZEJlKCJsYXN0
RXZlbnQuc2hpZnRLZXkiLCAiZmFsc2UiKTsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxh
c3RFdmVudC50b3VjaGVzWzBdLnRhcmdldC5pZCIsICJ0b3VjaHRhcmdldCIpOwogICAgIHZlcmlm
eVRvdWNoUG9pbnQoInRvdWNoZXMiLCAwLCAxMCwgMTAsIDApOwogCiAgICAgZXZlbnRTZW5kZXIu
dXBkYXRlVG91Y2hQb2ludCgwLCAyMCwgMTUpOworICAgIGV2ZW50U2VuZGVyLnNldFRvdWNoTW9k
aWZpZXIoInNoaWZ0IiwgdHJ1ZSk7CiAgICAgZXZlbnRTZW5kZXIudG91Y2hNb3ZlKCk7CiAKICAg
ICB2ZXJpZnlUb3VjaEV2ZW50KCJ0b3VjaG1vdmUiLCAxLCAxLCAxKTsKICAgICB2ZXJpZnlUb3Vj
aFBvaW50KCJ0b3VjaGVzIiwgMCwgMjAsIDE1LCAwKTsKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50
LnNoaWZ0S2V5IiwgInRydWUiKTsKKworICAgIGV2ZW50U2VuZGVyLnNldFRvdWNoTW9kaWZpZXIo
InNoaWZ0IiwgZmFsc2UpOwogCiAgICAgZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKIAogICAgIHZl
cmlmeVRvdWNoRXZlbnQoInRvdWNoZW5kIiwgMCwgMSwgMCk7CiAgICAgdmVyaWZ5VG91Y2hQb2lu
dCgiY2hhbmdlZFRvdWNoZXMiLCAwLCAyMCwgMTUsIDApOworICAgIHNob3VsZEJlKCJsYXN0RXZl
bnQuc2hpZnRLZXkiLCAiZmFsc2UiKTsKIH0KIAogZnVuY3Rpb24gbXVsdGlUb3VjaFNlcXVlbmNl
KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggYWYwMGMwZS4uZjM0MzBlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAwOS0xMi0xMyAgU2ltb24gSGF1
c21hbm4gIDxoYXVzbWFubkB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gQWRkIHN1cHBvcnQgZm9yIGtleWJvYXJkIG1vZGlm
aWVycyB0byBUb3VjaEV2ZW50CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMyNDgyCisKKyAgICAgICAgU2ltaWxhciB0byBvdGhlciB1aSBldmVudHMg
d2l0aCBrZXlib2FyZCBzdGF0ZSwgZ2V0IHRoZSBhbHQsIHNoaWZ0LAorICAgICAgICBtZXRhIGFu
ZCBjdHJsIG1vZGlmaWVycyBzdHJhaWdodCBmcm9tIHRoZSBwbGF0Zm9ybSBldmVudC4KKworICAg
ICAgICAqIGRvbS9Ub3VjaEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoRXZlbnQ6
OlRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2hFdmVudDo6aW5pdFRvdWNoRXZl
bnQpOgorICAgICAgICAqIGRvbS9Ub3VjaEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpUb3Vj
aEV2ZW50OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9Ub3VjaEV2ZW50LmlkbDoKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZVRvdWNoRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaEV2ZW50OjpQbGF0Zm9ybVRvdWNo
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaEV2ZW50OjpzaGlmdEtleSk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnQ6OmN0cmxLZXkpOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaEV2ZW50OjphbHRLZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1Ub3VjaEV2ZW50OjptZXRhS2V5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Q
bGF0Zm9ybVRvdWNoRXZlbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNo
RXZlbnQ6OlBsYXRmb3JtVG91Y2hFdmVudCk6CisKIDIwMDktMTItMTIgIENocmlzdGlhbiBEeXdh
biAgPGNocmlzdGlhbkB0d290b2FzdHMuZGU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBT
Y2h1bHplLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAgYi9XZWJDb3Jl
L2RvbS9Ub3VjaEV2ZW50LmNwcAppbmRleCA1NGZmZjFlLi5iY2MzOTVmIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNw
cApAQCAtMzMsOSArMzMsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBUb3VjaEV2ZW50OjpU
b3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLAog
ICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIAotICAgICAgICBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywgaW50IHNjcmVlblgs
IGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSkKKyAgICAgICAgUGFzc1JlZlB0cjxB
YnN0cmFjdFZpZXc+IHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBp
bnQgcGFnZVksCisgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRL
ZXksIGJvb2wgbWV0YUtleSkKICAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KHR5cGUsIHRydWUsIHRy
dWUsIHZpZXcsIDAsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQorICAgICAgICAgICAgICAg
ICAgICAgICAgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSkKICAgICAsIG1fdG91
Y2hlcyh0b3VjaGVzKQogICAgICwgbV90YXJnZXRUb3VjaGVzKHRhcmdldFRvdWNoZXMpCiAgICAg
LCBtX2NoYW5nZWRUb3VjaGVzKGNoYW5nZWRUb3VjaGVzKQpAQCAtNDQsNyArNDUsOCBAQCBUb3Vj
aEV2ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRU
b3VjaGVzLAogCiB2b2lkIFRvdWNoRXZlbnQ6OmluaXRUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91
Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5n
ZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIAotICAgICAgICBQYXNzUmVmUHRy
PEFic3RyYWN0Vmlldz4gdmlldywgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50
WCwgaW50IGNsaWVudFkpCisgICAgICAgIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBp
bnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwKKyAgICAg
ICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5
KQogewogICAgIGlmIChkaXNwYXRjaGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTUzLDYgKzU1
LDEwIEBAIHZvaWQgVG91Y2hFdmVudDo6aW5pdFRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVz
LCBUb3VjaExpc3QqIHRhcmdldFRvdWNoZXMsCiAKICAgICBtX3NjcmVlblggPSBzY3JlZW5YOwog
ICAgIG1fc2NyZWVuWSA9IHNjcmVlblk7CisgICAgbV9jdHJsS2V5ID0gY3RybEtleTsKKyAgICBt
X2FsdEtleSA9IGFsdEtleTsKKyAgICBtX3NoaWZ0S2V5ID0gc2hpZnRLZXk7CisgICAgbV9tZXRh
S2V5ID0gbWV0YUtleTsKICAgICBpbml0Q29vcmRpbmF0ZXMoY2xpZW50WCwgY2xpZW50WSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuaCBiL1dlYkNvcmUvZG9tL1Rv
dWNoRXZlbnQuaAppbmRleCBjNWZjZWJkLi4wODBhNDk1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Rv
bS9Ub3VjaEV2ZW50LmgKKysrIGIvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5oCkBAIC00MiwxNiAr
NDIsMTkgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRvdWNoRXZlbnQ+IGNyZWF0
ZShUb3VjaExpc3QqIHRvdWNoZXMsIAogICAgICAgICAgICAgVG91Y2hMaXN0KiB0YXJnZXRUb3Vj
aGVzLCBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCAKICAgICAgICAgICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsCi0gICAgICAgICAg
ICBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZKQorICAgICAg
ICAgICAgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKKyAg
ICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wg
bWV0YUtleSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVG91Y2hFdmVudCh0
b3VjaGVzLCB0YXJnZXRUb3VjaGVzLCBjaGFuZ2VkVG91Y2hlcywKLSAgICAgICAgICAgICAgICB0
eXBlLCB2aWV3LCBzY3JlZW5YLCBzY3JlZW5ZLCBwYWdlWCwgcGFnZVkpKTsKKyAgICAgICAgICAg
ICAgICB0eXBlLCB2aWV3LCBzY3JlZW5YLCBzY3JlZW5ZLCBwYWdlWCwgcGFnZVksCisgICAgICAg
ICAgICAgICAgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSkpOwogICAgIH0KIAog
ICAgIHZvaWQgaW5pdFRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRh
cmdldFRvdWNoZXMsCiAgICAgICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIAogICAgICAgICAgICAgUGFzc1JlZlB0cjxBYnN0cmFjdFZp
ZXc+IHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgCi0gICAgICAgICAgICBpbnQgY2xp
ZW50WCwgaW50IGNsaWVudFkpOworICAgICAgICAgICAgaW50IGNsaWVudFgsIGludCBjbGllbnRZ
LAorICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwg
Ym9vbCBtZXRhS2V5KTsKIAogICAgIFRvdWNoTGlzdCogdG91Y2hlcygpIGNvbnN0IHsgcmV0dXJu
IG1fdG91Y2hlcy5nZXQoKTsgfQogICAgIFRvdWNoTGlzdCogdGFyZ2V0VG91Y2hlcygpIGNvbnN0
IHsgcmV0dXJuIG1fdGFyZ2V0VG91Y2hlcy5nZXQoKTsgfQpAQCAtNjIsNyArNjUsOCBAQCBwcml2
YXRlOgogICAgIFRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRhcmdl
dFRvdWNoZXMsCiAgICAgICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsCiAgICAgICAgICAgICBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4s
IGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLAotICAgICAgICAgICAgaW50IHBh
Z2VZKTsKKyAgICAgICAgICAgIGludCBwYWdlWSwKKyAgICAgICAgICAgIGJvb2wgY3RybEtleSwg
Ym9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSk7CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNUb3VjaEV2ZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmlkbCBiL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuaWRs
CmluZGV4IGI3MTQ4YjAuLmIzZTg0NzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1RvdWNoRXZl
bnQuaWRsCisrKyBiL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuaWRsCkBAIC0zMiw2ICszMiwxMCBA
QCBtb2R1bGUgZXZlbnRzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFRvdWNoTGlzdCB0
b3VjaGVzOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVG91Y2hMaXN0IHRhcmdldFRvdWNo
ZXM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBUb3VjaExpc3QgY2hhbmdlZFRvdWNoZXM7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIGN0cmxLZXk7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIHNoaWZ0S2V5OworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgICBhbHRLZXk7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIG1ldGFLZXk7CiAKICAgICAgICAg
dm9pZCBpbml0VG91Y2hFdmVudChpbiBUb3VjaExpc3QgdG91Y2hlcywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBUb3VjaExpc3QgdGFyZ2V0VG91Y2hlcywKQEAgLTQxLDYgKzQ1LDEw
IEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcg
c2NyZWVuWCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBzY3JlZW5ZLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIGNsaWVudFgsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIGxvbmcgY2xpZW50WSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gbG9uZyBjbGllbnRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IGJvb2xlYW4gY3RybEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFu
IGFsdEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIHNoaWZ0S2V5
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gbWV0YUtleSk7CiAgICAg
fTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMWFjMjA2My4uM2QxMjAwYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKQEAgLTI1OTksNyArMjU5OSw5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5k
bGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgUmVmUHRy
PFRvdWNoRXZlbnQ+IGV2ID0gVG91Y2hFdmVudDo6Y3JlYXRlKHRvdWNoZXMuZ2V0KCksIHRhcmdl
dFRvdWNoZXMuZ2V0KCksIGNoYW5nZWRUb3VjaGVzLmdldCgpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZXZlbnROYW1lLCBtX3RvdWNoRXZlbnRUYXJn
ZXQtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fZmlyc3RUb3VjaFNjcmVlblBvcy54KCksIG1fZmlyc3RU
b3VjaFNjcmVlblBvcy55KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZmlyc3RUb3VjaFBhZ2VQb3MueCgpLCBtX2ZpcnN0VG91Y2hQYWdlUG9zLnko
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmly
c3RUb3VjaFBhZ2VQb3MueCgpLCBtX2ZpcnN0VG91Y2hQYWdlUG9zLnkoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3RybEtleSgpLCBldmVu
dC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXZlbnQubWV0YUtleSgpKTsKIAogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwogICAgIG1fdG91Y2hFdmVudFRhcmdldC0+ZGlzcGF0Y2hFdmVudChldi5nZXQo
KSwgZWMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoRXZlbnQu
aCBiL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmgKaW5kZXggMGQzOGY4YS4u
ZjcyZjc0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoRXZlbnQu
aAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oCkBAIC0zNyw3ICsz
NywxMyBAQCBlbnVtIFRvdWNoRXZlbnRUeXBlIHsgVG91Y2hTdGFydCwgVG91Y2hNb3ZlLCBUb3Vj
aEVuZCB9OwogCiBjbGFzcyBQbGF0Zm9ybVRvdWNoRXZlbnQgewogcHVibGljOgotICAgIFBsYXRm
b3JtVG91Y2hFdmVudCgpIDogbV90eXBlKFRvdWNoU3RhcnQpIHt9CisgICAgUGxhdGZvcm1Ub3Vj
aEV2ZW50KCkKKyAgICAgICAgOiBtX3R5cGUoVG91Y2hTdGFydCkKKyAgICAgICAgLCBtX3NoaWZ0
S2V5KGZhbHNlKQorICAgICAgICAsIG1fY3RybEtleShmYWxzZSkKKyAgICAgICAgLCBtX2FsdEtl
eShmYWxzZSkKKyAgICAgICAgLCBtX21ldGFLZXkoZmFsc2UpCisgICAge30KICNpZiBQTEFURk9S
TShRVCkKICAgICBQbGF0Zm9ybVRvdWNoRXZlbnQoUVRvdWNoRXZlbnQqKTsKICNlbmRpZgpAQCAt
NDUsOSArNTEsMTggQEAgcHVibGljOgogICAgIFRvdWNoRXZlbnRUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBtX3R5cGU7IH0KICAgICBjb25zdCBWZWN0b3I8UGxhdGZvcm1Ub3VjaFBvaW50PiYg
dG91Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKKyAgICBib29s
IHNoaWZ0S2V5KCkgY29uc3QgeyByZXR1cm4gbV9zaGlmdEtleTsgfQorICAgIGJvb2wgY3RybEtl
eSgpIGNvbnN0IHsgcmV0dXJuIG1fY3RybEtleTsgfQorICAgIGJvb2wgYWx0S2V5KCkgY29uc3Qg
eyByZXR1cm4gbV9hbHRLZXk7IH0KKyAgICBib29sIG1ldGFLZXkoKSBjb25zdCB7IHJldHVybiBt
X21ldGFLZXk7IH0KKwogcHJpdmF0ZToKICAgICBUb3VjaEV2ZW50VHlwZSBtX3R5cGU7CiAgICAg
VmVjdG9yPFBsYXRmb3JtVG91Y2hQb2ludD4gbV90b3VjaFBvaW50czsKKyAgICBib29sIG1fc2hp
ZnRLZXk7CisgICAgYm9vbCBtX2N0cmxLZXk7CisgICAgYm9vbCBtX2FsdEtleTsKKyAgICBib29s
IG1fbWV0YUtleTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxh
dGZvcm1Ub3VjaEV2ZW50UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVRvdWNo
RXZlbnRRdC5jcHAKaW5kZXggYjMyOWIxNC4uYmM5NjBkMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9QbGF0Zm9ybVRvdWNoRXZlbnRRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9QbGF0Zm9ybVRvdWNoRXZlbnRRdC5jcHAKQEAgLTM3LDYgKzM3LDExIEBAIFBsYXRmb3Jt
VG91Y2hFdmVudDo6UGxhdGZvcm1Ub3VjaEV2ZW50KFFUb3VjaEV2ZW50KiBldmVudCkKICAgICBj
b25zdCBRTGlzdDxRVG91Y2hFdmVudDo6VG91Y2hQb2ludD4mIHBvaW50cyA9IGV2ZW50LT50b3Vj
aFBvaW50cygpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcG9pbnRzLmNvdW50KCk7ICsraSkK
ICAgICAgICAgbV90b3VjaFBvaW50cy5hcHBlbmQoUGxhdGZvcm1Ub3VjaFBvaW50KHBvaW50cy5h
dChpKSkpOworCisgICAgbV9zaGlmdEtleSA9IChldmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6U2hp
ZnRNb2RpZmllcikgIT0gMDsKKyAgICBtX2N0cmxLZXkgPSAoZXZlbnQtPm1vZGlmaWVycygpICYg
UXQ6OkNvbnRyb2xNb2RpZmllcikgIT0gMDsKKyAgICBtX2FsdEtleSA9IChldmVudC0+bW9kaWZp
ZXJzKCkgJiBRdDo6QWx0TW9kaWZpZXIpICE9IDA7CisgICAgbV9tZXRhS2V5ID0gKGV2ZW50LT5t
b2RpZmllcnMoKSAmIFF0OjpNZXRhTW9kaWZpZXIpICE9IDA7CiB9CiAKIH0KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCA5YzU0
YWRjLi4yODYxYWM5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMTItMTMgIFNpbW9uIEhh
dXNtYW5uICA8aGF1c21hbm5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEFkZCBzdXBwb3J0IGZvciBrZXlib2FyZCBtb2Rp
ZmllcnMgdG8gUXQgRFJUJ3MgRXZlbnRTZW5kZXIgZm9yIHRvdWNoIGV2ZW50cworCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQ4MgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRTZW5kZXJRdC5jcHA6CisgICAgICAgIChFdmVudFNl
bmRlcjo6c2V0VG91Y2hNb2RpZmllcik6CisgICAgICAgIChFdmVudFNlbmRlcjo6Y2xlYXJUb3Vj
aFBvaW50cyk6CisgICAgICAgIChFdmVudFNlbmRlcjo6c2VuZFRvdWNoRXZlbnQpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuaDoKKwogMjAwOS0xMi0xMiAgTWFj
aWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAgIE5vdCByZXZpZXdlZCwg
Zml4aW5nIHByZXZpb3VzIGNvbW1lbnQuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L0V2ZW50U2VuZGVyUXQuY3BwCmluZGV4IGI4ZGQ0NWIuLjYyOGVmODAgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuY3BwCisrKyBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuY3BwCkBAIC0yNzQsNiAr
Mjc0LDI2IEBAIHZvaWQgRXZlbnRTZW5kZXI6OnVwZGF0ZVRvdWNoUG9pbnQoaW50IGluZGV4LCBp
bnQgeCwgaW50IHkpCiAjZW5kaWYKIH0KIAordm9pZCBFdmVudFNlbmRlcjo6c2V0VG91Y2hNb2Rp
Zmllcihjb25zdCBRU3RyaW5nICZtb2RpZmllciwgYm9vbCBlbmFibGUpCit7CisjaWYgUVRfVkVS
U0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDYsIDApCisgICAgUXQ6OktleWJvYXJkTW9kaWZp
ZXIgbW9kID0gUXQ6Ok5vTW9kaWZpZXI7CisgICAgaWYgKCFtb2RpZmllci5jb21wYXJlKFFMYXRp
bjFTdHJpbmcoInNoaWZ0IiksIFF0OjpDYXNlSW5zZW5zaXRpdmUpKQorICAgICAgICBtb2QgPSBR
dDo6U2hpZnRNb2RpZmllcjsKKyAgICBlbHNlIGlmICghbW9kaWZpZXIuY29tcGFyZShRTGF0aW4x
U3RyaW5nKCJhbHQiKSwgUXQ6OkNhc2VJbnNlbnNpdGl2ZSkpCisgICAgICAgIG1vZCA9IFF0OjpB
bHRNb2RpZmllcjsKKyAgICBlbHNlIGlmICghbW9kaWZpZXIuY29tcGFyZShRTGF0aW4xU3RyaW5n
KCJtZXRhIiksIFF0OjpDYXNlSW5zZW5zaXRpdmUpKQorICAgICAgICBtb2QgPSBRdDo6TWV0YU1v
ZGlmaWVyOworICAgIGVsc2UgaWYgKCFtb2RpZmllci5jb21wYXJlKFFMYXRpbjFTdHJpbmcoImN0
cmwiKSwgUXQ6OkNhc2VJbnNlbnNpdGl2ZSkpCisgICAgICAgIG1vZCA9IFF0OjpDb250cm9sTW9k
aWZpZXI7CisKKyAgICBpZiAoZW5hYmxlKQorICAgICAgICBtX3RvdWNoTW9kaWZpZXJzIHw9IG1v
ZDsKKyAgICBlbHNlCisgICAgICAgIG1fdG91Y2hNb2RpZmllcnMgJj0gfm1vZDsKKyNlbmRpZgor
fQorCiB2b2lkIEV2ZW50U2VuZGVyOjp0b3VjaFN0YXJ0KCkKIHsKICNpZiBRVF9WRVJTSU9OID49
IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNiwgMCkKQEAgLTMwMSw2ICszMjEsNyBAQCB2b2lkIEV2ZW50
U2VuZGVyOjpjbGVhclRvdWNoUG9pbnRzKCkKIHsKICNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJ
T05fQ0hFQ0soNCwgNiwgMCkKICAgICBtX3RvdWNoUG9pbnRzLmNsZWFyKCk7CisgICAgbV90b3Vj
aE1vZGlmaWVycyA9IFF0OjpLZXlib2FyZE1vZGlmaWVycygpOwogI2VuZGlmCiB9CiAKQEAgLTMx
Nyw3ICszMzgsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpyZWxlYXNlVG91Y2hQb2ludChpbnQgaW5k
ZXgpCiB2b2lkIEV2ZW50U2VuZGVyOjpzZW5kVG91Y2hFdmVudChRRXZlbnQ6OlR5cGUgdHlwZSkK
IHsKICNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNiwgMCkKLSAgICBRVG91
Y2hFdmVudCBldmVudCh0eXBlKTsKKyAgICBRVG91Y2hFdmVudCBldmVudCh0eXBlLCBRVG91Y2hF
dmVudDo6VG91Y2hTY3JlZW4sIG1fdG91Y2hNb2RpZmllcnMpOwogICAgIGV2ZW50LnNldFRvdWNo
UG9pbnRzKG1fdG91Y2hQb2ludHMpOwogICAgIFFBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fcGFn
ZSwgJmV2ZW50KTsKICAgICBRTGlzdDxRVG91Y2hFdmVudDo6VG91Y2hQb2ludD46Okl0ZXJhdG9y
IGl0ID0gbV90b3VjaFBvaW50cy5iZWdpbigpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvRXZlbnRTZW5kZXJRdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvRXZlbnRTZW5kZXJRdC5oCmluZGV4IDk1ZTE4MmQuLjMwNzM1YzMgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuaAorKysgYi9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmgKQEAgLTYwLDYgKzYwLDcg
QEAgcHVibGljIHNsb3RzOgogICAgIHZvaWQgc2NoZWR1bGVBc3luY2hyb25vdXNDbGljaygpOwog
ICAgIHZvaWQgYWRkVG91Y2hQb2ludChpbnQgeCwgaW50IHkpOwogICAgIHZvaWQgdXBkYXRlVG91
Y2hQb2ludChpbnQgaW5kZXgsIGludCB4LCBpbnQgeSk7CisgICAgdm9pZCBzZXRUb3VjaE1vZGlm
aWVyKGNvbnN0IFFTdHJpbmcgJm1vZGlmaWVyLCBib29sIGVuYWJsZSk7CiAgICAgdm9pZCB0b3Vj
aFN0YXJ0KCk7CiAgICAgdm9pZCB0b3VjaE1vdmUoKTsKICAgICB2b2lkIHRvdWNoRW5kKCk7CkBA
IC03NCw2ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgUVdlYkZyYW1lKiBmcmFtZVVuZGVyTW91c2Uo
KSBjb25zdDsKICNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNiwgMCkKICAg
ICBRTGlzdDxRVG91Y2hFdmVudDo6VG91Y2hQb2ludD4gbV90b3VjaFBvaW50czsKKyAgICBRdDo6
S2V5Ym9hcmRNb2RpZmllcnMgbV90b3VjaE1vZGlmaWVyczsKICNlbmRpZgogfTsKICNlbmRpZiAv
LyAgRXZlbnRTZW5kZXJRdF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44767</attachid>
            <date>2009-12-13 14:55:38 -0800</date>
            <delta_ts>2009-12-13 23:50:57 -0800</delta_ts>
            <desc>Patch with corrected coding style</desc>
            <filename>bug-32482-20091213235536.patch</filename>
            <type>text/plain</type>
            <size>15218</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMTQ1ZDdkLi41OTg3NTU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTIt
MTMgIFNpbW9uIEhhdXNtYW5uICA8aGF1c21hbm5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEV4dGVuZCBiYXNpYyB0b3Vj
aCBldmVudCB0ZXN0IHdpdGggYSBzaW1wbGUga2V5Ym9hcmQgbW9kaWZpZXIgdGVzdC4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0ODIKKworICAg
ICAgICAqIGZhc3QvZXZlbnRzL2Jhc2ljLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL2Jhc2ljLXRvdWNoLWV2ZW50cy5qczoKKyAg
ICAgICAgKHNpbmdsZVRvdWNoU2VxdWVuY2UpOgorCiAyMDA5LTEyLTEyICBDc2FiYSBPc3p0cm9n
b27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBNaXNzaW5nIGZvcndhcmQg
ZW50cmllcyB3aGVuIGR1bXBpbmcgYmFjay9mb3J3YXJkIGxpc3QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2Jhc2ljLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9iYXNpYy10b3VjaC1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4
IDg1ZWRlNzUuLjczYzU5NGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Jh
c2ljLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvYmFzaWMtdG91Y2gtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtNCw2ICs0LDcgQEAgUEFTUyBs
YXN0RXZlbnQudHlwZSBpcyAidG91Y2hzdGFydCIKIFBBU1MgbGFzdEV2ZW50LnRvdWNoZXMubGVu
Z3RoIGlzIDEKIFBBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBpcyAxCiBQQVNT
IGxhc3RFdmVudC50YXJnZXRUb3VjaGVzLmxlbmd0aCBpcyAxCitQQVNTIGxhc3RFdmVudC5zaGlm
dEtleSBpcyBmYWxzZQogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQgaXMgInRv
dWNodGFyZ2V0IgogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWCBpcyAxMAogUEFTUyBs
YXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWSBpcyAxMApAQCAtMTksNiArMjAsNyBAQCBQQVNTIGxh
c3RFdmVudC50b3VjaGVzWzBdLnBhZ2VZIGlzIDE1CiBQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBd
LmNsaWVudFggaXMgMjAKIFBBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WSBpcyAxNQog
UEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50
LnNoaWZ0S2V5IGlzIHRydWUKIFBBU1MgbGFzdEV2ZW50LnR5cGUgaXMgInRvdWNoZW5kIgogUEFT
UyBsYXN0RXZlbnQudG91Y2hlcy5sZW5ndGggaXMgMAogUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRv
dWNoZXMubGVuZ3RoIGlzIDEKQEAgLTI4LDYgKzMwLDcgQEAgUEFTUyBsYXN0RXZlbnQuY2hhbmdl
ZFRvdWNoZXNbMF0ucGFnZVkgaXMgMTUKIFBBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBd
LmNsaWVudFggaXMgMjAKIFBBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFkg
aXMgMTUKIFBBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXIgaXMgMAor
UEFTUyBsYXN0RXZlbnQuc2hpZnRLZXkgaXMgZmFsc2UKIG11bHRpIHRvdWNoIHNlcXVlbmNlCiBQ
QVNTIGxhc3RFdmVudC50eXBlIGlzICJ0b3VjaHN0YXJ0IgogUEFTUyBsYXN0RXZlbnQudG91Y2hl
cy5sZW5ndGggaXMgMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0
LXRlc3RzL2Jhc2ljLXRvdWNoLWV2ZW50cy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nj
cmlwdC10ZXN0cy9iYXNpYy10b3VjaC1ldmVudHMuanMKaW5kZXggYTAxMDhiNi4uMzhmM2QyZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL2Jhc2ljLXRv
dWNoLWV2ZW50cy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMv
YmFzaWMtdG91Y2gtZXZlbnRzLmpzCkBAIC00NiwxOSArNDYsMjUgQEAgZnVuY3Rpb24gc2luZ2xl
VG91Y2hTZXF1ZW5jZSgpCiAgICAgZXZlbnRTZW5kZXIudG91Y2hTdGFydCgpOwogCiAgICAgdmVy
aWZ5VG91Y2hFdmVudCgidG91Y2hzdGFydCIsIDEsIDEsIDEpOworICAgIHNob3VsZEJlKCJsYXN0
RXZlbnQuc2hpZnRLZXkiLCAiZmFsc2UiKTsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxh
c3RFdmVudC50b3VjaGVzWzBdLnRhcmdldC5pZCIsICJ0b3VjaHRhcmdldCIpOwogICAgIHZlcmlm
eVRvdWNoUG9pbnQoInRvdWNoZXMiLCAwLCAxMCwgMTAsIDApOwogCiAgICAgZXZlbnRTZW5kZXIu
dXBkYXRlVG91Y2hQb2ludCgwLCAyMCwgMTUpOworICAgIGV2ZW50U2VuZGVyLnNldFRvdWNoTW9k
aWZpZXIoInNoaWZ0IiwgdHJ1ZSk7CiAgICAgZXZlbnRTZW5kZXIudG91Y2hNb3ZlKCk7CiAKICAg
ICB2ZXJpZnlUb3VjaEV2ZW50KCJ0b3VjaG1vdmUiLCAxLCAxLCAxKTsKICAgICB2ZXJpZnlUb3Vj
aFBvaW50KCJ0b3VjaGVzIiwgMCwgMjAsIDE1LCAwKTsKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50
LnNoaWZ0S2V5IiwgInRydWUiKTsKKworICAgIGV2ZW50U2VuZGVyLnNldFRvdWNoTW9kaWZpZXIo
InNoaWZ0IiwgZmFsc2UpOwogCiAgICAgZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKIAogICAgIHZl
cmlmeVRvdWNoRXZlbnQoInRvdWNoZW5kIiwgMCwgMSwgMCk7CiAgICAgdmVyaWZ5VG91Y2hQb2lu
dCgiY2hhbmdlZFRvdWNoZXMiLCAwLCAyMCwgMTUsIDApOworICAgIHNob3VsZEJlKCJsYXN0RXZl
bnQuc2hpZnRLZXkiLCAiZmFsc2UiKTsKIH0KIAogZnVuY3Rpb24gbXVsdGlUb3VjaFNlcXVlbmNl
KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggYWYwMGMwZS4uZjM0MzBlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAwOS0xMi0xMyAgU2ltb24gSGF1
c21hbm4gIDxoYXVzbWFubkB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gQWRkIHN1cHBvcnQgZm9yIGtleWJvYXJkIG1vZGlm
aWVycyB0byBUb3VjaEV2ZW50CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMyNDgyCisKKyAgICAgICAgU2ltaWxhciB0byBvdGhlciB1aSBldmVudHMg
d2l0aCBrZXlib2FyZCBzdGF0ZSwgZ2V0IHRoZSBhbHQsIHNoaWZ0LAorICAgICAgICBtZXRhIGFu
ZCBjdHJsIG1vZGlmaWVycyBzdHJhaWdodCBmcm9tIHRoZSBwbGF0Zm9ybSBldmVudC4KKworICAg
ICAgICAqIGRvbS9Ub3VjaEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRvdWNoRXZlbnQ6
OlRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2hFdmVudDo6aW5pdFRvdWNoRXZl
bnQpOgorICAgICAgICAqIGRvbS9Ub3VjaEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpUb3Vj
aEV2ZW50OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9Ub3VjaEV2ZW50LmlkbDoKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZVRvdWNoRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaEV2ZW50OjpQbGF0Zm9ybVRvdWNo
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaEV2ZW50OjpzaGlmdEtleSk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnQ6OmN0cmxLZXkpOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaEV2ZW50OjphbHRLZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1Ub3VjaEV2ZW50OjptZXRhS2V5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Q
bGF0Zm9ybVRvdWNoRXZlbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNo
RXZlbnQ6OlBsYXRmb3JtVG91Y2hFdmVudCk6CisKIDIwMDktMTItMTIgIENocmlzdGlhbiBEeXdh
biAgPGNocmlzdGlhbkB0d290b2FzdHMuZGU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBT
Y2h1bHplLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAgYi9XZWJDb3Jl
L2RvbS9Ub3VjaEV2ZW50LmNwcAppbmRleCA1NGZmZjFlLi5iY2MzOTVmIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNw
cApAQCAtMzMsOSArMzMsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBUb3VjaEV2ZW50OjpU
b3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLAog
ICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIAotICAgICAgICBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywgaW50IHNjcmVlblgs
IGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSkKKyAgICAgICAgUGFzc1JlZlB0cjxB
YnN0cmFjdFZpZXc+IHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBp
bnQgcGFnZVksCisgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRL
ZXksIGJvb2wgbWV0YUtleSkKICAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KHR5cGUsIHRydWUsIHRy
dWUsIHZpZXcsIDAsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQorICAgICAgICAgICAgICAg
ICAgICAgICAgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSkKICAgICAsIG1fdG91
Y2hlcyh0b3VjaGVzKQogICAgICwgbV90YXJnZXRUb3VjaGVzKHRhcmdldFRvdWNoZXMpCiAgICAg
LCBtX2NoYW5nZWRUb3VjaGVzKGNoYW5nZWRUb3VjaGVzKQpAQCAtNDQsNyArNDUsOCBAQCBUb3Vj
aEV2ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRU
b3VjaGVzLAogCiB2b2lkIFRvdWNoRXZlbnQ6OmluaXRUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91
Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5n
ZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIAotICAgICAgICBQYXNzUmVmUHRy
PEFic3RyYWN0Vmlldz4gdmlldywgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgY2xpZW50
WCwgaW50IGNsaWVudFkpCisgICAgICAgIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBp
bnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwKKyAgICAg
ICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5
KQogewogICAgIGlmIChkaXNwYXRjaGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTUzLDYgKzU1
LDEwIEBAIHZvaWQgVG91Y2hFdmVudDo6aW5pdFRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVz
LCBUb3VjaExpc3QqIHRhcmdldFRvdWNoZXMsCiAKICAgICBtX3NjcmVlblggPSBzY3JlZW5YOwog
ICAgIG1fc2NyZWVuWSA9IHNjcmVlblk7CisgICAgbV9jdHJsS2V5ID0gY3RybEtleTsKKyAgICBt
X2FsdEtleSA9IGFsdEtleTsKKyAgICBtX3NoaWZ0S2V5ID0gc2hpZnRLZXk7CisgICAgbV9tZXRh
S2V5ID0gbWV0YUtleTsKICAgICBpbml0Q29vcmRpbmF0ZXMoY2xpZW50WCwgY2xpZW50WSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuaCBiL1dlYkNvcmUvZG9tL1Rv
dWNoRXZlbnQuaAppbmRleCBjNWZjZWJkLi4wODBhNDk1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Rv
bS9Ub3VjaEV2ZW50LmgKKysrIGIvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5oCkBAIC00MiwxNiAr
NDIsMTkgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRvdWNoRXZlbnQ+IGNyZWF0
ZShUb3VjaExpc3QqIHRvdWNoZXMsIAogICAgICAgICAgICAgVG91Y2hMaXN0KiB0YXJnZXRUb3Vj
aGVzLCBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCAKICAgICAgICAgICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsCi0gICAgICAgICAg
ICBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZKQorICAgICAg
ICAgICAgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKKyAg
ICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wg
bWV0YUtleSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVG91Y2hFdmVudCh0
b3VjaGVzLCB0YXJnZXRUb3VjaGVzLCBjaGFuZ2VkVG91Y2hlcywKLSAgICAgICAgICAgICAgICB0
eXBlLCB2aWV3LCBzY3JlZW5YLCBzY3JlZW5ZLCBwYWdlWCwgcGFnZVkpKTsKKyAgICAgICAgICAg
ICAgICB0eXBlLCB2aWV3LCBzY3JlZW5YLCBzY3JlZW5ZLCBwYWdlWCwgcGFnZVksCisgICAgICAg
ICAgICAgICAgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSkpOwogICAgIH0KIAog
ICAgIHZvaWQgaW5pdFRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRh
cmdldFRvdWNoZXMsCiAgICAgICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIAogICAgICAgICAgICAgUGFzc1JlZlB0cjxBYnN0cmFjdFZp
ZXc+IHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgCi0gICAgICAgICAgICBpbnQgY2xp
ZW50WCwgaW50IGNsaWVudFkpOworICAgICAgICAgICAgaW50IGNsaWVudFgsIGludCBjbGllbnRZ
LAorICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwg
Ym9vbCBtZXRhS2V5KTsKIAogICAgIFRvdWNoTGlzdCogdG91Y2hlcygpIGNvbnN0IHsgcmV0dXJu
IG1fdG91Y2hlcy5nZXQoKTsgfQogICAgIFRvdWNoTGlzdCogdGFyZ2V0VG91Y2hlcygpIGNvbnN0
IHsgcmV0dXJuIG1fdGFyZ2V0VG91Y2hlcy5nZXQoKTsgfQpAQCAtNjIsNyArNjUsOCBAQCBwcml2
YXRlOgogICAgIFRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRhcmdl
dFRvdWNoZXMsCiAgICAgICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsCiAgICAgICAgICAgICBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4s
IGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLAotICAgICAgICAgICAgaW50IHBh
Z2VZKTsKKyAgICAgICAgICAgIGludCBwYWdlWSwKKyAgICAgICAgICAgIGJvb2wgY3RybEtleSwg
Ym9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSk7CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNUb3VjaEV2ZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmlkbCBiL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuaWRs
CmluZGV4IGI3MTQ4YjAuLmIzZTg0NzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1RvdWNoRXZl
bnQuaWRsCisrKyBiL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuaWRsCkBAIC0zMiw2ICszMiwxMCBA
QCBtb2R1bGUgZXZlbnRzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFRvdWNoTGlzdCB0
b3VjaGVzOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVG91Y2hMaXN0IHRhcmdldFRvdWNo
ZXM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBUb3VjaExpc3QgY2hhbmdlZFRvdWNoZXM7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIGN0cmxLZXk7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIHNoaWZ0S2V5OworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgICBhbHRLZXk7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIG1ldGFLZXk7CiAKICAgICAgICAg
dm9pZCBpbml0VG91Y2hFdmVudChpbiBUb3VjaExpc3QgdG91Y2hlcywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBUb3VjaExpc3QgdGFyZ2V0VG91Y2hlcywKQEAgLTQxLDYgKzQ1LDEw
IEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcg
c2NyZWVuWCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBzY3JlZW5ZLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIGNsaWVudFgsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIGxvbmcgY2xpZW50WSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gbG9uZyBjbGllbnRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IGJvb2xlYW4gY3RybEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFu
IGFsdEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIHNoaWZ0S2V5
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gbWV0YUtleSk7CiAgICAg
fTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMWFjMjA2My4uM2QxMjAwYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKQEAgLTI1OTksNyArMjU5OSw5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5k
bGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgUmVmUHRy
PFRvdWNoRXZlbnQ+IGV2ID0gVG91Y2hFdmVudDo6Y3JlYXRlKHRvdWNoZXMuZ2V0KCksIHRhcmdl
dFRvdWNoZXMuZ2V0KCksIGNoYW5nZWRUb3VjaGVzLmdldCgpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZXZlbnROYW1lLCBtX3RvdWNoRXZlbnRUYXJn
ZXQtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fZmlyc3RUb3VjaFNjcmVlblBvcy54KCksIG1fZmlyc3RU
b3VjaFNjcmVlblBvcy55KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZmlyc3RUb3VjaFBhZ2VQb3MueCgpLCBtX2ZpcnN0VG91Y2hQYWdlUG9zLnko
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmly
c3RUb3VjaFBhZ2VQb3MueCgpLCBtX2ZpcnN0VG91Y2hQYWdlUG9zLnkoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3RybEtleSgpLCBldmVu
dC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXZlbnQubWV0YUtleSgpKTsKIAogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwogICAgIG1fdG91Y2hFdmVudFRhcmdldC0+ZGlzcGF0Y2hFdmVudChldi5nZXQo
KSwgZWMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoRXZlbnQu
aCBiL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmgKaW5kZXggMGQzOGY4YS4u
ZjcyZjc0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoRXZlbnQu
aAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oCkBAIC0zNyw3ICsz
NywxMyBAQCBlbnVtIFRvdWNoRXZlbnRUeXBlIHsgVG91Y2hTdGFydCwgVG91Y2hNb3ZlLCBUb3Vj
aEVuZCB9OwogCiBjbGFzcyBQbGF0Zm9ybVRvdWNoRXZlbnQgewogcHVibGljOgotICAgIFBsYXRm
b3JtVG91Y2hFdmVudCgpIDogbV90eXBlKFRvdWNoU3RhcnQpIHt9CisgICAgUGxhdGZvcm1Ub3Vj
aEV2ZW50KCkKKyAgICAgICAgOiBtX3R5cGUoVG91Y2hTdGFydCkKKyAgICAgICAgLCBtX3NoaWZ0
S2V5KGZhbHNlKQorICAgICAgICAsIG1fY3RybEtleShmYWxzZSkKKyAgICAgICAgLCBtX2FsdEtl
eShmYWxzZSkKKyAgICAgICAgLCBtX21ldGFLZXkoZmFsc2UpCisgICAge30KICNpZiBQTEFURk9S
TShRVCkKICAgICBQbGF0Zm9ybVRvdWNoRXZlbnQoUVRvdWNoRXZlbnQqKTsKICNlbmRpZgpAQCAt
NDUsOSArNTEsMTggQEAgcHVibGljOgogICAgIFRvdWNoRXZlbnRUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBtX3R5cGU7IH0KICAgICBjb25zdCBWZWN0b3I8UGxhdGZvcm1Ub3VjaFBvaW50PiYg
dG91Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKKyAgICBib29s
IHNoaWZ0S2V5KCkgY29uc3QgeyByZXR1cm4gbV9zaGlmdEtleTsgfQorICAgIGJvb2wgY3RybEtl
eSgpIGNvbnN0IHsgcmV0dXJuIG1fY3RybEtleTsgfQorICAgIGJvb2wgYWx0S2V5KCkgY29uc3Qg
eyByZXR1cm4gbV9hbHRLZXk7IH0KKyAgICBib29sIG1ldGFLZXkoKSBjb25zdCB7IHJldHVybiBt
X21ldGFLZXk7IH0KKwogcHJpdmF0ZToKICAgICBUb3VjaEV2ZW50VHlwZSBtX3R5cGU7CiAgICAg
VmVjdG9yPFBsYXRmb3JtVG91Y2hQb2ludD4gbV90b3VjaFBvaW50czsKKyAgICBib29sIG1fc2hp
ZnRLZXk7CisgICAgYm9vbCBtX2N0cmxLZXk7CisgICAgYm9vbCBtX2FsdEtleTsKKyAgICBib29s
IG1fbWV0YUtleTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxh
dGZvcm1Ub3VjaEV2ZW50UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVRvdWNo
RXZlbnRRdC5jcHAKaW5kZXggYjMyOWIxNC4uOTdiYmUxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9QbGF0Zm9ybVRvdWNoRXZlbnRRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9QbGF0Zm9ybVRvdWNoRXZlbnRRdC5jcHAKQEAgLTM3LDYgKzM3LDExIEBAIFBsYXRmb3Jt
VG91Y2hFdmVudDo6UGxhdGZvcm1Ub3VjaEV2ZW50KFFUb3VjaEV2ZW50KiBldmVudCkKICAgICBj
b25zdCBRTGlzdDxRVG91Y2hFdmVudDo6VG91Y2hQb2ludD4mIHBvaW50cyA9IGV2ZW50LT50b3Vj
aFBvaW50cygpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcG9pbnRzLmNvdW50KCk7ICsraSkK
ICAgICAgICAgbV90b3VjaFBvaW50cy5hcHBlbmQoUGxhdGZvcm1Ub3VjaFBvaW50KHBvaW50cy5h
dChpKSkpOworCisgICAgbV9zaGlmdEtleSA9IChldmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6U2hp
ZnRNb2RpZmllcik7CisgICAgbV9jdHJsS2V5ID0gKGV2ZW50LT5tb2RpZmllcnMoKSAmIFF0OjpD
b250cm9sTW9kaWZpZXIpOworICAgIG1fYWx0S2V5ID0gKGV2ZW50LT5tb2RpZmllcnMoKSAmIFF0
OjpBbHRNb2RpZmllcik7CisgICAgbV9tZXRhS2V5ID0gKGV2ZW50LT5tb2RpZmllcnMoKSAmIFF0
OjpNZXRhTW9kaWZpZXIpOwogfQogCiB9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggOWM1NGFkYy4uMjg2MWFjOSAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDA5LTEyLTEzICBTaW1vbiBIYXVzbWFubiAgPGhhdXNtYW5uQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgW1F0XSBBZGQgc3VwcG9ydCBmb3Iga2V5Ym9hcmQgbW9kaWZpZXJzIHRvIFF0IERSVCdzIEV2
ZW50U2VuZGVyIGZvciB0b3VjaCBldmVudHMKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0ODIKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0
L0V2ZW50U2VuZGVyUXQuY3BwOgorICAgICAgICAoRXZlbnRTZW5kZXI6OnNldFRvdWNoTW9kaWZp
ZXIpOgorICAgICAgICAoRXZlbnRTZW5kZXI6OmNsZWFyVG91Y2hQb2ludHMpOgorICAgICAgICAo
RXZlbnRTZW5kZXI6OnNlbmRUb3VjaEV2ZW50KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9x
dC9FdmVudFNlbmRlclF0Lmg6CisKIDIwMDktMTItMTIgIE1hY2llaiBTdGFjaG93aWFrICA8bWpz
QGFwcGxlLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQsIGZpeGluZyBwcmV2aW91cyBjb21t
ZW50LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRTZW5k
ZXJRdC5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNw
cAppbmRleCBiOGRkNDViLi42MjhlZjgwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9xdC9FdmVudFNlbmRlclF0LmNwcApAQCAtMjc0LDYgKzI3NCwyNiBAQCB2b2lkIEV2ZW50
U2VuZGVyOjp1cGRhdGVUb3VjaFBvaW50KGludCBpbmRleCwgaW50IHgsIGludCB5KQogI2VuZGlm
CiB9CiAKK3ZvaWQgRXZlbnRTZW5kZXI6OnNldFRvdWNoTW9kaWZpZXIoY29uc3QgUVN0cmluZyAm
bW9kaWZpZXIsIGJvb2wgZW5hYmxlKQoreworI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9D
SEVDSyg0LCA2LCAwKQorICAgIFF0OjpLZXlib2FyZE1vZGlmaWVyIG1vZCA9IFF0OjpOb01vZGlm
aWVyOworICAgIGlmICghbW9kaWZpZXIuY29tcGFyZShRTGF0aW4xU3RyaW5nKCJzaGlmdCIpLCBR
dDo6Q2FzZUluc2Vuc2l0aXZlKSkKKyAgICAgICAgbW9kID0gUXQ6OlNoaWZ0TW9kaWZpZXI7Cisg
ICAgZWxzZSBpZiAoIW1vZGlmaWVyLmNvbXBhcmUoUUxhdGluMVN0cmluZygiYWx0IiksIFF0OjpD
YXNlSW5zZW5zaXRpdmUpKQorICAgICAgICBtb2QgPSBRdDo6QWx0TW9kaWZpZXI7CisgICAgZWxz
ZSBpZiAoIW1vZGlmaWVyLmNvbXBhcmUoUUxhdGluMVN0cmluZygibWV0YSIpLCBRdDo6Q2FzZUlu
c2Vuc2l0aXZlKSkKKyAgICAgICAgbW9kID0gUXQ6Ok1ldGFNb2RpZmllcjsKKyAgICBlbHNlIGlm
ICghbW9kaWZpZXIuY29tcGFyZShRTGF0aW4xU3RyaW5nKCJjdHJsIiksIFF0OjpDYXNlSW5zZW5z
aXRpdmUpKQorICAgICAgICBtb2QgPSBRdDo6Q29udHJvbE1vZGlmaWVyOworCisgICAgaWYgKGVu
YWJsZSkKKyAgICAgICAgbV90b3VjaE1vZGlmaWVycyB8PSBtb2Q7CisgICAgZWxzZQorICAgICAg
ICBtX3RvdWNoTW9kaWZpZXJzICY9IH5tb2Q7CisjZW5kaWYKK30KKwogdm9pZCBFdmVudFNlbmRl
cjo6dG91Y2hTdGFydCgpCiB7CiAjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQs
IDYsIDApCkBAIC0zMDEsNiArMzIxLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6Y2xlYXJUb3VjaFBv
aW50cygpCiB7CiAjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDYsIDApCiAg
ICAgbV90b3VjaFBvaW50cy5jbGVhcigpOworICAgIG1fdG91Y2hNb2RpZmllcnMgPSBRdDo6S2V5
Ym9hcmRNb2RpZmllcnMoKTsKICNlbmRpZgogfQogCkBAIC0zMTcsNyArMzM4LDcgQEAgdm9pZCBF
dmVudFNlbmRlcjo6cmVsZWFzZVRvdWNoUG9pbnQoaW50IGluZGV4KQogdm9pZCBFdmVudFNlbmRl
cjo6c2VuZFRvdWNoRXZlbnQoUUV2ZW50OjpUeXBlIHR5cGUpCiB7CiAjaWYgUVRfVkVSU0lPTiA+
PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDYsIDApCi0gICAgUVRvdWNoRXZlbnQgZXZlbnQodHlwZSk7
CisgICAgUVRvdWNoRXZlbnQgZXZlbnQodHlwZSwgUVRvdWNoRXZlbnQ6OlRvdWNoU2NyZWVuLCBt
X3RvdWNoTW9kaWZpZXJzKTsKICAgICBldmVudC5zZXRUb3VjaFBvaW50cyhtX3RvdWNoUG9pbnRz
KTsKICAgICBRQXBwbGljYXRpb246OnNlbmRFdmVudChtX3BhZ2UsICZldmVudCk7CiAgICAgUUxp
c3Q8UVRvdWNoRXZlbnQ6OlRvdWNoUG9pbnQ+OjpJdGVyYXRvciBpdCA9IG1fdG91Y2hQb2ludHMu
YmVnaW4oKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0V2ZW50
U2VuZGVyUXQuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQu
aAppbmRleCA5NWUxODJkLi4zMDczNWMzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvRXZlbnRTZW5kZXJRdC5oCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYyBzbG90czoKICAg
ICB2b2lkIHNjaGVkdWxlQXN5bmNocm9ub3VzQ2xpY2soKTsKICAgICB2b2lkIGFkZFRvdWNoUG9p
bnQoaW50IHgsIGludCB5KTsKICAgICB2b2lkIHVwZGF0ZVRvdWNoUG9pbnQoaW50IGluZGV4LCBp
bnQgeCwgaW50IHkpOworICAgIHZvaWQgc2V0VG91Y2hNb2RpZmllcihjb25zdCBRU3RyaW5nICZt
b2RpZmllciwgYm9vbCBlbmFibGUpOwogICAgIHZvaWQgdG91Y2hTdGFydCgpOwogICAgIHZvaWQg
dG91Y2hNb3ZlKCk7CiAgICAgdm9pZCB0b3VjaEVuZCgpOwpAQCAtNzQsNiArNzUsNyBAQCBwcml2
YXRlOgogICAgIFFXZWJGcmFtZSogZnJhbWVVbmRlck1vdXNlKCkgY29uc3Q7CiAjaWYgUVRfVkVS
U0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDYsIDApCiAgICAgUUxpc3Q8UVRvdWNoRXZlbnQ6
OlRvdWNoUG9pbnQ+IG1fdG91Y2hQb2ludHM7CisgICAgUXQ6OktleWJvYXJkTW9kaWZpZXJzIG1f
dG91Y2hNb2RpZmllcnM7CiAjZW5kaWYKIH07CiAjZW5kaWYgLy8gIEV2ZW50U2VuZGVyUXRfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44776</attachid>
            <date>2009-12-13 23:51:05 -0800</date>
            <delta_ts>2009-12-13 23:53:04 -0800</delta_ts>
            <desc>Updated patch with better tests</desc>
            <filename>bug-32482-20091214085103.patch</filename>
            <type>text/plain</type>
            <size>15622</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMTQ1ZDdkLi41OTg3NTU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTIt
MTMgIFNpbW9uIEhhdXNtYW5uICA8aGF1c21hbm5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEV4dGVuZCBiYXNpYyB0b3Vj
aCBldmVudCB0ZXN0IHdpdGggYSBzaW1wbGUga2V5Ym9hcmQgbW9kaWZpZXIgdGVzdC4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0ODIKKworICAg
ICAgICAqIGZhc3QvZXZlbnRzL2Jhc2ljLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL2Jhc2ljLXRvdWNoLWV2ZW50cy5qczoKKyAg
ICAgICAgKHNpbmdsZVRvdWNoU2VxdWVuY2UpOgorCiAyMDA5LTEyLTEyICBDc2FiYSBPc3p0cm9n
b27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBNaXNzaW5nIGZvcndhcmQg
ZW50cmllcyB3aGVuIGR1bXBpbmcgYmFjay9mb3J3YXJkIGxpc3QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2Jhc2ljLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9iYXNpYy10b3VjaC1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4
IDg1ZWRlNzUuLjM4NDE0MzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Jh
c2ljLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvYmFzaWMtdG91Y2gtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtNCw2ICs0LDcgQEAgUEFTUyBs
YXN0RXZlbnQudHlwZSBpcyAidG91Y2hzdGFydCIKIFBBU1MgbGFzdEV2ZW50LnRvdWNoZXMubGVu
Z3RoIGlzIDEKIFBBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBpcyAxCiBQQVNT
IGxhc3RFdmVudC50YXJnZXRUb3VjaGVzLmxlbmd0aCBpcyAxCitQQVNTIGxhc3RFdmVudC5zaGlm
dEtleSBpcyBmYWxzZQogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQgaXMgInRv
dWNodGFyZ2V0IgogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWCBpcyAxMAogUEFTUyBs
YXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWSBpcyAxMApAQCAtMTksNiArMjAsMTAgQEAgUEFTUyBs
YXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWSBpcyAxNQogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1sw
XS5jbGllbnRYIGlzIDIwCiBQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLmNsaWVudFkgaXMgMTUK
IFBBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0uaWRlbnRpZmllciBpcyAwCitQQVNTIGxhc3RFdmVu
dC5zaGlmdEtleSBpcyB0cnVlCitQQVNTIGxhc3RFdmVudC5hbHRLZXkgaXMgdHJ1ZQorUEFTUyBs
YXN0RXZlbnQuY3RybEtleSBpcyBmYWxzZQorUEFTUyBsYXN0RXZlbnQubWV0YUtleSBpcyBmYWxz
ZQogUEFTUyBsYXN0RXZlbnQudHlwZSBpcyAidG91Y2hlbmQiCiBQQVNTIGxhc3RFdmVudC50b3Vj
aGVzLmxlbmd0aCBpcyAwCiBQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggaXMg
MQpAQCAtMjgsNiArMzMsOCBAQCBQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdl
WSBpcyAxNQogUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCBpcyAyMAog
UEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSBpcyAxNQogUEFTUyBsYXN0
RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uaWRlbnRpZmllciBpcyAwCitQQVNTIGxhc3RFdmVudC5z
aGlmdEtleSBpcyBmYWxzZQorUEFTUyBsYXN0RXZlbnQuYWx0S2V5IGlzIGZhbHNlCiBtdWx0aSB0
b3VjaCBzZXF1ZW5jZQogUEFTUyBsYXN0RXZlbnQudHlwZSBpcyAidG91Y2hzdGFydCIKIFBBU1Mg
bGFzdEV2ZW50LnRvdWNoZXMubGVuZ3RoIGlzIDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy10b3VjaC1ldmVudHMuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvYmFzaWMtdG91Y2gtZXZlbnRzLmpzCmluZGV4IGEw
MTA4YjYuLjdlZWNkMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcmlw
dC10ZXN0cy9iYXNpYy10b3VjaC1ldmVudHMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc2NyaXB0LXRlc3RzL2Jhc2ljLXRvdWNoLWV2ZW50cy5qcwpAQCAtNDYsMTkgKzQ2LDMxIEBA
IGZ1bmN0aW9uIHNpbmdsZVRvdWNoU2VxdWVuY2UoKQogICAgIGV2ZW50U2VuZGVyLnRvdWNoU3Rh
cnQoKTsKIAogICAgIHZlcmlmeVRvdWNoRXZlbnQoInRvdWNoc3RhcnQiLCAxLCAxLCAxKTsKKyAg
ICBzaG91bGRCZSgibGFzdEV2ZW50LnNoaWZ0S2V5IiwgImZhbHNlIik7CiAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJsYXN0RXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQiLCAidG91Y2h0YXJn
ZXQiKTsKICAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0b3VjaGVzIiwgMCwgMTAsIDEwLCAwKTsKIAog
ICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQoMCwgMjAsIDE1KTsKKyAgICBldmVudFNl
bmRlci5zZXRUb3VjaE1vZGlmaWVyKCJzaGlmdCIsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLnNl
dFRvdWNoTW9kaWZpZXIoImFsdCIsIHRydWUpOwogICAgIGV2ZW50U2VuZGVyLnRvdWNoTW92ZSgp
OwogCiAgICAgdmVyaWZ5VG91Y2hFdmVudCgidG91Y2htb3ZlIiwgMSwgMSwgMSk7CiAgICAgdmVy
aWZ5VG91Y2hQb2ludCgidG91Y2hlcyIsIDAsIDIwLCAxNSwgMCk7CisgICAgc2hvdWxkQmUoImxh
c3RFdmVudC5zaGlmdEtleSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUoImxhc3RFdmVudC5hbHRL
ZXkiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJsYXN0RXZlbnQuY3RybEtleSIsICJmYWxzZSIp
OworICAgIHNob3VsZEJlKCJsYXN0RXZlbnQubWV0YUtleSIsICJmYWxzZSIpOworCisgICAgZXZl
bnRTZW5kZXIuc2V0VG91Y2hNb2RpZmllcigic2hpZnQiLCBmYWxzZSk7CisgICAgZXZlbnRTZW5k
ZXIuc2V0VG91Y2hNb2RpZmllcigiYWx0IiwgZmFsc2UpOwogCiAgICAgZXZlbnRTZW5kZXIudG91
Y2hFbmQoKTsKIAogICAgIHZlcmlmeVRvdWNoRXZlbnQoInRvdWNoZW5kIiwgMCwgMSwgMCk7CiAg
ICAgdmVyaWZ5VG91Y2hQb2ludCgiY2hhbmdlZFRvdWNoZXMiLCAwLCAyMCwgMTUsIDApOworICAg
IHNob3VsZEJlKCJsYXN0RXZlbnQuc2hpZnRLZXkiLCAiZmFsc2UiKTsKKyAgICBzaG91bGRCZSgi
bGFzdEV2ZW50LmFsdEtleSIsICJmYWxzZSIpOwogfQogCiBmdW5jdGlvbiBtdWx0aVRvdWNoU2Vx
dWVuY2UoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBhZjAwYzBlLi5mMzQzMGUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDA5LTEyLTEzICBTaW1v
biBIYXVzbWFubiAgPGhhdXNtYW5uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBBZGQgc3VwcG9ydCBmb3Iga2V5Ym9hcmQg
bW9kaWZpZXJzIHRvIFRvdWNoRXZlbnQKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzI0ODIKKworICAgICAgICBTaW1pbGFyIHRvIG90aGVyIHVpIGV2
ZW50cyB3aXRoIGtleWJvYXJkIHN0YXRlLCBnZXQgdGhlIGFsdCwgc2hpZnQsCisgICAgICAgIG1l
dGEgYW5kIGN0cmwgbW9kaWZpZXJzIHN0cmFpZ2h0IGZyb20gdGhlIHBsYXRmb3JtIGV2ZW50Lgor
CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2hF
dmVudDo6VG91Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpUb3VjaEV2ZW50Ojppbml0VG91
Y2hFdmVudCk6CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlRvdWNoRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuaWRsOgorICAg
ICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6aGFuZGxlVG91Y2hFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Ub3Vj
aEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnQ6OlBsYXRmb3Jt
VG91Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnQ6OnNoaWZ0
S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudDo6Y3RybEtleSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnQ6OmFsdEtleSk6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnQ6Om1ldGFLZXkpOgorICAgICAgICAqIHBsYXRmb3Jt
L3F0L1BsYXRmb3JtVG91Y2hFdmVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
VG91Y2hFdmVudDo6UGxhdGZvcm1Ub3VjaEV2ZW50KToKKwogMjAwOS0xMi0xMiAgQ2hyaXN0aWFu
IER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
aXJrIFNjaHVsemUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcCBiL1dl
YkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwCmluZGV4IDU0ZmZmMWUuLmJjYzM5NWYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1RvdWNoRXZl
bnQuY3BwCkBAIC0zMyw5ICszMywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFRvdWNoRXZl
bnQ6OlRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRhcmdldFRvdWNo
ZXMsCiAgICAgICAgIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSwgCi0gICAgICAgIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBpbnQgc2Ny
ZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZKQorICAgICAgICBQYXNzUmVm
UHRyPEFic3RyYWN0Vmlldz4gdmlldywgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFn
ZVgsIGludCBwYWdlWSwKKyAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBz
aGlmdEtleSwgYm9vbCBtZXRhS2V5KQogICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1
ZSwgdHJ1ZSwgdmlldywgMCwgc2NyZWVuWCwgc2NyZWVuWSwgcGFnZVgsIHBhZ2VZLAotICAgICAg
ICAgICAgICAgICAgICAgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCisgICAgICAgICAg
ICAgICAgICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5KQogICAgICwg
bV90b3VjaGVzKHRvdWNoZXMpCiAgICAgLCBtX3RhcmdldFRvdWNoZXModGFyZ2V0VG91Y2hlcykK
ICAgICAsIG1fY2hhbmdlZFRvdWNoZXMoY2hhbmdlZFRvdWNoZXMpCkBAIC00NCw3ICs0NSw4IEBA
IFRvdWNoRXZlbnQ6OlRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRh
cmdldFRvdWNoZXMsCiAKIHZvaWQgVG91Y2hFdmVudDo6aW5pdFRvdWNoRXZlbnQoVG91Y2hMaXN0
KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRhcmdldFRvdWNoZXMsCiAgICAgICAgIFRvdWNoTGlzdCog
Y2hhbmdlZFRvdWNoZXMsIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgCi0gICAgICAgIFBhc3NS
ZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBj
bGllbnRYLCBpbnQgY2xpZW50WSkKKyAgICAgICAgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZp
ZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLAor
ICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1l
dGFLZXkpCiB7CiAgICAgaWYgKGRpc3BhdGNoZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTMs
NiArNTUsMTAgQEAgdm9pZCBUb3VjaEV2ZW50Ojppbml0VG91Y2hFdmVudChUb3VjaExpc3QqIHRv
dWNoZXMsIFRvdWNoTGlzdCogdGFyZ2V0VG91Y2hlcywKIAogICAgIG1fc2NyZWVuWCA9IHNjcmVl
blg7CiAgICAgbV9zY3JlZW5ZID0gc2NyZWVuWTsKKyAgICBtX2N0cmxLZXkgPSBjdHJsS2V5Owor
ICAgIG1fYWx0S2V5ID0gYWx0S2V5OworICAgIG1fc2hpZnRLZXkgPSBzaGlmdEtleTsKKyAgICBt
X21ldGFLZXkgPSBtZXRhS2V5OwogICAgIGluaXRDb29yZGluYXRlcyhjbGllbnRYLCBjbGllbnRZ
KTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5oIGIvV2ViQ29yZS9k
b20vVG91Y2hFdmVudC5oCmluZGV4IGM1ZmNlYmQuLjA4MGE0OTUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZG9tL1RvdWNoRXZlbnQuaAorKysgYi9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmgKQEAgLTQy
LDE2ICs0MiwxOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VG91Y2hFdmVudD4g
Y3JlYXRlKFRvdWNoTGlzdCogdG91Y2hlcywgCiAgICAgICAgICAgICBUb3VjaExpc3QqIHRhcmdl
dFRvdWNoZXMsIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIAogICAgICAgICAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywKLSAgICAg
ICAgICAgIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVkpCisg
ICAgICAgICAgICBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZ
LAorICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwg
Ym9vbCBtZXRhS2V5KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUb3VjaEV2
ZW50KHRvdWNoZXMsIHRhcmdldFRvdWNoZXMsIGNoYW5nZWRUb3VjaGVzLAotICAgICAgICAgICAg
ICAgIHR5cGUsIHZpZXcsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSkpOworICAgICAg
ICAgICAgICAgIHR5cGUsIHZpZXcsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSwKKyAg
ICAgICAgICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5KSk7CiAgICAg
fQogCiAgICAgdm9pZCBpbml0VG91Y2hFdmVudChUb3VjaExpc3QqIHRvdWNoZXMsIFRvdWNoTGlz
dCogdGFyZ2V0VG91Y2hlcywKICAgICAgICAgICAgIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMs
IGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgCiAgICAgICAgICAgICBQYXNzUmVmUHRyPEFic3Ry
YWN0Vmlldz4gdmlldywgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCAKLSAgICAgICAgICAgIGlu
dCBjbGllbnRYLCBpbnQgY2xpZW50WSk7CisgICAgICAgICAgICBpbnQgY2xpZW50WCwgaW50IGNs
aWVudFksCisgICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0
S2V5LCBib29sIG1ldGFLZXkpOwogCiAgICAgVG91Y2hMaXN0KiB0b3VjaGVzKCkgY29uc3QgeyBy
ZXR1cm4gbV90b3VjaGVzLmdldCgpOyB9CiAgICAgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzKCkg
Y29uc3QgeyByZXR1cm4gbV90YXJnZXRUb3VjaGVzLmdldCgpOyB9CkBAIC02Miw3ICs2NSw4IEBA
IHByaXZhdGU6CiAgICAgVG91Y2hFdmVudChUb3VjaExpc3QqIHRvdWNoZXMsIFRvdWNoTGlzdCog
dGFyZ2V0VG91Y2hlcywKICAgICAgICAgICAgIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwKICAgICAgICAgICAgIFBhc3NSZWZQdHI8QWJzdHJhY3RW
aWV3PiwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsCi0gICAgICAgICAgICBp
bnQgcGFnZVkpOworICAgICAgICAgICAgaW50IHBhZ2VZLAorICAgICAgICAgICAgYm9vbCBjdHJs
S2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KTsKIAogICAgIHZp
cnR1YWwgYm9vbCBpc1RvdWNoRXZlbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuaWRsIGIvV2ViQ29yZS9kb20vVG91Y2hFdmVu
dC5pZGwKaW5kZXggYjcxNDhiMC4uYjNlODQ3NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vVG91
Y2hFdmVudC5pZGwKKysrIGIvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5pZGwKQEAgLTMyLDYgKzMy
LDEwIEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVG91Y2hM
aXN0IHRvdWNoZXM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBUb3VjaExpc3QgdGFyZ2V0
VG91Y2hlczsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFRvdWNoTGlzdCBjaGFuZ2VkVG91
Y2hlczsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgY3RybEtl
eTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgc2hpZnRLZXk7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIGFsdEtleTsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgbWV0YUtleTsKIAogICAg
ICAgICB2b2lkIGluaXRUb3VjaEV2ZW50KGluIFRvdWNoTGlzdCB0b3VjaGVzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFRvdWNoTGlzdCB0YXJnZXRUb3VjaGVzLApAQCAtNDEsNiAr
NDUsMTAgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
bG9uZyBzY3JlZW5YLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIHNjcmVl
blksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgY2xpZW50WCwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBjbGllbnRZKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBsb25nIGNsaWVudFksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gYm9vbGVhbiBjdHJsS2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJv
b2xlYW4gYWx0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gc2hp
ZnRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBtZXRhS2V5KTsK
ICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAxYWMyMDYzLi4zZDEyMDBjIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcApAQCAtMjU5OSw3ICsyNTk5LDkgQEAgYm9vbCBFdmVudEhhbmRsZXI6
OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICBS
ZWZQdHI8VG91Y2hFdmVudD4gZXYgPSBUb3VjaEV2ZW50OjpjcmVhdGUodG91Y2hlcy5nZXQoKSwg
dGFyZ2V0VG91Y2hlcy5nZXQoKSwgY2hhbmdlZFRvdWNoZXMuZ2V0KCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpldmVudE5hbWUsIG1fdG91Y2hFdmVu
dFRhcmdldC0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9maXJzdFRvdWNoU2NyZWVuUG9zLngoKSwgbV9m
aXJzdFRvdWNoU2NyZWVuUG9zLnkoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9maXJzdFRvdWNoUGFnZVBvcy54KCksIG1fZmlyc3RUb3VjaFBhZ2VQ
b3MueSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV9maXJzdFRvdWNoUGFnZVBvcy54KCksIG1fZmlyc3RUb3VjaFBhZ2VQb3MueSgpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5jdHJsS2V5KCks
IGV2ZW50LmFsdEtleSgpLCBldmVudC5zaGlmdEtleSgpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5tZXRhS2V5KCkpOwogCiAgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7CiAgICAgbV90b3VjaEV2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGV2
LmdldCgpLCBlYyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hF
dmVudC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoRXZlbnQuaAppbmRleCAwZDM4
ZjhhLi41YzE4N2Q1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hF
dmVudC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmgKQEAgLTM3
LDcgKzM3LDEzIEBAIGVudW0gVG91Y2hFdmVudFR5cGUgeyBUb3VjaFN0YXJ0LCBUb3VjaE1vdmUs
IFRvdWNoRW5kIH07CiAKIGNsYXNzIFBsYXRmb3JtVG91Y2hFdmVudCB7CiBwdWJsaWM6Ci0gICAg
UGxhdGZvcm1Ub3VjaEV2ZW50KCkgOiBtX3R5cGUoVG91Y2hTdGFydCkge30KKyAgICBQbGF0Zm9y
bVRvdWNoRXZlbnQoKQorICAgICAgICA6IG1fdHlwZShUb3VjaFN0YXJ0KQorICAgICAgICAsIG1f
Y3RybEtleShmYWxzZSkKKyAgICAgICAgLCBtX2FsdEtleShmYWxzZSkKKyAgICAgICAgLCBtX3No
aWZ0S2V5KGZhbHNlKQorICAgICAgICAsIG1fbWV0YUtleShmYWxzZSkKKyAgICB7fQogI2lmIFBM
QVRGT1JNKFFUKQogICAgIFBsYXRmb3JtVG91Y2hFdmVudChRVG91Y2hFdmVudCopOwogI2VuZGlm
CkBAIC00NSw5ICs1MSwxOCBAQCBwdWJsaWM6CiAgICAgVG91Y2hFdmVudFR5cGUgdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIGNvbnN0IFZlY3RvcjxQbGF0Zm9ybVRvdWNoUG9p
bnQ+JiB0b3VjaFBvaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hQb2ludHM7IH0KIAorICAg
IGJvb2wgY3RybEtleSgpIGNvbnN0IHsgcmV0dXJuIG1fY3RybEtleTsgfQorICAgIGJvb2wgYWx0
S2V5KCkgY29uc3QgeyByZXR1cm4gbV9hbHRLZXk7IH0KKyAgICBib29sIHNoaWZ0S2V5KCkgY29u
c3QgeyByZXR1cm4gbV9zaGlmdEtleTsgfQorICAgIGJvb2wgbWV0YUtleSgpIGNvbnN0IHsgcmV0
dXJuIG1fbWV0YUtleTsgfQorCiBwcml2YXRlOgogICAgIFRvdWNoRXZlbnRUeXBlIG1fdHlwZTsK
ICAgICBWZWN0b3I8UGxhdGZvcm1Ub3VjaFBvaW50PiBtX3RvdWNoUG9pbnRzOworICAgIGJvb2wg
bV9jdHJsS2V5OworICAgIGJvb2wgbV9hbHRLZXk7CisgICAgYm9vbCBtX3NoaWZ0S2V5OworICAg
IGJvb2wgbV9tZXRhS2V5OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9QbGF0Zm9ybVRvdWNoRXZlbnRRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3Jt
VG91Y2hFdmVudFF0LmNwcAppbmRleCBiMzI5YjE0Li4zMzhlOWQ0IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtVG91Y2hFdmVudFF0LmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1BsYXRmb3JtVG91Y2hFdmVudFF0LmNwcApAQCAtMzcsNiArMzcsMTEgQEAgUGxh
dGZvcm1Ub3VjaEV2ZW50OjpQbGF0Zm9ybVRvdWNoRXZlbnQoUVRvdWNoRXZlbnQqIGV2ZW50KQog
ICAgIGNvbnN0IFFMaXN0PFFUb3VjaEV2ZW50OjpUb3VjaFBvaW50PiYgcG9pbnRzID0gZXZlbnQt
PnRvdWNoUG9pbnRzKCk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwb2ludHMuY291bnQoKTsg
KytpKQogICAgICAgICBtX3RvdWNoUG9pbnRzLmFwcGVuZChQbGF0Zm9ybVRvdWNoUG9pbnQocG9p
bnRzLmF0KGkpKSk7CisKKyAgICBtX2N0cmxLZXkgPSAoZXZlbnQtPm1vZGlmaWVycygpICYgUXQ6
OkNvbnRyb2xNb2RpZmllcik7CisgICAgbV9hbHRLZXkgPSAoZXZlbnQtPm1vZGlmaWVycygpICYg
UXQ6OkFsdE1vZGlmaWVyKTsKKyAgICBtX3NoaWZ0S2V5ID0gKGV2ZW50LT5tb2RpZmllcnMoKSAm
IFF0OjpTaGlmdE1vZGlmaWVyKTsKKyAgICBtX21ldGFLZXkgPSAoZXZlbnQtPm1vZGlmaWVycygp
ICYgUXQ6Ok1ldGFNb2RpZmllcik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0No
YW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCA5YzU0YWRjLi4yODYxYWM5IDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMTItMTMgIFNpbW9uIEhhdXNtYW5uICA8aGF1c21h
bm5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbUXRdIEFkZCBzdXBwb3J0IGZvciBrZXlib2FyZCBtb2RpZmllcnMgdG8gUXQgRFJU
J3MgRXZlbnRTZW5kZXIgZm9yIHRvdWNoIGV2ZW50cworCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQ4MgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvcXQvRXZlbnRTZW5kZXJRdC5jcHA6CisgICAgICAgIChFdmVudFNlbmRlcjo6c2V0VG91Y2hN
b2RpZmllcik6CisgICAgICAgIChFdmVudFNlbmRlcjo6Y2xlYXJUb3VjaFBvaW50cyk6CisgICAg
ICAgIChFdmVudFNlbmRlcjo6c2VuZFRvdWNoRXZlbnQpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL3F0L0V2ZW50U2VuZGVyUXQuaDoKKwogMjAwOS0xMi0xMiAgTWFjaWVqIFN0YWNob3dpYWsg
IDxtanNAYXBwbGUuY29tPgogCiAgICAgICAgIE5vdCByZXZpZXdlZCwgZml4aW5nIHByZXZpb3Vz
IGNvbW1lbnQuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVu
dFNlbmRlclF0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVy
UXQuY3BwCmluZGV4IGI4ZGQ0NWIuLjYyOGVmODAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuY3BwCkBAIC0yNzQsNiArMjc0LDI2IEBAIHZvaWQg
RXZlbnRTZW5kZXI6OnVwZGF0ZVRvdWNoUG9pbnQoaW50IGluZGV4LCBpbnQgeCwgaW50IHkpCiAj
ZW5kaWYKIH0KIAordm9pZCBFdmVudFNlbmRlcjo6c2V0VG91Y2hNb2RpZmllcihjb25zdCBRU3Ry
aW5nICZtb2RpZmllciwgYm9vbCBlbmFibGUpCit7CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJT
SU9OX0NIRUNLKDQsIDYsIDApCisgICAgUXQ6OktleWJvYXJkTW9kaWZpZXIgbW9kID0gUXQ6Ok5v
TW9kaWZpZXI7CisgICAgaWYgKCFtb2RpZmllci5jb21wYXJlKFFMYXRpbjFTdHJpbmcoInNoaWZ0
IiksIFF0OjpDYXNlSW5zZW5zaXRpdmUpKQorICAgICAgICBtb2QgPSBRdDo6U2hpZnRNb2RpZmll
cjsKKyAgICBlbHNlIGlmICghbW9kaWZpZXIuY29tcGFyZShRTGF0aW4xU3RyaW5nKCJhbHQiKSwg
UXQ6OkNhc2VJbnNlbnNpdGl2ZSkpCisgICAgICAgIG1vZCA9IFF0OjpBbHRNb2RpZmllcjsKKyAg
ICBlbHNlIGlmICghbW9kaWZpZXIuY29tcGFyZShRTGF0aW4xU3RyaW5nKCJtZXRhIiksIFF0OjpD
YXNlSW5zZW5zaXRpdmUpKQorICAgICAgICBtb2QgPSBRdDo6TWV0YU1vZGlmaWVyOworICAgIGVs
c2UgaWYgKCFtb2RpZmllci5jb21wYXJlKFFMYXRpbjFTdHJpbmcoImN0cmwiKSwgUXQ6OkNhc2VJ
bnNlbnNpdGl2ZSkpCisgICAgICAgIG1vZCA9IFF0OjpDb250cm9sTW9kaWZpZXI7CisKKyAgICBp
ZiAoZW5hYmxlKQorICAgICAgICBtX3RvdWNoTW9kaWZpZXJzIHw9IG1vZDsKKyAgICBlbHNlCisg
ICAgICAgIG1fdG91Y2hNb2RpZmllcnMgJj0gfm1vZDsKKyNlbmRpZgorfQorCiB2b2lkIEV2ZW50
U2VuZGVyOjp0b3VjaFN0YXJ0KCkKIHsKICNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hF
Q0soNCwgNiwgMCkKQEAgLTMwMSw2ICszMjEsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpjbGVhclRv
dWNoUG9pbnRzKCkKIHsKICNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNiwg
MCkKICAgICBtX3RvdWNoUG9pbnRzLmNsZWFyKCk7CisgICAgbV90b3VjaE1vZGlmaWVycyA9IFF0
OjpLZXlib2FyZE1vZGlmaWVycygpOwogI2VuZGlmCiB9CiAKQEAgLTMxNyw3ICszMzgsNyBAQCB2
b2lkIEV2ZW50U2VuZGVyOjpyZWxlYXNlVG91Y2hQb2ludChpbnQgaW5kZXgpCiB2b2lkIEV2ZW50
U2VuZGVyOjpzZW5kVG91Y2hFdmVudChRRXZlbnQ6OlR5cGUgdHlwZSkKIHsKICNpZiBRVF9WRVJT
SU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNiwgMCkKLSAgICBRVG91Y2hFdmVudCBldmVudCh0
eXBlKTsKKyAgICBRVG91Y2hFdmVudCBldmVudCh0eXBlLCBRVG91Y2hFdmVudDo6VG91Y2hTY3Jl
ZW4sIG1fdG91Y2hNb2RpZmllcnMpOwogICAgIGV2ZW50LnNldFRvdWNoUG9pbnRzKG1fdG91Y2hQ
b2ludHMpOwogICAgIFFBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fcGFnZSwgJmV2ZW50KTsKICAg
ICBRTGlzdDxRVG91Y2hFdmVudDo6VG91Y2hQb2ludD46Okl0ZXJhdG9yIGl0ID0gbV90b3VjaFBv
aW50cy5iZWdpbigpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
RXZlbnRTZW5kZXJRdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRTZW5k
ZXJRdC5oCmluZGV4IDk1ZTE4MmQuLjMwNzM1YzMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmgKQEAgLTYwLDYgKzYwLDcgQEAgcHVibGljIHNsb3Rz
OgogICAgIHZvaWQgc2NoZWR1bGVBc3luY2hyb25vdXNDbGljaygpOwogICAgIHZvaWQgYWRkVG91
Y2hQb2ludChpbnQgeCwgaW50IHkpOwogICAgIHZvaWQgdXBkYXRlVG91Y2hQb2ludChpbnQgaW5k
ZXgsIGludCB4LCBpbnQgeSk7CisgICAgdm9pZCBzZXRUb3VjaE1vZGlmaWVyKGNvbnN0IFFTdHJp
bmcgJm1vZGlmaWVyLCBib29sIGVuYWJsZSk7CiAgICAgdm9pZCB0b3VjaFN0YXJ0KCk7CiAgICAg
dm9pZCB0b3VjaE1vdmUoKTsKICAgICB2b2lkIHRvdWNoRW5kKCk7CkBAIC03NCw2ICs3NSw3IEBA
IHByaXZhdGU6CiAgICAgUVdlYkZyYW1lKiBmcmFtZVVuZGVyTW91c2UoKSBjb25zdDsKICNpZiBR
VF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNiwgMCkKICAgICBRTGlzdDxRVG91Y2hF
dmVudDo6VG91Y2hQb2ludD4gbV90b3VjaFBvaW50czsKKyAgICBRdDo6S2V5Ym9hcmRNb2RpZmll
cnMgbV90b3VjaE1vZGlmaWVyczsKICNlbmRpZgogfTsKICNlbmRpZiAvLyAgRXZlbnRTZW5kZXJR
dF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44778</attachid>
            <date>2009-12-13 23:53:11 -0800</date>
            <delta_ts>2009-12-14 12:57:39 -0800</delta_ts>
            <desc>Updated patch with indenting glitch in TouchEvent.idl fixed</desc>
            <filename>bug-32482-20091214085309.patch</filename>
            <type>text/plain</type>
            <size>15586</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMTQ1ZDdkLi41OTg3NTU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMTIt
MTMgIFNpbW9uIEhhdXNtYW5uICA8aGF1c21hbm5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEV4dGVuZCBiYXNpYyB0b3Vj
aCBldmVudCB0ZXN0IHdpdGggYSBzaW1wbGUga2V5Ym9hcmQgbW9kaWZpZXIgdGVzdC4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0ODIKKworICAg
ICAgICAqIGZhc3QvZXZlbnRzL2Jhc2ljLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL2Jhc2ljLXRvdWNoLWV2ZW50cy5qczoKKyAg
ICAgICAgKHNpbmdsZVRvdWNoU2VxdWVuY2UpOgorCiAyMDA5LTEyLTEyICBDc2FiYSBPc3p0cm9n
b27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBNaXNzaW5nIGZvcndhcmQg
ZW50cmllcyB3aGVuIGR1bXBpbmcgYmFjay9mb3J3YXJkIGxpc3QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2Jhc2ljLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9iYXNpYy10b3VjaC1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4
IDg1ZWRlNzUuLjM4NDE0MzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Jh
c2ljLXRvdWNoLWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvYmFzaWMtdG91Y2gtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtNCw2ICs0LDcgQEAgUEFTUyBs
YXN0RXZlbnQudHlwZSBpcyAidG91Y2hzdGFydCIKIFBBU1MgbGFzdEV2ZW50LnRvdWNoZXMubGVu
Z3RoIGlzIDEKIFBBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBpcyAxCiBQQVNT
IGxhc3RFdmVudC50YXJnZXRUb3VjaGVzLmxlbmd0aCBpcyAxCitQQVNTIGxhc3RFdmVudC5zaGlm
dEtleSBpcyBmYWxzZQogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQgaXMgInRv
dWNodGFyZ2V0IgogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWCBpcyAxMAogUEFTUyBs
YXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWSBpcyAxMApAQCAtMTksNiArMjAsMTAgQEAgUEFTUyBs
YXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWSBpcyAxNQogUEFTUyBsYXN0RXZlbnQudG91Y2hlc1sw
XS5jbGllbnRYIGlzIDIwCiBQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLmNsaWVudFkgaXMgMTUK
IFBBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0uaWRlbnRpZmllciBpcyAwCitQQVNTIGxhc3RFdmVu
dC5zaGlmdEtleSBpcyB0cnVlCitQQVNTIGxhc3RFdmVudC5hbHRLZXkgaXMgdHJ1ZQorUEFTUyBs
YXN0RXZlbnQuY3RybEtleSBpcyBmYWxzZQorUEFTUyBsYXN0RXZlbnQubWV0YUtleSBpcyBmYWxz
ZQogUEFTUyBsYXN0RXZlbnQudHlwZSBpcyAidG91Y2hlbmQiCiBQQVNTIGxhc3RFdmVudC50b3Vj
aGVzLmxlbmd0aCBpcyAwCiBQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggaXMg
MQpAQCAtMjgsNiArMzMsOCBAQCBQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdl
WSBpcyAxNQogUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCBpcyAyMAog
UEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSBpcyAxNQogUEFTUyBsYXN0
RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uaWRlbnRpZmllciBpcyAwCitQQVNTIGxhc3RFdmVudC5z
aGlmdEtleSBpcyBmYWxzZQorUEFTUyBsYXN0RXZlbnQuYWx0S2V5IGlzIGZhbHNlCiBtdWx0aSB0
b3VjaCBzZXF1ZW5jZQogUEFTUyBsYXN0RXZlbnQudHlwZSBpcyAidG91Y2hzdGFydCIKIFBBU1Mg
bGFzdEV2ZW50LnRvdWNoZXMubGVuZ3RoIGlzIDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9iYXNpYy10b3VjaC1ldmVudHMuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvYmFzaWMtdG91Y2gtZXZlbnRzLmpzCmluZGV4IGEw
MTA4YjYuLjdlZWNkMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcmlw
dC10ZXN0cy9iYXNpYy10b3VjaC1ldmVudHMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc2NyaXB0LXRlc3RzL2Jhc2ljLXRvdWNoLWV2ZW50cy5qcwpAQCAtNDYsMTkgKzQ2LDMxIEBA
IGZ1bmN0aW9uIHNpbmdsZVRvdWNoU2VxdWVuY2UoKQogICAgIGV2ZW50U2VuZGVyLnRvdWNoU3Rh
cnQoKTsKIAogICAgIHZlcmlmeVRvdWNoRXZlbnQoInRvdWNoc3RhcnQiLCAxLCAxLCAxKTsKKyAg
ICBzaG91bGRCZSgibGFzdEV2ZW50LnNoaWZ0S2V5IiwgImZhbHNlIik7CiAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJsYXN0RXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQiLCAidG91Y2h0YXJn
ZXQiKTsKICAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0b3VjaGVzIiwgMCwgMTAsIDEwLCAwKTsKIAog
ICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQoMCwgMjAsIDE1KTsKKyAgICBldmVudFNl
bmRlci5zZXRUb3VjaE1vZGlmaWVyKCJzaGlmdCIsIHRydWUpOworICAgIGV2ZW50U2VuZGVyLnNl
dFRvdWNoTW9kaWZpZXIoImFsdCIsIHRydWUpOwogICAgIGV2ZW50U2VuZGVyLnRvdWNoTW92ZSgp
OwogCiAgICAgdmVyaWZ5VG91Y2hFdmVudCgidG91Y2htb3ZlIiwgMSwgMSwgMSk7CiAgICAgdmVy
aWZ5VG91Y2hQb2ludCgidG91Y2hlcyIsIDAsIDIwLCAxNSwgMCk7CisgICAgc2hvdWxkQmUoImxh
c3RFdmVudC5zaGlmdEtleSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUoImxhc3RFdmVudC5hbHRL
ZXkiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlKCJsYXN0RXZlbnQuY3RybEtleSIsICJmYWxzZSIp
OworICAgIHNob3VsZEJlKCJsYXN0RXZlbnQubWV0YUtleSIsICJmYWxzZSIpOworCisgICAgZXZl
bnRTZW5kZXIuc2V0VG91Y2hNb2RpZmllcigic2hpZnQiLCBmYWxzZSk7CisgICAgZXZlbnRTZW5k
ZXIuc2V0VG91Y2hNb2RpZmllcigiYWx0IiwgZmFsc2UpOwogCiAgICAgZXZlbnRTZW5kZXIudG91
Y2hFbmQoKTsKIAogICAgIHZlcmlmeVRvdWNoRXZlbnQoInRvdWNoZW5kIiwgMCwgMSwgMCk7CiAg
ICAgdmVyaWZ5VG91Y2hQb2ludCgiY2hhbmdlZFRvdWNoZXMiLCAwLCAyMCwgMTUsIDApOworICAg
IHNob3VsZEJlKCJsYXN0RXZlbnQuc2hpZnRLZXkiLCAiZmFsc2UiKTsKKyAgICBzaG91bGRCZSgi
bGFzdEV2ZW50LmFsdEtleSIsICJmYWxzZSIpOwogfQogCiBmdW5jdGlvbiBtdWx0aVRvdWNoU2Vx
dWVuY2UoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBhZjAwYzBlLi5mMzQzMGUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDA5LTEyLTEzICBTaW1v
biBIYXVzbWFubiAgPGhhdXNtYW5uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBBZGQgc3VwcG9ydCBmb3Iga2V5Ym9hcmQg
bW9kaWZpZXJzIHRvIFRvdWNoRXZlbnQKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzI0ODIKKworICAgICAgICBTaW1pbGFyIHRvIG90aGVyIHVpIGV2
ZW50cyB3aXRoIGtleWJvYXJkIHN0YXRlLCBnZXQgdGhlIGFsdCwgc2hpZnQsCisgICAgICAgIG1l
dGEgYW5kIGN0cmwgbW9kaWZpZXJzIHN0cmFpZ2h0IGZyb20gdGhlIHBsYXRmb3JtIGV2ZW50Lgor
CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2hF
dmVudDo6VG91Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpUb3VjaEV2ZW50Ojppbml0VG91
Y2hFdmVudCk6CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlRvdWNoRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuaWRsOgorICAg
ICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6aGFuZGxlVG91Y2hFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Ub3Vj
aEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnQ6OlBsYXRmb3Jt
VG91Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnQ6OnNoaWZ0
S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudDo6Y3RybEtleSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnQ6OmFsdEtleSk6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnQ6Om1ldGFLZXkpOgorICAgICAgICAqIHBsYXRmb3Jt
L3F0L1BsYXRmb3JtVG91Y2hFdmVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
VG91Y2hFdmVudDo6UGxhdGZvcm1Ub3VjaEV2ZW50KToKKwogMjAwOS0xMi0xMiAgQ2hyaXN0aWFu
IER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
aXJrIFNjaHVsemUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcCBiL1dl
YkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwCmluZGV4IDU0ZmZmMWUuLmJjYzM5NWYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1RvdWNoRXZl
bnQuY3BwCkBAIC0zMyw5ICszMywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFRvdWNoRXZl
bnQ6OlRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRhcmdldFRvdWNo
ZXMsCiAgICAgICAgIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSwgCi0gICAgICAgIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBpbnQgc2Ny
ZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZKQorICAgICAgICBQYXNzUmVm
UHRyPEFic3RyYWN0Vmlldz4gdmlldywgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFn
ZVgsIGludCBwYWdlWSwKKyAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBz
aGlmdEtleSwgYm9vbCBtZXRhS2V5KQogICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1
ZSwgdHJ1ZSwgdmlldywgMCwgc2NyZWVuWCwgc2NyZWVuWSwgcGFnZVgsIHBhZ2VZLAotICAgICAg
ICAgICAgICAgICAgICAgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCisgICAgICAgICAg
ICAgICAgICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5KQogICAgICwg
bV90b3VjaGVzKHRvdWNoZXMpCiAgICAgLCBtX3RhcmdldFRvdWNoZXModGFyZ2V0VG91Y2hlcykK
ICAgICAsIG1fY2hhbmdlZFRvdWNoZXMoY2hhbmdlZFRvdWNoZXMpCkBAIC00NCw3ICs0NSw4IEBA
IFRvdWNoRXZlbnQ6OlRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRh
cmdldFRvdWNoZXMsCiAKIHZvaWQgVG91Y2hFdmVudDo6aW5pdFRvdWNoRXZlbnQoVG91Y2hMaXN0
KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRhcmdldFRvdWNoZXMsCiAgICAgICAgIFRvdWNoTGlzdCog
Y2hhbmdlZFRvdWNoZXMsIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgCi0gICAgICAgIFBhc3NS
ZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBj
bGllbnRYLCBpbnQgY2xpZW50WSkKKyAgICAgICAgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZp
ZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLAor
ICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1l
dGFLZXkpCiB7CiAgICAgaWYgKGRpc3BhdGNoZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTMs
NiArNTUsMTAgQEAgdm9pZCBUb3VjaEV2ZW50Ojppbml0VG91Y2hFdmVudChUb3VjaExpc3QqIHRv
dWNoZXMsIFRvdWNoTGlzdCogdGFyZ2V0VG91Y2hlcywKIAogICAgIG1fc2NyZWVuWCA9IHNjcmVl
blg7CiAgICAgbV9zY3JlZW5ZID0gc2NyZWVuWTsKKyAgICBtX2N0cmxLZXkgPSBjdHJsS2V5Owor
ICAgIG1fYWx0S2V5ID0gYWx0S2V5OworICAgIG1fc2hpZnRLZXkgPSBzaGlmdEtleTsKKyAgICBt
X21ldGFLZXkgPSBtZXRhS2V5OwogICAgIGluaXRDb29yZGluYXRlcyhjbGllbnRYLCBjbGllbnRZ
KTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5oIGIvV2ViQ29yZS9k
b20vVG91Y2hFdmVudC5oCmluZGV4IGM1ZmNlYmQuLjA4MGE0OTUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZG9tL1RvdWNoRXZlbnQuaAorKysgYi9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmgKQEAgLTQy
LDE2ICs0MiwxOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VG91Y2hFdmVudD4g
Y3JlYXRlKFRvdWNoTGlzdCogdG91Y2hlcywgCiAgICAgICAgICAgICBUb3VjaExpc3QqIHRhcmdl
dFRvdWNoZXMsIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIAogICAgICAgICAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywKLSAgICAg
ICAgICAgIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVkpCisg
ICAgICAgICAgICBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZ
LAorICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwg
Ym9vbCBtZXRhS2V5KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUb3VjaEV2
ZW50KHRvdWNoZXMsIHRhcmdldFRvdWNoZXMsIGNoYW5nZWRUb3VjaGVzLAotICAgICAgICAgICAg
ICAgIHR5cGUsIHZpZXcsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSkpOworICAgICAg
ICAgICAgICAgIHR5cGUsIHZpZXcsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSwKKyAg
ICAgICAgICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5KSk7CiAgICAg
fQogCiAgICAgdm9pZCBpbml0VG91Y2hFdmVudChUb3VjaExpc3QqIHRvdWNoZXMsIFRvdWNoTGlz
dCogdGFyZ2V0VG91Y2hlcywKICAgICAgICAgICAgIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMs
IGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgCiAgICAgICAgICAgICBQYXNzUmVmUHRyPEFic3Ry
YWN0Vmlldz4gdmlldywgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCAKLSAgICAgICAgICAgIGlu
dCBjbGllbnRYLCBpbnQgY2xpZW50WSk7CisgICAgICAgICAgICBpbnQgY2xpZW50WCwgaW50IGNs
aWVudFksCisgICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0
S2V5LCBib29sIG1ldGFLZXkpOwogCiAgICAgVG91Y2hMaXN0KiB0b3VjaGVzKCkgY29uc3QgeyBy
ZXR1cm4gbV90b3VjaGVzLmdldCgpOyB9CiAgICAgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzKCkg
Y29uc3QgeyByZXR1cm4gbV90YXJnZXRUb3VjaGVzLmdldCgpOyB9CkBAIC02Miw3ICs2NSw4IEBA
IHByaXZhdGU6CiAgICAgVG91Y2hFdmVudChUb3VjaExpc3QqIHRvdWNoZXMsIFRvdWNoTGlzdCog
dGFyZ2V0VG91Y2hlcywKICAgICAgICAgICAgIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwKICAgICAgICAgICAgIFBhc3NSZWZQdHI8QWJzdHJhY3RW
aWV3PiwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsCi0gICAgICAgICAgICBp
bnQgcGFnZVkpOworICAgICAgICAgICAgaW50IHBhZ2VZLAorICAgICAgICAgICAgYm9vbCBjdHJs
S2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KTsKIAogICAgIHZp
cnR1YWwgYm9vbCBpc1RvdWNoRXZlbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuaWRsIGIvV2ViQ29yZS9kb20vVG91Y2hFdmVu
dC5pZGwKaW5kZXggYjcxNDhiMC4uMDEwYzM2ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vVG91
Y2hFdmVudC5pZGwKKysrIGIvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5pZGwKQEAgLTMyLDYgKzMy
LDEwIEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVG91Y2hM
aXN0IHRvdWNoZXM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBUb3VjaExpc3QgdGFyZ2V0
VG91Y2hlczsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFRvdWNoTGlzdCBjaGFuZ2VkVG91
Y2hlczsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY3RybEtleTsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gc2hpZnRLZXk7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIGFsdEtleTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJv
b2xlYW4gbWV0YUtleTsKIAogICAgICAgICB2b2lkIGluaXRUb3VjaEV2ZW50KGluIFRvdWNoTGlz
dCB0b3VjaGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFRvdWNoTGlzdCB0YXJn
ZXRUb3VjaGVzLApAQCAtNDEsNiArNDUsMTAgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gbG9uZyBzY3JlZW5YLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBsb25nIHNjcmVlblksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IGxvbmcgY2xpZW50WCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBjbGll
bnRZKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIGNsaWVudFksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjdHJsS2V5LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gYWx0S2V5LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIGJvb2xlYW4gc2hpZnRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gYm9vbGVhbiBtZXRhS2V5KTsKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAx
YWMyMDYzLi4zZDEyMDBjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAorKysgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjU5OSw3ICsyNTk5LDkg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3Vj
aEV2ZW50JiBldmVudCkKICAgICBSZWZQdHI8VG91Y2hFdmVudD4gZXYgPSBUb3VjaEV2ZW50Ojpj
cmVhdGUodG91Y2hlcy5nZXQoKSwgdGFyZ2V0VG91Y2hlcy5nZXQoKSwgY2hhbmdlZFRvdWNoZXMu
Z2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpl
dmVudE5hbWUsIG1fdG91Y2hFdmVudFRhcmdldC0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9maXJzdFRv
dWNoU2NyZWVuUG9zLngoKSwgbV9maXJzdFRvdWNoU2NyZWVuUG9zLnkoKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9maXJzdFRvdWNoUGFnZVBvcy54
KCksIG1fZmlyc3RUb3VjaFBhZ2VQb3MueSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9maXJzdFRvdWNoUGFnZVBvcy54KCksIG1fZmlyc3RUb3Vj
aFBhZ2VQb3MueSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudC5jdHJsS2V5KCksIGV2ZW50LmFsdEtleSgpLCBldmVudC5zaGlmdEtleSgpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5tZXRh
S2V5KCkpOwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgbV90b3VjaEV2ZW50VGFy
Z2V0LT5kaXNwYXRjaEV2ZW50KGV2LmdldCgpLCBlYyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRv
dWNoRXZlbnQuaAppbmRleCAwZDM4ZjhhLi41YzE4N2Q1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1Ub3VjaEV2ZW50LmgKQEAgLTM3LDcgKzM3LDEzIEBAIGVudW0gVG91Y2hFdmVudFR5cGUgeyBU
b3VjaFN0YXJ0LCBUb3VjaE1vdmUsIFRvdWNoRW5kIH07CiAKIGNsYXNzIFBsYXRmb3JtVG91Y2hF
dmVudCB7CiBwdWJsaWM6Ci0gICAgUGxhdGZvcm1Ub3VjaEV2ZW50KCkgOiBtX3R5cGUoVG91Y2hT
dGFydCkge30KKyAgICBQbGF0Zm9ybVRvdWNoRXZlbnQoKQorICAgICAgICA6IG1fdHlwZShUb3Vj
aFN0YXJ0KQorICAgICAgICAsIG1fY3RybEtleShmYWxzZSkKKyAgICAgICAgLCBtX2FsdEtleShm
YWxzZSkKKyAgICAgICAgLCBtX3NoaWZ0S2V5KGZhbHNlKQorICAgICAgICAsIG1fbWV0YUtleShm
YWxzZSkKKyAgICB7fQogI2lmIFBMQVRGT1JNKFFUKQogICAgIFBsYXRmb3JtVG91Y2hFdmVudChR
VG91Y2hFdmVudCopOwogI2VuZGlmCkBAIC00NSw5ICs1MSwxOCBAQCBwdWJsaWM6CiAgICAgVG91
Y2hFdmVudFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIGNvbnN0IFZl
Y3RvcjxQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cygpIGNvbnN0IHsgcmV0dXJuIG1f
dG91Y2hQb2ludHM7IH0KIAorICAgIGJvb2wgY3RybEtleSgpIGNvbnN0IHsgcmV0dXJuIG1fY3Ry
bEtleTsgfQorICAgIGJvb2wgYWx0S2V5KCkgY29uc3QgeyByZXR1cm4gbV9hbHRLZXk7IH0KKyAg
ICBib29sIHNoaWZ0S2V5KCkgY29uc3QgeyByZXR1cm4gbV9zaGlmdEtleTsgfQorICAgIGJvb2wg
bWV0YUtleSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YUtleTsgfQorCiBwcml2YXRlOgogICAgIFRv
dWNoRXZlbnRUeXBlIG1fdHlwZTsKICAgICBWZWN0b3I8UGxhdGZvcm1Ub3VjaFBvaW50PiBtX3Rv
dWNoUG9pbnRzOworICAgIGJvb2wgbV9jdHJsS2V5OworICAgIGJvb2wgbV9hbHRLZXk7CisgICAg
Ym9vbCBtX3NoaWZ0S2V5OworICAgIGJvb2wgbV9tZXRhS2V5OwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVRvdWNoRXZlbnRRdC5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL3F0L1BsYXRmb3JtVG91Y2hFdmVudFF0LmNwcAppbmRleCBiMzI5YjE0Li4zMzhl
OWQ0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtVG91Y2hFdmVudFF0
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtVG91Y2hFdmVudFF0LmNwcApA
QCAtMzcsNiArMzcsMTEgQEAgUGxhdGZvcm1Ub3VjaEV2ZW50OjpQbGF0Zm9ybVRvdWNoRXZlbnQo
UVRvdWNoRXZlbnQqIGV2ZW50KQogICAgIGNvbnN0IFFMaXN0PFFUb3VjaEV2ZW50OjpUb3VjaFBv
aW50PiYgcG9pbnRzID0gZXZlbnQtPnRvdWNoUG9pbnRzKCk7CiAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBwb2ludHMuY291bnQoKTsgKytpKQogICAgICAgICBtX3RvdWNoUG9pbnRzLmFwcGVuZChQ
bGF0Zm9ybVRvdWNoUG9pbnQocG9pbnRzLmF0KGkpKSk7CisKKyAgICBtX2N0cmxLZXkgPSAoZXZl
bnQtPm1vZGlmaWVycygpICYgUXQ6OkNvbnRyb2xNb2RpZmllcik7CisgICAgbV9hbHRLZXkgPSAo
ZXZlbnQtPm1vZGlmaWVycygpICYgUXQ6OkFsdE1vZGlmaWVyKTsKKyAgICBtX3NoaWZ0S2V5ID0g
KGV2ZW50LT5tb2RpZmllcnMoKSAmIFF0OjpTaGlmdE1vZGlmaWVyKTsKKyAgICBtX21ldGFLZXkg
PSAoZXZlbnQtPm1vZGlmaWVycygpICYgUXQ6Ok1ldGFNb2RpZmllcik7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRl
eCA5YzU0YWRjLi4yODYxYWM5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMTItMTMgIFNp
bW9uIEhhdXNtYW5uICA8aGF1c21hbm5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEFkZCBzdXBwb3J0IGZvciBrZXlib2Fy
ZCBtb2RpZmllcnMgdG8gUXQgRFJUJ3MgRXZlbnRTZW5kZXIgZm9yIHRvdWNoIGV2ZW50cworCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQ4MgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRTZW5kZXJRdC5jcHA6CisgICAgICAgIChF
dmVudFNlbmRlcjo6c2V0VG91Y2hNb2RpZmllcik6CisgICAgICAgIChFdmVudFNlbmRlcjo6Y2xl
YXJUb3VjaFBvaW50cyk6CisgICAgICAgIChFdmVudFNlbmRlcjo6c2VuZFRvdWNoRXZlbnQpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuaDoKKwogMjAwOS0xMi0x
MiAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAgIE5vdCByZXZp
ZXdlZCwgZml4aW5nIHByZXZpb3VzIGNvbW1lbnQuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuY3BwCmluZGV4IGI4ZGQ0NWIuLjYyOGVmODAgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuY3BwCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuY3BwCkBAIC0y
NzQsNiArMjc0LDI2IEBAIHZvaWQgRXZlbnRTZW5kZXI6OnVwZGF0ZVRvdWNoUG9pbnQoaW50IGlu
ZGV4LCBpbnQgeCwgaW50IHkpCiAjZW5kaWYKIH0KIAordm9pZCBFdmVudFNlbmRlcjo6c2V0VG91
Y2hNb2RpZmllcihjb25zdCBRU3RyaW5nICZtb2RpZmllciwgYm9vbCBlbmFibGUpCit7CisjaWYg
UVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDYsIDApCisgICAgUXQ6OktleWJvYXJk
TW9kaWZpZXIgbW9kID0gUXQ6Ok5vTW9kaWZpZXI7CisgICAgaWYgKCFtb2RpZmllci5jb21wYXJl
KFFMYXRpbjFTdHJpbmcoInNoaWZ0IiksIFF0OjpDYXNlSW5zZW5zaXRpdmUpKQorICAgICAgICBt
b2QgPSBRdDo6U2hpZnRNb2RpZmllcjsKKyAgICBlbHNlIGlmICghbW9kaWZpZXIuY29tcGFyZShR
TGF0aW4xU3RyaW5nKCJhbHQiKSwgUXQ6OkNhc2VJbnNlbnNpdGl2ZSkpCisgICAgICAgIG1vZCA9
IFF0OjpBbHRNb2RpZmllcjsKKyAgICBlbHNlIGlmICghbW9kaWZpZXIuY29tcGFyZShRTGF0aW4x
U3RyaW5nKCJtZXRhIiksIFF0OjpDYXNlSW5zZW5zaXRpdmUpKQorICAgICAgICBtb2QgPSBRdDo6
TWV0YU1vZGlmaWVyOworICAgIGVsc2UgaWYgKCFtb2RpZmllci5jb21wYXJlKFFMYXRpbjFTdHJp
bmcoImN0cmwiKSwgUXQ6OkNhc2VJbnNlbnNpdGl2ZSkpCisgICAgICAgIG1vZCA9IFF0OjpDb250
cm9sTW9kaWZpZXI7CisKKyAgICBpZiAoZW5hYmxlKQorICAgICAgICBtX3RvdWNoTW9kaWZpZXJz
IHw9IG1vZDsKKyAgICBlbHNlCisgICAgICAgIG1fdG91Y2hNb2RpZmllcnMgJj0gfm1vZDsKKyNl
bmRpZgorfQorCiB2b2lkIEV2ZW50U2VuZGVyOjp0b3VjaFN0YXJ0KCkKIHsKICNpZiBRVF9WRVJT
SU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNiwgMCkKQEAgLTMwMSw2ICszMjEsNyBAQCB2b2lk
IEV2ZW50U2VuZGVyOjpjbGVhclRvdWNoUG9pbnRzKCkKIHsKICNpZiBRVF9WRVJTSU9OID49IFFU
X1ZFUlNJT05fQ0hFQ0soNCwgNiwgMCkKICAgICBtX3RvdWNoUG9pbnRzLmNsZWFyKCk7CisgICAg
bV90b3VjaE1vZGlmaWVycyA9IFF0OjpLZXlib2FyZE1vZGlmaWVycygpOwogI2VuZGlmCiB9CiAK
QEAgLTMxNyw3ICszMzgsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpyZWxlYXNlVG91Y2hQb2ludChp
bnQgaW5kZXgpCiB2b2lkIEV2ZW50U2VuZGVyOjpzZW5kVG91Y2hFdmVudChRRXZlbnQ6OlR5cGUg
dHlwZSkKIHsKICNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNiwgMCkKLSAg
ICBRVG91Y2hFdmVudCBldmVudCh0eXBlKTsKKyAgICBRVG91Y2hFdmVudCBldmVudCh0eXBlLCBR
VG91Y2hFdmVudDo6VG91Y2hTY3JlZW4sIG1fdG91Y2hNb2RpZmllcnMpOwogICAgIGV2ZW50LnNl
dFRvdWNoUG9pbnRzKG1fdG91Y2hQb2ludHMpOwogICAgIFFBcHBsaWNhdGlvbjo6c2VuZEV2ZW50
KG1fcGFnZSwgJmV2ZW50KTsKICAgICBRTGlzdDxRVG91Y2hFdmVudDo6VG91Y2hQb2ludD46Okl0
ZXJhdG9yIGl0ID0gbV90b3VjaFBvaW50cy5iZWdpbigpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvRXZlbnRTZW5kZXJRdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvRXZlbnRTZW5kZXJRdC5oCmluZGV4IDk1ZTE4MmQuLjMwNzM1YzMgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0V2ZW50U2VuZGVyUXQuaAorKysg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9FdmVudFNlbmRlclF0LmgKQEAgLTYwLDYg
KzYwLDcgQEAgcHVibGljIHNsb3RzOgogICAgIHZvaWQgc2NoZWR1bGVBc3luY2hyb25vdXNDbGlj
aygpOwogICAgIHZvaWQgYWRkVG91Y2hQb2ludChpbnQgeCwgaW50IHkpOwogICAgIHZvaWQgdXBk
YXRlVG91Y2hQb2ludChpbnQgaW5kZXgsIGludCB4LCBpbnQgeSk7CisgICAgdm9pZCBzZXRUb3Vj
aE1vZGlmaWVyKGNvbnN0IFFTdHJpbmcgJm1vZGlmaWVyLCBib29sIGVuYWJsZSk7CiAgICAgdm9p
ZCB0b3VjaFN0YXJ0KCk7CiAgICAgdm9pZCB0b3VjaE1vdmUoKTsKICAgICB2b2lkIHRvdWNoRW5k
KCk7CkBAIC03NCw2ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgUVdlYkZyYW1lKiBmcmFtZVVuZGVy
TW91c2UoKSBjb25zdDsKICNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNiwg
MCkKICAgICBRTGlzdDxRVG91Y2hFdmVudDo6VG91Y2hQb2ludD4gbV90b3VjaFBvaW50czsKKyAg
ICBRdDo6S2V5Ym9hcmRNb2RpZmllcnMgbV90b3VjaE1vZGlmaWVyczsKICNlbmRpZgogfTsKICNl
bmRpZiAvLyAgRXZlbnRTZW5kZXJRdF9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>