<?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>54373</bug_id>
          
          <creation_ts>2011-02-13 21:14:52 -0800</creation_ts>
          <short_desc>CSS &apos;+&apos; combinator with more than 2 combinations doesn&apos;t work</short_desc>
          <delta_ts>2016-06-08 00:39:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc>http://www.w3.org/Style/CSS/Test/CSS2.1/20100127/html4/dynamic-sibling-combinator-001.htm</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>93304</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Leo Yang">leo.yang</reporter>
          <assigned_to name="Leo Yang">leo.yang</assigned_to>
          <cc>aldomx</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>bb-webkit.org</cc>
    
    <cc>bdakin</cc>
    
    <cc>benjamin</cc>
    
    <cc>dan</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>m5</cc>
    
    <cc>mitz</cc>
    
    <cc>priyajeet.hora</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>350520</commentid>
    <comment_count>0</comment_count>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-02-13 21:14:52 -0800</bug_when>
    <thetext>The test case specified by URL field doesn&apos;t work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350525</commentid>
    <comment_count>1</comment_count>
      <attachid>82287</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-02-13 21:42:56 -0800</bug_when>
    <thetext>Created attachment 82287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351928</commentid>
    <comment_count>2</comment_count>
      <attachid>82601</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-02-16 01:03:11 -0800</bug_when>
    <thetext>Created attachment 82601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364133</commentid>
    <comment_count>3</comment_count>
      <attachid>82601</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-03-08 13:33:44 -0800</bug_when>
    <thetext>Comment on attachment 82601
Patch

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

Good first start.  Don&apos;t forget you need to patch checkForSiblingStyleChanges as well.  Will need a dynamic test to cover that code also.

&gt; Source/WebCore/css/CSSStyleSelector.cpp:2243
&gt; +                if (e-&gt;parentNode() &amp;&amp; e-&gt;parentNode()-&gt;isElementNode()) {
&gt; +                    RenderStyle* parentStyle = elementStyle ? elementParentStyle : e-&gt;parentNode()-&gt;renderStyle();
&gt; +                    if (parentStyle)
&gt; +                        parentStyle-&gt;setChildrenAffectedByDirectAdjacentRules();

If you&apos;re going to put a bit on the children, then you don&apos;t need to set a bit on the parent any longer.  Just remove this code.

&gt; Source/WebCore/dom/Element.cpp:1101
&gt; +        if (hasDirectAdjacentRules &amp;&amp; n-&gt;isElementNode() &amp;&amp; n-&gt;renderStyle() &amp;&amp; n-&gt;renderStyle()-&gt;affectedByDirectAdjacentRules())

You need to be smarter about this.  You&apos;re looking for runs of nodes that have the affected bit set.  For example if a node n has changed, then you want to recalc all the elements that follow n that are affected by direct adjacent rules.  You don&apos;t need to do this if n hasn&apos;t actually changed.  You&apos;re doing too much recalc as a result.

&gt; Source/WebCore/rendering/style/RenderStyle.h:136
&gt; -    unsigned m_childIndex : 21; // Plenty of bits to cache an index.
&gt; +    bool m_affectedByDirectAdjacentRules: 1;
&gt; +    unsigned m_childIndex : 20; // Plenty of bits to cache an index.

Should be able to leave this alone if you just remove the childrenaffected bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365863</commentid>
    <comment_count>4</comment_count>
      <attachid>85442</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-03-11 00:51:04 -0800</bug_when>
    <thetext>Created attachment 85442
Revised patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408324</commentid>
    <comment_count>5</comment_count>
      <attachid>85442</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-23 14:47:27 -0700</bug_when>
    <thetext>Comment on attachment 85442
Revised patch

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

&gt; LayoutTests/fast/css/dynamic-multiple-sibling-selector-after-dom-change.html:3
&gt; +&lt;html&gt;
&gt; +    &lt;head&gt;
&gt; +        &lt;style type=&quot;text/css&quot;&gt;

I wouldn&apos;t bother indeneting.

&gt; LayoutTests/fast/css/dynamic-multiple-sibling-selector-after-dom-change.html:28
&gt; +                if (window.layoutTestController)
&gt; +                    layoutTestController.notifyDone();

You don&apos;t need to waitUntilDone if you&apos;re using onload.  The dump happens right after onload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408608</commentid>
    <comment_count>6</comment_count>
      <attachid>94553</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-05-23 20:42:25 -0700</bug_when>
    <thetext>Created attachment 94553
Revised patch - rebased and test case reworked</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416278</commentid>
    <comment_count>7</comment_count>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-06-06 21:09:16 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created an attachment (id=94553) [details]
&gt; Revised patch - rebased and test case reworked

Could someone review this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531637</commentid>
    <comment_count>8</comment_count>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2012-01-07 04:14:40 -0800</bug_when>
    <thetext>Ping for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545472</commentid>
    <comment_count>9</comment_count>
      <attachid>94553</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-01-30 15:17:24 -0800</bug_when>
    <thetext>Comment on attachment 94553
Revised patch - rebased and test case reworked

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

&gt; Source/WebCore/dom/Element.cpp:-1145
&gt; -    // FIXME: This check is good enough for :hover + foo, but it is not good enough for :hover + foo + bar.
&gt; -    // For now we will just worry about the common case, since it&apos;s a lot trickier to get the second case right
&gt; -    // without doing way too much re-resolution.

The question for this change is if we got the second case right, w/o doing too much re-resolution.  Whoever wrote this fixme (presumably hyatt) would need to answer that for this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545474</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-01-30 15:18:14 -0800</bug_when>
    <thetext>This was posted for review 8 months ago.  I&apos;ll email hyatt and see if he&apos;s willing to do a second round of review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648583</commentid>
    <comment_count>11</comment_count>
    <who name="Mike McNally">m5</who>
    <bug_when>2012-06-13 16:43:04 -0700</bug_when>
    <thetext>I don&apos;t know whether this is related, but this jsfiddle:

http://jsfiddle.net/gSPqX/1/

demonstrates some clearly buggy behavior. According to the web inspector, the browser recognizes the applicability of the &quot;:checked&quot; rule to the &lt;div&gt;, but the &quot;display: none&quot; setting is not applied. If, in the inspector, the rule is disabled and re-enabled, then the element is hidden.

Chrome and Safari both behave more or less the same way. I&apos;m testing with Chrome 19.0.1084.52 (Linux) and Safari 5.1.4 (7534.54.16) (Windows XP).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652451</commentid>
    <comment_count>12</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-06-19 07:55:05 -0700</bug_when>
    <thetext>BTW, accordingly to the tool I&apos;m proposing at bug 89470 (in fact it is just a refactoring of &quot;webkit-patch patches-to-review&quot;), this bug has the oldest attachment pending review at the WebKit project. Right now it is 392 days old.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653503</commentid>
    <comment_count>13</comment_count>
      <attachid>148574</attachid>
    <who name="Dan Moore">dan</who>
    <bug_when>2012-06-20 08:33:38 -0700</bug_when>
    <thetext>Created attachment 148574
Simpler test case using checkbox and :checked</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702435</commentid>
    <comment_count>14</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-08-22 15:30:41 -0700</bug_when>
    <thetext>I believe this is a duplicate of bug #12520</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718556</commentid>
    <comment_count>15</comment_count>
      <attachid>94553</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2012-09-12 11:50:45 -0700</bug_when>
    <thetext>Comment on attachment 94553
Revised patch - rebased and test case reworked

Cancel review request since this patch doesn&apos;t apply on the tip of tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718558</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-09-12 11:51:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/12286306&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729099</commentid>
    <comment_count>17</comment_count>
    <who name="Aldonio">aldomx</who>
    <bug_when>2012-09-26 17:33:59 -0700</bug_when>
    <thetext>Is this the correct place to write workarounds for fellow developers?

I managed to avoid this bug using a general sibling selector to write an unnecessary rule, of course, the results depends on context.

Taking the simpler test case as an example:

/* Buggy rule */
input:checked + .unchecked + .checked
{
	display: inline;
}

/* Unnecessary rule */
input:checked ~ .checked
{
	display: none;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200368</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Rebert">webkit</who>
    <bug_when>2016-06-08 00:06:35 -0700</bug_when>
    <thetext>All 3 of the testcases seem to be working fine for me in Safari 9.1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200374</commentid>
    <comment_count>19</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-08 00:39:56 -0700</bug_when>
    <thetext>I believe Benjamin fixed this a while ago.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82287</attachid>
            <date>2011-02-13 21:42:56 -0800</date>
            <delta_ts>2011-02-16 01:03:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-2011-02-13-Leo-Yang-leo.yang-torchmobile.com.cn.patch</filename>
            <type>text/plain</type>
            <size>6146</size>
            <attacher name="Leo Yang">leo.yang</attacher>
            
              <data encoding="base64">RnJvbSAyNTI5ODA2Yzc3NGEyYTAzNTZjY2I2YWE0MjNlMmY1ZTliOTE4OGE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNu
PgpEYXRlOiBNb24sIDE0IEZlYiAyMDExIDEzOjM4OjQyICswODAwClN1YmplY3Q6IFtQQVRDSF0g
MjAxMS0wMi0xMyAgTGVvIFlhbmcgIDxsZW8ueWFuZ0B0b3JjaG1vYmlsZS5jb20uY24+CgogICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBDU1MgJysnIGNvbWJpbmF0
b3Igd2l0aCBtb3JlIHRoYW4gMiBjb21iaW5hdGlvbnMgZG9lc24ndCB3b3JrCiAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MzczCgogICAgICAgIFdlYktp
dCB3YXMgd29ya2luZyB3aXRoIGEgJysnIGNvbWJpbmF0b3IgKGUuZy4sIFtjbGFzcz1mb29dICsg
YmFyKQogICAgICAgIGJ1dCBub3Qgd29ya2luZyB3aXRoICdbY2xhc3M9Zm9vXSArIGJhciArIG90
aGVyJy4gVGhpcyBwYXRjaCBpcyBtYWtpbmcKICAgICAgICBpdCB3b3JrIHdpdGggbW9yZSB0aGFu
IDIgY29tYmluYXRpb25zLiBXaGVuIHJlY2FsY3VsYXRpbmcgc3R5bGUgZm9yIGFuCiAgICAgICAg
RWxlbWVudCwgaWYgdGhlcmUgaXMgYSAnKycgY29tYmluYXRvciB0aGlzIHBhdGNoIHdpbGwgZm9y
Y2UgdGhlIGZvbGxvd2luZwogICAgICAgIHNpYmxpbmdzIHRvIHJlY2FsY3VsYXRlIHN0eWxlLgoK
ICAgICAgICBUZXN0OiBmYXN0L2Nzcy9jc3MtY29tYmluYXRvci5odG1sCgogICAgICAgICogZG9t
L0VsZW1lbnQuY3BwOgogICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZWNhbGNTdHlsZSk6CiAg
ICAgICAgKiBmYXN0L2Nzcy9jc3MtY29tYmluYXRvci1leHBlY3RlZC50eHQ6IEFkZGVkLgogICAg
ICAgICogZmFzdC9jc3MvY3NzLWNvbWJpbmF0b3IuaHRtbDogQWRkZWQuCi0tLQogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysrKysrCiBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3MtY29tYmluYXRvci1leHBlY3RlZC50eHQgfCAgICA3ICsr
KysKIExheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1jb21iaW5hdG9yLmh0bWwgICAgICAgICB8ICAg
MzcgKysrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxOCArKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAgICAgICAgICAgICAgICAgICAgfCAgICA1ICstLQogNSBmaWxlcyBjaGFuZ2Vk
LCA3NSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1jb21iaW5hdG9yLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1jb21iaW5hdG9yLmh0bWwKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMjQzODU0Ni4uNGNiNWRhYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTAyLTEzICBM
ZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDU1MgJysnIGNvbWJpbmF0b3Igd2l0aCBt
b3JlIHRoYW4gMiBjb21iaW5hdGlvbnMgZG9lc24ndCB3b3JrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDM3MworCisgICAgICAgIFRlc3QgY2FzZSBm
b3IgbW9yZSB0aGFuIDIgY29tYmluYXRpb25zIGZvciAnKycgY29tYmluYXRvci4KKworICAgICAg
ICAqIGZhc3QvY3NzL2Nzcy1jb21iaW5hdG9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jc3MvY3NzLWNvbWJpbmF0b3IuaHRtbDogQWRkZWQuCisKIDIwMTEtMDItMTMgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1j
b21iaW5hdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1jb21iaW5h
dG9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzk3
NTc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLWNvbWJpbmF0
b3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAor
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA1MHg1MCBbYmdjb2xvcj0jMDA4MDAwXQorICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTApIHNpemUgNTB4NTAgW2JnY29sb3I9IzAwODAwMF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1jb21iaW5hdG9yLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3MtY29tYmluYXRvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmU1YmJjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jc3MtY29tYmluYXRvci5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAg
ZGl2IHsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGRpdiNmaXJzdCwgZGl2I3NlY29uZCB7CisgICAgICAgICAgICAg
ICAgd2lkdGg6IDUwcHg7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBbY2xhc3M9YmFzZV0gKyBkaXYsIFtjbGFzcz1iYXNlXSArIGRp
diArIGRpdiB7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAg
ICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisKKyAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisKKyAgICAgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgdmFyIHN0YXJ0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InN0YXJ0Iik7CisgICAgICAgICAgICAgICAgc3RhcnREaXYuY2xhc3NOYW1lID0gImJhc2UiOwor
ICAgICAgICAgICAgICAgIHN0YXJ0RGl2LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgICAg
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQor
ICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYg
aWQ9InN0YXJ0Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iZmlyc3QiPjwvZGl2PgorICAgICAg
ICA8ZGl2IGlkPSJzZWNvbmQiPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA3MGI5ZGE4Li5jNDcwNGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEt
MDItMTMgIExlbyBZYW5nICA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENTUyAnKycgY29tYmluYXRv
ciB3aXRoIG1vcmUgdGhhbiAyIGNvbWJpbmF0aW9ucyBkb2Vzbid0IHdvcmsKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MzczCisKKyAgICAgICAgV2Vi
S2l0IHdhcyB3b3JraW5nIHdpdGggYSAnKycgY29tYmluYXRvciAoZS5nLiwgW2NsYXNzPWZvb10g
KyBiYXIpCisgICAgICAgIGJ1dCBub3Qgd29ya2luZyB3aXRoICdbY2xhc3M9Zm9vXSArIGJhciAr
IG90aGVyJy4gVGhpcyBwYXRjaCBpcyBtYWtpbmcKKyAgICAgICAgaXQgd29yayB3aXRoIG1vcmUg
dGhhbiAyIGNvbWJpbmF0aW9ucy4gV2hlbiByZWNhbGN1bGF0aW5nIHN0eWxlIGZvciBhbgorICAg
ICAgICBFbGVtZW50LCBpZiB0aGVyZSBpcyBhICcrJyBjb21iaW5hdG9yIHRoaXMgcGF0Y2ggd2ls
bCBmb3JjZSB0aGUgZm9sbG93aW5nCisgICAgICAgIHNpYmxpbmdzIHRvIHJlY2FsY3VsYXRlIHN0
eWxlLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL2Nzcy1jb21iaW5hdG9yLmh0bWwKKworICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlY2Fs
Y1N0eWxlKToKKwogMjAxMS0wMi0xMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCmluZGV4IDhjMDkzODYuLjBjMjYyZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAg
LTEwOTQsOSArMTA5NCw2IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2Ug
Y2hhbmdlKQogICAgICAgICB9CiAgICAgfQogICAgIFN0eWxlU2VsZWN0b3JQYXJlbnRQdXNoZXIg
cGFyZW50UHVzaGVyKHRoaXMpOwotICAgIC8vIEZJWE1FOiBUaGlzIGNoZWNrIGlzIGdvb2QgZW5v
dWdoIGZvciA6aG92ZXIgKyBmb28sIGJ1dCBpdCBpcyBub3QgZ29vZCBlbm91Z2ggZm9yIDpob3Zl
ciArIGZvbyArIGJhci4KLSAgICAvLyBGb3Igbm93IHdlIHdpbGwganVzdCB3b3JyeSBhYm91dCB0
aGUgY29tbW9uIGNhc2UsIHNpbmNlIGl0J3MgYSBsb3QgdHJpY2tpZXIgdG8gZ2V0IHRoZSBzZWNv
bmQgY2FzZSByaWdodAotICAgIC8vIHdpdGhvdXQgZG9pbmcgd2F5IHRvbyBtdWNoIHJlLXJlc29s
dXRpb24uCiAgICAgYm9vbCBmb3JjZUNoZWNrT2ZOZXh0RWxlbWVudFNpYmxpbmcgPSBmYWxzZTsK
ICAgICBmb3IgKE5vZGUgKm4gPSBmaXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGluZygp
KSB7CiAgICAgICAgIGJvb2wgY2hpbGRSdWxlc0NoYW5nZWQgPSBuLT5uZWVkc1N0eWxlUmVjYWxj
KCkgJiYgbi0+c3R5bGVDaGFuZ2VUeXBlKCkgPT0gRnVsbFN0eWxlQ2hhbmdlOwpAQCAtMTEwNiw3
ICsxMTAzLDcgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2Up
CiAgICAgICAgICAgICBwYXJlbnRQdXNoZXIucHVzaCgpOwogICAgICAgICAgICAgbi0+cmVjYWxj
U3R5bGUoY2hhbmdlKTsKICAgICAgICAgfQotICAgICAgICBpZiAobi0+aXNFbGVtZW50Tm9kZSgp
KQorICAgICAgICBpZiAobi0+aXNFbGVtZW50Tm9kZSgpICYmICFmb3JjZUNoZWNrT2ZOZXh0RWxl
bWVudFNpYmxpbmcpCiAgICAgICAgICAgICBmb3JjZUNoZWNrT2ZOZXh0RWxlbWVudFNpYmxpbmcg
PSBjaGlsZFJ1bGVzQ2hhbmdlZCAmJiBoYXNEaXJlY3RBZGphY2VudFJ1bGVzOwogICAgIH0KICAg
ICAvLyBGSVhNRTogVGhpcyBkb2VzIG5vdCBjYXJlIGFib3V0IHNpYmxpbmcgY29tYmluYXRvcnMu
IFdpbGwgYmUgbmVjZXNzYXJ5IGluIFhCTDIgd29ybGQuCi0tIAoxLjcuMC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82601</attachid>
            <date>2011-02-16 01:03:11 -0800</date>
            <delta_ts>2011-03-11 00:51:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-2011-02-16-Leo-Yang-leo.yang-torchmobile.com.cn.patch</filename>
            <type>text/plain</type>
            <size>12865</size>
            <attacher name="Leo Yang">leo.yang</attacher>
            
              <data encoding="base64">RnJvbSBlMTU5MTU5Yzk5ODFiYWQ3NjUwMmU2NTJlODU4ZWNlMTEzMjhiMTExIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNu
PgpEYXRlOiBXZWQsIDE2IEZlYiAyMDExIDE2OjU1OjIyICswODAwClN1YmplY3Q6IFtQQVRDSF0g
MjAxMS0wMi0xNiAgTGVvIFlhbmcgIDxsZW8ueWFuZ0B0b3JjaG1vYmlsZS5jb20uY24+CgogICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBDU1MgJysnIGNvbWJpbmF0
b3Igd2l0aCBtb3JlIHRoYW4gMiBjb21iaW5hdGlvbnMgZG9lc24ndCB3b3JrCiAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MzczCgogICAgICAgIFdlYktp
dCB3YXMgd29ya2luZyB3aXRoIGEgJysnIGNvbWJpbmF0b3IgKGUuZy4sIFtjbGFzcz1mb29dICsg
YmFyKQogICAgICAgIGJ1dCBub3Qgd29ya2luZyB3aXRoICdbY2xhc3M9Zm9vXSArIGJhciArIG90
aGVyJy4gVGhpcyBwYXRjaCBpcyBtYWtpbmcKICAgICAgICBpdCB3b3JrIHdpdGggbW9yZSB0aGFu
IDIgY29tYmluYXRpb25zIGJ5IGFkZGluZyBhIGJpdCB0byBhZmZlY3RkIHN0eWxlLgogICAgICAg
IFdoZW4gYWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMgaXMgc2V0IHdlIGZvcmNlIGEgc3R5
bGUgcmVjYWxjdWxhdGlvbi4KCiAgICAgICAgVGVzdDogZmFzdC9jc3MvY3NzLWNvbWJpbmF0b3Iu
aHRtbAoKICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6U2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKToKICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxj
U3R5bGUpOgogICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OlJlbmRlclN0eWxlKToKICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oOgogICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6YWZm
ZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMpOgogICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHls
ZTo6c2V0QWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMpOgogICAgICAgICogZmFzdC9jc3Mv
Y3NzLWNvbWJpbmF0b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KICAgICAgICAqIGZhc3QvY3NzL2Nz
cy1jb21iaW5hdG9yLmh0bWw6IEFkZGVkLgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKysrKwogTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY3NzLWNvbWJpbmF0b3ItZXhwZWN0ZWQudHh0IHwgICAgNyArKysrCiBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jc3MtY29tYmluYXRvci5odG1sICAgICAgICAgfCAgIDM3ICsrKysrKysrKysrKysr
KysrKysrKysKIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMjUgKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAgICAgICAgICAgfCAgIDE5ICsrKysrKysrKy0tCiBTb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrLS0tLS0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgICB8ICAgIDIgKwogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggICAgIHwgICAgNiArKystCiA4IGZp
bGVzIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3MtY29tYmluYXRvci1leHBlY3RlZC50
eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3MtY29tYmluYXRv
ci5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDMzZmJmMWEuLjQ1MmYyY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxMS0wMi0xNiAgTGVvIFlhbmcgIDxsZW8ueWFuZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ1NTICcrJyBjb21i
aW5hdG9yIHdpdGggbW9yZSB0aGFuIDIgY29tYmluYXRpb25zIGRvZXNuJ3Qgd29yaworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQzNzMKKworICAgICAg
ICBUZXN0IGNhc2UgZm9yIG1vcmUgdGhhbiAyIGNvbWJpbmF0aW9ucyBmb3IgJysnIGNvbWJpbmF0
b3IuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9jc3MtY29tYmluYXRvci1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2Nzcy1jb21iaW5hdG9yLmh0bWw6IEFkZGVkLgorCiAy
MDExLTAyLTE1ICBQZXRlciBLYXN0aW5nICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCBDaHJvbWl1bSB0ZXN0IGV4cGVjdGF0aW9ucyB1cGRhdGUuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3MtY29tYmluYXRvci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3MtY29tYmluYXRvci1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM5NzU3NgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1jb21iaW5hdG9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUg
NTB4NTAgW2JnY29sb3I9IzAwODAwMF0KKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUw
KSBzaXplIDUweDUwIFtiZ2NvbG9yPSMwMDgwMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jc3MtY29tYmluYXRvci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLWNv
bWJpbmF0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNWJiYzUz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLWNvbWJpbmF0b3Iu
aHRtbApAQCAtMCwwICsxLDM3IEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgICAgIGRpdiB7CisgICAgICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkaXYjZmly
c3QsIGRpdiNzZWNvbmQgeworICAgICAgICAgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICAg
ICAgICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgW2NsYXNz
PWJhc2VdICsgZGl2LCBbY2xhc3M9YmFzZV0gKyBkaXYgKyBkaXYgeworICAgICAgICAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxl
PgorCisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICAgICB3aW5kb3cub25s
b2FkID0gZnVuY3Rpb24oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBzdGFy
dERpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpOworICAgICAgICAgICAgICAg
IHN0YXJ0RGl2LmNsYXNzTmFtZSA9ICJiYXNlIjsKKyAgICAgICAgICAgICAgICBzdGFydERpdi5z
dHlsZS5kaXNwbGF5ID0gIm5vbmUiOworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9o
ZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJzdGFydCI+PC9kaXY+CisgICAgICAg
IDxkaXYgaWQ9ImZpcnN0Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0ic2Vjb25kIj48L2Rpdj4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODQ5MTAxMC4uYmRiMDY4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDExLTAyLTE2ICBMZW8gWWFuZyAgPGxlby55YW5n
QHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDU1MgJysnIGNvbWJpbmF0b3Igd2l0aCBtb3JlIHRoYW4gMiBjb21iaW5h
dGlvbnMgZG9lc24ndCB3b3JrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NDM3MworCisgICAgICAgIFdlYktpdCB3YXMgd29ya2luZyB3aXRoIGEgJysn
IGNvbWJpbmF0b3IgKGUuZy4sIFtjbGFzcz1mb29dICsgYmFyKQorICAgICAgICBidXQgbm90IHdv
cmtpbmcgd2l0aCAnW2NsYXNzPWZvb10gKyBiYXIgKyBvdGhlcicuIFRoaXMgcGF0Y2ggaXMgbWFr
aW5nCisgICAgICAgIGl0IHdvcmsgd2l0aCBtb3JlIHRoYW4gMiBjb21iaW5hdGlvbnMgYnkgYWRk
aW5nIGEgYml0IHRvIGFmZmVjdGQgc3R5bGUuCisgICAgICAgIFdoZW4gYWZmZWN0ZWRCeURpcmVj
dEFkamFjZW50UnVsZXMgaXMgc2V0IHdlIGZvcmNlIGEgc3R5bGUgcmVjYWxjdWxhdGlvbi4KKwor
CisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL2Nzcy1jb21iaW5hdG9yLmh0bWwKKworICAgICAgICAq
IGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2Vs
ZWN0b3I6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTZWxlY3Rvcik6CisgICAgICAgICogZG9tL0Vs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTdHlsZTo6UmVuZGVyU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmFmZmVjdGVkQnlE
aXJlY3RBZGphY2VudFJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRB
ZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyk6CisKIDIwMTEtMDItMTAgIEplcmVteSBPcmxv
dyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTmF0ZSBDaGFw
aW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggYzAyZThlZi4u
MzhhZmUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtNiw2
ICs2LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEB3
ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEVyaWMgU2VpZGVsIDxlcmlj
QHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBUb3JjaCBNb2JpbGUgKEJlaWppbmcpIENvLiBMdGQuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIyMzUsMTAgKzIyMzYsMjAg
QEAgQ1NTU3R5bGVTZWxlY3Rvcjo6U2VsZWN0b3JNYXRjaCBDU1NTdHlsZVNlbGVjdG9yOjpTZWxl
Y3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpEaXJlY3RBZGphY2VudDoKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFtX2Nv
bGxlY3RSdWxlc09ubHkgJiYgZS0+cGFyZW50Tm9kZSgpICYmIGUtPnBhcmVudE5vZGUoKS0+aXNF
bGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgICAgICAgICAgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxl
ID0gZWxlbWVudFN0eWxlID8gZWxlbWVudFBhcmVudFN0eWxlIDogZS0+cGFyZW50Tm9kZSgpLT5y
ZW5kZXJTdHlsZSgpOwotICAgICAgICAgICAgICAgIGlmIChwYXJlbnRTdHlsZSkKLSAgICAgICAg
ICAgICAgICAgICAgcGFyZW50U3R5bGUtPnNldENoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFj
ZW50UnVsZXMoKTsKKyAgICAgICAgICAgIGlmICghbV9jb2xsZWN0UnVsZXNPbmx5KSB7CisgICAg
ICAgICAgICAgICAgaWYgKGUtPnBhcmVudE5vZGUoKSAmJiBlLT5wYXJlbnROb2RlKCktPmlzRWxl
bWVudE5vZGUoKSkgeworICAgICAgICAgICAgICAgICAgICBSZW5kZXJTdHlsZSogcGFyZW50U3R5
bGUgPSBlbGVtZW50U3R5bGUgPyBlbGVtZW50UGFyZW50U3R5bGUgOiBlLT5wYXJlbnROb2RlKCkt
PnJlbmRlclN0eWxlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnRTdHlsZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFN0eWxlLT5zZXRDaGlsZHJlbkFmZmVjdGVkQnlE
aXJlY3RBZGphY2VudFJ1bGVzKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IE5vZGUqIG4gPSBlLT5uZXh0U2libGluZygpOworICAgICAgICAgICAgICAgIHdoaWxlIChuICYm
ICFuLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICAgICAgICAgIG4gPSBuLT5uZXh0U2li
bGluZygpOworICAgICAgICAgICAgICAgIGlmIChuKSB7CisgICAgICAgICAgICAgICAgICAgIFJl
bmRlclN0eWxlKiBzdHlsZSA9IG4tPnJlbmRlclN0eWxlKCk7CisgICAgICAgICAgICAgICAgICAg
IGlmIChzdHlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlLT5zZXRBZmZlY3RlZEJ5
RGlyZWN0QWRqYWNlbnRSdWxlcygpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIE5vZGUqIG4gPSBlLT5wcmV2aW91c1NpYmxpbmcoKTsKICAgICAgICAgICAg
IHdoaWxlIChuICYmICFuLT5pc0VsZW1lbnROb2RlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5k
ZXggOGMwOTM4Ni4uODY0MWY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNiw2ICs2LDcg
QEAKICAqICAgICAgICAgICAoQykgMjAwNyBEYXZpZCBTbWl0aCAoY2F0ZmlzaC5tYW5AZ21haWwu
Y29tKQogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykg
MjAwNyBFcmljIFNlaWRlbCAoZXJpY0B3ZWJraXQub3JnKQorICogICAgICAgICAgIChDKSAyMDEx
IFRvcmNoIE1vYmlsZSAoQmVpamluZykgQ28uIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMTA2Niw2ICsxMDY3LDggQEAgdm9pZCBFbGVtZW50OjpyZWNh
bGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgICAgICAgICAgbmV3U3R5bGUtPnNl
dENoaWxkcmVuQWZmZWN0ZWRCeUxhc3RDaGlsZFJ1bGVzKCk7CiAgICAgICAgICAgICBpZiAoY3Vy
cmVudFN0eWxlLT5jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCkpCiAgICAg
ICAgICAgICAgICAgbmV3U3R5bGUtPnNldENoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFjZW50
UnVsZXMoKTsKKyAgICAgICAgICAgIGlmIChjdXJyZW50U3R5bGUtPmFmZmVjdGVkQnlEaXJlY3RB
ZGphY2VudFJ1bGVzKCkpCisgICAgICAgICAgICAgICAgbmV3U3R5bGUtPnNldEFmZmVjdGVkQnlE
aXJlY3RBZGphY2VudFJ1bGVzKCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoY2ggIT0gTm9D
aGFuZ2UgfHwgcHNldWRvU3R5bGVDYWNoZUlzSW52YWxpZChjdXJyZW50U3R5bGUuZ2V0KCksIG5l
d1N0eWxlLmdldCgpKSB8fCAoY2hhbmdlID09IEZvcmNlICYmIHJlbmRlcmVyKCkgJiYgcmVuZGVy
ZXIoKS0+cmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkpKSB7CkBAIC0xMDk0
LDIwICsxMDk3LDEzIEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hh
bmdlKQogICAgICAgICB9CiAgICAgfQogICAgIFN0eWxlU2VsZWN0b3JQYXJlbnRQdXNoZXIgcGFy
ZW50UHVzaGVyKHRoaXMpOwotICAgIC8vIEZJWE1FOiBUaGlzIGNoZWNrIGlzIGdvb2QgZW5vdWdo
IGZvciA6aG92ZXIgKyBmb28sIGJ1dCBpdCBpcyBub3QgZ29vZCBlbm91Z2ggZm9yIDpob3ZlciAr
IGZvbyArIGJhci4KLSAgICAvLyBGb3Igbm93IHdlIHdpbGwganVzdCB3b3JyeSBhYm91dCB0aGUg
Y29tbW9uIGNhc2UsIHNpbmNlIGl0J3MgYSBsb3QgdHJpY2tpZXIgdG8gZ2V0IHRoZSBzZWNvbmQg
Y2FzZSByaWdodAotICAgIC8vIHdpdGhvdXQgZG9pbmcgd2F5IHRvbyBtdWNoIHJlLXJlc29sdXRp
b24uCi0gICAgYm9vbCBmb3JjZUNoZWNrT2ZOZXh0RWxlbWVudFNpYmxpbmcgPSBmYWxzZTsKICAg
ICBmb3IgKE5vZGUgKm4gPSBmaXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGluZygpKSB7
Ci0gICAgICAgIGJvb2wgY2hpbGRSdWxlc0NoYW5nZWQgPSBuLT5uZWVkc1N0eWxlUmVjYWxjKCkg
JiYgbi0+c3R5bGVDaGFuZ2VUeXBlKCkgPT0gRnVsbFN0eWxlQ2hhbmdlOwotICAgICAgICBpZiAo
Zm9yY2VDaGVja09mTmV4dEVsZW1lbnRTaWJsaW5nICYmIG4tPmlzRWxlbWVudE5vZGUoKSkKKyAg
ICAgICAgaWYgKGhhc0RpcmVjdEFkamFjZW50UnVsZXMgJiYgbi0+aXNFbGVtZW50Tm9kZSgpICYm
IG4tPnJlbmRlclN0eWxlKCkgJiYgbi0+cmVuZGVyU3R5bGUoKS0+YWZmZWN0ZWRCeURpcmVjdEFk
amFjZW50UnVsZXMoKSkKICAgICAgICAgICAgIG4tPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKICAg
ICAgICAgaWYgKGNoYW5nZSA+PSBJbmhlcml0IHx8IG4tPmlzVGV4dE5vZGUoKSB8fCBuLT5jaGls
ZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBuLT5uZWVkc1N0eWxlUmVjYWxjKCkpIHsKICAgICAgICAg
ICAgIHBhcmVudFB1c2hlci5wdXNoKCk7CiAgICAgICAgICAgICBuLT5yZWNhbGNTdHlsZShjaGFu
Z2UpOwogICAgICAgICB9Ci0gICAgICAgIGlmIChuLT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAg
ICAgICBmb3JjZUNoZWNrT2ZOZXh0RWxlbWVudFNpYmxpbmcgPSBjaGlsZFJ1bGVzQ2hhbmdlZCAm
JiBoYXNEaXJlY3RBZGphY2VudFJ1bGVzOwogICAgIH0KICAgICAvLyBGSVhNRTogVGhpcyBkb2Vz
IG5vdCBjYXJlIGFib3V0IHNpYmxpbmcgY29tYmluYXRvcnMuIFdpbGwgYmUgbmVjZXNzYXJ5IGlu
IFhCTDIgd29ybGQuCiAgICAgaWYgKE5vZGUqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggYjc2
YTM1MC4uZGEyMDA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBB
bnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVG9yY2ggTW9iaWxlIChCZWlqaW5nKSBD
by4gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC03Miw2
ICs3Myw3IEBAIEFMV0FZU19JTkxJTkUgUmVuZGVyU3R5bGU6OlJlbmRlclN0eWxlKCkKICAgICAs
IG1fY2hpbGRyZW5BZmZlY3RlZEJ5QmFja3dhcmRQb3NpdGlvbmFsUnVsZXMoZmFsc2UpCiAgICAg
LCBtX2ZpcnN0Q2hpbGRTdGF0ZShmYWxzZSkKICAgICAsIG1fbGFzdENoaWxkU3RhdGUoZmFsc2Up
CisgICAgLCBtX2FmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKGZhbHNlKQogICAgICwgbV9j
aGlsZEluZGV4KDApCiAgICAgLCBtX2JveChkZWZhdWx0U3R5bGUoKS0+bV9ib3gpCiAgICAgLCB2
aXN1YWwoZGVmYXVsdFN0eWxlKCktPnZpc3VhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggNTU4NTgwYi4uODY0YmUyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTQsNiArNCw3IEBACiAg
KiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IEdyYWhh
bSBEZW5uaXMgKGdyYWhhbS5kZW5uaXNAZ21haWwuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDEx
IFRvcmNoIE1vYmlsZSAoQmVpamluZykgQ28uIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMTMxLDcgKzEzMiw4IEBAIHByb3RlY3RlZDoKICAgICBib29s
IG1fY2hpbGRyZW5BZmZlY3RlZEJ5QmFja3dhcmRQb3NpdGlvbmFsUnVsZXMgOiAxOwogICAgIGJv
b2wgbV9maXJzdENoaWxkU3RhdGUgOiAxOwogICAgIGJvb2wgbV9sYXN0Q2hpbGRTdGF0ZSA6IDE7
Ci0gICAgdW5zaWduZWQgbV9jaGlsZEluZGV4IDogMjE7IC8vIFBsZW50eSBvZiBiaXRzIHRvIGNh
Y2hlIGFuIGluZGV4LgorICAgIGJvb2wgbV9hZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlczog
MTsKKyAgICB1bnNpZ25lZCBtX2NoaWxkSW5kZXggOiAyMDsgLy8gUGxlbnR5IG9mIGJpdHMgdG8g
Y2FjaGUgYW4gaW5kZXguCiAKICAgICAvLyBub24taW5oZXJpdGVkIGF0dHJpYnV0ZXMKICAgICBE
YXRhUmVmPFN0eWxlQm94RGF0YT4gbV9ib3g7CkBAIC0xMTgwLDYgKzExODIsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRGaXJzdENoaWxkU3RhdGUoKSB7IG1fdW5pcXVlID0gdHJ1ZTsgbV9maXJz
dENoaWxkU3RhdGUgPSB0cnVlOyB9CiAgICAgYm9vbCBsYXN0Q2hpbGRTdGF0ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbGFzdENoaWxkU3RhdGU7IH0KICAgICB2b2lkIHNldExhc3RDaGlsZFN0YXRlKCkg
eyBtX3VuaXF1ZSA9IHRydWU7IG1fbGFzdENoaWxkU3RhdGUgPSB0cnVlOyB9CisgICAgYm9vbCBh
ZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcygpIGNvbnN0IHsgcmV0dXJuIG1fYWZmZWN0ZWRC
eURpcmVjdEFkamFjZW50UnVsZXM7IH0KKyAgICB2b2lkIHNldEFmZmVjdGVkQnlEaXJlY3RBZGph
Y2VudFJ1bGVzKCkgeyBtX2FmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzID0gdHJ1ZTt9CiAg
ICAgdW5zaWduZWQgY2hpbGRJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRJbmRleDsgfQog
ICAgIHZvaWQgc2V0Q2hpbGRJbmRleCh1bnNpZ25lZCBpbmRleCkgeyBtX3VuaXF1ZSA9IHRydWU7
IG1fY2hpbGRJbmRleCA9IGluZGV4OyB9CiAKLS0gCjEuNy4wLjQKCg==
</data>
<flag name="review"
          id="74276"
          type_id="1"
          status="-"
          setter="hyatt"
    />
    <flag name="commit-queue"
          id="74277"
          type_id="3"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85442</attachid>
            <date>2011-03-11 00:51:04 -0800</date>
            <delta_ts>2011-05-23 20:42:25 -0700</delta_ts>
            <desc>Revised patch</desc>
            <filename>0001-2011-03-11-Leo-Yang-leo.yang-torchmobile.com.cn.patch</filename>
            <type>text/plain</type>
            <size>21716</size>
            <attacher name="Leo Yang">leo.yang</attacher>
            
              <data encoding="base64">RnJvbSAwMDI2YzU3M2RjNWY0ZmYyZmU2MzkxNWE3ODRmNjUwM2YyOGUyOGQwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNu
PgpEYXRlOiBXZWQsIDkgTWFyIDIwMTEgMTY6MDY6NTEgKzA4MDAKU3ViamVjdDogW1BBVENIXSAy
MDExLTAzLTExICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KCiAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIENTUyAnKycgY29tYmluYXRv
ciB3aXRoIG1vcmUgdGhhbiAyIGNvbWJpbmF0aW9ucyBkb2Vzbid0IHdvcmsKICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQzNzMKCiAgICAgICAgV2ViS2l0
IHdhcyB3b3JraW5nIHdpdGggYSAnKycgY29tYmluYXRvciAoZS5nLiwgW2NsYXNzPWZvb10gKyBi
YXIpCiAgICAgICAgYnV0IG5vdCB3b3JraW5nIHdpdGggJ1tjbGFzcz1mb29dICsgYmFyICsgb3Ro
ZXInLiBUaGlzIHBhdGNoIGlzIG1ha2luZwogICAgICAgIGl0IHdvcmsgd2l0aCBtb3JlIHRoYW4g
MiBjb21iaW5hdGlvbnMgYnkgYWRkaW5nIGEgYml0IHRvIGFmZmVjdGQgc3R5bGUuCiAgICAgICAg
V2hlbiBhZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyBpcyBzZXQgYW5kIHRoZXJlIGlzIGEg
cHJldmlvdXMKICAgICAgICBzaWJsaW5nIGNoYW5nZWQgd2UgZm9yY2UgYSBzdHlsZSByZWNhbGN1
bGF0aW9uLgoKICAgICAgICBUZXN0czogZmFzdC9jc3MvZHluYW1pYy1tdWx0aXBsZS1zaWJsaW5n
LXNlbGVjdG9yLWFmdGVyLWRvbS1jaGFuZ2UuaHRtbAogICAgICAgICAgICAgICBmYXN0L2Nzcy9k
eW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2VsZWN0b3IuaHRtbAoKICAgICAgICAqIGNzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcDoKICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y2Fu
U2hhcmVTdHlsZVdpdGhFbGVtZW50KToKICAgICAgICAoV2ViQ29yZTo6cGFyZW50U3R5bGVQcmV2
ZW50c1NoYXJpbmcpOgogICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpTZWxlY3Rv
ckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IpOgogICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgogICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZWNhbGNTdHlsZSk6CiAgICAgICAgKFdlYkNvcmU6OmNo
ZWNrRm9yU2libGluZ1N0eWxlQ2hhbmdlcyk6CiAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwOgogICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6UmVuZGVyU3R5bGUp
OgogICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CiAgICAgICAgKFdlYkNv
cmU6OkluaGVyaXRlZEZsYWdzOjphZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyk6CiAgICAg
ICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRBZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRS
dWxlcyk6CiAgICAgICAgKiBmYXN0L2Nzcy9keW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2VsZWN0
b3ItYWZ0ZXItZG9tLWNoYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgogICAgICAgICogZmFzdC9j
c3MvZHluYW1pYy1tdWx0aXBsZS1zaWJsaW5nLXNlbGVjdG9yLWFmdGVyLWRvbS1jaGFuZ2UuaHRt
bDogQWRkZWQuCiAgICAgICAgKiBmYXN0L2Nzcy9keW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2Vs
ZWN0b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KICAgICAgICAqIGZhc3QvY3NzL2R5bmFtaWMtbXVs
dGlwbGUtc2libGluZy1zZWxlY3Rvci5odG1sOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKysrKysrKysKIC4uLi1z
aWJsaW5nLXNlbGVjdG9yLWFmdGVyLWRvbS1jaGFuZ2UtZXhwZWN0ZWQudHh0IHwgICAgNyArKysr
CiAuLi5tdWx0aXBsZS1zaWJsaW5nLXNlbGVjdG9yLWFmdGVyLWRvbS1jaGFuZ2UuaHRtbCB8ICAg
MzYgKysrKysrKysrKysrKysrKysrKysKIC4uLi9keW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2Vs
ZWN0b3ItZXhwZWN0ZWQudHh0IHwgICAgNyArKysrCiAuLi4vY3NzL2R5bmFtaWMtbXVsdGlwbGUt
c2libGluZy1zZWxlY3Rvci5odG1sICAgICB8ICAgMzUgKysrKysrKysrKysrKysrKysrKwogU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI5ICsr
KysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCAg
ICAgICAgICAgIHwgICAxNCArKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMzAgKysrKysrKy0tLS0tLS0tLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCAgICAgfCAgICA3ICsrLS0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oICAgICAgIHwgICAgNyArKy0t
CiAxMCBmaWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9jc3MvZHluYW1pYy1tdWx0aXBsZS1z
aWJsaW5nLXNlbGVjdG9yLWFmdGVyLWRvbS1jaGFuZ2UtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9jc3MvZHluYW1pYy1tdWx0aXBsZS1zaWJsaW5nLXNl
bGVjdG9yLWFmdGVyLWRvbS1jaGFuZ2UuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2Zhc3QvY3NzL2R5bmFtaWMtbXVsdGlwbGUtc2libGluZy1zZWxlY3Rvci1leHBlY3RlZC50
eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5hbWljLW11bHRp
cGxlLXNpYmxpbmctc2VsZWN0b3IuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMTk1ZWZkLi44NDY3ZTU3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMTEgIExlbyBZYW5nICA8bGVvLnlhbmdAdG9yY2ht
b2JpbGUuY29tLmNuPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENTUyAnKycgY29tYmluYXRvciB3aXRoIG1vcmUgdGhhbiAyIGNvbWJpbmF0aW9ucyBk
b2Vzbid0IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU0MzczCisKKyAgICAgICAgVGVzdCBjYXNlcyBmb3IgbW9yZSB0aGFuIDIgY29tYmluYXRp
b25zIGZvciAnKycgY29tYmluYXRvci4KKworICAgICAgICAqIGZhc3QvY3NzL2R5bmFtaWMtbXVs
dGlwbGUtc2libGluZy1zZWxlY3Rvci1hZnRlci1kb20tY2hhbmdlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9jc3MvZHluYW1pYy1tdWx0aXBsZS1zaWJsaW5nLXNlbGVjdG9y
LWFmdGVyLWRvbS1jaGFuZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvZHluYW1p
Yy1tdWx0aXBsZS1zaWJsaW5nLXNlbGVjdG9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jc3MvZHluYW1pYy1tdWx0aXBsZS1zaWJsaW5nLXNlbGVjdG9yLmh0bWw6IEFkZGVk
LgorCiAyMDExLTAzLTEwICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9keW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2VsZWN0b3ItYWZ0ZXItZG9tLWNo
YW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5hbWljLW11bHRpcGxl
LXNpYmxpbmctc2VsZWN0b3ItYWZ0ZXItZG9tLWNoYW5nZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTEzMjZiMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2R5bmFtaWMtbXVsdGlwbGUtc2libGluZy1zZWxlY3Rvci1hZnRl
ci1kb20tY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTAweDUwIFtiZ2NvbG9yPSMwMDgw
MDBdCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1MCkgc2l6ZSAxMDB4NTAgW2JnY29s
b3I9IzAwODAwMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2R5bmFtaWMtbXVs
dGlwbGUtc2libGluZy1zZWxlY3Rvci1hZnRlci1kb20tY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9keW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2VsZWN0b3ItYWZ0ZXItZG9tLWNo
YW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMzk1OGMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5hbWljLW11bHRpcGxlLXNp
Ymxpbmctc2VsZWN0b3ItYWZ0ZXItZG9tLWNoYW5nZS5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzxo
dG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAg
ICAgICAgZGl2IHsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAg
ICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgICAgIGhlaWdodDogNTBweDsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLmJhc2UgKyBkaXYsIC5iYXNlICsgZGl2ICsg
ZGl2IHsKKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKworICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKwor
ICAgICAgICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICB2YXIgYmFzZURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OworICAgICAgICAgICAgICAgIGJhc2VEaXYuY2xhc3NOYW1lID0gImJhc2UiOworICAgICAgICAg
ICAgICAgIGJhc2VEaXYuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKyAgICAgICAgICAgICAgICB2
YXIgZmlyc3REaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlyc3QiKTsKKyAgICAgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShiYXNlRGl2LCBmaXJzdERpdik7Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDsKKyAgICAgICAgICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0iZmly
c3QiPjwvZGl2PgorICAgICAgICA8ZGl2PjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2R5bmFtaWMtbXVsdGlwbGUtc2libGluZy1z
ZWxlY3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5hbWljLW11bHRp
cGxlLXNpYmxpbmctc2VsZWN0b3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjExMzI2YjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9keW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2VsZWN0b3ItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkg
c2l6ZSAxMDB4NTAgW2JnY29sb3I9IzAwODAwMF0KKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDUwKSBzaXplIDEwMHg1MCBbYmdjb2xvcj0jMDA4MDAwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvZHluYW1pYy1tdWx0aXBsZS1zaWJsaW5nLXNlbGVjdG9yLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2VsZWN0b3IuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzRjNzYyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZHluYW1pYy1tdWx0aXBsZS1zaWJsaW5nLXNl
bGVjdG9yLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAg
IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICBkaXYgeworICAgICAgICAgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7
CisgICAgICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAuYmFzZSArIGRpdiwgLmJhc2UgKyBkaXYgKyBkaXYgeworICAgICAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgor
CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICAgICB3aW5kb3cub25sb2Fk
ID0gZnVuY3Rpb24oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBzdGFydERp
diA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpOworICAgICAgICAgICAgICAgIHN0
YXJ0RGl2LmNsYXNzTmFtZSA9ICJiYXNlIjsKKyAgICAgICAgICAgICAgICBzdGFydERpdi5zdHls
ZS5kaXNwbGF5ID0gIm5vbmUiOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0
V2lkdGg7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+
CisgICAgICAgIDxkaXYgaWQ9InN0YXJ0Ij48L2Rpdj4KKyAgICAgICAgPGRpdj48L2Rpdj4KKyAg
ICAgICAgPGRpdj48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY3
ZWI1YS4uNzUxMjQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDExLTAzLTExICBM
ZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDU1MgJysnIGNvbWJpbmF0b3Igd2l0aCBt
b3JlIHRoYW4gMiBjb21iaW5hdGlvbnMgZG9lc24ndCB3b3JrCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDM3MworCisgICAgICAgIFdlYktpdCB3YXMg
d29ya2luZyB3aXRoIGEgJysnIGNvbWJpbmF0b3IgKGUuZy4sIFtjbGFzcz1mb29dICsgYmFyKQor
ICAgICAgICBidXQgbm90IHdvcmtpbmcgd2l0aCAnW2NsYXNzPWZvb10gKyBiYXIgKyBvdGhlcicu
IFRoaXMgcGF0Y2ggaXMgbWFraW5nCisgICAgICAgIGl0IHdvcmsgd2l0aCBtb3JlIHRoYW4gMiBj
b21iaW5hdGlvbnMgYnkgYWRkaW5nIGEgYml0IHRvIGFmZmVjdGQgc3R5bGUuCisgICAgICAgIFdo
ZW4gYWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMgaXMgc2V0IGFuZCB0aGVyZSBpcyBhIHBy
ZXZpb3VzCisgICAgICAgIHNpYmxpbmcgY2hhbmdlZCB3ZSBmb3JjZSBhIHN0eWxlIHJlY2FsY3Vs
YXRpb24uCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzL2R5bmFtaWMtbXVsdGlwbGUtc2libGlu
Zy1zZWxlY3Rvci1hZnRlci1kb20tY2hhbmdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3Nz
L2R5bmFtaWMtbXVsdGlwbGUtc2libGluZy1zZWxlY3Rvci5odG1sCisKKyAgICAgICAgKiBjc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9y
OjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6cGFyZW50U3R5
bGVQcmV2ZW50c1NoYXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6
U2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZWNhbGNTdHlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpjaGVja0ZvclNpYmxpbmdTdHlsZUNoYW5nZXMpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6
UmVuZGVyU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmFmZmVjdGVkQnlEaXJlY3RBZGphY2Vu
dFJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRBZmZlY3RlZEJ5
RGlyZWN0QWRqYWNlbnRSdWxlcyk6CisKIDIwMTEtMDMtMTAgIEd5dXlvdW5nIEtpbSAgPGd5dXlv
dW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRl
IENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRl
eCA5Y2NkZmRlLi42OGY4NTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCkBAIC03LDYgKzcsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEVyaWMgU2Vp
ZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2gg
TW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUu
Y29tLykKICAqIENvcHlyaWdodCAoYykgMjAxMSwgQ29kZSBBdXJvcmEgRm9ydW0uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVG9yY2ggTW9iaWxlIChCZWlqaW5n
KSBDby4gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0x
MDk5LDYgKzExMDAsOCBAQCBib29sIENTU1N0eWxlU2VsZWN0b3I6OmNhblNoYXJlU3R5bGVXaXRo
RWxlbWVudChOb2RlKiBub2RlKSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KHN0eWxlLT5hZmZlY3RlZEJ5QXR0cmlidXRlU2VsZWN0b3JzKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAoc3R5bGUtPmFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoZWxlbWVudC0+aG92ZXJlZCgpICE9IG1fZWxl
bWVudC0+aG92ZXJlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGVsZW1lbnQt
PmFjdGl2ZSgpICE9IG1fZWxlbWVudC0+YWN0aXZlKCkpCkBAIC0xMjEwLDggKzEyMTMsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgcGFyZW50U3R5bGVQcmV2ZW50c1NoYXJpbmcoY29uc3QgUmVuZGVy
U3R5bGUqIHBhcmVudFN0eWxlKQogewogICAgIHJldHVybiBwYXJlbnRTdHlsZS0+Y2hpbGRyZW5B
ZmZlY3RlZEJ5UG9zaXRpb25hbFJ1bGVzKCkgCiAgICAgICAgIHx8IHBhcmVudFN0eWxlLT5jaGls
ZHJlbkFmZmVjdGVkQnlGaXJzdENoaWxkUnVsZXMoKQotICAgICAgICB8fCBwYXJlbnRTdHlsZS0+
Y2hpbGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVsZXMoKSAKLSAgICAgICAgfHwgcGFyZW50U3R5
bGUtPmNoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKTsKKyAgICAgICAgfHwg
cGFyZW50U3R5bGUtPmNoaWxkcmVuQWZmZWN0ZWRCeUxhc3RDaGlsZFJ1bGVzKCk7CiB9CiAKIEFM
V0FZU19JTkxJTkUgUmVuZGVyU3R5bGUqIENTU1N0eWxlU2VsZWN0b3I6OmxvY2F0ZVNoYXJlZFN0
eWxlKCkKQEAgLTIzMTYsMTAgKzIzMTgsMTAgQEAgQ1NTU3R5bGVTZWxlY3Rvcjo6U2VsZWN0b3JN
YXRjaCBDU1NTdHlsZVNlbGVjdG9yOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IKICAg
ICAgICAgfQogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpEaXJlY3RBZGphY2VudDoKICAgICAg
ICAgewotICAgICAgICAgICAgaWYgKCFtX2NvbGxlY3RSdWxlc09ubHkgJiYgZS0+cGFyZW50Tm9k
ZSgpICYmIGUtPnBhcmVudE5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgICAgICAg
ICAgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlID0gZWxlbWVudFN0eWxlID8gZWxlbWVudFBhcmVu
dFN0eWxlIDogZS0+cGFyZW50Tm9kZSgpLT5yZW5kZXJTdHlsZSgpOwotICAgICAgICAgICAgICAg
IGlmIChwYXJlbnRTdHlsZSkKLSAgICAgICAgICAgICAgICAgICAgcGFyZW50U3R5bGUtPnNldENo
aWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKTsKKyAgICAgICAgICAgIGlmICgh
bV9jb2xsZWN0UnVsZXNPbmx5KSB7CisgICAgICAgICAgICAgICAgUmVuZGVyU3R5bGUqIHN0eWxl
ID0gZWxlbWVudFN0eWxlID8gZWxlbWVudFN0eWxlIDogZS0+cmVuZGVyU3R5bGUoKTsKKyAgICAg
ICAgICAgICAgICBpZiAoc3R5bGUpCisgICAgICAgICAgICAgICAgICAgIHN0eWxlLT5zZXRBZmZl
Y3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcygpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
Tm9kZSogbiA9IGUtPnByZXZpb3VzU2libGluZygpOwogICAgICAgICAgICAgd2hpbGUgKG4gJiYg
IW4tPmlzRWxlbWVudE5vZGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAxZDJiMTczLi4y
NjgxMzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC02LDYgKzYsNyBAQAogICogICAgICAg
ICAgIChDKSAyMDA3IERhdmlkIFNtaXRoIChjYXRmaXNoLm1hbkBnbWFpbC5jb20pCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA3IEVyaWMgU2Vp
ZGVsIChlcmljQHdlYmtpdC5vcmcpCisgKiAgICAgICAgICAgKEMpIDIwMTEgVG9yY2ggTW9iaWxl
IChCZWlqaW5nKSBDby4gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0xMDM1LDcgKzEwMzYsNiBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxl
Q2hhbmdlIGNoYW5nZSkKICAgICAvLyBSZWYgY3VycmVudFN0eWxlIGluIGNhc2UgaXQgd291bGQg
b3RoZXJ3aXNlIGJlIGRlbGV0ZWQgd2hlbiBzZXRSZW5kZXJTdHlsZSgpIGlzIGNhbGxlZC4KICAg
ICBSZWZQdHI8UmVuZGVyU3R5bGU+IGN1cnJlbnRTdHlsZShyZW5kZXJTdHlsZSgpKTsKICAgICBi
b29sIGhhc1BhcmVudFN0eWxlID0gcGFyZW50T3JIb3N0Tm9kZSgpID8gcGFyZW50T3JIb3N0Tm9k
ZSgpLT5yZW5kZXJTdHlsZSgpIDogZmFsc2U7Ci0gICAgYm9vbCBoYXNEaXJlY3RBZGphY2VudFJ1
bGVzID0gY3VycmVudFN0eWxlICYmIGN1cnJlbnRTdHlsZS0+Y2hpbGRyZW5BZmZlY3RlZEJ5RGly
ZWN0QWRqYWNlbnRSdWxlcygpOwogCiAgICAgaWYgKChjaGFuZ2UgPiBOb0NoYW5nZSB8fCBuZWVk
c1N0eWxlUmVjYWxjKCkpKSB7CiAgICAgICAgIGlmIChoYXNSYXJlRGF0YSgpKQpAQCAtMTA3MSw4
ICsxMDcxLDggQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2Up
CiAgICAgICAgICAgICAgICAgbmV3U3R5bGUtPnNldENoaWxkcmVuQWZmZWN0ZWRCeUZpcnN0Q2hp
bGRSdWxlcygpOwogICAgICAgICAgICAgaWYgKGN1cnJlbnRTdHlsZS0+Y2hpbGRyZW5BZmZlY3Rl
ZEJ5TGFzdENoaWxkUnVsZXMoKSkKICAgICAgICAgICAgICAgICBuZXdTdHlsZS0+c2V0Q2hpbGRy
ZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVsZXMoKTsKLSAgICAgICAgICAgIGlmIChjdXJyZW50U3R5
bGUtPmNoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKSkKLSAgICAgICAgICAg
ICAgICBuZXdTdHlsZS0+c2V0Q2hpbGRyZW5BZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcygp
OworICAgICAgICAgICAgaWYgKGN1cnJlbnRTdHlsZS0+YWZmZWN0ZWRCeURpcmVjdEFkamFjZW50
UnVsZXMoKSkKKyAgICAgICAgICAgICAgICBuZXdTdHlsZS0+c2V0QWZmZWN0ZWRCeURpcmVjdEFk
amFjZW50UnVsZXMoKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChjaCAhPSBOb0NoYW5nZSB8
fCBwc2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKGN1cnJlbnRTdHlsZS5nZXQoKSwgbmV3U3R5bGUu
Z2V0KCkpIHx8IChjaGFuZ2UgPT0gRm9yY2UgJiYgcmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5y
ZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSkpIHsKQEAgLTEwOTksMjAgKzEw
OTksMjAgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAg
ICAgICAgIH0KICAgICB9CiAgICAgU3R5bGVTZWxlY3RvclBhcmVudFB1c2hlciBwYXJlbnRQdXNo
ZXIodGhpcyk7Ci0gICAgLy8gRklYTUU6IFRoaXMgY2hlY2sgaXMgZ29vZCBlbm91Z2ggZm9yIDpo
b3ZlciArIGZvbywgYnV0IGl0IGlzIG5vdCBnb29kIGVub3VnaCBmb3IgOmhvdmVyICsgZm9vICsg
YmFyLgotICAgIC8vIEZvciBub3cgd2Ugd2lsbCBqdXN0IHdvcnJ5IGFib3V0IHRoZSBjb21tb24g
Y2FzZSwgc2luY2UgaXQncyBhIGxvdCB0cmlja2llciB0byBnZXQgdGhlIHNlY29uZCBjYXNlIHJp
Z2h0Ci0gICAgLy8gd2l0aG91dCBkb2luZyB3YXkgdG9vIG11Y2ggcmUtcmVzb2x1dGlvbi4KICAg
ICBib29sIGZvcmNlQ2hlY2tPZk5leHRFbGVtZW50U2libGluZyA9IGZhbHNlOwogICAgIGZvciAo
Tm9kZSAqbiA9IGZpcnN0Q2hpbGQoKTsgbjsgbiA9IG4tPm5leHRTaWJsaW5nKCkpIHsKICAgICAg
ICAgYm9vbCBjaGlsZFJ1bGVzQ2hhbmdlZCA9IG4tPm5lZWRzU3R5bGVSZWNhbGMoKSAmJiBuLT5z
dHlsZUNoYW5nZVR5cGUoKSA9PSBGdWxsU3R5bGVDaGFuZ2U7Ci0gICAgICAgIGlmIChmb3JjZUNo
ZWNrT2ZOZXh0RWxlbWVudFNpYmxpbmcgJiYgbi0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICBp
ZiAoZm9yY2VDaGVja09mTmV4dEVsZW1lbnRTaWJsaW5nICYmIG4tPmlzRWxlbWVudE5vZGUoKSAm
JiBuLT5yZW5kZXJTdHlsZSgpICYmIG4tPnJlbmRlclN0eWxlKCktPmFmZmVjdGVkQnlEaXJlY3RB
ZGphY2VudFJ1bGVzKCkpIHsKICAgICAgICAgICAgIG4tPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsK
KyAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcHJvcGFnYXRlIGNoYW5nZS4KKyAgICAgICAgICAg
IGNoaWxkUnVsZXNDaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgfQogICAgICAgICBpZiAoY2hhbmdl
ID49IEluaGVyaXQgfHwgbi0+aXNUZXh0Tm9kZSgpIHx8IG4tPmNoaWxkTmVlZHNTdHlsZVJlY2Fs
YygpIHx8IG4tPm5lZWRzU3R5bGVSZWNhbGMoKSkgewogICAgICAgICAgICAgcGFyZW50UHVzaGVy
LnB1c2goKTsKICAgICAgICAgICAgIG4tPnJlY2FsY1N0eWxlKGNoYW5nZSk7CiAgICAgICAgIH0K
ICAgICAgICAgaWYgKG4tPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgICAgIGZvcmNlQ2hlY2tP
Zk5leHRFbGVtZW50U2libGluZyA9IGNoaWxkUnVsZXNDaGFuZ2VkICYmIGhhc0RpcmVjdEFkamFj
ZW50UnVsZXM7CisgICAgICAgICAgICBmb3JjZUNoZWNrT2ZOZXh0RWxlbWVudFNpYmxpbmcgPSBj
aGlsZFJ1bGVzQ2hhbmdlZDsKICAgICB9CiAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgY2Fy
ZSBhYm91dCBzaWJsaW5nIGNvbWJpbmF0b3JzLiBXaWxsIGJlIG5lY2Vzc2FyeSBpbiBYQkwyIHdv
cmxkLgogICAgIGlmIChOb2RlKiBzaGFkb3cgPSBzaGFkb3dSb290KCkpIHsKQEAgLTEyNDUsMTUg
KzEyNDUsMTEgQEAgc3RhdGljIHZvaWQgY2hlY2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2VzKEVsZW1l
bnQqIGUsIFJlbmRlclN0eWxlKiBzdHlsZSwgYm9vbCBmaW4KICAgICAgICAgICAgIG5ld0xhc3RD
aGlsZC0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOwogICAgIH0KIAotICAgIC8vIFRoZSArIHNlbGVj
dG9yLiAgV2UgbmVlZCB0byBpbnZhbGlkYXRlIHRoZSBmaXJzdCBlbGVtZW50IGZvbGxvd2luZyB0
aGUgaW5zZXJ0aW9uIHBvaW50LiAgSXQgaXMgdGhlIG9ubHkgcG9zc2libGUgZWxlbWVudAotICAg
IC8vIHRoYXQgY291bGQgYmUgYWZmZWN0ZWQgYnkgdGhpcyBET00gY2hhbmdlLgotICAgIGlmIChz
dHlsZS0+Y2hpbGRyZW5BZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcygpICYmIGFmdGVyQ2hh
bmdlKSB7Ci0gICAgICAgIE5vZGUqIGZpcnN0RWxlbWVudEFmdGVySW5zZXJ0aW9uID0gMDsKLSAg
ICAgICAgZm9yIChmaXJzdEVsZW1lbnRBZnRlckluc2VydGlvbiA9IGFmdGVyQ2hhbmdlOwotICAg
ICAgICAgICAgIGZpcnN0RWxlbWVudEFmdGVySW5zZXJ0aW9uICYmICFmaXJzdEVsZW1lbnRBZnRl
ckluc2VydGlvbi0+aXNFbGVtZW50Tm9kZSgpOwotICAgICAgICAgICAgIGZpcnN0RWxlbWVudEFm
dGVySW5zZXJ0aW9uID0gZmlyc3RFbGVtZW50QWZ0ZXJJbnNlcnRpb24tPm5leHRTaWJsaW5nKCkp
IHt9OwotICAgICAgICBpZiAoZmlyc3RFbGVtZW50QWZ0ZXJJbnNlcnRpb24gJiYgZmlyc3RFbGVt
ZW50QWZ0ZXJJbnNlcnRpb24tPmF0dGFjaGVkKCkpCi0gICAgICAgICAgICBmaXJzdEVsZW1lbnRB
ZnRlckluc2VydGlvbi0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworICAgIC8vIFRoZSArIHNlbGVj
dG9yLiBXZSBuZWVkIHRvIGludmFsaWRhdGUgYWxsIGVsZW1lbnRzIGFmZmVjdGVkIGJ5CisgICAg
Ly8gZGlyZWN0IGFkamFjZW50IHJ1bGVzIGFmdGVyIHRoZSBpbnNlcnRpb24gcG9pbnQuCisgICAg
Zm9yIChOb2RlKiBub2RlID0gYWZ0ZXJDaGFuZ2U7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2li
bGluZygpKSB7CisgICAgICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgbm9kZS0+cmVu
ZGVyU3R5bGUoKSAmJiBub2RlLT5yZW5kZXJTdHlsZSgpLT5hZmZlY3RlZEJ5RGlyZWN0QWRqYWNl
bnRSdWxlcygpKQorICAgICAgICAgICAgbm9kZS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOwogICAg
IH0KIAogICAgIC8vIEZvcndhcmQgcG9zaXRpb25hbCBzZWxlY3RvcnMgaW5jbHVkZSB0aGUgfiBz
ZWxlY3RvciwgbnRoLWNoaWxkLCBudGgtb2YtdHlwZSwgZmlyc3Qtb2YtdHlwZSBhbmQgb25seS1v
Zi10eXBlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKaW5kZXggMTIyYjc2Mi4uNzhhNjQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVG9yY2ggTW9iaWxl
IChCZWlqaW5nKSBDby4gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC02MywxMiArNjQsMTIgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gUmVuZGVyU3R5
bGU6OmNsb25lKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlcikKIAogQUxXQVlTX0lOTElORSBSZW5k
ZXJTdHlsZTo6UmVuZGVyU3R5bGUoKQogICAgIDogbV9hZmZlY3RlZEJ5QXR0cmlidXRlU2VsZWN0
b3JzKGZhbHNlKQorICAgICwgbV9hZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyhmYWxzZSkK
ICAgICAsIG1fdW5pcXVlKGZhbHNlKQogICAgICwgbV9hZmZlY3RlZEJ5RW1wdHkoZmFsc2UpCiAg
ICAgLCBtX2VtcHR5U3RhdGUoZmFsc2UpCiAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUZpcnN0
Q2hpbGRSdWxlcyhmYWxzZSkKICAgICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVs
ZXMoZmFsc2UpCi0gICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMo
ZmFsc2UpCiAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMo
ZmFsc2UpCiAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3YXJkUG9zaXRpb25hbFJ1bGVz
KGZhbHNlKQogICAgICwgbV9maXJzdENoaWxkU3RhdGUoZmFsc2UpCkBAIC05MCwxMiArOTEsMTIg
QEAgQUxXQVlTX0lOTElORSBSZW5kZXJTdHlsZTo6UmVuZGVyU3R5bGUoKQogCiBBTFdBWVNfSU5M
SU5FIFJlbmRlclN0eWxlOjpSZW5kZXJTdHlsZShib29sKQogICAgIDogbV9hZmZlY3RlZEJ5QXR0
cmlidXRlU2VsZWN0b3JzKGZhbHNlKQorICAgICwgbV9hZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRS
dWxlcyhmYWxzZSkKICAgICAsIG1fdW5pcXVlKGZhbHNlKQogICAgICwgbV9hZmZlY3RlZEJ5RW1w
dHkoZmFsc2UpCiAgICAgLCBtX2VtcHR5U3RhdGUoZmFsc2UpCiAgICAgLCBtX2NoaWxkcmVuQWZm
ZWN0ZWRCeUZpcnN0Q2hpbGRSdWxlcyhmYWxzZSkKICAgICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5
TGFzdENoaWxkUnVsZXMoZmFsc2UpCi0gICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFk
amFjZW50UnVsZXMoZmFsc2UpCiAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQb3Np
dGlvbmFsUnVsZXMoZmFsc2UpCiAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3YXJkUG9z
aXRpb25hbFJ1bGVzKGZhbHNlKQogICAgICwgbV9maXJzdENoaWxkU3RhdGUoZmFsc2UpCkBAIC0x
MjQsMTIgKzEyNSwxMiBAQCBBTFdBWVNfSU5MSU5FIFJlbmRlclN0eWxlOjpSZW5kZXJTdHlsZShi
b29sKQogQUxXQVlTX0lOTElORSBSZW5kZXJTdHlsZTo6UmVuZGVyU3R5bGUoY29uc3QgUmVuZGVy
U3R5bGUmIG8pCiAgICAgOiBSZWZDb3VudGVkPFJlbmRlclN0eWxlPigpCiAgICAgLCBtX2FmZmVj
dGVkQnlBdHRyaWJ1dGVTZWxlY3RvcnMoZmFsc2UpCisgICAgLCBtX2FmZmVjdGVkQnlEaXJlY3RB
ZGphY2VudFJ1bGVzKGZhbHNlKQogICAgICwgbV91bmlxdWUoZmFsc2UpCiAgICAgLCBtX2FmZmVj
dGVkQnlFbXB0eShmYWxzZSkKICAgICAsIG1fZW1wdHlTdGF0ZShmYWxzZSkKICAgICAsIG1fY2hp
bGRyZW5BZmZlY3RlZEJ5Rmlyc3RDaGlsZFJ1bGVzKGZhbHNlKQogICAgICwgbV9jaGlsZHJlbkFm
ZmVjdGVkQnlMYXN0Q2hpbGRSdWxlcyhmYWxzZSkKLSAgICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5
RGlyZWN0QWRqYWNlbnRSdWxlcyhmYWxzZSkKICAgICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5Rm9y
d2FyZFBvc2l0aW9uYWxSdWxlcyhmYWxzZSkKICAgICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5QmFj
a3dhcmRQb3NpdGlvbmFsUnVsZXMoZmFsc2UpCiAgICAgLCBtX2ZpcnN0Q2hpbGRTdGF0ZShmYWxz
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXgg
NmZiZjBjZS4uMzI5ZTlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKQEAgLTQsNiArNCw3IEBACiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBN
dWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIw
MDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDA2IEdyYWhhbSBEZW5uaXMgKGdyYWhhbS5kZW5uaXNAZ21h
aWwuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDExIFRvcmNoIE1vYmlsZSAoQmVpamluZykgQ28u
IEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTE3LDYg
KzExOCw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBUaGUgZm9sbG93aW5nIGJpdGZpZWxkIGlzIDMy
LWJpdHMgbG9uZywgd2hpY2ggb3B0aW1pemVzIHBhZGRpbmcgd2l0aCB0aGUKICAgICAvLyBpbnQg
cmVmQ291bnQgaW4gdGhlIGJhc2UgY2xhc3MuIEJld2FyZSB3aGVuIGFkZGluZyBtb3JlIGJpdHMu
CiAgICAgYm9vbCBtX2FmZmVjdGVkQnlBdHRyaWJ1dGVTZWxlY3RvcnMgOiAxOworICAgIGJvb2wg
bV9hZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlczogMTsKICAgICBib29sIG1fdW5pcXVlIDog
MTsKIAogICAgIC8vIEJpdHMgZm9yIGR5bmFtaWMgY2hpbGQgbWF0Y2hpbmcuCkBAIC0xMjcsNyAr
MTI5LDYgQEAgcHJvdGVjdGVkOgogICAgIC8vICotY2hpbGQtb2YtdHlwZSwgd2Ugd2lsbCBqdXN0
IGdpdmUgdXAgYW5kIHJlLWV2YWx1YXRlIHdoZW5ldmVyIGNoaWxkcmVuIGNoYW5nZSBhdCBhbGwu
CiAgICAgYm9vbCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUZpcnN0Q2hpbGRSdWxlcyA6IDE7CiAgICAg
Ym9vbCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUxhc3RDaGlsZFJ1bGVzIDogMTsKLSAgICBib29sIG1f
Y2hpbGRyZW5BZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyA6IDE7CiAgICAgYm9vbCBtX2No
aWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMgOiAxOwogICAgIGJvb2wgbV9j
aGlsZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyA6IDE7CiAgICAgYm9vbCBt
X2ZpcnN0Q2hpbGRTdGF0ZSA6IDE7CkBAIC0xMTc0LDYgKzExNzUsOCBAQCBwdWJsaWM6CiAgICAg
Ly8gVG8gdGVsbCBpZiB0aGlzIHN0eWxlIG1hdGNoZWQgYXR0cmlidXRlIHNlbGVjdG9ycy4gVGhp
cyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHNoYXJlLgogICAgIGJvb2wgYWZmZWN0ZWRCeUF0dHJp
YnV0ZVNlbGVjdG9ycygpIGNvbnN0IHsgcmV0dXJuIG1fYWZmZWN0ZWRCeUF0dHJpYnV0ZVNlbGVj
dG9yczsgfQogICAgIHZvaWQgc2V0QWZmZWN0ZWRCeUF0dHJpYnV0ZVNlbGVjdG9ycygpIHsgbV9h
ZmZlY3RlZEJ5QXR0cmlidXRlU2VsZWN0b3JzID0gdHJ1ZTsgfQorICAgIGJvb2wgYWZmZWN0ZWRC
eURpcmVjdEFkamFjZW50UnVsZXMoKSBjb25zdCB7IHJldHVybiBtX2FmZmVjdGVkQnlEaXJlY3RB
ZGphY2VudFJ1bGVzOyB9CisgICAgdm9pZCBzZXRBZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxl
cygpIHsgbV9hZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyA9IHRydWU7fQogCiAgICAgYm9v
bCB1bmlxdWUoKSBjb25zdCB7IHJldHVybiBtX3VuaXF1ZTsgfQogICAgIHZvaWQgc2V0VW5pcXVl
KCkgeyBtX3VuaXF1ZSA9IHRydWU7IH0KQEAgLTExODcsOCArMTE5MCw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldENoaWxkcmVuQWZmZWN0ZWRCeUZpcnN0Q2hpbGRSdWxlcygpIHsgbV9jaGlsZHJl
bkFmZmVjdGVkQnlGaXJzdENoaWxkUnVsZXMgPSB0cnVlOyB9CiAgICAgYm9vbCBjaGlsZHJlbkFm
ZmVjdGVkQnlMYXN0Q2hpbGRSdWxlcygpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW5BZmZlY3Rl
ZEJ5TGFzdENoaWxkUnVsZXM7IH0KICAgICB2b2lkIHNldENoaWxkcmVuQWZmZWN0ZWRCeUxhc3RD
aGlsZFJ1bGVzKCkgeyBtX2NoaWxkcmVuQWZmZWN0ZWRCeUxhc3RDaGlsZFJ1bGVzID0gdHJ1ZTsg
fQotICAgIGJvb2wgY2hpbGRyZW5BZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcygpIGNvbnN0
IHsgcmV0dXJuIG1fY2hpbGRyZW5BZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlczsgfQotICAg
IHZvaWQgc2V0Q2hpbGRyZW5BZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcygpIHsgbV9jaGls
ZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzID0gdHJ1ZTsgfQogICAgIGJvb2wgY2hp
bGRyZW5BZmZlY3RlZEJ5Rm9yd2FyZFBvc2l0aW9uYWxSdWxlcygpIGNvbnN0IHsgcmV0dXJuIG1f
Y2hpbGRyZW5BZmZlY3RlZEJ5Rm9yd2FyZFBvc2l0aW9uYWxSdWxlczsgfQogICAgIHZvaWQgc2V0
Q2hpbGRyZW5BZmZlY3RlZEJ5Rm9yd2FyZFBvc2l0aW9uYWxSdWxlcygpIHsgbV9jaGlsZHJlbkFm
ZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzID0gdHJ1ZTsgfQogICAgIGJvb2wgY2hpbGRy
ZW5BZmZlY3RlZEJ5QmFja3dhcmRQb3NpdGlvbmFsUnVsZXMoKSBjb25zdCB7IHJldHVybiBtX2No
aWxkcmVuQWZmZWN0ZWRCeUJhY2t3YXJkUG9zaXRpb25hbFJ1bGVzOyB9Ci0tIAoxLjcuMC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94553</attachid>
            <date>2011-05-23 20:42:25 -0700</date>
            <delta_ts>2012-09-12 11:50:44 -0700</delta_ts>
            <desc>Revised patch - rebased and test case reworked</desc>
            <filename>0001-2011-03-11-Leo-Yang-leo.yang-torchmobile.com.cn.patch</filename>
            <type>text/plain</type>
            <size>21183</size>
            <attacher name="Leo Yang">leo.yang</attacher>
            
              <data encoding="base64">RnJvbSBjYjRjNWU1ZTg2NzA2YmQxZTYyN2ZjM2UyNDI1Y2UyMWFiNDdkY2U4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNu
PgpEYXRlOiBXZWQsIDkgTWFyIDIwMTEgMTY6MDY6NTEgKzA4MDAKU3ViamVjdDogW1BBVENIXSAy
MDExLTAzLTExICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KCiAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIENTUyAnKycgY29tYmluYXRv
ciB3aXRoIG1vcmUgdGhhbiAyIGNvbWJpbmF0aW9ucyBkb2Vzbid0IHdvcmsKICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQzNzMKCiAgICAgICAgV2ViS2l0
IHdhcyB3b3JraW5nIHdpdGggYSAnKycgY29tYmluYXRvciAoZS5nLiwgW2NsYXNzPWZvb10gKyBi
YXIpCiAgICAgICAgYnV0IG5vdCB3b3JraW5nIHdpdGggJ1tjbGFzcz1mb29dICsgYmFyICsgb3Ro
ZXInLiBUaGlzIHBhdGNoIGlzIG1ha2luZwogICAgICAgIGl0IHdvcmsgd2l0aCBtb3JlIHRoYW4g
MiBjb21iaW5hdGlvbnMgYnkgYWRkaW5nIGEgYml0IHRvIGFmZmVjdGQgc3R5bGUuCiAgICAgICAg
V2hlbiBhZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyBpcyBzZXQgYW5kIHRoZXJlIGlzIGEg
cHJldmlvdXMKICAgICAgICBzaWJsaW5nIGNoYW5nZWQgd2UgZm9yY2UgYSBzdHlsZSByZWNhbGN1
bGF0aW9uLgoKICAgICAgICBUZXN0czogZmFzdC9jc3MvZHluYW1pYy1tdWx0aXBsZS1zaWJsaW5n
LXNlbGVjdG9yLWFmdGVyLWRvbS1jaGFuZ2UuaHRtbAogICAgICAgICAgICAgICBmYXN0L2Nzcy9k
eW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2VsZWN0b3IuaHRtbAoKICAgICAgICAqIGNzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcDoKICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y2Fu
U2hhcmVTdHlsZVdpdGhFbGVtZW50KToKICAgICAgICAoV2ViQ29yZTo6cGFyZW50U3R5bGVQcmV2
ZW50c1NoYXJpbmcpOgogICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpTZWxlY3Rv
ckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IpOgogICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgogICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZWNhbGNTdHlsZSk6CiAgICAgICAgKFdlYkNvcmU6OmNo
ZWNrRm9yU2libGluZ1N0eWxlQ2hhbmdlcyk6CiAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwOgogICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6UmVuZGVyU3R5bGUp
OgogICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CiAgICAgICAgKFdlYkNv
cmU6OkluaGVyaXRlZEZsYWdzOjphZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyk6CiAgICAg
ICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRBZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRS
dWxlcyk6CiAgICAgICAgKiBmYXN0L2Nzcy9keW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2VsZWN0
b3ItYWZ0ZXItZG9tLWNoYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgogICAgICAgICogZmFzdC9j
c3MvZHluYW1pYy1tdWx0aXBsZS1zaWJsaW5nLXNlbGVjdG9yLWFmdGVyLWRvbS1jaGFuZ2UuaHRt
bDogQWRkZWQuCiAgICAgICAgKiBmYXN0L2Nzcy9keW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2Vs
ZWN0b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KICAgICAgICAqIGZhc3QvY3NzL2R5bmFtaWMtbXVs
dGlwbGUtc2libGluZy1zZWxlY3Rvci5odG1sOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKysrKysrKysrCiAuLi4t
c2libGluZy1zZWxlY3Rvci1hZnRlci1kb20tY2hhbmdlLWV4cGVjdGVkLnR4dCB8ICAgIDcgKysr
KwogLi4ubXVsdGlwbGUtc2libGluZy1zZWxlY3Rvci1hZnRlci1kb20tY2hhbmdlLmh0bWwgfCAg
IDMxICsrKysrKysrKysrKysrKysrKysrCiAuLi4vZHluYW1pYy1tdWx0aXBsZS1zaWJsaW5nLXNl
bGVjdG9yLWV4cGVjdGVkLnR4dCB8ICAgIDcgKysrKwogLi4uL2Nzcy9keW5hbWljLW11bHRpcGxl
LXNpYmxpbmctc2VsZWN0b3IuaHRtbCAgICAgfCAgIDMwICsrKysrKysrKysrKysrKysrKysKIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyOSAr
KysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cCAgICAgICAgICAgIHwgICAxNCArKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcCAgICAgICAgICAgICAgICAgICAgIHwgICAzMCArKysrKysrKy0tLS0tLS0tLS0tCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwICAgICB8ICAgIDcgKyst
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggICAgICAgfCAg
ICA3ICsrLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDE0NyBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlv
bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5hbWljLW11
bHRpcGxlLXNpYmxpbmctc2VsZWN0b3ItYWZ0ZXItZG9tLWNoYW5nZS1leHBlY3RlZC50eHQKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5hbWljLW11bHRpcGxlLXNp
Ymxpbmctc2VsZWN0b3ItYWZ0ZXItZG9tLWNoYW5nZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZHluYW1pYy1tdWx0aXBsZS1zaWJsaW5nLXNlbGVjdG9yLWV4
cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvY3NzL2R5bmFt
aWMtbXVsdGlwbGUtc2libGluZy1zZWxlY3Rvci5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg5Y2MxZDIuLmU3MzM0
NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wMy0xMSAgTGVvIFlhbmcgIDxsZW8ueWFu
Z0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ1NTICcrJyBjb21iaW5hdG9yIHdpdGggbW9yZSB0aGFuIDIgY29tYmlu
YXRpb25zIGRvZXNuJ3Qgd29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTQzNzMKKworICAgICAgICBUZXN0IGNhc2VzIGZvciBtb3JlIHRoYW4gMiBj
b21iaW5hdGlvbnMgZm9yICcrJyBjb21iaW5hdG9yLgorCisgICAgICAgICogZmFzdC9jc3MvZHlu
YW1pYy1tdWx0aXBsZS1zaWJsaW5nLXNlbGVjdG9yLWFmdGVyLWRvbS1jaGFuZ2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9keW5hbWljLW11bHRpcGxlLXNpYmxpbmct
c2VsZWN0b3ItYWZ0ZXItZG9tLWNoYW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nz
cy9keW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2VsZWN0b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy9keW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2VsZWN0b3IuaHRt
bDogQWRkZWQuCisKIDIwMTEtMDUtMjMgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNv
ZGVhdXJvcmEub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZHluYW1pYy1tdWx0aXBsZS1zaWJsaW5nLXNlbGVj
dG9yLWFmdGVyLWRvbS1jaGFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
ZHluYW1pYy1tdWx0aXBsZS1zaWJsaW5nLXNlbGVjdG9yLWFmdGVyLWRvbS1jaGFuZ2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMzI2YjEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5hbWljLW11bHRpcGxlLXNpYmxp
bmctc2VsZWN0b3ItYWZ0ZXItZG9tLWNoYW5nZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkg
c2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDEwMHg1
MCBbYmdjb2xvcj0jMDA4MDAwXQorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTApIHNp
emUgMTAweDUwIFtiZ2NvbG9yPSMwMDgwMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9keW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2VsZWN0b3ItYWZ0ZXItZG9tLWNoYW5nZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZHluYW1pYy1tdWx0aXBsZS1zaWJsaW5nLXNlbGVj
dG9yLWFmdGVyLWRvbS1jaGFuZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5jMjc2MjdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZHlu
YW1pYy1tdWx0aXBsZS1zaWJsaW5nLXNlbGVjdG9yLWFmdGVyLWRvbS1jaGFuZ2UuaHRtbApAQCAt
MCwwICsxLDMxIEBACis8aHRtbD4KKzxoZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAg
ICBkaXYgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAgICAgIHdpZHRoOiAx
MDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgIH0KKworICAgIC5iYXNlICsgZGl2LCAu
YmFzZSArIGRpdiArIGRpdiB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAg
IH0KKzwvc3R5bGU+CisKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICB3aW5k
b3cub25sb2FkID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIGJhc2VEaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgYmFzZURpdi5jbGFzc05hbWUgPSAi
YmFzZSI7CisgICAgICAgIGJhc2VEaXYuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKyAgICAgICAg
dmFyIGZpcnN0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpcnN0Iik7CisgICAgICAg
IGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGJhc2VEaXYsIGZpcnN0RGl2KTsKKyAgICAgICAg
ZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDsKKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorICAgIDxkaXYgaWQ9ImZpcnN0Ij48L2Rpdj4KKyAgICA8ZGl2PjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZHluYW1pYy1tdWx0
aXBsZS1zaWJsaW5nLXNlbGVjdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2R5bmFtaWMtbXVsdGlwbGUtc2libGluZy1zZWxlY3Rvci1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTEzMjZiMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2R5bmFtaWMtbXVsdGlwbGUtc2libGluZy1zZWxlY3Rvci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCwwKSBzaXplIDEwMHg1MCBbYmdjb2xvcj0jMDA4MDAwXQorICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsNTApIHNpemUgMTAweDUwIFtiZ2NvbG9yPSMwMDgwMDBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5hbWljLW11bHRpcGxlLXNpYmxpbmctc2Vs
ZWN0b3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2R5bmFtaWMtbXVsdGlwbGUtc2libGlu
Zy1zZWxlY3Rvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkZmZj
MGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9keW5hbWljLW11bHRp
cGxlLXNpYmxpbmctc2VsZWN0b3IuaHRtbApAQCAtMCwwICsxLDMwIEBACis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICBkaXYgeworICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiByZWQ7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4
OworICAgIH0KKworICAgIC5iYXNlICsgZGl2LCAuYmFzZSArIGRpdiArIGRpdiB7CisgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgIH0KKzwvc3R5bGU+CisKKzxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgdmFyIHN0YXJ0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0
Iik7CisgICAgICAgIHN0YXJ0RGl2LmNsYXNzTmFtZSA9ICJiYXNlIjsKKyAgICAgICAgc3RhcnRE
aXYuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRX
aWR0aDsKKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InN0
YXJ0Ij48L2Rpdj4KKyAgICA8ZGl2PjwvZGl2PgorICAgIDxkaXY+PC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNTg2NThiYy4uNWU1NTg5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMyIEBACisyMDExLTAzLTExICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNv
bS5jbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
U1MgJysnIGNvbWJpbmF0b3Igd2l0aCBtb3JlIHRoYW4gMiBjb21iaW5hdGlvbnMgZG9lc24ndCB3
b3JrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDM3
MworCisgICAgICAgIFdlYktpdCB3YXMgd29ya2luZyB3aXRoIGEgJysnIGNvbWJpbmF0b3IgKGUu
Zy4sIFtjbGFzcz1mb29dICsgYmFyKQorICAgICAgICBidXQgbm90IHdvcmtpbmcgd2l0aCAnW2Ns
YXNzPWZvb10gKyBiYXIgKyBvdGhlcicuIFRoaXMgcGF0Y2ggaXMgbWFraW5nCisgICAgICAgIGl0
IHdvcmsgd2l0aCBtb3JlIHRoYW4gMiBjb21iaW5hdGlvbnMgYnkgYWRkaW5nIGEgYml0IHRvIGFm
ZmVjdGQgc3R5bGUuCisgICAgICAgIFdoZW4gYWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMg
aXMgc2V0IGFuZCB0aGVyZSBpcyBhIHByZXZpb3VzCisgICAgICAgIHNpYmxpbmcgY2hhbmdlZCB3
ZSBmb3JjZSBhIHN0eWxlIHJlY2FsY3VsYXRpb24uCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3Nz
L2R5bmFtaWMtbXVsdGlwbGUtc2libGluZy1zZWxlY3Rvci1hZnRlci1kb20tY2hhbmdlLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvY3NzL2R5bmFtaWMtbXVsdGlwbGUtc2libGluZy1zZWxlY3Rv
ci5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6cGFyZW50U3R5bGVQcmV2ZW50c1NoYXJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6U2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9yKToK
KyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpy
ZWNhbGNTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpjaGVja0ZvclNpYmxpbmdTdHlsZUNoYW5n
ZXMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6UmVuZGVyU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6
OmFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVy
aXRlZEZsYWdzOjpzZXRBZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyk6CisKIDIwMTEtMDUt
MjMgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwCmluZGV4IDk5ZTY1ZWMuLmY2NDMyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHAKQEAgLTgsNiArOCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgs
IDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cu
dG9yY2htb2JpbGUuY29tLykKICAqIENvcHlyaWdodCAoYykgMjAxMSwgQ29kZSBBdXJvcmEgRm9y
dW0uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1v
dGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgVG9yY2ggTW9iaWxlIChCZWlqaW5nKSBDby4gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMDM5LDYgKzEwNDAsOCBAQCBib29sIENTU1N0eWxl
U2VsZWN0b3I6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudChOb2RlKiBub2RlKSBjb25zdAogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKHN0eWxlLT5hZmZlY3RlZEJ5QXR0cmlidXRlU2Vs
ZWN0b3JzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUtPmFmZmVjdGVk
QnlEaXJlY3RBZGphY2VudFJ1bGVzKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAo
ZWxlbWVudC0+aG92ZXJlZCgpICE9IG1fZWxlbWVudC0+aG92ZXJlZCgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKGVsZW1lbnQtPmFjdGl2ZSgpICE9IG1fZWxlbWVudC0+YWN0aXZl
KCkpCkBAIC0xMTUwLDggKzExNTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcGFyZW50U3R5bGVQ
cmV2ZW50c1NoYXJpbmcoY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlKQogewogICAgIHJl
dHVybiBwYXJlbnRTdHlsZS0+Y2hpbGRyZW5BZmZlY3RlZEJ5UG9zaXRpb25hbFJ1bGVzKCkgCiAg
ICAgICAgIHx8IHBhcmVudFN0eWxlLT5jaGlsZHJlbkFmZmVjdGVkQnlGaXJzdENoaWxkUnVsZXMo
KQotICAgICAgICB8fCBwYXJlbnRTdHlsZS0+Y2hpbGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVs
ZXMoKSAKLSAgICAgICAgfHwgcGFyZW50U3R5bGUtPmNoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFk
amFjZW50UnVsZXMoKTsKKyAgICAgICAgfHwgcGFyZW50U3R5bGUtPmNoaWxkcmVuQWZmZWN0ZWRC
eUxhc3RDaGlsZFJ1bGVzKCk7CiB9CiAKIEFMV0FZU19JTkxJTkUgUmVuZGVyU3R5bGUqIENTU1N0
eWxlU2VsZWN0b3I6OmxvY2F0ZVNoYXJlZFN0eWxlKCkKQEAgLTIyMzgsMTAgKzIyNDAsMTAgQEAg
Q1NTU3R5bGVTZWxlY3Rvcjo6U2VsZWN0b3JNYXRjaCBDU1NTdHlsZVNlbGVjdG9yOjpTZWxlY3Rv
ckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpEaXJlY3RBZGphY2VudDoKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFtX2NvbGxl
Y3RSdWxlc09ubHkgJiYgZS0+cGFyZW50Tm9kZSgpICYmIGUtPnBhcmVudE5vZGUoKS0+aXNFbGVt
ZW50Tm9kZSgpKSB7Ci0gICAgICAgICAgICAgICAgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlID0g
ZWxlbWVudFN0eWxlID8gZWxlbWVudFBhcmVudFN0eWxlIDogZS0+cGFyZW50Tm9kZSgpLT5yZW5k
ZXJTdHlsZSgpOwotICAgICAgICAgICAgICAgIGlmIChwYXJlbnRTdHlsZSkKLSAgICAgICAgICAg
ICAgICAgICAgcGFyZW50U3R5bGUtPnNldENoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFjZW50
UnVsZXMoKTsKKyAgICAgICAgICAgIGlmICghbV9jb2xsZWN0UnVsZXNPbmx5KSB7CisgICAgICAg
ICAgICAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gZWxlbWVudFN0eWxlID8gZWxlbWVudFN0eWxl
IDogZS0+cmVuZGVyU3R5bGUoKTsKKyAgICAgICAgICAgICAgICBpZiAoc3R5bGUpCisgICAgICAg
ICAgICAgICAgICAgIHN0eWxlLT5zZXRBZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcygpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgTm9kZSogbiA9IGUtPnByZXZpb3VzU2libGluZygp
OwogICAgICAgICAgICAgd2hpbGUgKG4gJiYgIW4tPmlzRWxlbWVudE5vZGUoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCBhMGQ1YzY5Li43NWJhYWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC02LDYgKzYsNyBAQAogICogICAgICAgICAgIChDKSAyMDA3IERhdmlkIFNtaXRoIChjYXRm
aXNoLm1hbkBnbWFpbC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
ICAgICAgICAgIChDKSAyMDA3IEVyaWMgU2VpZGVsIChlcmljQHdlYmtpdC5vcmcpCisgKiAgICAg
ICAgICAgKEMpIDIwMTEgVG9yY2ggTW9iaWxlIChCZWlqaW5nKSBDby4gTHRkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMDc1LDcgKzEwNzYsNiBAQCB2b2lk
IEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAvLyBSZWYgY3Vy
cmVudFN0eWxlIGluIGNhc2UgaXQgd291bGQgb3RoZXJ3aXNlIGJlIGRlbGV0ZWQgd2hlbiBzZXRS
ZW5kZXJTdHlsZSgpIGlzIGNhbGxlZC4KICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGN1cnJlbnRT
dHlsZShyZW5kZXJTdHlsZSgpKTsKICAgICBib29sIGhhc1BhcmVudFN0eWxlID0gcGFyZW50Tm9k
ZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgPyBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUo
KS0+cmVuZGVyU3R5bGUoKSA6IGZhbHNlOwotICAgIGJvb2wgaGFzRGlyZWN0QWRqYWNlbnRSdWxl
cyA9IGN1cnJlbnRTdHlsZSAmJiBjdXJyZW50U3R5bGUtPmNoaWxkcmVuQWZmZWN0ZWRCeURpcmVj
dEFkamFjZW50UnVsZXMoKTsKICAgICBib29sIGhhc0luZGlyZWN0QWRqYWNlbnRSdWxlcyA9IGN1
cnJlbnRTdHlsZSAmJiBjdXJyZW50U3R5bGUtPmNoaWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQb3Np
dGlvbmFsUnVsZXMoKTsKIAogICAgIGlmICgoY2hhbmdlID4gTm9DaGFuZ2UgfHwgbmVlZHNTdHls
ZVJlY2FsYygpKSkgewpAQCAtMTExMiw4ICsxMTEyLDggQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNT
dHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgICAgICAgICAgbmV3U3R5bGUtPnNldENo
aWxkcmVuQWZmZWN0ZWRCeUZpcnN0Q2hpbGRSdWxlcygpOwogICAgICAgICAgICAgaWYgKGN1cnJl
bnRTdHlsZS0+Y2hpbGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVsZXMoKSkKICAgICAgICAgICAg
ICAgICBuZXdTdHlsZS0+c2V0Q2hpbGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVsZXMoKTsKLSAg
ICAgICAgICAgIGlmIChjdXJyZW50U3R5bGUtPmNoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFj
ZW50UnVsZXMoKSkKLSAgICAgICAgICAgICAgICBuZXdTdHlsZS0+c2V0Q2hpbGRyZW5BZmZlY3Rl
ZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcygpOworICAgICAgICAgICAgaWYgKGN1cnJlbnRTdHlsZS0+
YWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKSkKKyAgICAgICAgICAgICAgICBuZXdTdHls
ZS0+c2V0QWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChjaCAhPSBOb0NoYW5nZSB8fCBwc2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKGN1cnJl
bnRTdHlsZS5nZXQoKSwgbmV3U3R5bGUuZ2V0KCkpIHx8IChjaGFuZ2UgPT0gRm9yY2UgJiYgcmVu
ZGVyZXIoKSAmJiByZW5kZXJlcigpLT5yZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRp
b24oKSkpIHsKQEAgLTExNDAsMjEgKzExNDAsMjEgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHls
ZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgIH0KICAgICB9CiAgICAgU3R5bGVTZWxlY3Rv
clBhcmVudFB1c2hlciBwYXJlbnRQdXNoZXIodGhpcyk7Ci0gICAgLy8gRklYTUU6IFRoaXMgY2hl
Y2sgaXMgZ29vZCBlbm91Z2ggZm9yIDpob3ZlciArIGZvbywgYnV0IGl0IGlzIG5vdCBnb29kIGVu
b3VnaCBmb3IgOmhvdmVyICsgZm9vICsgYmFyLgotICAgIC8vIEZvciBub3cgd2Ugd2lsbCBqdXN0
IHdvcnJ5IGFib3V0IHRoZSBjb21tb24gY2FzZSwgc2luY2UgaXQncyBhIGxvdCB0cmlja2llciB0
byBnZXQgdGhlIHNlY29uZCBjYXNlIHJpZ2h0Ci0gICAgLy8gd2l0aG91dCBkb2luZyB3YXkgdG9v
IG11Y2ggcmUtcmVzb2x1dGlvbi4KICAgICBib29sIGZvcmNlQ2hlY2tPZk5leHRFbGVtZW50U2li
bGluZyA9IGZhbHNlOwogICAgIGJvb2wgZm9yY2VDaGVja09mQW55RWxlbWVudFNpYmxpbmcgPSBm
YWxzZTsKICAgICBmb3IgKE5vZGUgKm4gPSBmaXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2li
bGluZygpKSB7CiAgICAgICAgIGJvb2wgY2hpbGRSdWxlc0NoYW5nZWQgPSBuLT5uZWVkc1N0eWxl
UmVjYWxjKCkgJiYgbi0+c3R5bGVDaGFuZ2VUeXBlKCkgPT0gRnVsbFN0eWxlQ2hhbmdlOwotICAg
ICAgICBpZiAoKGZvcmNlQ2hlY2tPZk5leHRFbGVtZW50U2libGluZyB8fCBmb3JjZUNoZWNrT2ZB
bnlFbGVtZW50U2libGluZykgJiYgbi0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICBpZiAoKChm
b3JjZUNoZWNrT2ZOZXh0RWxlbWVudFNpYmxpbmcgJiYgbi0+cmVuZGVyU3R5bGUoKSAmJiBuLT5y
ZW5kZXJTdHlsZSgpLT5hZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcygpKSB8fCBmb3JjZUNo
ZWNrT2ZBbnlFbGVtZW50U2libGluZykgJiYgbi0+aXNFbGVtZW50Tm9kZSgpKSB7CiAgICAgICAg
ICAgICBuLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgICAgICAgICAvLyBXZSBuZWVkIHRv
IHByb3BhZ2F0ZSBjaGFuZ2UuCisgICAgICAgICAgICBjaGlsZFJ1bGVzQ2hhbmdlZCA9IHRydWU7
CisgICAgICAgIH0KICAgICAgICAgaWYgKGNoYW5nZSA+PSBJbmhlcml0IHx8IG4tPmlzVGV4dE5v
ZGUoKSB8fCBuLT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBuLT5uZWVkc1N0eWxlUmVjYWxj
KCkpIHsKICAgICAgICAgICAgIHBhcmVudFB1c2hlci5wdXNoKCk7CiAgICAgICAgICAgICBuLT5y
ZWNhbGNTdHlsZShjaGFuZ2UpOwogICAgICAgICB9CiAgICAgICAgIGlmIChuLT5pc0VsZW1lbnRO
b2RlKCkpIHsKLSAgICAgICAgICAgIGZvcmNlQ2hlY2tPZk5leHRFbGVtZW50U2libGluZyA9IGNo
aWxkUnVsZXNDaGFuZ2VkICYmIGhhc0RpcmVjdEFkamFjZW50UnVsZXM7CisgICAgICAgICAgICBm
b3JjZUNoZWNrT2ZOZXh0RWxlbWVudFNpYmxpbmcgPSBjaGlsZFJ1bGVzQ2hhbmdlZDsKICAgICAg
ICAgICAgIGZvcmNlQ2hlY2tPZkFueUVsZW1lbnRTaWJsaW5nID0gZm9yY2VDaGVja09mQW55RWxl
bWVudFNpYmxpbmcgfHwgKGNoaWxkUnVsZXNDaGFuZ2VkICYmIGhhc0luZGlyZWN0QWRqYWNlbnRS
dWxlcyk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjk0LDE1ICsxMjk0LDExIEBAIHN0YXRpYyB2
b2lkIGNoZWNrRm9yU2libGluZ1N0eWxlQ2hhbmdlcyhFbGVtZW50KiBlLCBSZW5kZXJTdHlsZSog
c3R5bGUsIGJvb2wgZmluCiAgICAgICAgICAgICBuZXdMYXN0Q2hpbGQtPnNldE5lZWRzU3R5bGVS
ZWNhbGMoKTsKICAgICB9CiAKLSAgICAvLyBUaGUgKyBzZWxlY3Rvci4gIFdlIG5lZWQgdG8gaW52
YWxpZGF0ZSB0aGUgZmlyc3QgZWxlbWVudCBmb2xsb3dpbmcgdGhlIGluc2VydGlvbiBwb2ludC4g
IEl0IGlzIHRoZSBvbmx5IHBvc3NpYmxlIGVsZW1lbnQKLSAgICAvLyB0aGF0IGNvdWxkIGJlIGFm
ZmVjdGVkIGJ5IHRoaXMgRE9NIGNoYW5nZS4KLSAgICBpZiAoc3R5bGUtPmNoaWxkcmVuQWZmZWN0
ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKSAmJiBhZnRlckNoYW5nZSkgewotICAgICAgICBOb2Rl
KiBmaXJzdEVsZW1lbnRBZnRlckluc2VydGlvbiA9IDA7Ci0gICAgICAgIGZvciAoZmlyc3RFbGVt
ZW50QWZ0ZXJJbnNlcnRpb24gPSBhZnRlckNoYW5nZTsKLSAgICAgICAgICAgICBmaXJzdEVsZW1l
bnRBZnRlckluc2VydGlvbiAmJiAhZmlyc3RFbGVtZW50QWZ0ZXJJbnNlcnRpb24tPmlzRWxlbWVu
dE5vZGUoKTsKLSAgICAgICAgICAgICBmaXJzdEVsZW1lbnRBZnRlckluc2VydGlvbiA9IGZpcnN0
RWxlbWVudEFmdGVySW5zZXJ0aW9uLT5uZXh0U2libGluZygpKSB7fTsKLSAgICAgICAgaWYgKGZp
cnN0RWxlbWVudEFmdGVySW5zZXJ0aW9uICYmIGZpcnN0RWxlbWVudEFmdGVySW5zZXJ0aW9uLT5h
dHRhY2hlZCgpKQotICAgICAgICAgICAgZmlyc3RFbGVtZW50QWZ0ZXJJbnNlcnRpb24tPnNldE5l
ZWRzU3R5bGVSZWNhbGMoKTsKKyAgICAvLyBUaGUgKyBzZWxlY3Rvci4gV2UgbmVlZCB0byBpbnZh
bGlkYXRlIGFsbCBlbGVtZW50cyBhZmZlY3RlZCBieQorICAgIC8vIGRpcmVjdCBhZGphY2VudCBy
dWxlcyBhZnRlciB0aGUgaW5zZXJ0aW9uIHBvaW50LgorICAgIGZvciAoTm9kZSogbm9kZSA9IGFm
dGVyQ2hhbmdlOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBp
ZiAobm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIG5vZGUtPnJlbmRlclN0eWxlKCkgJiYgbm9kZS0+
cmVuZGVyU3R5bGUoKS0+YWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKSkKKyAgICAgICAg
ICAgIG5vZGUtPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICB9CiAKICAgICAvLyBGb3J3YXJk
IHBvc2l0aW9uYWwgc2VsZWN0b3JzIGluY2x1ZGUgdGhlIH4gc2VsZWN0b3IsIG50aC1jaGlsZCwg
bnRoLW9mLXR5cGUsIGZpcnN0LW9mLXR5cGUgYW5kIG9ubHktb2YtdHlwZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDdkODY2M2EuLjc5
NzFjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgQW50dGkgS29p
dmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIw
MDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDExIFRvcmNoIE1vYmlsZSAoQmVpamluZykgQ28uIEx0ZC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNzEsMTIgKzcyLDEy
IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFJlbmRlclN0eWxlOjpjbG9uZShjb25zdCBSZW5k
ZXJTdHlsZSogb3RoZXIpCiAKIEFMV0FZU19JTkxJTkUgUmVuZGVyU3R5bGU6OlJlbmRlclN0eWxl
KCkKICAgICA6IG1fYWZmZWN0ZWRCeUF0dHJpYnV0ZVNlbGVjdG9ycyhmYWxzZSkKKyAgICAsIG1f
YWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoZmFsc2UpCiAgICAgLCBtX3VuaXF1ZShmYWxz
ZSkKICAgICAsIG1fYWZmZWN0ZWRCeUVtcHR5KGZhbHNlKQogICAgICwgbV9lbXB0eVN0YXRlKGZh
bHNlKQogICAgICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlGaXJzdENoaWxkUnVsZXMoZmFsc2UpCiAg
ICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUxhc3RDaGlsZFJ1bGVzKGZhbHNlKQotICAgICwgbV9j
aGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKGZhbHNlKQogICAgICwgbV9jaGls
ZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzKGZhbHNlKQogICAgICwgbV9jaGls
ZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyhmYWxzZSkKICAgICAsIG1fZmly
c3RDaGlsZFN0YXRlKGZhbHNlKQpAQCAtOTgsMTIgKzk5LDEyIEBAIEFMV0FZU19JTkxJTkUgUmVu
ZGVyU3R5bGU6OlJlbmRlclN0eWxlKCkKIAogQUxXQVlTX0lOTElORSBSZW5kZXJTdHlsZTo6UmVu
ZGVyU3R5bGUoYm9vbCkKICAgICA6IG1fYWZmZWN0ZWRCeUF0dHJpYnV0ZVNlbGVjdG9ycyhmYWxz
ZSkKKyAgICAsIG1fYWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoZmFsc2UpCiAgICAgLCBt
X3VuaXF1ZShmYWxzZSkKICAgICAsIG1fYWZmZWN0ZWRCeUVtcHR5KGZhbHNlKQogICAgICwgbV9l
bXB0eVN0YXRlKGZhbHNlKQogICAgICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlGaXJzdENoaWxkUnVs
ZXMoZmFsc2UpCiAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUxhc3RDaGlsZFJ1bGVzKGZhbHNl
KQotICAgICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKGZhbHNlKQog
ICAgICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVzKGZhbHNlKQog
ICAgICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyhmYWxzZSkK
ICAgICAsIG1fZmlyc3RDaGlsZFN0YXRlKGZhbHNlKQpAQCAtMTMyLDEyICsxMzMsMTIgQEAgQUxX
QVlTX0lOTElORSBSZW5kZXJTdHlsZTo6UmVuZGVyU3R5bGUoYm9vbCkKIEFMV0FZU19JTkxJTkUg
UmVuZGVyU3R5bGU6OlJlbmRlclN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBvKQogICAgIDogUmVm
Q291bnRlZDxSZW5kZXJTdHlsZT4oKQogICAgICwgbV9hZmZlY3RlZEJ5QXR0cmlidXRlU2VsZWN0
b3JzKGZhbHNlKQorICAgICwgbV9hZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcyhmYWxzZSkK
ICAgICAsIG1fdW5pcXVlKGZhbHNlKQogICAgICwgbV9hZmZlY3RlZEJ5RW1wdHkoZmFsc2UpCiAg
ICAgLCBtX2VtcHR5U3RhdGUoZmFsc2UpCiAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUZpcnN0
Q2hpbGRSdWxlcyhmYWxzZSkKICAgICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVs
ZXMoZmFsc2UpCi0gICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMo
ZmFsc2UpCiAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMo
ZmFsc2UpCiAgICAgLCBtX2NoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3YXJkUG9zaXRpb25hbFJ1bGVz
KGZhbHNlKQogICAgICwgbV9maXJzdENoaWxkU3RhdGUoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDIzZjU1MzUuLjJlZGZlOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC00LDYg
KzQsNyBAQAogICogICAgICAgICAgIChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUu
b3JnKQogICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAwNiBHcmFoYW0gRGVubmlzIChncmFoYW0uZGVubmlzQGdtYWlsLmNvbSkKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBUb3JjaCBNb2JpbGUgKEJlaWppbmcpIENvLiBMdGQuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEyMCw2ICsxMjEsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgLy8gVGhlIGZvbGxvd2luZyBiaXRmaWVsZCBpcyAzMi1iaXRzIGxvbmcsIHdoaWNoIG9w
dGltaXplcyBwYWRkaW5nIHdpdGggdGhlCiAgICAgLy8gaW50IHJlZkNvdW50IGluIHRoZSBiYXNl
IGNsYXNzLiBCZXdhcmUgd2hlbiBhZGRpbmcgbW9yZSBiaXRzLgogICAgIGJvb2wgbV9hZmZlY3Rl
ZEJ5QXR0cmlidXRlU2VsZWN0b3JzIDogMTsKKyAgICBib29sIG1fYWZmZWN0ZWRCeURpcmVjdEFk
amFjZW50UnVsZXM6IDE7CiAgICAgYm9vbCBtX3VuaXF1ZSA6IDE7CiAKICAgICAvLyBCaXRzIGZv
ciBkeW5hbWljIGNoaWxkIG1hdGNoaW5nLgpAQCAtMTMwLDcgKzEzMiw2IEBAIHByb3RlY3RlZDoK
ICAgICAvLyAqLWNoaWxkLW9mLXR5cGUsIHdlIHdpbGwganVzdCBnaXZlIHVwIGFuZCByZS1ldmFs
dWF0ZSB3aGVuZXZlciBjaGlsZHJlbiBjaGFuZ2UgYXQgYWxsLgogICAgIGJvb2wgbV9jaGlsZHJl
bkFmZmVjdGVkQnlGaXJzdENoaWxkUnVsZXMgOiAxOwogICAgIGJvb2wgbV9jaGlsZHJlbkFmZmVj
dGVkQnlMYXN0Q2hpbGRSdWxlcyA6IDE7Ci0gICAgYm9vbCBtX2NoaWxkcmVuQWZmZWN0ZWRCeURp
cmVjdEFkamFjZW50UnVsZXMgOiAxOwogICAgIGJvb2wgbV9jaGlsZHJlbkFmZmVjdGVkQnlGb3J3
YXJkUG9zaXRpb25hbFJ1bGVzIDogMTsKICAgICBib29sIG1fY2hpbGRyZW5BZmZlY3RlZEJ5QmFj
a3dhcmRQb3NpdGlvbmFsUnVsZXMgOiAxOwogICAgIGJvb2wgbV9maXJzdENoaWxkU3RhdGUgOiAx
OwpAQCAtMTE4Myw2ICsxMTg0LDggQEAgcHVibGljOgogICAgIC8vIFRvIHRlbGwgaWYgdGhpcyBz
dHlsZSBtYXRjaGVkIGF0dHJpYnV0ZSBzZWxlY3RvcnMuIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJs
ZSB0byBzaGFyZS4KICAgICBib29sIGFmZmVjdGVkQnlBdHRyaWJ1dGVTZWxlY3RvcnMoKSBjb25z
dCB7IHJldHVybiBtX2FmZmVjdGVkQnlBdHRyaWJ1dGVTZWxlY3RvcnM7IH0KICAgICB2b2lkIHNl
dEFmZmVjdGVkQnlBdHRyaWJ1dGVTZWxlY3RvcnMoKSB7IG1fYWZmZWN0ZWRCeUF0dHJpYnV0ZVNl
bGVjdG9ycyA9IHRydWU7IH0KKyAgICBib29sIGFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVz
KCkgY29uc3QgeyByZXR1cm4gbV9hZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlczsgfQorICAg
IHZvaWQgc2V0QWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKSB7IG1fYWZmZWN0ZWRCeURp
cmVjdEFkamFjZW50UnVsZXMgPSB0cnVlO30KIAogICAgIGJvb2wgdW5pcXVlKCkgY29uc3QgeyBy
ZXR1cm4gbV91bmlxdWU7IH0KICAgICB2b2lkIHNldFVuaXF1ZSgpIHsgbV91bmlxdWUgPSB0cnVl
OyB9CkBAIC0xMTk2LDggKzExOTksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDaGlsZHJlbkFm
ZmVjdGVkQnlGaXJzdENoaWxkUnVsZXMoKSB7IG1fY2hpbGRyZW5BZmZlY3RlZEJ5Rmlyc3RDaGls
ZFJ1bGVzID0gdHJ1ZTsgfQogICAgIGJvb2wgY2hpbGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVs
ZXMoKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuQWZmZWN0ZWRCeUxhc3RDaGlsZFJ1bGVzOyB9
CiAgICAgdm9pZCBzZXRDaGlsZHJlbkFmZmVjdGVkQnlMYXN0Q2hpbGRSdWxlcygpIHsgbV9jaGls
ZHJlbkFmZmVjdGVkQnlMYXN0Q2hpbGRSdWxlcyA9IHRydWU7IH0KLSAgICBib29sIGNoaWxkcmVu
QWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVu
QWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXM7IH0KLSAgICB2b2lkIHNldENoaWxkcmVuQWZm
ZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKSB7IG1fY2hpbGRyZW5BZmZlY3RlZEJ5RGlyZWN0
QWRqYWNlbnRSdWxlcyA9IHRydWU7IH0KICAgICBib29sIGNoaWxkcmVuQWZmZWN0ZWRCeUZvcndh
cmRQb3NpdGlvbmFsUnVsZXMoKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuQWZmZWN0ZWRCeUZv
cndhcmRQb3NpdGlvbmFsUnVsZXM7IH0KICAgICB2b2lkIHNldENoaWxkcmVuQWZmZWN0ZWRCeUZv
cndhcmRQb3NpdGlvbmFsUnVsZXMoKSB7IG1fY2hpbGRyZW5BZmZlY3RlZEJ5Rm9yd2FyZFBvc2l0
aW9uYWxSdWxlcyA9IHRydWU7IH0KICAgICBib29sIGNoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3YXJk
UG9zaXRpb25hbFJ1bGVzKCkgY29uc3QgeyByZXR1cm4gbV9jaGlsZHJlbkFmZmVjdGVkQnlCYWNr
d2FyZFBvc2l0aW9uYWxSdWxlczsgfQotLSAKMS43LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>148574</attachid>
            <date>2012-06-20 08:33:38 -0700</date>
            <delta_ts>2012-06-20 08:33:38 -0700</delta_ts>
            <desc>Simpler test case using checkbox and :checked</desc>
            <filename>webkit-change-multiple-sibling-selectors-bug54373.html</filename>
            <type>text/html</type>
            <size>561</size>
            <attacher name="Dan Moore">dan</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KCTx0aXRsZT5XZWJLaXQ6IFNpbXBsZSB0ZXN0
IGNhc2UgZm9yIEJ1ZyA1NDM3MyAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU0MzczKTwvdGl0bGU+CgoJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS8qIGRlZmF1bHQ6
IGhpZGUgdGhlICdjaGVja2VkJyBjYXNlICovCglpbnB1dCArIC51bmNoZWNrZWQgKyAuY2hlY2tl
ZAoJeyBkaXNwbGF5OiBub25lOyB9CgoJLyogaWZmIGNoZWNrZWQ6IGhpZGUgJ3VuY2hlY2tlZCcg
YW5kIHNob3cgJ2NoZWNrZWQnICovCglpbnB1dDpjaGVja2VkICsgLnVuY2hlY2tlZAoJeyBkaXNw
bGF5OiBub25lOyB9CglpbnB1dDpjaGVja2VkICsgLnVuY2hlY2tlZCArIC5jaGVja2VkCgl7IGRp
c3BsYXk6IGlubGluZTsgfQoJPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCgk8aW5wdXQgdHlwZT0i
Y2hlY2tib3giPiA8c3BhbiBjbGFzcz0idW5jaGVja2VkIj51bmNoZWNrZWQ8L3NwYW4+PHNwYW4g
Y2xhc3M9ImNoZWNrZWQiPmNoZWNrZWQ8L3NwYW4+Cgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>