<?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>102681</bug_id>
          
          <creation_ts>2012-11-19 05:25:44 -0800</creation_ts>
          <short_desc>Event&apos;s relatedTarget re-targeting does not occur for manually fired mouse events created by event.initMouseEvent().</short_desc>
          <delta_ts>2012-12-06 19:04:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>104249</dependson>
          <blocked>59805</blocked>
    
    <blocked>102069</blocked>
    
    <blocked>102663</blocked>
    
    <blocked>102666</blocked>
    
    <blocked>103479</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Hayato Ito">hayato</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>ojan</cc>
    
    <cc>sgrekhov</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>770639</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-11-19 05:25:44 -0800</bug_when>
    <thetext>Event retargeting is correctly done for UA&apos;s mouse events, but is not done at all for manually generated mouse events.

See https://bugs.webkit.org/show_bug.cgi?id=102663 for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771701</commentid>
    <comment_count>1</comment_count>
      <attachid>175178</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-11-20 03:01:02 -0800</bug_when>
    <thetext>Created attachment 175178
WIP. Breaks a user generated event which sets a relatedTarget be the same to the target.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771720</commentid>
    <comment_count>2</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-11-20 03:28:40 -0800</bug_when>
    <thetext>I filed a bug for the shadow dom spec.

https://www.w3.org/Bugs/Public/show_bug.cgi?id=20017

We have to resolve the bug before we land this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771721</commentid>
    <comment_count>3</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-11-20 03:35:01 -0800</bug_when>
    <thetext>e.g. fast/events/set-event-to-null.html fails due to the https://www.w3.org/Bugs/Public/show_bug.cgi?id=20017.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773699</commentid>
    <comment_count>4</comment_count>
      <attachid>175612</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-11-22 00:53:35 -0800</bug_when>
    <thetext>Created attachment 175612
Updates an event ancorstors caluculation algorithm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773868</commentid>
    <comment_count>5</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-11-22 05:40:17 -0800</bug_when>
    <thetext>This patch will conflict a patch in https://bugs.webkit.org/show_bug.cgi?id=103058.

After https://bugs.webkit.org/show_bug.cgi?id=103058 is landed, let me resolve a conflict.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775128</commentid>
    <comment_count>6</comment_count>
      <attachid>175921</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-11-25 21:46:53 -0800</bug_when>
    <thetext>Created attachment 175921
Rebased. ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781622</commentid>
    <comment_count>7</comment_count>
      <attachid>175921</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-12-03 10:43:35 -0800</bug_when>
    <thetext>Comment on attachment 175921
Rebased. ready for review.

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

&gt; Source/WebCore/dom/Node.cpp:2589
&gt; +    if (event-&gt;isMouseEvent())
&gt; +        return EventDispatcher::dispatchEvent(this, MouseEventDispatchMediator::create(adoptRef(toMouseEvent(event.leakRef()))));

Whoa. Should we be doing this? It seems that we used to treat synthetic events as second class, always dispatching them as generic events. Now, we&apos;re actually trying to dispatch them as MouseEvents. I understand this seems like an improvement (web devs should be able to synthesize real-looking events), but it&apos;s also a compat change and as such, has platform implications.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782093</commentid>
    <comment_count>8</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-12-03 18:11:05 -0800</bug_when>
    <thetext>Thank you for the review.

(In reply to comment #7)
&gt; (From update of attachment 175921 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=175921&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Node.cpp:2589
&gt; &gt; +    if (event-&gt;isMouseEvent())
&gt; &gt; +        return EventDispatcher::dispatchEvent(this, MouseEventDispatchMediator::create(adoptRef(toMouseEvent(event.leakRef()))));
&gt; 
&gt; Whoa. Should we be doing this? It seems that we used to treat synthetic events as second class, always dispatching them as generic events. Now, we&apos;re actually trying to dispatch them as MouseEvents. I understand this seems like an improvement (web devs should be able to synthesize real-looking events), but it&apos;s also a compat change and as such, has platform implications.

I don&apos;t have an intention to introduce such a change. I just wanted to re-use code path of re-targeting.

I am afraid that I don&apos;t understand the impact of this change. Let me catch up what you said.

I guess this change is over-kill and we need another way to re-use code path of re-targeting, which will require some refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782102</commentid>
    <comment_count>9</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-12-03 18:16:30 -0800</bug_when>
    <thetext>(In reply to comment #8)

&gt; I guess this change is over-kill and we need another way to re-use code path of re-targeting, which will require some refactoring.

I never said it was an overkill. It&apos;s possible that this is the exact change we need. I just didn&apos;t realize that we&apos;re introducing a change to how we dispatch synthetic events. I am not an oracle who bestows the final decision :)

Will this be detectable by the author?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782309</commentid>
    <comment_count>10</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-12-04 00:21:19 -0800</bug_when>
    <thetext>Okay. As far as I can tell, this patch changes only the behavior of synthetic events in the meaning that retargeting is correctly done for synthetic events also.

Although I am sure that nothing has changed other than that, let me double-check the code path and update the bug soon. Al least, all existing layout tests pass.

(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; 
&gt; &gt; I guess this change is over-kill and we need another way to re-use code path of re-targeting, which will require some refactoring.
&gt; 
&gt; I never said it was an overkill. It&apos;s possible that this is the exact change we need. I just didn&apos;t realize that we&apos;re introducing a change to how we dispatch synthetic events. I am not an oracle who bestows the final decision :)
&gt; 
&gt; Will this be detectable by the author?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782465</commentid>
    <comment_count>11</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-12-04 04:47:32 -0800</bug_when>
    <thetext>According to MouseEventDispatchMediator::dispatchEvent(), the only difference user can notice is:

After the patch:
   &apos;dblclick&apos; event might be also fired if user creates a synthetic mouse event with parameters, (eventType ==&quot;click&quot; and details=2) in addition to the &apos;click&apos; event.

Before the patch:
   &apos;dblclick&apos; event is not fired in that case.

I think it&apos;s okay to fire a &apos;dblclick&apos; event in this case so that the behavior of synthetic mouse events matches the behavior of native mouse events. But that should be out of scope of this patch.

Let me update the patch so that the patch does not change the behavior.
The difficult part is that it seems that we cannot tell whether the mouse event is an synthetic event or a native mouse event from the MouseEventDispatchMediator::dispatchEvent(). Let me investigate further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782533</commentid>
    <comment_count>12</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-12-04 07:40:33 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; According to MouseEventDispatchMediator::dispatchEvent(), the only difference user can notice is:
&gt; 
&gt; After the patch:
&gt;    &apos;dblclick&apos; event might be also fired if user creates a synthetic mouse event with parameters, (eventType ==&quot;click&quot; and details=2) in addition to the &apos;click&apos; event.
&gt; 
&gt; Before the patch:
&gt;    &apos;dblclick&apos; event is not fired in that case.
&gt; 
&gt; I think it&apos;s okay to fire a &apos;dblclick&apos; event in this case so that the behavior of synthetic mouse events matches the behavior of native mouse events. But that should be out of scope of this patch.

Interesting. Is dblclick fired in IE/Gecko in such case? Because if it does, this patch is actually a good thing for compatibility.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783395</commentid>
    <comment_count>13</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-12-04 22:15:39 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; According to MouseEventDispatchMediator::dispatchEvent(), the only difference user can notice is:
&gt; &gt; 
&gt; &gt; After the patch:
&gt; &gt;    &apos;dblclick&apos; event might be also fired if user creates a synthetic mouse event with parameters, (eventType ==&quot;click&quot; and details=2) in addition to the &apos;click&apos; event.
&gt; &gt; 
&gt; &gt; Before the patch:
&gt; &gt;    &apos;dblclick&apos; event is not fired in that case.
&gt; &gt; 
&gt; &gt; I think it&apos;s okay to fire a &apos;dblclick&apos; event in this case so that the behavior of synthetic mouse events matches the behavior of native mouse events. But that should be out of scope of this patch.
&gt; 
&gt; Interesting. Is dblclick fired in IE/Gecko in such case? Because if it does, this patch is actually a good thing for compatibility.

I&apos;ve confirmed that dblclick is *not* fired in Gecko (Firefox 17.0.1 on Mac) in this case.
So I think we should not change the current behavior of WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783469</commentid>
    <comment_count>14</comment_count>
      <attachid>177686</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-12-05 00:31:15 -0800</bug_when>
    <thetext>Created attachment 177686
Prevetns dblclick event</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783735</commentid>
    <comment_count>15</comment_count>
      <attachid>177686</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-12-05 07:42:42 -0800</bug_when>
    <thetext>Comment on attachment 177686
Prevetns dblclick event

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

&gt; Source/WebCore/dom/MouseEvent.cpp:212
&gt; +PassRefPtr&lt;MouseEventDispatchMediator&gt; MouseEventDispatchMediator::create(PassRefPtr&lt;MouseEvent&gt; mouseEvent, bool isSyntheticMouseEvent)

Bool flag, yuck. Can you make it an enum? Also -- is there any information on the event itself that tells us it&apos;s a synthetic event?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784593</commentid>
    <comment_count>16</comment_count>
      <attachid>177686</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-12-05 21:59:44 -0800</bug_when>
    <thetext>Comment on attachment 177686
Prevetns dblclick event

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

&gt;&gt; Source/WebCore/dom/MouseEvent.cpp:212
&gt;&gt; +PassRefPtr&lt;MouseEventDispatchMediator&gt; MouseEventDispatchMediator::create(PassRefPtr&lt;MouseEvent&gt; mouseEvent, bool isSyntheticMouseEvent)
&gt; 
&gt; Bool flag, yuck. Can you make it an enum? Also -- is there any information on the event itself that tells us it&apos;s a synthetic event?

Okay. Let me make it enum.

There is no available info on the event itself. That&apos;s sad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784656</commentid>
    <comment_count>17</comment_count>
      <attachid>177947</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-12-05 23:10:12 -0800</bug_when>
    <thetext>Created attachment 177947
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784671</commentid>
    <comment_count>18</comment_count>
      <attachid>177947</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-05 23:34:50 -0800</bug_when>
    <thetext>Comment on attachment 177947
Patch for landing

Rejecting attachment 177947 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
rom out/Release/obj/gen/webkit/bindings/V8DerivedSources04.cpp:54:
Source/WebCore/dom/MouseEvent.h: In member function &apos;bool WebCore::MouseEventDispatchMediator::isSyntheticMouseEvent() const&apos;:
Source/WebCore/dom/MouseEvent.h:126: error: statement has no effect
Source/WebCore/dom/MouseEvent.h:126: error: no return statement in function returning non-void
make: *** [out/Release/obj.target/webcore_bindings/gen/webkit/bindings/V8DerivedSources04.o] Error 1
make: *** Waiting for unfinished jobs....

Full output: http://queues.webkit.org/results/15157675</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784691</commentid>
    <comment_count>19</comment_count>
      <attachid>177960</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-12-06 00:17:53 -0800</bug_when>
    <thetext>Created attachment 177960
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784722</commentid>
    <comment_count>20</comment_count>
      <attachid>177960</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-06 00:53:43 -0800</bug_when>
    <thetext>Comment on attachment 177960
Patch for landing

Clearing flags on attachment: 177960

Committed r136818: &lt;http://trac.webkit.org/changeset/136818&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784723</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-06 00:53:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784825</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-06 03:47:15 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 104249</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785516</commentid>
    <comment_count>23</comment_count>
      <attachid>178129</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-12-06 18:24:05 -0800</bug_when>
    <thetext>Created attachment 178129
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785517</commentid>
    <comment_count>24</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-12-06 18:25:08 -0800</bug_when>
    <thetext>Let me reland, fixing content_browsertests in chromium port.

(In reply to comment #23)
&gt; Created an attachment (id=178129) [details]
&gt; Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785540</commentid>
    <comment_count>25</comment_count>
      <attachid>178129</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-06 19:04:21 -0800</bug_when>
    <thetext>Comment on attachment 178129
Patch for landing

Clearing flags on attachment: 178129

Committed r136918: &lt;http://trac.webkit.org/changeset/136918&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785541</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-06 19:04:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175178</attachid>
            <date>2012-11-20 03:01:02 -0800</date>
            <delta_ts>2012-11-22 00:53:32 -0800</delta_ts>
            <desc>WIP. Breaks a user generated event which sets a relatedTarget be the same to the target.</desc>
            <filename>bug-102681-20121120195851.patch</filename>
            <type>text/plain</type>
            <size>4796</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRhYzg2NmMwOGYyZGJi
MmQ2ODliZTJhZTE1Y2JiMGU1M2JmZTBiOC4uNTc0NGRlMjg2MDMxNjhiYTE0MDQyYTMzOWQ4Y2Q5
YzFjZTJmMjQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTExLTIwICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBFdmVudCByZXRhcmdldGlu
ZyBkb2VzIG5vdCBoYXBwZW4gZm9yIG1hbnVhbGx5IGZpcmVkIGV2ZW50cyBjcmVhdGVkIGJ5IGV2
ZW50LmluaXRNb3VzZUV2ZW50KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDI2ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNw
YXRjaGluZy5odG1sCisKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpkaXNwYXRjaEV2ZW50KToKKwogMjAxMi0xMS0xNyAgQmFsYXpzIEtlbGVtZW4gIDxr
YmFsYXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0Nvb3JkaW5hdGVkIEdyYXBoaWNzXSBSZXN1
bWVkIGFuaW1hdGlvbnMgbGVhdmUgYW4gb2Jzb2xhdGUgR3JhcGhpY3NMYXllckFuaW1hdGlvbiBi
ZWhpbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA4NmYzNTI5N2YwMzQ3ZTk1ZWU0ZjU0YTMwODNjZmRl
NGMzYzE2ZTA4Li40ZDdlYWE1ZDZkYjY0NGViYWU4NmM2MjlmMTc2Yzk2NWM2Y2U1OWY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCkBAIC0yNTU0LDYgKzI1NTQsMTAgQEAgdm9pZCBOb2RlOjpkaXNwYXRjaFNj
b3BlZEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPEV2ZW50RGlzcGF0Y2hNZWRpYXRv
cj4KIAogYm9vbCBOb2RlOjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQog
eworICAgIGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkpIHsKKyAgICAgICAgLy8gTW91c2VFdmVu
dERpc3BhdGNoTWVkaWF0b3IncyByZXR1cm4gdmFsdWUgaGFzIHRoZSBvcHBvc2l0ZSBtZWFuaW5n
IG9mIEV2ZW50RGlzcGF0Y2hNZWRpYXRvcidzIG9uZS4KKyAgICAgICAgcmV0dXJuICFFdmVudERp
c3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQodGhpcywgTW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6
OmNyZWF0ZShhZG9wdFJlZih0b01vdXNlRXZlbnQoZXZlbnQubGVha1JlZigpKSkpKTsKKyAgICB9
CiAgICAgcmV0dXJuIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudCh0aGlzLCBFdmVudERp
c3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShldmVudCkpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmI0ZGRlZTIyZTcx
ZDg3ZDU1YWQ1YjE2OWMyMTgwNmMzNDYzNTA4Ny4uYmRkNGE1NDlhZTdiN2UzZWJjMmY3NDBmNzdi
NzcwOGZlMGFlNWEyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTExLTIwICBIYXlhdG8g
SXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBFdmVudCByZXRhcmdldGluZyBk
b2VzIG5vdCBoYXBwZW4gZm9yIG1hbnVhbGx5IGZpcmVkIGV2ZW50cyBjcmVhdGVkIGJ5IGV2ZW50
LmluaXRNb3VzZUV2ZW50KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDI2ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5n
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVu
dC1kaXNwYXRjaGluZy5odG1sOgorCiAyMDEyLTExLTE3ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2Jl
cnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlz
cGF0Y2hpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZXhwZWN0ZWQudHh0CmluZGV4IDFmODM1ZmY2YTM2MjY1
YjUwYmE3YmFlMTUyZmYxZTM2MGRjNTI0ZmYuLjljOTVhMjcxYTUyMGM1ODhmMzhkZjllZGMxMjg5
NDI2YzMyZDgwMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1leHBlY3RlZC50eHQK
QEAgLTQzNSw2ICs0MzUsMjEgQEAgQ2xpY2sgbm9uLXVzZWQtZmFsbGJhY2sgbm9kZQogICAgICBA
c2hhZG93LXJvb3QgKHRhcmdldDogbm9uLXVzZWQtZmFsbGJhY2spCiAgICAgIEBBICh0YXJnZXQ6
IEEpCiAgICAgIEB0b3AgKHRhcmdldDogQSkKKworCitDb21wb3NlZCBTaGFkb3cgVHJlZSB3aWxs
IGJlOgorRElWCSBpZD1zYW5kYm94CisJRElWCSBpZD10b3AKKwkJRElWCSBpZD1ob3N0CisJCQlE
SVYJIGlkPWRpdjEKKwkJCURJVgkgaWQ9ZGl2MgorCisKKyAgbW91c2VvdXQKKworICBtb3VzZW92
ZXIKKyAgICAgQGRpdjIgKHRhcmdldDogZGl2MikgKHJlbGF0ZWQ6IGRpdjEpCisgICAgIEBzaGFk
b3ctcm9vdCAodGFyZ2V0OiBkaXYyKSAocmVsYXRlZDogZGl2MSkKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmcuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLmh0bWwK
aW5kZXggZTI5NDcwYTJiNWQ5MmY4ZjgwOWQ2Y2JhZmMzNGI0N2Q0NGQwODlhNi4uMWMxMDYwZWEx
MjNjNThhMWRlZGNkMGM2MDNiOGFlNjkzNGRlNDIzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmcuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy5o
dG1sCkBAIC0zNzgsNiArMzc4LDMzIEBAIGZ1bmN0aW9uIHRlc3RFdmVudHNPbkZhbGxiYWNrRWxl
bWVudHMoKQogICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdjbGljaycpOwogfQogCitmdW5jdGlv
biB0ZXN0RXZlbnRzRmlyZWRNYW51YWxseSgpCit7CisgICAgc2FuZGJveC5pbm5lckhUTUwgPSAn
JzsKKyAgICBzYW5kYm94LmFwcGVuZENoaWxkKAorICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAndG9wJ30sCisgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
aG9zdCd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdk
aXYxJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rpdics
IHsnaWQnOiAnZGl2Mid9KSkpKSk7CisKKyAgICBhZGRFdmVudExpc3RlbmVycyhbJ3RvcCcsICdo
b3N0JywgJ2hvc3QvJywgJ2hvc3QvZGl2MScsICdob3N0L2RpdjInXSk7CisgICAgZ2V0Tm9kZUlu
U2hhZG93VHJlZVN0YWNrKCdob3N0LycpLmlkID0gJ3NoYWRvdy1yb290JzsKKyAgICBzaG93U2Fu
ZGJveFRyZWUoKTsKKworICAgIHZhciBkaXYxID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdo
b3N0L2RpdjEnKTsKKyAgICB2YXIgZGl2MiA9IGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnaG9z
dC9kaXYyJyk7CisKKyAgICBjbGVhckV2ZW50UmVjb3JkcygpCisgICAgdmFyIGV2ZXQgPSBkb2N1
bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKTsKKyAgICBldmV0LmluaXRNb3VzZUV2ZW50
KCJtb3VzZW92ZXIiLCB0cnVlLCBmYWxzZSwgd2luZG93LAorICAgICAgMCwgMTAsIDEwLCAxMCwg
MTAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBkaXYxKTsKKyAgICBkaXYyLmRpc3Bh
dGNoRXZlbnQoZXZlbnQpOworCisgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ21vdXNlb3V0Jyk7
CisgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ21vdXNlb3ZlcicpOworfQorCiBmdW5jdGlvbiB0
ZXN0KCkKIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCkBAIC0zOTMsNiArNDIwLDcgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAgICAgdGVzdEV2ZW50c09uTXVsdGlwbGVTaGFkb3dSb290cygpOwog
ICAgIHRlc3RFdmVudHNPbk5vbkRpc3RyaWJ1dGVkTm9kZXMoKTsKICAgICB0ZXN0RXZlbnRzT25G
YWxsYmFja0VsZW1lbnRzKCk7CisgICAgdGVzdEV2ZW50c0ZpcmVkTWFudWFsbHkoKTsKIH0KIAog
dGVzdCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175612</attachid>
            <date>2012-11-22 00:53:35 -0800</date>
            <delta_ts>2012-11-25 21:46:49 -0800</delta_ts>
            <desc>Updates an event ancorstors caluculation algorithm.</desc>
            <filename>bug-102681-20121122175120.patch</filename>
            <type>text/plain</type>
            <size>7906</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzg5NzhjMmZiNjkyZmM3
MmNlNmI4NDIzMTNmMTIyMTAzYzMzYzgzOC4uMGExNDdhODdmMGZhY2Q4OWJhYTY2NDU3MDljMGZk
ZWQ2MGVlZDljNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTExLTIwICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBFdmVudCdzIHJlbGF0ZWRU
YXJnZXQgcmUtdGFyZ2V0aW5nIGRvZXMgbm90IG9jY3VyIGZvciBtYW51YWxseSBmaXJlZCBtb3Vz
ZSBldmVudHMgY3JlYXRlZCBieSBldmVudC5pbml0TW91c2VFdmVudCgpLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNjgxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBzdXJlIHRoYXQgZXZlbnQn
cyByZWxhdGVkVGFyZ2V0IHJlLXRhcmdldGluZyBvY2N1cnMgZm9yIG1vdXNlCisgICAgICAgIGV2
ZW50cyBjcmVhdGVkIGJ5IGV2ZW50LmluaXRNb3VzZUV2ZW50KCkuICBTaW5jZSB1c2VyIGdlbmVy
YXRlZAorICAgICAgICBtb3VzZSBldmVudHMgY2FuIGhhdmUgYSByZWxhdGVkVGFyZ2V0IHdoaWNo
IGlzIHNhbWUgdG8gYSB0YXJnZXQKKyAgICAgICAgbm9kZSwgdGhlIGFsZ29yaXRobSB3aGljaCBj
YWxjdWxhdGVzIGV2ZW50J3MgYW5jZXN0b3JzIGlzIGFsc28KKyAgICAgICAgdXBkYXRlZCBzbyB0
aGF0IGEgbW91c2UgZXZlbnQgaXMgY29ycmVjdGx5IGZpcmVkIGluIHN1Y2ggYSBjYXNlLgorCisg
ICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5n
Lmh0bWwKKworICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmRpc3BhdGNoRXZlbnQpOgorCiAyMDEyLTExLTIwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgNyUgcmVncmVzc2lvbiBpbiBkcm9tYWVvX2RvbWNvcmVxdWVyeS9k
b21fcXVlcnlfZ2V0RWxlbWVudHNCeVRhZ05hbWVfX25vdF9pbl9kb2N1bWVudApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA2NTQwOTU4NmFkNDcxYmRiMmZhZWNmYjgy
NTJkMzIwNDA2NTk5YTRkLi45MWJhNGY1MDhjYmVhMzNjMDA5MGM0OGViYjViNGY0NjU5NzI0YTI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtNjIsNiArNjIsOSBA
QCBFdmVudFJlbGF0ZWRUYXJnZXRBZGp1c3Rlcjo6RXZlbnRSZWxhdGVkVGFyZ2V0QWRqdXN0ZXIo
UGFzc1JlZlB0cjxOb2RlPiBub2RlLCBQYQogCiB2b2lkIEV2ZW50UmVsYXRlZFRhcmdldEFkanVz
dGVyOjphZGp1c3QoVmVjdG9yPEV2ZW50Q29udGV4dD4mIGFuY2VzdG9ycykKIHsKKyAgICAvLyBV
c2VyIGdlbmVyYXRlZCBtb3VzZSBldmVudHMgY3JlYXRlZCBieSBldmVudC5pbml0TW91c2VFdmVu
dCguLi4pIGNhbiBoYXZlIHRoZSByZWxhdGVkVGFyZ2V0IHdoaWNoIGlzIHNhbWUgdG8gdGhlIHRh
cmdldC4KKyAgICBib29sIHRhcmdldElzU2FtZVRvUmVsYXRlZFRhcmdldCA9IChtX25vZGUuZ2V0
KCkgPT0gbV9yZWxhdGVkVGFyZ2V0LmdldCgpKTsKKwogICAgIFZlY3RvcjxFdmVudFRhcmdldCo+
IHJlbGF0ZWRUYXJnZXRTdGFjazsKICAgICBUcmVlU2NvcGUqIGxhc3RUcmVlU2NvcGUgPSAwOwog
ICAgIGZvciAoQW5jZXN0b3JDaGFpbldhbGtlciB3YWxrZXIobV9yZWxhdGVkVGFyZ2V0LmdldCgp
KTsgd2Fsa2VyLmdldCgpOyB3YWxrZXIucGFyZW50KCkpIHsKQEAgLTkzLDcgKzk2LDEyIEBAIHZv
aWQgRXZlbnRSZWxhdGVkVGFyZ2V0QWRqdXN0ZXI6OmFkanVzdChWZWN0b3I8RXZlbnRDb250ZXh0
PiYgYW5jZXN0b3JzKQogICAgICAgICAgICAgaXRlci0+c2V0UmVsYXRlZFRhcmdldChhZGp1c3Rl
ZFJlbGF0ZWRUYXJnZXQpOwogICAgICAgICB9CiAgICAgICAgIGxhc3RUcmVlU2NvcGUgPSBzY29w
ZTsKLSAgICAgICAgaWYgKGl0ZXItPnRhcmdldCgpID09IGFkanVzdGVkUmVsYXRlZFRhcmdldCkg
eworICAgICAgICBpZiAodGFyZ2V0SXNTYW1lVG9SZWxhdGVkVGFyZ2V0KSB7CisgICAgICAgICAg
ICBpZiAobV9ub2RlLT50cmVlU2NvcGUoKS0+cm9vdE5vZGUoKSA9PSBpdGVyLT5ub2RlKCkpIHsK
KyAgICAgICAgICAgICAgICBhbmNlc3RvcnMuc2hyaW5rKGl0ZXIgKyAxIC0gYW5jZXN0b3JzLmJl
Z2luKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9
IGVsc2UgaWYgKGl0ZXItPnRhcmdldCgpID09IGFkanVzdGVkUmVsYXRlZFRhcmdldCkgewogICAg
ICAgICAgICAgLy8gRXZlbnQgZGlzcGF0Y2hpbmcgc2hvdWxkIGJlIHN0b3BwZWQgaGVyZS4KICAg
ICAgICAgICAgIGFuY2VzdG9ycy5zaHJpbmsoaXRlciAtIGFuY2VzdG9ycy5iZWdpbigpKTsKICAg
ICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGMzOWUzMmE2Y2UwNjM3NmY5NTQ4
ZWU3NmZkNWQ5NjcwY2ZmZWRjMmUuLjY2M2RjM2IwNjI5MGE3MTMyYjZjOWE1NjkxNTVjNzhhZWI3
YTE4ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI2MDMsNiArMjYwMywxMCBAQCB2b2lkIE5vZGU6
OmRpc3BhdGNoU2NvcGVkRXZlbnREaXNwYXRjaE1lZGlhdG9yKFBhc3NSZWZQdHI8RXZlbnREaXNw
YXRjaE1lZGlhdG9yPgogCiBib29sIE5vZGU6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVu
dD4gZXZlbnQpCiB7CisgICAgaWYgKGV2ZW50LT5pc01vdXNlRXZlbnQoKSkgeworICAgICAgICAv
LyBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcidzIHJldHVybiB2YWx1ZSBoYXMgdGhlIG9wcG9z
aXRlIG1lYW5pbmcgb2YgRXZlbnREaXNwYXRjaE1lZGlhdG9yJ3Mgb25lLgorICAgICAgICByZXR1
cm4gIUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudCh0aGlzLCBNb3VzZUV2ZW50RGlzcGF0
Y2hNZWRpYXRvcjo6Y3JlYXRlKGFkb3B0UmVmKHRvTW91c2VFdmVudChldmVudC5sZWFrUmVmKCkp
KSkpOworICAgIH0KICAgICByZXR1cm4gRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KHRo
aXMsIEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKGV2ZW50KSk7CiB9CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAz
OTYzYzYwZDM1Yjk2OGI5ZmM3NmMzODI1N2I1MTE1Mjk2ZWI4MzZjLi5jZWZiM2JjMzQ4YTNhMGY4
ZmNjNTY0ZjZjN2VhMjk2OTU5YmYzZGI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTEt
MjAgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEV2ZW50J3Mg
cmVsYXRlZFRhcmdldCByZS10YXJnZXRpbmcgZG9lcyBub3Qgb2NjdXIgZm9yIG1hbnVhbGx5IGZp
cmVkIG1vdXNlIGV2ZW50cyBjcmVhdGVkIGJ5IGV2ZW50LmluaXRNb3VzZUV2ZW50KCkuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI2ODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy5odG1sOgorCiAy
MDEyLTExLTIwICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtK
U0NdIE11dGF0aW9uT2JzZXJ2ZXIgd3JhcHBlciBzaG91bGQgbm90IGJlIGNvbGxlY3RlZCB3aGls
ZSBzdGlsbCBvYnNlcnZpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWV4cGVjdGVkLnR4
dAppbmRleCAxZjgzNWZmNmEzNjI2NWI1MGJhN2JhZTE1MmZmMWUzNjBkYzUyNGZmLi5lZDA5YmZm
YzdkM2M1OTczYWQ1MmQxYTllNjFkOTgzMTNhM2UwNjY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlz
cGF0Y2hpbmctZXhwZWN0ZWQudHh0CkBAIC00MzUsNiArNDM1LDM1IEBAIENsaWNrIG5vbi11c2Vk
LWZhbGxiYWNrIG5vZGUKICAgICAgQHNoYWRvdy1yb290ICh0YXJnZXQ6IG5vbi11c2VkLWZhbGxi
YWNrKQogICAgICBAQSAodGFyZ2V0OiBBKQogICAgICBAdG9wICh0YXJnZXQ6IEEpCisKKworQ29t
cG9zZWQgU2hhZG93IFRyZWUgd2lsbCBiZToKK0RJVgkgaWQ9c2FuZGJveAorCURJVgkgaWQ9dG9w
CisJCURJVgkgaWQ9aG9zdAorCQkJRElWCSBpZD1kaXYxCisJCQlESVYJIGlkPWRpdjIKKworCisg
IG1vdXNlb3V0CisKKyAgbW91c2VvdmVyCisgICAgIEBkaXYyICh0YXJnZXQ6IGRpdjIpIChyZWxh
dGVkOiBkaXYxKQorICAgICBAc2hhZG93LXJvb3QgKHRhcmdldDogZGl2MikgKHJlbGF0ZWQ6IGRp
djEpCisKKworQ29tcG9zZWQgU2hhZG93IFRyZWUgd2lsbCBiZToKK0RJVgkgaWQ9c2FuZGJveAor
CURJVgkgaWQ9dG9wCisJCURJVgkgaWQ9aG9zdAorCQkJRElWCSBpZD1kaXYxCisKKworICBtb3Vz
ZW91dAorCisgIG1vdXNlb3ZlcgorICAgICBAZGl2MSAodGFyZ2V0OiBkaXYxKSAocmVsYXRlZDog
ZGl2MSkKKyAgICAgQHNoYWRvdy1yb290ICh0YXJnZXQ6IGRpdjEpIChyZWxhdGVkOiBkaXYxKQog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRj
aGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQt
ZGlzcGF0Y2hpbmcuaHRtbAppbmRleCBlMjk0NzBhMmI1ZDkyZjhmODA5ZDZjYmFmYzM0YjQ3ZDQ0
ZDA4OWE2Li44NGI3NjdlNTIwZjNhNmU1YzA3NjM2M2M2NTg1NTE3MjljMmQ1MTQyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRj
aGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2
ZW50LWRpc3BhdGNoaW5nLmh0bWwKQEAgLTM3OCw2ICszNzgsNTggQEAgZnVuY3Rpb24gdGVzdEV2
ZW50c09uRmFsbGJhY2tFbGVtZW50cygpCiAgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ2NsaWNr
Jyk7CiB9CiAKK2Z1bmN0aW9uIHRlc3RFdmVudHNGaXJlZE1hbnVhbGx5KCkKK3sKKyAgICBzYW5k
Ym94LmlubmVySFRNTCA9ICcnOworICAgIHNhbmRib3guYXBwZW5kQ2hpbGQoCisgICAgICAgIGNy
ZWF0ZURPTSgnZGl2JywgeydpZCc6ICd0b3AnfSwKKyAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdob3N0J30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jl
YXRlU2hhZG93Um9vdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2RpdjEnfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkaXYyJ30pKSkpKTsKKworICAgIGFkZEV2ZW50TGlz
dGVuZXJzKFsndG9wJywgJ2hvc3QnLCAnaG9zdC8nLCAnaG9zdC9kaXYxJywgJ2hvc3QvZGl2Midd
KTsKKyAgICBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2hvc3QvJykuaWQgPSAnc2hhZG93LXJv
b3QnOworICAgIHNob3dTYW5kYm94VHJlZSgpOworCisgICAgdmFyIGRpdjEgPSBnZXROb2RlSW5T
aGFkb3dUcmVlU3RhY2soJ2hvc3QvZGl2MScpOworICAgIHZhciBkaXYyID0gZ2V0Tm9kZUluU2hh
ZG93VHJlZVN0YWNrKCdob3N0L2RpdjInKTsKKworICAgIGNsZWFyRXZlbnRSZWNvcmRzKCk7Cisg
ICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnRzIik7CisgICAg
ZXZlbnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNlb3ZlciIsIHRydWUsIGZhbHNlLCB3aW5kb3csCisg
ICAgICAwLCAxMCwgMTAsIDEwLCAxMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGRp
djEpOworICAgIGRpdjIuZGlzcGF0Y2hFdmVudChldmVudCk7CisKKyAgICBkZWJ1Z0Rpc3BhdGNo
ZWRFdmVudCgnbW91c2VvdXQnKTsKKyAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2VvdmVy
Jyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RFdmVudHNGaXJlZE1hbnVhbGx5V2l0aFJlbGF0ZWRUYXJn
ZXRTYW1lVG9UYXJnZXQoKQoreworICAgIHNhbmRib3guaW5uZXJIVE1MID0gJyc7CisgICAgc2Fu
ZGJveC5hcHBlbmRDaGlsZCgKKyAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcCd9
LAorICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2MSd9KSkpKSk7
CisKKyAgICBhZGRFdmVudExpc3RlbmVycyhbJ3RvcCcsICdob3N0JywgJ2hvc3QvJywgJ2hvc3Qv
ZGl2MSddKTsKKyAgICBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2hvc3QvJykuaWQgPSAnc2hh
ZG93LXJvb3QnOworICAgIHNob3dTYW5kYm94VHJlZSgpOworCisgICAgdmFyIGRpdjEgPSBnZXRO
b2RlSW5TaGFkb3dUcmVlU3RhY2soJ2hvc3QvZGl2MScpOworCisgICAgY2xlYXJFdmVudFJlY29y
ZHMoKTsKKyAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMi
KTsKKyAgICBldmVudC5pbml0TW91c2VFdmVudCgibW91c2VvdmVyIiwgdHJ1ZSwgZmFsc2UsIHdp
bmRvdywKKyAgICAgIDAsIDEwLCAxMCwgMTAsIDEwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgMCwgZGl2MSk7CisgICAgZGl2MS5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKworICAgIGRlYnVn
RGlzcGF0Y2hlZEV2ZW50KCdtb3VzZW91dCcpOworICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdt
b3VzZW92ZXInKTsKK30KKwogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQpAQCAtMzkzLDYgKzQ0NSw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRlc3RFdmVu
dHNPbk11bHRpcGxlU2hhZG93Um9vdHMoKTsKICAgICB0ZXN0RXZlbnRzT25Ob25EaXN0cmlidXRl
ZE5vZGVzKCk7CiAgICAgdGVzdEV2ZW50c09uRmFsbGJhY2tFbGVtZW50cygpOworICAgIHRlc3RF
dmVudHNGaXJlZE1hbnVhbGx5KCk7CisgICAgdGVzdEV2ZW50c0ZpcmVkTWFudWFsbHlXaXRoUmVs
YXRlZFRhcmdldFNhbWVUb1RhcmdldCgpOwogfQogCiB0ZXN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175921</attachid>
            <date>2012-11-25 21:46:53 -0800</date>
            <delta_ts>2012-12-05 00:31:10 -0800</delta_ts>
            <desc>Rebased. ready for review.</desc>
            <filename>bug-102681-20121126144432.patch</filename>
            <type>text/plain</type>
            <size>7727</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM4NTc1MjIwZWQwNzc2
ZGMyZWIzNThkZjY2MWJlMGMzY2I2N2Q5MC4uOGU3ZDJiZTQyOWUwMTBjYTI5ZDJjODYzMzJkZmE4
ZGIzYWRkMjMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTExLTIwICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBFdmVudCdzIHJlbGF0ZWRU
YXJnZXQgcmUtdGFyZ2V0aW5nIGRvZXMgbm90IG9jY3VyIGZvciBtYW51YWxseSBmaXJlZCBtb3Vz
ZSBldmVudHMgY3JlYXRlZCBieSBldmVudC5pbml0TW91c2VFdmVudCgpLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNjgxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBzdXJlIHRoYXQgZXZlbnQn
cyByZWxhdGVkVGFyZ2V0IHJlLXRhcmdldGluZyBvY2N1cnMgZm9yIG1vdXNlCisgICAgICAgIGV2
ZW50cyBjcmVhdGVkIGJ5IGV2ZW50LmluaXRNb3VzZUV2ZW50KCkuICBTaW5jZSB1c2VyLWdlbmVy
YXRlZAorICAgICAgICBtb3VzZSBldmVudHMgY2FuIGhhdmUgYSByZWxhdGVkVGFyZ2V0IHdoaWNo
IGlzIHNhbWUgdG8gdGhlIHRhcmdldAorICAgICAgICBub2RlLCB0aGUgYWxnb3JpdGhtIHdoaWNo
IGNhbGN1bGF0ZXMgZXZlbnQncyBhbmNlc3RvcnMgaXMgYWxzbworICAgICAgICB1cGRhdGVkIHNv
IHRoYXQgYW5jZXN0b3JzIGFyZSBub3Qgc2hydW5rIHdyb25nbHkuCisKKyAgICAgICAgVGVzdDog
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmcuaHRtbAorCisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hFdmVu
dCk6CisKIDIwMTItMTEtMjUgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJlZmFjdG9yaW5nOiBNb3ZlIHRoZSBjb250ZW50IG9mIEhUTUxJbnB1dEVsZW1lbnQ6
OnN1YnRyZWVIYXNDaGFuZ2VkIHRvIFRleHRGaWVsZElucHV0VHlwZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA2NTQwOTU4NmFkNDcxYmRiMmZhZWNmYjgyNTJkMzIw
NDA2NTk5YTRkLi5iYmU1ZDhlMDY1YThmZTBkZGY2M2NiOTM4ZGM4MTczMDNjOTJkODY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtNjIsNiArNjIsOSBAQCBFdmVu
dFJlbGF0ZWRUYXJnZXRBZGp1c3Rlcjo6RXZlbnRSZWxhdGVkVGFyZ2V0QWRqdXN0ZXIoUGFzc1Jl
ZlB0cjxOb2RlPiBub2RlLCBQYQogCiB2b2lkIEV2ZW50UmVsYXRlZFRhcmdldEFkanVzdGVyOjph
ZGp1c3QoVmVjdG9yPEV2ZW50Q29udGV4dD4mIGFuY2VzdG9ycykKIHsKKyAgICAvLyBNb3VzZSBl
dmVudHMgY3JlYXRlZCBieSBldmVudC5pbml0TW91c2VFdmVudCguLi4pIGNhbiBoYXZlIHRoZSBy
ZWxhdGVkVGFyZ2V0IHdoaWNoIGlzIHNhbWUgdG8gdGhlIHRhcmdldC4KKyAgICBib29sIHRhcmdl
dElzU2FtZVRvUmVsYXRlZFRhcmdldCA9IChtX25vZGUuZ2V0KCkgPT0gbV9yZWxhdGVkVGFyZ2V0
LmdldCgpKTsKKwogICAgIFZlY3RvcjxFdmVudFRhcmdldCo+IHJlbGF0ZWRUYXJnZXRTdGFjazsK
ICAgICBUcmVlU2NvcGUqIGxhc3RUcmVlU2NvcGUgPSAwOwogICAgIGZvciAoQW5jZXN0b3JDaGFp
bldhbGtlciB3YWxrZXIobV9yZWxhdGVkVGFyZ2V0LmdldCgpKTsgd2Fsa2VyLmdldCgpOyB3YWxr
ZXIucGFyZW50KCkpIHsKQEAgLTkzLDcgKzk2LDEyIEBAIHZvaWQgRXZlbnRSZWxhdGVkVGFyZ2V0
QWRqdXN0ZXI6OmFkanVzdChWZWN0b3I8RXZlbnRDb250ZXh0PiYgYW5jZXN0b3JzKQogICAgICAg
ICAgICAgaXRlci0+c2V0UmVsYXRlZFRhcmdldChhZGp1c3RlZFJlbGF0ZWRUYXJnZXQpOwogICAg
ICAgICB9CiAgICAgICAgIGxhc3RUcmVlU2NvcGUgPSBzY29wZTsKLSAgICAgICAgaWYgKGl0ZXIt
PnRhcmdldCgpID09IGFkanVzdGVkUmVsYXRlZFRhcmdldCkgeworICAgICAgICBpZiAodGFyZ2V0
SXNTYW1lVG9SZWxhdGVkVGFyZ2V0KSB7CisgICAgICAgICAgICBpZiAobV9ub2RlLT50cmVlU2Nv
cGUoKS0+cm9vdE5vZGUoKSA9PSBpdGVyLT5ub2RlKCkpIHsKKyAgICAgICAgICAgICAgICBhbmNl
c3RvcnMuc2hyaW5rKGl0ZXIgKyAxIC0gYW5jZXN0b3JzLmJlZ2luKCkpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGl0ZXItPnRhcmdl
dCgpID09IGFkanVzdGVkUmVsYXRlZFRhcmdldCkgewogICAgICAgICAgICAgLy8gRXZlbnQgZGlz
cGF0Y2hpbmcgc2hvdWxkIGJlIHN0b3BwZWQgaGVyZS4KICAgICAgICAgICAgIGFuY2VzdG9ycy5z
aHJpbmsoaXRlciAtIGFuY2VzdG9ycy5iZWdpbigpKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCmluZGV4IDZkNDEwM2ZjYzU4Zjg0MjNmMzI4ZGE3MzIyZmE4NTA3ZTZiODE4OWUu
LjUxZmMxNjRjMjFiYjNkYzg5YzNhMjI2Y2Y5MjdlMWFiNzc1YjI4NmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKQEAgLTI1ODUsNiArMjU4NSw4IEBAIHZvaWQgTm9kZTo6ZGlzcGF0Y2hTY29wZWRFdmVudERp
c3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxFdmVudERpc3BhdGNoTWVkaWF0b3I+CiAKIGJvb2wg
Tm9kZTo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsKKyAgICBpZiAo
ZXZlbnQtPmlzTW91c2VFdmVudCgpKQorICAgICAgICByZXR1cm4gRXZlbnREaXNwYXRjaGVyOjpk
aXNwYXRjaEV2ZW50KHRoaXMsIE1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUoYWRv
cHRSZWYodG9Nb3VzZUV2ZW50KGV2ZW50LmxlYWtSZWYoKSkpKSk7CiAgICAgcmV0dXJuIEV2ZW50
RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudCh0aGlzLCBFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNy
ZWF0ZShldmVudCkpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODViNGFiMmRjM2UzYmUzOTU0ZDhjMDc1NDlmODIy
NmQ1MWI0YmEzNy4uMWExNzU4M2QxNTNjZTBmZmZiYzc0MDBlMTBhNjBkNjFjZDA5ZGU4OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTExLTIwICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBFdmVudCdzIHJlbGF0ZWRUYXJnZXQgcmUtdGFyZ2V0aW5nIGRv
ZXMgbm90IG9jY3VyIGZvciBtYW51YWxseSBmaXJlZCBtb3VzZSBldmVudHMgY3JlYXRlZCBieSBl
dmVudC5pbml0TW91c2VFdmVudCgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAyNjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRj
aGluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20t
ZXZlbnQtZGlzcGF0Y2hpbmcuaHRtbDoKKwogMjAxMi0xMS0yNSAgS2VudCBUYW11cmEgIDx0a2Vu
dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBGaXggc3ZuOm1pbWUtdHlwZSBm
b3IgaW1hZ2VzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93
LWRvbS1ldmVudC1kaXNwYXRjaGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1leHBlY3RlZC50eHQKaW5kZXgg
MWY4MzVmZjZhMzYyNjViNTBiYTdiYWUxNTJmZjFlMzYwZGM1MjRmZi4uZWQwOWJmZmM3ZDNjNTk3
M2FkNTJkMWE5ZTYxZDk4MzEzYTNlMDY2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5n
LWV4cGVjdGVkLnR4dApAQCAtNDM1LDYgKzQzNSwzNSBAQCBDbGljayBub24tdXNlZC1mYWxsYmFj
ayBub2RlCiAgICAgIEBzaGFkb3ctcm9vdCAodGFyZ2V0OiBub24tdXNlZC1mYWxsYmFjaykKICAg
ICAgQEEgKHRhcmdldDogQSkKICAgICAgQHRvcCAodGFyZ2V0OiBBKQorCisKK0NvbXBvc2VkIFNo
YWRvdyBUcmVlIHdpbGwgYmU6CitESVYJIGlkPXNhbmRib3gKKwlESVYJIGlkPXRvcAorCQlESVYJ
IGlkPWhvc3QKKwkJCURJVgkgaWQ9ZGl2MQorCQkJRElWCSBpZD1kaXYyCisKKworICBtb3VzZW91
dAorCisgIG1vdXNlb3ZlcgorICAgICBAZGl2MiAodGFyZ2V0OiBkaXYyKSAocmVsYXRlZDogZGl2
MSkKKyAgICAgQHNoYWRvdy1yb290ICh0YXJnZXQ6IGRpdjIpIChyZWxhdGVkOiBkaXYxKQorCisK
K0NvbXBvc2VkIFNoYWRvdyBUcmVlIHdpbGwgYmU6CitESVYJIGlkPXNhbmRib3gKKwlESVYJIGlk
PXRvcAorCQlESVYJIGlkPWhvc3QKKwkJCURJVgkgaWQ9ZGl2MQorCisKKyAgbW91c2VvdXQKKwor
ICBtb3VzZW92ZXIKKyAgICAgQGRpdjEgKHRhcmdldDogZGl2MSkgKHJlbGF0ZWQ6IGRpdjEpCisg
ICAgIEBzaGFkb3ctcm9vdCAodGFyZ2V0OiBkaXYxKSAocmVsYXRlZDogZGl2MSkKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmcuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNo
aW5nLmh0bWwKaW5kZXggZTI5NDcwYTJiNWQ5MmY4ZjgwOWQ2Y2JhZmMzNGI0N2Q0NGQwODlhNi4u
ODRiNzY3ZTUyMGYzYTZlNWMwNzYzNjNjNjU4NTUxNzI5YzJkNTE0MiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmcuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNw
YXRjaGluZy5odG1sCkBAIC0zNzgsNiArMzc4LDU4IEBAIGZ1bmN0aW9uIHRlc3RFdmVudHNPbkZh
bGxiYWNrRWxlbWVudHMoKQogICAgIGRlYnVnRGlzcGF0Y2hlZEV2ZW50KCdjbGljaycpOwogfQog
CitmdW5jdGlvbiB0ZXN0RXZlbnRzRmlyZWRNYW51YWxseSgpCit7CisgICAgc2FuZGJveC5pbm5l
ckhUTUwgPSAnJzsKKyAgICBzYW5kYm94LmFwcGVuZENoaWxkKAorICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAndG9wJ30sCisgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rpdics
IHsnaWQnOiAnaG9zdCd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRv
d1Jvb3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdkaXYxJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnZGl2Mid9KSkpKSk7CisKKyAgICBhZGRFdmVudExpc3RlbmVycyhb
J3RvcCcsICdob3N0JywgJ2hvc3QvJywgJ2hvc3QvZGl2MScsICdob3N0L2RpdjInXSk7CisgICAg
Z2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdob3N0LycpLmlkID0gJ3NoYWRvdy1yb290JzsKKyAg
ICBzaG93U2FuZGJveFRyZWUoKTsKKworICAgIHZhciBkaXYxID0gZ2V0Tm9kZUluU2hhZG93VHJl
ZVN0YWNrKCdob3N0L2RpdjEnKTsKKyAgICB2YXIgZGl2MiA9IGdldE5vZGVJblNoYWRvd1RyZWVT
dGFjaygnaG9zdC9kaXYyJyk7CisKKyAgICBjbGVhckV2ZW50UmVjb3JkcygpOworICAgIHZhciBl
dmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpOworICAgIGV2ZW50Lmlu
aXRNb3VzZUV2ZW50KCJtb3VzZW92ZXIiLCB0cnVlLCBmYWxzZSwgd2luZG93LAorICAgICAgMCwg
MTAsIDEwLCAxMCwgMTAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBkaXYxKTsKKyAg
ICBkaXYyLmRpc3BhdGNoRXZlbnQoZXZlbnQpOworCisgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQo
J21vdXNlb3V0Jyk7CisgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ21vdXNlb3ZlcicpOworfQor
CitmdW5jdGlvbiB0ZXN0RXZlbnRzRmlyZWRNYW51YWxseVdpdGhSZWxhdGVkVGFyZ2V0U2FtZVRv
VGFyZ2V0KCkKK3sKKyAgICBzYW5kYm94LmlubmVySFRNTCA9ICcnOworICAgIHNhbmRib3guYXBw
ZW5kQ2hpbGQoCisgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICd0b3AnfSwKKyAgICAg
ICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdob3N0J30sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdCgKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2RpdjEnfSkpKSkpOworCisgICAg
YWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAnaG9zdCcsICdob3N0LycsICdob3N0L2RpdjEnXSk7
CisgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdob3N0LycpLmlkID0gJ3NoYWRvdy1yb290
JzsKKyAgICBzaG93U2FuZGJveFRyZWUoKTsKKworICAgIHZhciBkaXYxID0gZ2V0Tm9kZUluU2hh
ZG93VHJlZVN0YWNrKCdob3N0L2RpdjEnKTsKKworICAgIGNsZWFyRXZlbnRSZWNvcmRzKCk7Cisg
ICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnRzIik7CisgICAg
ZXZlbnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNlb3ZlciIsIHRydWUsIGZhbHNlLCB3aW5kb3csCisg
ICAgICAwLCAxMCwgMTAsIDEwLCAxMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGRp
djEpOworICAgIGRpdjEuZGlzcGF0Y2hFdmVudChldmVudCk7CisKKyAgICBkZWJ1Z0Rpc3BhdGNo
ZWRFdmVudCgnbW91c2VvdXQnKTsKKyAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2VvdmVy
Jyk7Cit9CisKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
QEAgLTM5Myw2ICs0NDUsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB0ZXN0RXZlbnRzT25NdWx0
aXBsZVNoYWRvd1Jvb3RzKCk7CiAgICAgdGVzdEV2ZW50c09uTm9uRGlzdHJpYnV0ZWROb2Rlcygp
OwogICAgIHRlc3RFdmVudHNPbkZhbGxiYWNrRWxlbWVudHMoKTsKKyAgICB0ZXN0RXZlbnRzRmly
ZWRNYW51YWxseSgpOworICAgIHRlc3RFdmVudHNGaXJlZE1hbnVhbGx5V2l0aFJlbGF0ZWRUYXJn
ZXRTYW1lVG9UYXJnZXQoKTsKIH0KIAogdGVzdCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177686</attachid>
            <date>2012-12-05 00:31:15 -0800</date>
            <delta_ts>2012-12-05 23:10:08 -0800</delta_ts>
            <desc>Prevetns dblclick event</desc>
            <filename>bug-102681-20121205172840.patch</filename>
            <type>text/plain</type>
            <size>13347</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1OTZkNzQzZTAyNjA4NDQxZGZjNTA1Y2M1YjMwNDI5MDQ1NWQxZjQ3Li41
MTY1NTQxMDAzZmFiYTgzYmY5NGE2MTk2YzQzNGM5MGUyYWQ1NDE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzAgQEAKKzIwMTItMTEtMjAgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEV2ZW50J3MgcmVsYXRlZFRhcmdldCByZS10YXJnZXRpbmcgZG9lcyBub3Qg
b2NjdXIgZm9yIG1hbnVhbGx5IGZpcmVkIG1vdXNlIGV2ZW50cyBjcmVhdGVkIGJ5IGV2ZW50Lmlu
aXRNb3VzZUV2ZW50KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDI2ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNYWtlIHN1cmUgdGhhdCBldmVudCdzIHJlbGF0ZWRUYXJnZXQgcmUtdGFyZ2V0aW5n
IG9jY3VycyBmb3IgbW91c2UKKyAgICAgICAgZXZlbnRzIGNyZWF0ZWQgYnkgZXZlbnQuaW5pdE1v
dXNlRXZlbnQoKS4gIFNpbmNlIHVzZXItZ2VuZXJhdGVkCisgICAgICAgIG1vdXNlIGV2ZW50cyBj
YW4gaGF2ZSBhIHJlbGF0ZWRUYXJnZXQgd2hpY2ggaXMgc2FtZSB0byB0aGUgdGFyZ2V0CisgICAg
ICAgIG5vZGUsIHRoZSBhbGdvcml0aG0gd2hpY2ggY2FsY3VsYXRlcyBldmVudCdzIGFuY2VzdG9y
cyBpcyBhbHNvCisgICAgICAgIHVwZGF0ZWQgc28gdGhhdCBhbmNlc3RvcnMgYXJlIG5vdCBzaHJ1
bmsgd3JvbmdseS4KKworICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy9kaXNwYXRjaC1zeW50aGV0
aWMtbW91c2VldmVudC5odG1sCisgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
ZG9tLWV2ZW50LWRpc3BhdGNoaW5nLmh0bWwKKworICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNo
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWxhdGVkVGFyZ2V0QWRqdXN0ZXI6OmFk
anVzdCk6CisgICAgICAgICogZG9tL01vdXNlRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
b3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6TW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3BhdGNoRXZl
bnQpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50Lmg6CisgICAgICAgIChNb3VzZUV2ZW50RGlz
cGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZTo6ZGlzcGF0Y2hFdmVudCk6CisKIDIwMTItMTItMDMgIFJhZmFlbCBXZWluc3RlaW4g
IDxyYWZhZWx3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbXBsZW1lbnQgSFRNTFRlbXBsYXRl
RWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA3M2FjMzE5
OWZiODNlMjA3YmIxNDE5Njg0YWI1YTNjM2I5YjY0ZGFjLi43ZDI0NGI3NzhiYjQ4MTBiZGNmNjdm
MDViZTljMzUxMzkwYmY2ZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRE
aXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNw
cApAQCAtNjIsNiArNjIsOSBAQCBFdmVudFJlbGF0ZWRUYXJnZXRBZGp1c3Rlcjo6RXZlbnRSZWxh
dGVkVGFyZ2V0QWRqdXN0ZXIoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBQYQogCiB2b2lkIEV2ZW50
UmVsYXRlZFRhcmdldEFkanVzdGVyOjphZGp1c3QoVmVjdG9yPEV2ZW50Q29udGV4dD4mIGFuY2Vz
dG9ycykKIHsKKyAgICAvLyBTeW50aGV0aWMgbW91c2UgZXZlbnRzIGNhbiBoYXZlIGEgcmVsYXRl
ZFRhcmdldCB3aGljaCBpcyBpZGVudGljYWwgdG8gdGhlIHRhcmdldC4KKyAgICBib29sIHRhcmdl
dElzSWRlbnRpY2FsVG9Ub1JlbGF0ZWRUYXJnZXQgPSAobV9ub2RlLmdldCgpID09IG1fcmVsYXRl
ZFRhcmdldC5nZXQoKSk7CisKICAgICBWZWN0b3I8RXZlbnRUYXJnZXQqPiByZWxhdGVkVGFyZ2V0
U3RhY2s7CiAgICAgVHJlZVNjb3BlKiBsYXN0VHJlZVNjb3BlID0gMDsKICAgICBmb3IgKEFuY2Vz
dG9yQ2hhaW5XYWxrZXIgd2Fsa2VyKG1fcmVsYXRlZFRhcmdldC5nZXQoKSk7IHdhbGtlci5nZXQo
KTsgd2Fsa2VyLnBhcmVudCgpKSB7CkBAIC05Myw3ICs5NiwxMiBAQCB2b2lkIEV2ZW50UmVsYXRl
ZFRhcmdldEFkanVzdGVyOjphZGp1c3QoVmVjdG9yPEV2ZW50Q29udGV4dD4mIGFuY2VzdG9ycykK
ICAgICAgICAgICAgIGl0ZXItPnNldFJlbGF0ZWRUYXJnZXQoYWRqdXN0ZWRSZWxhdGVkVGFyZ2V0
KTsKICAgICAgICAgfQogICAgICAgICBsYXN0VHJlZVNjb3BlID0gc2NvcGU7Ci0gICAgICAgIGlm
IChpdGVyLT50YXJnZXQoKSA9PSBhZGp1c3RlZFJlbGF0ZWRUYXJnZXQpIHsKKyAgICAgICAgaWYg
KHRhcmdldElzSWRlbnRpY2FsVG9Ub1JlbGF0ZWRUYXJnZXQpIHsKKyAgICAgICAgICAgIGlmICht
X25vZGUtPnRyZWVTY29wZSgpLT5yb290Tm9kZSgpID09IGl0ZXItPm5vZGUoKSkgeworICAgICAg
ICAgICAgICAgIGFuY2VzdG9ycy5zaHJpbmsoaXRlciArIDEgLSBhbmNlc3RvcnMuYmVnaW4oKSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBp
ZiAoaXRlci0+dGFyZ2V0KCkgPT0gYWRqdXN0ZWRSZWxhdGVkVGFyZ2V0KSB7CiAgICAgICAgICAg
ICAvLyBFdmVudCBkaXNwYXRjaGluZyBzaG91bGQgYmUgc3RvcHBlZCBoZXJlLgogICAgICAgICAg
ICAgYW5jZXN0b3JzLnNocmluayhpdGVyIC0gYW5jZXN0b3JzLmJlZ2luKCkpOwogICAgICAgICAg
ICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAKaW5kZXggZGRlMTkzNjE1YzFiNDE1
NzU1MmY3NjM5OTc5MWU1MzAxMmNkNWFmOS4uZThlZmFkZTlhMWYxOGZkODk0YWU4MTg2YWRkMTA2
Zjk0YmZhZmJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApAQCAtMjA5LDEzICsyMDks
MTMgQEAgU2ltdWxhdGVkTW91c2VFdmVudDo6U2ltdWxhdGVkTW91c2VFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlAKICAgICB9CiB9CiAKLVBhc3NSZWZQdHI8TW91
c2VFdmVudERpc3BhdGNoTWVkaWF0b3I+IE1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVh
dGUoUGFzc1JlZlB0cjxNb3VzZUV2ZW50PiBtb3VzZUV2ZW50KQorUGFzc1JlZlB0cjxNb3VzZUV2
ZW50RGlzcGF0Y2hNZWRpYXRvcj4gTW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShQ
YXNzUmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQsIGJvb2wgaXNTeW50aGV0aWNNb3VzZUV2
ZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTW91c2VFdmVudERpc3BhdGNoTWVkaWF0
b3IobW91c2VFdmVudCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTW91c2VFdmVudERpc3Bh
dGNoTWVkaWF0b3IobW91c2VFdmVudCwgaXNTeW50aGV0aWNNb3VzZUV2ZW50KSk7CiB9CiAKLU1v
dXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNz
UmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQpCi0gICAgOiBFdmVudERpc3BhdGNoTWVkaWF0
b3IobW91c2VFdmVudCkKK01vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpNb3VzZUV2ZW50RGlz
cGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQsIGJvb2wgaXNT
eW50aGV0aWNNb3VzZUV2ZW50KQorICAgIDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKG1vdXNlRXZl
bnQpLCBtX2lzU3ludGhldGljTW91c2VFdmVudChpc1N5bnRoZXRpY01vdXNlRXZlbnQpCiB7CiB9
CiAKQEAgLTIzMiwxNCArMjMyLDE3IEBAIGJvb2wgTW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6
OmRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKiBkaXNwYXRjaGVyKSBjb25zCiAgICAgaWYg
KGV2ZW50KCktPnR5cGUoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0cnVlOyAvLyBTaG91
bGRuJ3QgaGFwcGVuLgogCisgICAgQVNTRVJUKG1faXNTeW50aGV0aWNNb3VzZUV2ZW50IHx8ICFl
dmVudCgpLT50YXJnZXQoKSB8fCBldmVudCgpLT50YXJnZXQoKSAhPSBldmVudCgpLT5yZWxhdGVk
VGFyZ2V0KCkpOworCiAgICAgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQgPSBldmVudCgpLT5y
ZWxhdGVkVGFyZ2V0KCk7CiAgICAgZGlzcGF0Y2hlci0+YWRqdXN0UmVsYXRlZFRhcmdldChldmVu
dCgpLCByZWxhdGVkVGFyZ2V0KTsKIAogICAgIGRpc3BhdGNoZXItPmRpc3BhdGNoRXZlbnQoZXZl
bnQoKSk7CiAgICAgYm9vbCBzd2FsbG93RXZlbnQgPSBldmVudCgpLT5kZWZhdWx0SGFuZGxlZCgp
IHx8IGV2ZW50KCktPmRlZmF1bHRQcmV2ZW50ZWQoKTsKIAotICAgIGlmIChldmVudCgpLT50eXBl
KCkgIT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQgfHwgZXZlbnQoKS0+ZGV0YWlsKCkgIT0gMikK
KyAgICBpZiAobV9pc1N5bnRoZXRpY01vdXNlRXZlbnQgfHwgZXZlbnQoKS0+dHlwZSgpICE9IGV2
ZW50TmFtZXMoKS5jbGlja0V2ZW50IHx8IGV2ZW50KCktPmRldGFpbCgpICE9IDIpCiAgICAgICAg
IHJldHVybiAhc3dhbGxvd0V2ZW50OworCiAgICAgLy8gU3BlY2lhbCBjYXNlOiBJZiBpdCdzIGEg
ZG91YmxlIGNsaWNrIGV2ZW50LCB3ZSBhbHNvIHNlbmQgdGhlIGRibGNsaWNrIGV2ZW50LiBUaGlz
IGlzIG5vdCBwYXJ0CiAgICAgLy8gb2YgdGhlIERPTSBzcGVjcywgYnV0IGlzIHVzZWQgZm9yIGNv
bXBhdGliaWxpdHkgd2l0aCB0aGUgb25kYmxjbGljaz0iIiBhdHRyaWJ1dGUuIFRoaXMgaXMgdHJl
YXRlZAogICAgIC8vIGFzIGEgc2VwYXJhdGUgZXZlbnQgaW4gb3RoZXIgRE9NLWNvbXBsaWFudCBi
cm93c2VycyBsaWtlIEZpcmVmb3gsIGFuZCBzbyB3ZSBkbyB0aGUgc2FtZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VFdmVudC5oCmluZGV4IGExYzc5MjJiOWM3ZDc0ZjJiOGQxNjRlODQwODllY2Q0NTdhOGNjNWUu
LjI1YzdlZjZkNDQxNTE2YWE1ZDM0M2E3MDk1NzU2MTQ3NTBjMDc1NjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01v
dXNlRXZlbnQuaApAQCAtMTE1LDEzICsxMTUsMTQgQEAgcHJpdmF0ZToKIAogY2xhc3MgTW91c2VF
dmVudERpc3BhdGNoTWVkaWF0b3IgOiBwdWJsaWMgRXZlbnREaXNwYXRjaE1lZGlhdG9yIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4g
Y3JlYXRlKFBhc3NSZWZQdHI8TW91c2VFdmVudD4pOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1v
dXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxNb3VzZUV2ZW50Piwg
Ym9vbCBpc1N5bnRoZXRpY01vdXNlRXZlbnQgPSBmYWxzZSk7CiAKIHByaXZhdGU6Ci0gICAgZXhw
bGljaXQgTW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxNb3VzZUV2ZW50Pik7
CisgICAgZXhwbGljaXQgTW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxNb3Vz
ZUV2ZW50PiwgYm9vbCBpc1N5bnRoZXRpY01vdXNlRXZlbnQpOwogICAgIE1vdXNlRXZlbnQqIGV2
ZW50KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hFdmVudChFdmVudERpc3Bh
dGNoZXIqKSBjb25zdDsKKyAgICBib29sIG1faXNTeW50aGV0aWNNb3VzZUV2ZW50OwogfTsKIAog
aW5saW5lIE1vdXNlRXZlbnQqIHRvTW91c2VFdmVudChFdmVudCogZXZlbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKaW5kZXggODM5MjBmY2E2NjY5ODIxNjJkMGQxZjJlN2U4ZmU2N2IwMjI5NTdiMi4uMzFhZjQw
N2ZkYTRiYzJmNGY3Y2I5Njc1Yzk0MTlmYTBlOGZlMjcyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAt
MjQ5MSw2ICsyNDkxLDggQEAgdm9pZCBOb2RlOjpkaXNwYXRjaFNjb3BlZEV2ZW50RGlzcGF0Y2hN
ZWRpYXRvcihQYXNzUmVmUHRyPEV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4KIAogYm9vbCBOb2RlOjpk
aXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogeworICAgIGlmIChldmVudC0+
aXNNb3VzZUV2ZW50KCkpCisgICAgICAgIHJldHVybiBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNo
RXZlbnQodGhpcywgTW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShhZG9wdFJlZih0
b01vdXNlRXZlbnQoZXZlbnQubGVha1JlZigpKSksIHRydWUpKTsKICAgICByZXR1cm4gRXZlbnRE
aXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KHRoaXMsIEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3Jl
YXRlKGV2ZW50KSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjMjJlMzg2NWRiYzlhZjllZjJlNWU1MDdjOTE1NDMw
NjdjMjZmNGY3Li42MWQzOTE0YTg4Y2Y2NmZhM2I4ZTU3OTJmN2RlNjRlZTQyZDQxNjhlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTEtMjAgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEV2ZW50J3MgcmVsYXRlZFRhcmdldCByZS10YXJnZXRpbmcgZG9l
cyBub3Qgb2NjdXIgZm9yIG1hbnVhbGx5IGZpcmVkIG1vdXNlIGV2ZW50cyBjcmVhdGVkIGJ5IGV2
ZW50LmluaXRNb3VzZUV2ZW50KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDI2ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNo
aW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1l
dmVudC1kaXNwYXRjaGluZy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL2Rpc3BhdGNoLXN5
bnRoZXRpYy1tb3VzZWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvZGlzcGF0Y2gtc3ludGhldGljLW1vdXNlZXZlbnQuaHRtbDogQWRkZWQuCisKIDIwMTIt
MTItMDMgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLiBHYXJkZW5pbmcgb2YgQXBwbGUgV2luZG93cyBwb3J0LgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQt
ZGlzcGF0Y2hpbmctZXhwZWN0ZWQudHh0CmluZGV4IDFmODM1ZmY2YTM2MjY1YjUwYmE3YmFlMTUy
ZmYxZTM2MGRjNTI0ZmYuLmVkMDliZmZjN2QzYzU5NzNhZDUyZDFhOWU2MWQ5ODMxM2EzZTA2NjYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50
LWRpc3BhdGNoaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1leHBlY3RlZC50eHQKQEAgLTQzNSw2ICs0
MzUsMzUgQEAgQ2xpY2sgbm9uLXVzZWQtZmFsbGJhY2sgbm9kZQogICAgICBAc2hhZG93LXJvb3Qg
KHRhcmdldDogbm9uLXVzZWQtZmFsbGJhY2spCiAgICAgIEBBICh0YXJnZXQ6IEEpCiAgICAgIEB0
b3AgKHRhcmdldDogQSkKKworCitDb21wb3NlZCBTaGFkb3cgVHJlZSB3aWxsIGJlOgorRElWCSBp
ZD1zYW5kYm94CisJRElWCSBpZD10b3AKKwkJRElWCSBpZD1ob3N0CisJCQlESVYJIGlkPWRpdjEK
KwkJCURJVgkgaWQ9ZGl2MgorCisKKyAgbW91c2VvdXQKKworICBtb3VzZW92ZXIKKyAgICAgQGRp
djIgKHRhcmdldDogZGl2MikgKHJlbGF0ZWQ6IGRpdjEpCisgICAgIEBzaGFkb3ctcm9vdCAodGFy
Z2V0OiBkaXYyKSAocmVsYXRlZDogZGl2MSkKKworCitDb21wb3NlZCBTaGFkb3cgVHJlZSB3aWxs
IGJlOgorRElWCSBpZD1zYW5kYm94CisJRElWCSBpZD10b3AKKwkJRElWCSBpZD1ob3N0CisJCQlE
SVYJIGlkPWRpdjEKKworCisgIG1vdXNlb3V0CisKKyAgbW91c2VvdmVyCisgICAgIEBkaXYxICh0
YXJnZXQ6IGRpdjEpIChyZWxhdGVkOiBkaXYxKQorICAgICBAc2hhZG93LXJvb3QgKHRhcmdldDog
ZGl2MSkgKHJlbGF0ZWQ6IGRpdjEpCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
IFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy5odG1sCmluZGV4IGUyOTQ3MGEyYjVk
OTJmOGY4MDlkNmNiYWZjMzRiNDdkNDRkMDg5YTYuLmI2ZTMzMDYzZmFhZTFlNGE5ODk4YmJlYjAz
YjFjMDk3NDk0MjZiZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmcuaHRtbApAQCAtMzc4LDYgKzM3
OCw1OCBAQCBmdW5jdGlvbiB0ZXN0RXZlbnRzT25GYWxsYmFja0VsZW1lbnRzKCkKICAgICBkZWJ1
Z0Rpc3BhdGNoZWRFdmVudCgnY2xpY2snKTsKIH0KIAorZnVuY3Rpb24gdGVzdEV2ZW50c0ZpcmVk
TWFudWFsbHkoKQoreworICAgIHNhbmRib3guaW5uZXJIVE1MID0gJyc7CisgICAgc2FuZGJveC5h
cHBlbmRDaGlsZCgKKyAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcCd9LAorICAg
ICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2MSd9KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2RpdjInfSkp
KSkpOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAnaG9zdCcsICdob3N0LycsICdo
b3N0L2RpdjEnLCAnaG9zdC9kaXYyJ10pOworICAgIGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygn
aG9zdC8nKS5pZCA9ICdzaGFkb3ctcm9vdCc7CisgICAgc2hvd1NhbmRib3hUcmVlKCk7CisKKyAg
ICB2YXIgZGl2MSA9IGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnaG9zdC9kaXYxJyk7CisgICAg
dmFyIGRpdjIgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2hvc3QvZGl2MicpOworCisgICAg
Y2xlYXJFdmVudFJlY29yZHMoKTsKKyAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVu
dCgiTW91c2VFdmVudHMiKTsKKyAgICBldmVudC5pbml0TW91c2VFdmVudCgibW91c2VvdmVyIiwg
dHJ1ZSwgZmFsc2UsIHdpbmRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxMCwgMTAs
IDEwLCAxMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGRpdjEpOworICAgIGRpdjIu
ZGlzcGF0Y2hFdmVudChldmVudCk7CisKKyAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2Vv
dXQnKTsKKyAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2VvdmVyJyk7Cit9CisKK2Z1bmN0
aW9uIHRlc3RFdmVudHNGaXJlZE1hbnVhbGx5V2l0aFJlbGF0ZWRUYXJnZXRTYW1lVG9UYXJnZXQo
KQoreworICAgIHNhbmRib3guaW5uZXJIVE1MID0gJyc7CisgICAgc2FuZGJveC5hcHBlbmRDaGls
ZCgKKyAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcCd9LAorICAgICAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2MSd9KSkpKSk7CisKKyAgICBhZGRFdmVu
dExpc3RlbmVycyhbJ3RvcCcsICdob3N0JywgJ2hvc3QvJywgJ2hvc3QvZGl2MSddKTsKKyAgICBn
ZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2hvc3QvJykuaWQgPSAnc2hhZG93LXJvb3QnOworICAg
IHNob3dTYW5kYm94VHJlZSgpOworCisgICAgdmFyIGRpdjEgPSBnZXROb2RlSW5TaGFkb3dUcmVl
U3RhY2soJ2hvc3QvZGl2MScpOworCisgICAgY2xlYXJFdmVudFJlY29yZHMoKTsKKyAgICB2YXIg
ZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKTsKKyAgICBldmVudC5p
bml0TW91c2VFdmVudCgibW91c2VvdmVyIiwgdHJ1ZSwgZmFsc2UsIHdpbmRvdywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAwLCAxMCwgMTAsIDEwLCAxMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIDAsIGRpdjEpOworICAgIGRpdjEuZGlzcGF0Y2hFdmVudChldmVudCk7CisKKyAgICBk
ZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2VvdXQnKTsKKyAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVu
dCgnbW91c2VvdmVyJyk7Cit9CisKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKQEAgLTM5Myw2ICs0NDUsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB0ZXN0
RXZlbnRzT25NdWx0aXBsZVNoYWRvd1Jvb3RzKCk7CiAgICAgdGVzdEV2ZW50c09uTm9uRGlzdHJp
YnV0ZWROb2RlcygpOwogICAgIHRlc3RFdmVudHNPbkZhbGxiYWNrRWxlbWVudHMoKTsKKyAgICB0
ZXN0RXZlbnRzRmlyZWRNYW51YWxseSgpOworICAgIHRlc3RFdmVudHNGaXJlZE1hbnVhbGx5V2l0
aFJlbGF0ZWRUYXJnZXRTYW1lVG9UYXJnZXQoKTsKIH0KIAogdGVzdCgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGlzcGF0Y2gtc3ludGhldGljLW1vdXNlZXZlbnQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGlzcGF0Y2gtc3ludGhldGljLW1v
dXNlZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlNjU3YTQ5ZmUwYTEzYWM2YWI5NGUx
OWZiYWJkMTJiZGU4N2Y0ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9kaXNwYXRjaC1zeW50aGV0aWMtbW91c2VldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMCBAQAorVGVzdHMgdG8gZW5zdXJlIHRoYXQgZGJsY2xpY2sgZXZlbnQgaXMgbm90IGZpcmVk
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworY2xpY2sgZXZlbnQgaXMgZmlyZWQu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGlzcGF0Y2gtc3ludGhldGljLW1vdXNl
ZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Rpc3BhdGNoLXN5bnRoZXRpYy1t
b3VzZWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdhNzUzNjhlZWFmZmQyNGY0ZTk3MjA5N2U0OWY5
MDE2MmExYWZlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Rp
c3BhdGNoLXN5bnRoZXRpYy1tb3VzZWV2ZW50Lmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0ndG9wJz4KKzwvZGl2PgorPHByZSBpZD0iY29uc29sZSI+PC9w
cmU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRvIGVuc3VyZSB0aGF0IGRibGNsaWNr
IGV2ZW50IGlzIG5vdCBmaXJlZC4iKTsKKworZnVuY3Rpb24gY2xpY2tIYW5kbGVyKGV2ZW50KQor
eworICAgIGRlYnVnKCdjbGljayBldmVudCBpcyBmaXJlZC4nKTsKK30KKworZnVuY3Rpb24gZGJs
Y2xpY2tIYW5kbGVyKGV2ZW50KQoreworICAgIHRlc3RGYWlsZWQoJ2RibGNsaWNrIGV2ZW50IHNo
b3VsZCBub3QgYmUgZmlyZWQuJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAg
ICB2YXIgbm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3AnKTsKKyAgICBub2RlLmFk
ZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xpY2tIYW5kbGVyLCBmYWxzZSk7CisgICAgbm9kZS5h
ZGRFdmVudExpc3RlbmVyKCdkYmxjbGljaycsIGRibGNsaWNrSGFuZGxlciwgZmFsc2UpOworCisg
ICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnRzIik7CisgICAg
dmFyIGRldGFpbHMgPSAyOworICAgIGV2ZW50LmluaXRNb3VzZUV2ZW50KCJjbGljayIsIHRydWUs
IGZhbHNlLCB3aW5kb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscywgMTAsIDEw
LCAxMCwgMTAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxsKTsKKyAgICBub2Rl
LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworfQorCit0ZXN0KCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177947</attachid>
            <date>2012-12-05 23:10:12 -0800</date>
            <delta_ts>2012-12-06 00:17:49 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-102681-20121206160736.patch</filename>
            <type>text/plain</type>
            <size>13656</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0ZDU4ZTk2OWIyMTM4ODBmMjY4NDY2NzljZmQ2ZTU1ZmI3NmVlOTJjLi5i
NGY5OTNmN2E4MTQ0ZDllZDhkMzY0ZDQ0Y2U5Y2QyNDVjYWYyMjEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzEgQEAKKzIwMTItMTItMDYgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEV2ZW50J3MgcmVsYXRlZFRhcmdldCByZS10YXJnZXRpbmcgZG9lcyBub3Qg
b2NjdXIgZm9yIG1hbnVhbGx5IGZpcmVkIG1vdXNlIGV2ZW50cyBjcmVhdGVkIGJ5IGV2ZW50Lmlu
aXRNb3VzZUV2ZW50KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDI2ODEKKworICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCisK
KyAgICAgICAgTWFrZSBzdXJlIHRoYXQgZXZlbnQncyByZWxhdGVkVGFyZ2V0IHJlLXRhcmdldGlu
ZyBvY2N1cnMgZm9yIG1vdXNlCisgICAgICAgIGV2ZW50cyBjcmVhdGVkIGJ5IGV2ZW50LmluaXRN
b3VzZUV2ZW50KCkuICBTaW5jZSB1c2VyLWdlbmVyYXRlZAorICAgICAgICBtb3VzZSBldmVudHMg
Y2FuIGhhdmUgYSByZWxhdGVkVGFyZ2V0IHdoaWNoIGlzIHNhbWUgdG8gdGhlIHRhcmdldAorICAg
ICAgICBub2RlLCB0aGUgYWxnb3JpdGhtIHdoaWNoIGNhbGN1bGF0ZXMgZXZlbnQncyBhbmNlc3Rv
cnMgaXMgYWxzbworICAgICAgICB1cGRhdGVkIHNvIHRoYXQgYW5jZXN0b3JzIGFyZSBub3Qgc2hy
dW5rIHdyb25nbHkuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvZGlzcGF0Y2gtc3ludGhl
dGljLW1vdXNlZXZlbnQuaHRtbAorICAgICAgICAgICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LWRvbS1ldmVudC1kaXNwYXRjaGluZy5odG1sCisKKyAgICAgICAgKiBkb20vRXZlbnREaXNwYXRj
aGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVsYXRlZFRhcmdldEFkanVzdGVyOjph
ZGp1c3QpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
TW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6Ok1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2
ZW50KToKKyAgICAgICAgKiBkb20vTW91c2VFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6TW91
c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6OmlzU3ludGhldGljTW91c2VFdmVudCk6CisgICAgICAg
IChNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hFdmVudCk6CisKIDIwMTItMTItMDUgIEtl
bnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0gT3B0aW1p
emUgdjhTdHJpbmdPck51bGwoKSBhbmQgdjhTdHJpbmdPclVuZGVmaW5lZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDczYWMzMTk5ZmI4M2UyMDdiYjE0MTk2ODRh
YjVhM2MzYjliNjRkYWMuLjdkMjQ0Yjc3OGJiNDgxMGJkY2Y2N2YwNWJlOWMzNTEzOTBiZjZlZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC02Miw2ICs2Miw5IEBA
IEV2ZW50UmVsYXRlZFRhcmdldEFkanVzdGVyOjpFdmVudFJlbGF0ZWRUYXJnZXRBZGp1c3RlcihQ
YXNzUmVmUHRyPE5vZGU+IG5vZGUsIFBhCiAKIHZvaWQgRXZlbnRSZWxhdGVkVGFyZ2V0QWRqdXN0
ZXI6OmFkanVzdChWZWN0b3I8RXZlbnRDb250ZXh0PiYgYW5jZXN0b3JzKQogeworICAgIC8vIFN5
bnRoZXRpYyBtb3VzZSBldmVudHMgY2FuIGhhdmUgYSByZWxhdGVkVGFyZ2V0IHdoaWNoIGlzIGlk
ZW50aWNhbCB0byB0aGUgdGFyZ2V0LgorICAgIGJvb2wgdGFyZ2V0SXNJZGVudGljYWxUb1RvUmVs
YXRlZFRhcmdldCA9IChtX25vZGUuZ2V0KCkgPT0gbV9yZWxhdGVkVGFyZ2V0LmdldCgpKTsKKwog
ICAgIFZlY3RvcjxFdmVudFRhcmdldCo+IHJlbGF0ZWRUYXJnZXRTdGFjazsKICAgICBUcmVlU2Nv
cGUqIGxhc3RUcmVlU2NvcGUgPSAwOwogICAgIGZvciAoQW5jZXN0b3JDaGFpbldhbGtlciB3YWxr
ZXIobV9yZWxhdGVkVGFyZ2V0LmdldCgpKTsgd2Fsa2VyLmdldCgpOyB3YWxrZXIucGFyZW50KCkp
IHsKQEAgLTkzLDcgKzk2LDEyIEBAIHZvaWQgRXZlbnRSZWxhdGVkVGFyZ2V0QWRqdXN0ZXI6OmFk
anVzdChWZWN0b3I8RXZlbnRDb250ZXh0PiYgYW5jZXN0b3JzKQogICAgICAgICAgICAgaXRlci0+
c2V0UmVsYXRlZFRhcmdldChhZGp1c3RlZFJlbGF0ZWRUYXJnZXQpOwogICAgICAgICB9CiAgICAg
ICAgIGxhc3RUcmVlU2NvcGUgPSBzY29wZTsKLSAgICAgICAgaWYgKGl0ZXItPnRhcmdldCgpID09
IGFkanVzdGVkUmVsYXRlZFRhcmdldCkgeworICAgICAgICBpZiAodGFyZ2V0SXNJZGVudGljYWxU
b1RvUmVsYXRlZFRhcmdldCkgeworICAgICAgICAgICAgaWYgKG1fbm9kZS0+dHJlZVNjb3BlKCkt
PnJvb3ROb2RlKCkgPT0gaXRlci0+bm9kZSgpKSB7CisgICAgICAgICAgICAgICAgYW5jZXN0b3Jz
LnNocmluayhpdGVyICsgMSAtIGFuY2VzdG9ycy5iZWdpbigpKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChpdGVyLT50YXJnZXQoKSA9
PSBhZGp1c3RlZFJlbGF0ZWRUYXJnZXQpIHsKICAgICAgICAgICAgIC8vIEV2ZW50IGRpc3BhdGNo
aW5nIHNob3VsZCBiZSBzdG9wcGVkIGhlcmUuCiAgICAgICAgICAgICBhbmNlc3RvcnMuc2hyaW5r
KGl0ZXIgLSBhbmNlc3RvcnMuYmVnaW4oKSk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZUV2ZW50LmNwcAppbmRleCBkZGUxOTM2MTVjMWI0MTU3NTUyZjc2Mzk5NzkxZTUzMDEy
Y2Q1YWY5Li5iNDgyZjBmYTY4YjUyMTJmZjk2ZTNjZGQyMDI5Y2RiM2MzZmRiMDdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL01vdXNlRXZlbnQuY3BwCkBAIC0yMDksMTMgKzIwOSwxMyBAQCBTaW11bGF0ZWRNb3Vz
ZUV2ZW50OjpTaW11bGF0ZWRNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBQYXNzUmVmUAogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxNb3VzZUV2ZW50RGlzcGF0Y2hNZWRp
YXRvcj4gTW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShQYXNzUmVmUHRyPE1vdXNl
RXZlbnQ+IG1vdXNlRXZlbnQpCitQYXNzUmVmUHRyPE1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9y
PiBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8TW91c2VFdmVu
dD4gbW91c2VFdmVudCwgTW91c2VFdmVudFR5cGUgbW91c2VFdmVudFR5cGUpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihtb3VzZUV2ZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihtb3Vz
ZUV2ZW50LCBtb3VzZUV2ZW50VHlwZSkpOwogfQogCi1Nb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRv
cjo6TW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxNb3VzZUV2ZW50PiBtb3Vz
ZUV2ZW50KQotICAgIDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKG1vdXNlRXZlbnQpCitNb3VzZUV2
ZW50RGlzcGF0Y2hNZWRpYXRvcjo6TW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0
cjxNb3VzZUV2ZW50PiBtb3VzZUV2ZW50LCBNb3VzZUV2ZW50VHlwZSBtb3VzZUV2ZW50VHlwZSkK
KyAgICA6IEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihtb3VzZUV2ZW50KSwgbV9tb3VzZUV2ZW50VHlw
ZShtb3VzZUV2ZW50VHlwZSkKIHsKIH0KIApAQCAtMjMyLDE0ICsyMzIsMTcgQEAgYm9vbCBNb3Vz
ZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZGlzcGF0Y2hFdmVudChFdmVudERpc3BhdGNoZXIqIGRp
c3BhdGNoZXIpIGNvbnMKICAgICBpZiAoZXZlbnQoKS0+dHlwZSgpLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7IC8vIFNob3VsZG4ndCBoYXBwZW4uCiAKKyAgICBBU1NFUlQoaXNTeW50
aGV0aWNNb3VzZUV2ZW50KCkgfHwgIWV2ZW50KCktPnRhcmdldCgpIHx8IGV2ZW50KCktPnRhcmdl
dCgpICE9IGV2ZW50KCktPnJlbGF0ZWRUYXJnZXQoKSk7CisKICAgICBFdmVudFRhcmdldCogcmVs
YXRlZFRhcmdldCA9IGV2ZW50KCktPnJlbGF0ZWRUYXJnZXQoKTsKICAgICBkaXNwYXRjaGVyLT5h
ZGp1c3RSZWxhdGVkVGFyZ2V0KGV2ZW50KCksIHJlbGF0ZWRUYXJnZXQpOwogCiAgICAgZGlzcGF0
Y2hlci0+ZGlzcGF0Y2hFdmVudChldmVudCgpKTsKICAgICBib29sIHN3YWxsb3dFdmVudCA9IGV2
ZW50KCktPmRlZmF1bHRIYW5kbGVkKCkgfHwgZXZlbnQoKS0+ZGVmYXVsdFByZXZlbnRlZCgpOwog
Ci0gICAgaWYgKGV2ZW50KCktPnR5cGUoKSAhPSBldmVudE5hbWVzKCkuY2xpY2tFdmVudCB8fCBl
dmVudCgpLT5kZXRhaWwoKSAhPSAyKQorICAgIGlmIChpc1N5bnRoZXRpY01vdXNlRXZlbnQoKSB8
fCBldmVudCgpLT50eXBlKCkgIT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQgfHwgZXZlbnQoKS0+
ZGV0YWlsKCkgIT0gMikKICAgICAgICAgcmV0dXJuICFzd2FsbG93RXZlbnQ7CisKICAgICAvLyBT
cGVjaWFsIGNhc2U6IElmIGl0J3MgYSBkb3VibGUgY2xpY2sgZXZlbnQsIHdlIGFsc28gc2VuZCB0
aGUgZGJsY2xpY2sgZXZlbnQuIFRoaXMgaXMgbm90IHBhcnQKICAgICAvLyBvZiB0aGUgRE9NIHNw
ZWNzLCBidXQgaXMgdXNlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvbmRibGNsaWNrPSIi
IGF0dHJpYnV0ZS4gVGhpcyBpcyB0cmVhdGVkCiAgICAgLy8gYXMgYSBzZXBhcmF0ZSBldmVudCBp
biBvdGhlciBET00tY29tcGxpYW50IGJyb3dzZXJzIGxpa2UgRmlyZWZveCwgYW5kIHNvIHdlIGRv
IHRoZSBzYW1lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKaW5kZXggYTFjNzkyMmI5YzdkNzRmMmI4
ZDE2NGU4NDA4OWVjZDQ1N2E4Y2M1ZS4uMGQ2ZjkwYWFmMmM4ZDk3YzFhOTY5NmEyY2EzZWM3YzFm
YmM5MWViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBAIC0xMTUsMTMgKzExNSwxNiBAQCBw
cml2YXRlOgogCiBjbGFzcyBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvciA6IHB1YmxpYyBFdmVu
dERpc3BhdGNoTWVkaWF0b3IgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1vdXNl
RXZlbnREaXNwYXRjaE1lZGlhdG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxNb3VzZUV2ZW50Pik7Cisg
ICAgZW51bSBNb3VzZUV2ZW50VHlwZSB7IFN5bnRoZXRpY01vdXNlRXZlbnQsIE5vblN5bnRoZXRp
Y01vdXNlRXZlbnR9OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1vdXNlRXZlbnREaXNwYXRjaE1l
ZGlhdG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxNb3VzZUV2ZW50PiwgTW91c2VFdmVudFR5cGUgPSBO
b25TeW50aGV0aWNNb3VzZUV2ZW50KTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNb3VzZUV2
ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+KTsKKyAgICBleHBsaWNp
dCBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+LCBNb3Vz
ZUV2ZW50VHlwZSk7CiAgICAgTW91c2VFdmVudCogZXZlbnQoKSBjb25zdDsKIAogICAgIHZpcnR1
YWwgYm9vbCBkaXNwYXRjaEV2ZW50KEV2ZW50RGlzcGF0Y2hlciopIGNvbnN0OworICAgIGJvb2wg
aXNTeW50aGV0aWNNb3VzZUV2ZW50KCkgY29uc3QgeyBtX21vdXNlRXZlbnRUeXBlID09IFN5bnRo
ZXRpY01vdXNlRXZlbnQ7IH0KKyAgICBNb3VzZUV2ZW50VHlwZSBtX21vdXNlRXZlbnRUeXBlOwog
fTsKIAogaW5saW5lIE1vdXNlRXZlbnQqIHRvTW91c2VFdmVudChFdmVudCogZXZlbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKaW5kZXggNGFhNzcyYzM2ZGMwOTc2NTdhYTBmY2U5MmZhZDMzYmFjMTI0YjNjYy4u
YzcwOGE4NGM5ZjliZjcwM2Q5YTMxODY3NTdkMDc1OTYxYTcxZDgwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cApAQCAtMjUyMiw2ICsyNTIyLDggQEAgdm9pZCBOb2RlOjpkaXNwYXRjaFNjb3BlZEV2ZW50RGlz
cGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPEV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4KIAogYm9vbCBO
b2RlOjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogeworICAgIGlmIChl
dmVudC0+aXNNb3VzZUV2ZW50KCkpCisgICAgICAgIHJldHVybiBFdmVudERpc3BhdGNoZXI6OmRp
c3BhdGNoRXZlbnQodGhpcywgTW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShhZG9w
dFJlZih0b01vdXNlRXZlbnQoZXZlbnQubGVha1JlZigpKSksIE1vdXNlRXZlbnREaXNwYXRjaE1l
ZGlhdG9yOjpTeW50aGV0aWNNb3VzZUV2ZW50KSk7CiAgICAgcmV0dXJuIEV2ZW50RGlzcGF0Y2hl
cjo6ZGlzcGF0Y2hFdmVudCh0aGlzLCBFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShldmVu
dCkpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggOWVjYmM4NWUwNTA3MDFlMDMyYjc1NzY2N2Q5MzA4MzQzNDNlYjM1
ZC4uOTRjMjFlYzAzOTQ1ODMwZGM3MzVkNTMzOGJlZGNhMzljNGM1NjFjMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDEyLTEyLTA2ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4K
KworICAgICAgICBFdmVudCdzIHJlbGF0ZWRUYXJnZXQgcmUtdGFyZ2V0aW5nIGRvZXMgbm90IG9j
Y3VyIGZvciBtYW51YWxseSBmaXJlZCBtb3VzZSBldmVudHMgY3JlYXRlZCBieSBldmVudC5pbml0
TW91c2VFdmVudCgpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAyNjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgorCisg
ICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRp
c3BhdGNoaW5nLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvZGlzcGF0Y2gtc3ludGhldGlj
LW1vdXNlZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9k
aXNwYXRjaC1zeW50aGV0aWMtbW91c2VldmVudC5odG1sOiBBZGRlZC4KKwogMjAxMi0xMi0wNSAg
QW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNd
IEJsb2NrcyBkb24ndCByZWxheW91dCBjaGlsZHJlbiBpZiB0aGUgd2lkdGggb2YgYSByZWdpb24g
Y2hhbmdlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1k
b20tZXZlbnQtZGlzcGF0Y2hpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmctZXhwZWN0ZWQudHh0CmluZGV4IDFm
ODM1ZmY2YTM2MjY1YjUwYmE3YmFlMTUyZmYxZTM2MGRjNTI0ZmYuLmVkMDliZmZjN2QzYzU5NzNh
ZDUyZDFhOWU2MWQ5ODMxM2EzZTA2NjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1l
eHBlY3RlZC50eHQKQEAgLTQzNSw2ICs0MzUsMzUgQEAgQ2xpY2sgbm9uLXVzZWQtZmFsbGJhY2sg
bm9kZQogICAgICBAc2hhZG93LXJvb3QgKHRhcmdldDogbm9uLXVzZWQtZmFsbGJhY2spCiAgICAg
IEBBICh0YXJnZXQ6IEEpCiAgICAgIEB0b3AgKHRhcmdldDogQSkKKworCitDb21wb3NlZCBTaGFk
b3cgVHJlZSB3aWxsIGJlOgorRElWCSBpZD1zYW5kYm94CisJRElWCSBpZD10b3AKKwkJRElWCSBp
ZD1ob3N0CisJCQlESVYJIGlkPWRpdjEKKwkJCURJVgkgaWQ9ZGl2MgorCisKKyAgbW91c2VvdXQK
KworICBtb3VzZW92ZXIKKyAgICAgQGRpdjIgKHRhcmdldDogZGl2MikgKHJlbGF0ZWQ6IGRpdjEp
CisgICAgIEBzaGFkb3ctcm9vdCAodGFyZ2V0OiBkaXYyKSAocmVsYXRlZDogZGl2MSkKKworCitD
b21wb3NlZCBTaGFkb3cgVHJlZSB3aWxsIGJlOgorRElWCSBpZD1zYW5kYm94CisJRElWCSBpZD10
b3AKKwkJRElWCSBpZD1ob3N0CisJCQlESVYJIGlkPWRpdjEKKworCisgIG1vdXNlb3V0CisKKyAg
bW91c2VvdmVyCisgICAgIEBkaXYxICh0YXJnZXQ6IGRpdjEpIChyZWxhdGVkOiBkaXYxKQorICAg
ICBAc2hhZG93LXJvb3QgKHRhcmdldDogZGl2MSkgKHJlbGF0ZWQ6IGRpdjEpCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGlu
Zy5odG1sCmluZGV4IGUyOTQ3MGEyYjVkOTJmOGY4MDlkNmNiYWZjMzRiNDdkNDRkMDg5YTYuLmI2
ZTMzMDYzZmFhZTFlNGE5ODk4YmJlYjAzYjFjMDk3NDk0MjZiZTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0
Y2hpbmcuaHRtbApAQCAtMzc4LDYgKzM3OCw1OCBAQCBmdW5jdGlvbiB0ZXN0RXZlbnRzT25GYWxs
YmFja0VsZW1lbnRzKCkKICAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnY2xpY2snKTsKIH0KIAor
ZnVuY3Rpb24gdGVzdEV2ZW50c0ZpcmVkTWFudWFsbHkoKQoreworICAgIHNhbmRib3guaW5uZXJI
VE1MID0gJyc7CisgICAgc2FuZGJveC5hcHBlbmRDaGlsZCgKKyAgICAgICAgY3JlYXRlRE9NKCdk
aXYnLCB7J2lkJzogJ3RvcCd9LAorICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2lkJzogJ2hvc3QnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dS
b290KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAnZGl2MSd9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2RpdjInfSkpKSkpOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcnMoWyd0
b3AnLCAnaG9zdCcsICdob3N0LycsICdob3N0L2RpdjEnLCAnaG9zdC9kaXYyJ10pOworICAgIGdl
dE5vZGVJblNoYWRvd1RyZWVTdGFjaygnaG9zdC8nKS5pZCA9ICdzaGFkb3ctcm9vdCc7CisgICAg
c2hvd1NhbmRib3hUcmVlKCk7CisKKyAgICB2YXIgZGl2MSA9IGdldE5vZGVJblNoYWRvd1RyZWVT
dGFjaygnaG9zdC9kaXYxJyk7CisgICAgdmFyIGRpdjIgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3Rh
Y2soJ2hvc3QvZGl2MicpOworCisgICAgY2xlYXJFdmVudFJlY29yZHMoKTsKKyAgICB2YXIgZXZl
bnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKTsKKyAgICBldmVudC5pbml0
TW91c2VFdmVudCgibW91c2VvdmVyIiwgdHJ1ZSwgZmFsc2UsIHdpbmRvdywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAwLCAxMCwgMTAsIDEwLCAxMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIDAsIGRpdjEpOworICAgIGRpdjIuZGlzcGF0Y2hFdmVudChldmVudCk7CisKKyAgICBkZWJ1
Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2VvdXQnKTsKKyAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgn
bW91c2VvdmVyJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RFdmVudHNGaXJlZE1hbnVhbGx5V2l0aFJl
bGF0ZWRUYXJnZXRTYW1lVG9UYXJnZXQoKQoreworICAgIHNhbmRib3guaW5uZXJIVE1MID0gJyc7
CisgICAgc2FuZGJveC5hcHBlbmRDaGlsZCgKKyAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ3RvcCd9LAorICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hv
c3QnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2
MSd9KSkpKSk7CisKKyAgICBhZGRFdmVudExpc3RlbmVycyhbJ3RvcCcsICdob3N0JywgJ2hvc3Qv
JywgJ2hvc3QvZGl2MSddKTsKKyAgICBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2hvc3QvJyku
aWQgPSAnc2hhZG93LXJvb3QnOworICAgIHNob3dTYW5kYm94VHJlZSgpOworCisgICAgdmFyIGRp
djEgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2hvc3QvZGl2MScpOworCisgICAgY2xlYXJF
dmVudFJlY29yZHMoKTsKKyAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91
c2VFdmVudHMiKTsKKyAgICBldmVudC5pbml0TW91c2VFdmVudCgibW91c2VvdmVyIiwgdHJ1ZSwg
ZmFsc2UsIHdpbmRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxMCwgMTAsIDEwLCAx
MCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGRpdjEpOworICAgIGRpdjEuZGlzcGF0
Y2hFdmVudChldmVudCk7CisKKyAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2VvdXQnKTsK
KyAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2VvdmVyJyk7Cit9CisKIGZ1bmN0aW9uIHRl
c3QoKQogewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKQEAgLTM5Myw2ICs0NDUsOCBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICB0ZXN0RXZlbnRzT25NdWx0aXBsZVNoYWRvd1Jvb3RzKCk7CiAg
ICAgdGVzdEV2ZW50c09uTm9uRGlzdHJpYnV0ZWROb2RlcygpOwogICAgIHRlc3RFdmVudHNPbkZh
bGxiYWNrRWxlbWVudHMoKTsKKyAgICB0ZXN0RXZlbnRzRmlyZWRNYW51YWxseSgpOworICAgIHRl
c3RFdmVudHNGaXJlZE1hbnVhbGx5V2l0aFJlbGF0ZWRUYXJnZXRTYW1lVG9UYXJnZXQoKTsKIH0K
IAogdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGlzcGF0Y2gt
c3ludGhldGljLW1vdXNlZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvZGlzcGF0Y2gtc3ludGhldGljLW1vdXNlZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZlNjU3YTQ5ZmUwYTEzYWM2YWI5NGUxOWZiYWJkMTJiZGU4N2Y0ZGIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kaXNwYXRjaC1zeW50aGV0aWMtbW91c2VldmVu
dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdG8gZW5zdXJlIHRoYXQgZGJs
Y2xpY2sgZXZlbnQgaXMgbm90IGZpcmVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworY2xpY2sgZXZlbnQgaXMgZmlyZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
ZGlzcGF0Y2gtc3ludGhldGljLW1vdXNlZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2Rpc3BhdGNoLXN5bnRoZXRpYy1tb3VzZWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdhNzUz
NjhlZWFmZmQyNGY0ZTk3MjA5N2U0OWY5MDE2MmExYWZlYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Rpc3BhdGNoLXN5bnRoZXRpYy1tb3VzZWV2ZW50Lmh0bWwK
QEAgLTAsMCArMSw0NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0ndG9wJz4KKzwvZGl2
PgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Rz
IHRvIGVuc3VyZSB0aGF0IGRibGNsaWNrIGV2ZW50IGlzIG5vdCBmaXJlZC4iKTsKKworZnVuY3Rp
b24gY2xpY2tIYW5kbGVyKGV2ZW50KQoreworICAgIGRlYnVnKCdjbGljayBldmVudCBpcyBmaXJl
ZC4nKTsKK30KKworZnVuY3Rpb24gZGJsY2xpY2tIYW5kbGVyKGV2ZW50KQoreworICAgIHRlc3RG
YWlsZWQoJ2RibGNsaWNrIGV2ZW50IHNob3VsZCBub3QgYmUgZmlyZWQuJyk7Cit9CisKK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIgbm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0b3AnKTsKKyAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xpY2tIYW5k
bGVyLCBmYWxzZSk7CisgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdkYmxjbGljaycsIGRibGNs
aWNrSGFuZGxlciwgZmFsc2UpOworCisgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZl
bnQoIk1vdXNlRXZlbnRzIik7CisgICAgdmFyIGRldGFpbHMgPSAyOworICAgIGV2ZW50LmluaXRN
b3VzZUV2ZW50KCJjbGljayIsIHRydWUsIGZhbHNlLCB3aW5kb3csCisgICAgICAgICAgICAgICAg
ICAgICAgICAgZGV0YWlscywgMTAsIDEwLCAxMCwgMTAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCAwLCBudWxsKTsKKyAgICBub2RlLmRpc3BhdGNoRXZlbnQoZXZlbnQpOworfQorCit0ZXN0
KCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177960</attachid>
            <date>2012-12-06 00:17:53 -0800</date>
            <delta_ts>2012-12-06 18:24:00 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-102681-20121206171517.patch</filename>
            <type>text/plain</type>
            <size>13663</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0ZDU4ZTk2OWIyMTM4ODBmMjY4NDY2NzljZmQ2ZTU1ZmI3NmVlOTJjLi5i
NGY5OTNmN2E4MTQ0ZDllZDhkMzY0ZDQ0Y2U5Y2QyNDVjYWYyMjEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzEgQEAKKzIwMTItMTItMDYgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEV2ZW50J3MgcmVsYXRlZFRhcmdldCByZS10YXJnZXRpbmcgZG9lcyBub3Qg
b2NjdXIgZm9yIG1hbnVhbGx5IGZpcmVkIG1vdXNlIGV2ZW50cyBjcmVhdGVkIGJ5IGV2ZW50Lmlu
aXRNb3VzZUV2ZW50KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDI2ODEKKworICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCisK
KyAgICAgICAgTWFrZSBzdXJlIHRoYXQgZXZlbnQncyByZWxhdGVkVGFyZ2V0IHJlLXRhcmdldGlu
ZyBvY2N1cnMgZm9yIG1vdXNlCisgICAgICAgIGV2ZW50cyBjcmVhdGVkIGJ5IGV2ZW50LmluaXRN
b3VzZUV2ZW50KCkuICBTaW5jZSB1c2VyLWdlbmVyYXRlZAorICAgICAgICBtb3VzZSBldmVudHMg
Y2FuIGhhdmUgYSByZWxhdGVkVGFyZ2V0IHdoaWNoIGlzIHNhbWUgdG8gdGhlIHRhcmdldAorICAg
ICAgICBub2RlLCB0aGUgYWxnb3JpdGhtIHdoaWNoIGNhbGN1bGF0ZXMgZXZlbnQncyBhbmNlc3Rv
cnMgaXMgYWxzbworICAgICAgICB1cGRhdGVkIHNvIHRoYXQgYW5jZXN0b3JzIGFyZSBub3Qgc2hy
dW5rIHdyb25nbHkuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvZGlzcGF0Y2gtc3ludGhl
dGljLW1vdXNlZXZlbnQuaHRtbAorICAgICAgICAgICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LWRvbS1ldmVudC1kaXNwYXRjaGluZy5odG1sCisKKyAgICAgICAgKiBkb20vRXZlbnREaXNwYXRj
aGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVsYXRlZFRhcmdldEFkanVzdGVyOjph
ZGp1c3QpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
TW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6Ok1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2
ZW50KToKKyAgICAgICAgKiBkb20vTW91c2VFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6TW91
c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6OmlzU3ludGhldGljTW91c2VFdmVudCk6CisgICAgICAg
IChNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hFdmVudCk6CisKIDIwMTItMTItMDUgIEtl
bnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0gT3B0aW1p
emUgdjhTdHJpbmdPck51bGwoKSBhbmQgdjhTdHJpbmdPclVuZGVmaW5lZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDczYWMzMTk5ZmI4M2UyMDdiYjE0MTk2ODRh
YjVhM2MzYjliNjRkYWMuLjdkMjQ0Yjc3OGJiNDgxMGJkY2Y2N2YwNWJlOWMzNTEzOTBiZjZlZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC02Miw2ICs2Miw5IEBA
IEV2ZW50UmVsYXRlZFRhcmdldEFkanVzdGVyOjpFdmVudFJlbGF0ZWRUYXJnZXRBZGp1c3RlcihQ
YXNzUmVmUHRyPE5vZGU+IG5vZGUsIFBhCiAKIHZvaWQgRXZlbnRSZWxhdGVkVGFyZ2V0QWRqdXN0
ZXI6OmFkanVzdChWZWN0b3I8RXZlbnRDb250ZXh0PiYgYW5jZXN0b3JzKQogeworICAgIC8vIFN5
bnRoZXRpYyBtb3VzZSBldmVudHMgY2FuIGhhdmUgYSByZWxhdGVkVGFyZ2V0IHdoaWNoIGlzIGlk
ZW50aWNhbCB0byB0aGUgdGFyZ2V0LgorICAgIGJvb2wgdGFyZ2V0SXNJZGVudGljYWxUb1RvUmVs
YXRlZFRhcmdldCA9IChtX25vZGUuZ2V0KCkgPT0gbV9yZWxhdGVkVGFyZ2V0LmdldCgpKTsKKwog
ICAgIFZlY3RvcjxFdmVudFRhcmdldCo+IHJlbGF0ZWRUYXJnZXRTdGFjazsKICAgICBUcmVlU2Nv
cGUqIGxhc3RUcmVlU2NvcGUgPSAwOwogICAgIGZvciAoQW5jZXN0b3JDaGFpbldhbGtlciB3YWxr
ZXIobV9yZWxhdGVkVGFyZ2V0LmdldCgpKTsgd2Fsa2VyLmdldCgpOyB3YWxrZXIucGFyZW50KCkp
IHsKQEAgLTkzLDcgKzk2LDEyIEBAIHZvaWQgRXZlbnRSZWxhdGVkVGFyZ2V0QWRqdXN0ZXI6OmFk
anVzdChWZWN0b3I8RXZlbnRDb250ZXh0PiYgYW5jZXN0b3JzKQogICAgICAgICAgICAgaXRlci0+
c2V0UmVsYXRlZFRhcmdldChhZGp1c3RlZFJlbGF0ZWRUYXJnZXQpOwogICAgICAgICB9CiAgICAg
ICAgIGxhc3RUcmVlU2NvcGUgPSBzY29wZTsKLSAgICAgICAgaWYgKGl0ZXItPnRhcmdldCgpID09
IGFkanVzdGVkUmVsYXRlZFRhcmdldCkgeworICAgICAgICBpZiAodGFyZ2V0SXNJZGVudGljYWxU
b1RvUmVsYXRlZFRhcmdldCkgeworICAgICAgICAgICAgaWYgKG1fbm9kZS0+dHJlZVNjb3BlKCkt
PnJvb3ROb2RlKCkgPT0gaXRlci0+bm9kZSgpKSB7CisgICAgICAgICAgICAgICAgYW5jZXN0b3Jz
LnNocmluayhpdGVyICsgMSAtIGFuY2VzdG9ycy5iZWdpbigpKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChpdGVyLT50YXJnZXQoKSA9
PSBhZGp1c3RlZFJlbGF0ZWRUYXJnZXQpIHsKICAgICAgICAgICAgIC8vIEV2ZW50IGRpc3BhdGNo
aW5nIHNob3VsZCBiZSBzdG9wcGVkIGhlcmUuCiAgICAgICAgICAgICBhbmNlc3RvcnMuc2hyaW5r
KGl0ZXIgLSBhbmNlc3RvcnMuYmVnaW4oKSk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZUV2ZW50LmNwcAppbmRleCBkZGUxOTM2MTVjMWI0MTU3NTUyZjc2Mzk5NzkxZTUzMDEy
Y2Q1YWY5Li5iNDgyZjBmYTY4YjUyMTJmZjk2ZTNjZGQyMDI5Y2RiM2MzZmRiMDdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL01vdXNlRXZlbnQuY3BwCkBAIC0yMDksMTMgKzIwOSwxMyBAQCBTaW11bGF0ZWRNb3Vz
ZUV2ZW50OjpTaW11bGF0ZWRNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBQYXNzUmVmUAogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxNb3VzZUV2ZW50RGlzcGF0Y2hNZWRp
YXRvcj4gTW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShQYXNzUmVmUHRyPE1vdXNl
RXZlbnQ+IG1vdXNlRXZlbnQpCitQYXNzUmVmUHRyPE1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9y
PiBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8TW91c2VFdmVu
dD4gbW91c2VFdmVudCwgTW91c2VFdmVudFR5cGUgbW91c2VFdmVudFR5cGUpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihtb3VzZUV2ZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihtb3Vz
ZUV2ZW50LCBtb3VzZUV2ZW50VHlwZSkpOwogfQogCi1Nb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRv
cjo6TW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxNb3VzZUV2ZW50PiBtb3Vz
ZUV2ZW50KQotICAgIDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKG1vdXNlRXZlbnQpCitNb3VzZUV2
ZW50RGlzcGF0Y2hNZWRpYXRvcjo6TW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0
cjxNb3VzZUV2ZW50PiBtb3VzZUV2ZW50LCBNb3VzZUV2ZW50VHlwZSBtb3VzZUV2ZW50VHlwZSkK
KyAgICA6IEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihtb3VzZUV2ZW50KSwgbV9tb3VzZUV2ZW50VHlw
ZShtb3VzZUV2ZW50VHlwZSkKIHsKIH0KIApAQCAtMjMyLDE0ICsyMzIsMTcgQEAgYm9vbCBNb3Vz
ZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZGlzcGF0Y2hFdmVudChFdmVudERpc3BhdGNoZXIqIGRp
c3BhdGNoZXIpIGNvbnMKICAgICBpZiAoZXZlbnQoKS0+dHlwZSgpLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7IC8vIFNob3VsZG4ndCBoYXBwZW4uCiAKKyAgICBBU1NFUlQoaXNTeW50
aGV0aWNNb3VzZUV2ZW50KCkgfHwgIWV2ZW50KCktPnRhcmdldCgpIHx8IGV2ZW50KCktPnRhcmdl
dCgpICE9IGV2ZW50KCktPnJlbGF0ZWRUYXJnZXQoKSk7CisKICAgICBFdmVudFRhcmdldCogcmVs
YXRlZFRhcmdldCA9IGV2ZW50KCktPnJlbGF0ZWRUYXJnZXQoKTsKICAgICBkaXNwYXRjaGVyLT5h
ZGp1c3RSZWxhdGVkVGFyZ2V0KGV2ZW50KCksIHJlbGF0ZWRUYXJnZXQpOwogCiAgICAgZGlzcGF0
Y2hlci0+ZGlzcGF0Y2hFdmVudChldmVudCgpKTsKICAgICBib29sIHN3YWxsb3dFdmVudCA9IGV2
ZW50KCktPmRlZmF1bHRIYW5kbGVkKCkgfHwgZXZlbnQoKS0+ZGVmYXVsdFByZXZlbnRlZCgpOwog
Ci0gICAgaWYgKGV2ZW50KCktPnR5cGUoKSAhPSBldmVudE5hbWVzKCkuY2xpY2tFdmVudCB8fCBl
dmVudCgpLT5kZXRhaWwoKSAhPSAyKQorICAgIGlmIChpc1N5bnRoZXRpY01vdXNlRXZlbnQoKSB8
fCBldmVudCgpLT50eXBlKCkgIT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQgfHwgZXZlbnQoKS0+
ZGV0YWlsKCkgIT0gMikKICAgICAgICAgcmV0dXJuICFzd2FsbG93RXZlbnQ7CisKICAgICAvLyBT
cGVjaWFsIGNhc2U6IElmIGl0J3MgYSBkb3VibGUgY2xpY2sgZXZlbnQsIHdlIGFsc28gc2VuZCB0
aGUgZGJsY2xpY2sgZXZlbnQuIFRoaXMgaXMgbm90IHBhcnQKICAgICAvLyBvZiB0aGUgRE9NIHNw
ZWNzLCBidXQgaXMgdXNlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvbmRibGNsaWNrPSIi
IGF0dHJpYnV0ZS4gVGhpcyBpcyB0cmVhdGVkCiAgICAgLy8gYXMgYSBzZXBhcmF0ZSBldmVudCBp
biBvdGhlciBET00tY29tcGxpYW50IGJyb3dzZXJzIGxpa2UgRmlyZWZveCwgYW5kIHNvIHdlIGRv
IHRoZSBzYW1lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKaW5kZXggYTFjNzkyMmI5YzdkNzRmMmI4
ZDE2NGU4NDA4OWVjZDQ1N2E4Y2M1ZS4uY2JhNzFhN2EzYWVkYzhjNjQ2OWUxZDA4ZjFkZDVkZTAx
YmE1YTYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBAIC0xMTUsMTMgKzExNSwxNiBAQCBw
cml2YXRlOgogCiBjbGFzcyBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvciA6IHB1YmxpYyBFdmVu
dERpc3BhdGNoTWVkaWF0b3IgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1vdXNl
RXZlbnREaXNwYXRjaE1lZGlhdG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxNb3VzZUV2ZW50Pik7Cisg
ICAgZW51bSBNb3VzZUV2ZW50VHlwZSB7IFN5bnRoZXRpY01vdXNlRXZlbnQsIE5vblN5bnRoZXRp
Y01vdXNlRXZlbnR9OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1vdXNlRXZlbnREaXNwYXRjaE1l
ZGlhdG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxNb3VzZUV2ZW50PiwgTW91c2VFdmVudFR5cGUgPSBO
b25TeW50aGV0aWNNb3VzZUV2ZW50KTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNb3VzZUV2
ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+KTsKKyAgICBleHBsaWNp
dCBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+LCBNb3Vz
ZUV2ZW50VHlwZSk7CiAgICAgTW91c2VFdmVudCogZXZlbnQoKSBjb25zdDsKIAogICAgIHZpcnR1
YWwgYm9vbCBkaXNwYXRjaEV2ZW50KEV2ZW50RGlzcGF0Y2hlciopIGNvbnN0OworICAgIGJvb2wg
aXNTeW50aGV0aWNNb3VzZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9tb3VzZUV2ZW50VHlwZSA9
PSBTeW50aGV0aWNNb3VzZUV2ZW50OyB9CisgICAgTW91c2VFdmVudFR5cGUgbV9tb3VzZUV2ZW50
VHlwZTsKIH07CiAKIGlubGluZSBNb3VzZUV2ZW50KiB0b01vdXNlRXZlbnQoRXZlbnQqIGV2ZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCmluZGV4IDRhYTc3MmMzNmRjMDk3NjU3YWEwZmNlOTJmYWQzM2JhYzEy
NGIzY2MuLmM3MDhhODRjOWY5YmY3MDNkOWEzMTg2NzU3ZDA3NTk2MWE3MWQ4MDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKQEAgLTI1MjIsNiArMjUyMiw4IEBAIHZvaWQgTm9kZTo6ZGlzcGF0Y2hTY29wZWRF
dmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxFdmVudERpc3BhdGNoTWVkaWF0b3I+CiAK
IGJvb2wgTm9kZTo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsKKyAg
ICBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKQorICAgICAgICByZXR1cm4gRXZlbnREaXNwYXRj
aGVyOjpkaXNwYXRjaEV2ZW50KHRoaXMsIE1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVh
dGUoYWRvcHRSZWYodG9Nb3VzZUV2ZW50KGV2ZW50LmxlYWtSZWYoKSkpLCBNb3VzZUV2ZW50RGlz
cGF0Y2hNZWRpYXRvcjo6U3ludGhldGljTW91c2VFdmVudCkpOwogICAgIHJldHVybiBFdmVudERp
c3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQodGhpcywgRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVh
dGUoZXZlbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDllY2JjODVlMDUwNzAxZTAzMmI3NTc2NjdkOTMwODM0
MzQzZWIzNWQuLjk0YzIxZWMwMzk0NTgzMGRjNzM1ZDUzMzhiZWRjYTM5YzRjNTYxYzEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMi0wNiAgSGF5YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgRXZlbnQncyByZWxhdGVkVGFyZ2V0IHJlLXRhcmdldGluZyBkb2Vz
IG5vdCBvY2N1ciBmb3IgbWFudWFsbHkgZmlyZWQgbW91c2UgZXZlbnRzIGNyZWF0ZWQgYnkgZXZl
bnQuaW5pdE1vdXNlRXZlbnQoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMjY4MQorCisgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtv
di4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNo
aW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1l
dmVudC1kaXNwYXRjaGluZy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL2Rpc3BhdGNoLXN5
bnRoZXRpYy1tb3VzZWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvZGlzcGF0Y2gtc3ludGhldGljLW1vdXNlZXZlbnQuaHRtbDogQWRkZWQuCisKIDIwMTIt
MTItMDUgIEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBS
ZWdpb25zXSBCbG9ja3MgZG9uJ3QgcmVsYXlvdXQgY2hpbGRyZW4gaWYgdGhlIHdpZHRoIG9mIGEg
cmVnaW9uIGNoYW5nZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLWV4cGVjdGVkLnR4dApp
bmRleCAxZjgzNWZmNmEzNjI2NWI1MGJhN2JhZTE1MmZmMWUzNjBkYzUyNGZmLi5lZDA5YmZmYzdk
M2M1OTczYWQ1MmQxYTllNjFkOTgzMTNhM2UwNjY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0
Y2hpbmctZXhwZWN0ZWQudHh0CkBAIC00MzUsNiArNDM1LDM1IEBAIENsaWNrIG5vbi11c2VkLWZh
bGxiYWNrIG5vZGUKICAgICAgQHNoYWRvdy1yb290ICh0YXJnZXQ6IG5vbi11c2VkLWZhbGxiYWNr
KQogICAgICBAQSAodGFyZ2V0OiBBKQogICAgICBAdG9wICh0YXJnZXQ6IEEpCisKKworQ29tcG9z
ZWQgU2hhZG93IFRyZWUgd2lsbCBiZToKK0RJVgkgaWQ9c2FuZGJveAorCURJVgkgaWQ9dG9wCisJ
CURJVgkgaWQ9aG9zdAorCQkJRElWCSBpZD1kaXYxCisJCQlESVYJIGlkPWRpdjIKKworCisgIG1v
dXNlb3V0CisKKyAgbW91c2VvdmVyCisgICAgIEBkaXYyICh0YXJnZXQ6IGRpdjIpIChyZWxhdGVk
OiBkaXYxKQorICAgICBAc2hhZG93LXJvb3QgKHRhcmdldDogZGl2MikgKHJlbGF0ZWQ6IGRpdjEp
CisKKworQ29tcG9zZWQgU2hhZG93IFRyZWUgd2lsbCBiZToKK0RJVgkgaWQ9c2FuZGJveAorCURJ
VgkgaWQ9dG9wCisJCURJVgkgaWQ9aG9zdAorCQkJRElWCSBpZD1kaXYxCisKKworICBtb3VzZW91
dAorCisgIG1vdXNlb3ZlcgorICAgICBAZGl2MSAodGFyZ2V0OiBkaXYxKSAocmVsYXRlZDogZGl2
MSkKKyAgICAgQHNoYWRvdy1yb290ICh0YXJnZXQ6IGRpdjEpIChyZWxhdGVkOiBkaXYxKQogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlz
cGF0Y2hpbmcuaHRtbAppbmRleCBlMjk0NzBhMmI1ZDkyZjhmODA5ZDZjYmFmYzM0YjQ3ZDQ0ZDA4
OWE2Li5iNmUzMzA2M2ZhYWUxZTRhOTg5OGJiZWIwM2IxYzA5NzQ5NDI2YmUzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGlu
Zy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9tLWV2ZW50
LWRpc3BhdGNoaW5nLmh0bWwKQEAgLTM3OCw2ICszNzgsNTggQEAgZnVuY3Rpb24gdGVzdEV2ZW50
c09uRmFsbGJhY2tFbGVtZW50cygpCiAgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ2NsaWNrJyk7
CiB9CiAKK2Z1bmN0aW9uIHRlc3RFdmVudHNGaXJlZE1hbnVhbGx5KCkKK3sKKyAgICBzYW5kYm94
LmlubmVySFRNTCA9ICcnOworICAgIHNhbmRib3guYXBwZW5kQ2hpbGQoCisgICAgICAgIGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICd0b3AnfSwKKyAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
ZGl2JywgeydpZCc6ICdob3N0J30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
U2hhZG93Um9vdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdk
aXYnLCB7J2lkJzogJ2RpdjEnfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkaXYyJ30pKSkpKTsKKworICAgIGFkZEV2ZW50TGlzdGVu
ZXJzKFsndG9wJywgJ2hvc3QnLCAnaG9zdC8nLCAnaG9zdC9kaXYxJywgJ2hvc3QvZGl2MiddKTsK
KyAgICBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2hvc3QvJykuaWQgPSAnc2hhZG93LXJvb3Qn
OworICAgIHNob3dTYW5kYm94VHJlZSgpOworCisgICAgdmFyIGRpdjEgPSBnZXROb2RlSW5TaGFk
b3dUcmVlU3RhY2soJ2hvc3QvZGl2MScpOworICAgIHZhciBkaXYyID0gZ2V0Tm9kZUluU2hhZG93
VHJlZVN0YWNrKCdob3N0L2RpdjInKTsKKworICAgIGNsZWFyRXZlbnRSZWNvcmRzKCk7CisgICAg
dmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnRzIik7CisgICAgZXZl
bnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNlb3ZlciIsIHRydWUsIGZhbHNlLCB3aW5kb3csCisgICAg
ICAgICAgICAgICAgICAgICAgICAgMCwgMTAsIDEwLCAxMCwgMTAsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCAwLCBkaXYxKTsKKyAgICBkaXYyLmRpc3BhdGNoRXZlbnQoZXZlbnQpOworCisg
ICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ21vdXNlb3V0Jyk7CisgICAgZGVidWdEaXNwYXRjaGVk
RXZlbnQoJ21vdXNlb3ZlcicpOworfQorCitmdW5jdGlvbiB0ZXN0RXZlbnRzRmlyZWRNYW51YWxs
eVdpdGhSZWxhdGVkVGFyZ2V0U2FtZVRvVGFyZ2V0KCkKK3sKKyAgICBzYW5kYm94LmlubmVySFRN
TCA9ICcnOworICAgIHNhbmRib3guYXBwZW5kQ2hpbGQoCisgICAgICAgIGNyZWF0ZURPTSgnZGl2
JywgeydpZCc6ICd0b3AnfSwKKyAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdob3N0J30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9v
dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ2RpdjEnfSkpKSkpOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAnaG9zdCcs
ICdob3N0LycsICdob3N0L2RpdjEnXSk7CisgICAgZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdo
b3N0LycpLmlkID0gJ3NoYWRvdy1yb290JzsKKyAgICBzaG93U2FuZGJveFRyZWUoKTsKKworICAg
IHZhciBkaXYxID0gZ2V0Tm9kZUluU2hhZG93VHJlZVN0YWNrKCdob3N0L2RpdjEnKTsKKworICAg
IGNsZWFyRXZlbnRSZWNvcmRzKCk7CisgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZl
bnQoIk1vdXNlRXZlbnRzIik7CisgICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoIm1vdXNlb3ZlciIs
IHRydWUsIGZhbHNlLCB3aW5kb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMTAsIDEw
LCAxMCwgMTAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBkaXYxKTsKKyAgICBkaXYx
LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworCisgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ21vdXNl
b3V0Jyk7CisgICAgZGVidWdEaXNwYXRjaGVkRXZlbnQoJ21vdXNlb3ZlcicpOworfQorCiBmdW5j
dGlvbiB0ZXN0KCkKIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCkBAIC0zOTMsNiArNDQ1
LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgdGVzdEV2ZW50c09uTXVsdGlwbGVTaGFkb3dSb290
cygpOwogICAgIHRlc3RFdmVudHNPbk5vbkRpc3RyaWJ1dGVkTm9kZXMoKTsKICAgICB0ZXN0RXZl
bnRzT25GYWxsYmFja0VsZW1lbnRzKCk7CisgICAgdGVzdEV2ZW50c0ZpcmVkTWFudWFsbHkoKTsK
KyAgICB0ZXN0RXZlbnRzRmlyZWRNYW51YWxseVdpdGhSZWxhdGVkVGFyZ2V0U2FtZVRvVGFyZ2V0
KCk7CiB9CiAKIHRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Rp
c3BhdGNoLXN5bnRoZXRpYy1tb3VzZWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2Rpc3BhdGNoLXN5bnRoZXRpYy1tb3VzZWV2ZW50LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42ZTY1N2E0OWZlMGExM2FjNmFiOTRlMTlmYmFiZDEyYmRlODdmNGRiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGlzcGF0Y2gtc3ludGhldGljLW1v
dXNlZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRvIGVuc3VyZSB0
aGF0IGRibGNsaWNrIGV2ZW50IGlzIG5vdCBmaXJlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK2NsaWNrIGV2ZW50IGlzIGZpcmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2Rpc3BhdGNoLXN5bnRoZXRpYy1tb3VzZWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9kaXNwYXRjaC1zeW50aGV0aWMtbW91c2VldmVudC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ3YTc1MzY4ZWVhZmZkMjRmNGU5NzIwOTdlNDlmOTAxNjJhMWFmZWIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kaXNwYXRjaC1zeW50aGV0aWMtbW91c2VldmVu
dC5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9J3RvcCc+
Cis8L2Rpdj4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCJUZXN0cyB0byBlbnN1cmUgdGhhdCBkYmxjbGljayBldmVudCBpcyBub3QgZmlyZWQuIik7CisK
K2Z1bmN0aW9uIGNsaWNrSGFuZGxlcihldmVudCkKK3sKKyAgICBkZWJ1ZygnY2xpY2sgZXZlbnQg
aXMgZmlyZWQuJyk7Cit9CisKK2Z1bmN0aW9uIGRibGNsaWNrSGFuZGxlcihldmVudCkKK3sKKyAg
ICB0ZXN0RmFpbGVkKCdkYmxjbGljayBldmVudCBzaG91bGQgbm90IGJlIGZpcmVkLicpOworfQor
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgdmFyIG5vZGUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndG9wJyk7CisgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNs
aWNrSGFuZGxlciwgZmFsc2UpOworICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignZGJsY2xpY2sn
LCBkYmxjbGlja0hhbmRsZXIsIGZhbHNlKTsKKworICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNy
ZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpOworICAgIHZhciBkZXRhaWxzID0gMjsKKyAgICBldmVu
dC5pbml0TW91c2VFdmVudCgiY2xpY2siLCB0cnVlLCBmYWxzZSwgd2luZG93LAorICAgICAgICAg
ICAgICAgICAgICAgICAgIGRldGFpbHMsIDEwLCAxMCwgMTAsIDEwLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgMCwgbnVsbCk7CisgICAgbm9kZS5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30K
KwordGVzdCgpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178129</attachid>
            <date>2012-12-06 18:24:05 -0800</date>
            <delta_ts>2012-12-06 19:04:21 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-102681-20121207112129.patch</filename>
            <type>text/plain</type>
            <size>13809</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmMDlmZWM5ZDdhYjUyYjY4NzA4NTdiOThiNzYwOGE5OTc2NjU3NTY3Li44
ZDZkNGM2ZjQ5MjdkZjFjZDBlMzllMjJkMzgyNzIyMWU3NThjNjI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzEgQEAKKzIwMTItMTItMDYgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEV2ZW50J3MgcmVsYXRlZFRhcmdldCByZS10YXJnZXRpbmcgZG9lcyBub3Qg
b2NjdXIgZm9yIG1hbnVhbGx5IGZpcmVkIG1vdXNlIGV2ZW50cyBjcmVhdGVkIGJ5IGV2ZW50Lmlu
aXRNb3VzZUV2ZW50KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDI2ODEKKworICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCisK
KyAgICAgICAgTWFrZSBzdXJlIHRoYXQgZXZlbnQncyByZWxhdGVkVGFyZ2V0IHJlLXRhcmdldGlu
ZyBvY2N1cnMgZm9yIG1vdXNlCisgICAgICAgIGV2ZW50cyBjcmVhdGVkIGJ5IGV2ZW50LmluaXRN
b3VzZUV2ZW50KCkuICBTaW5jZSB1c2VyLWdlbmVyYXRlZAorICAgICAgICBtb3VzZSBldmVudHMg
Y2FuIGhhdmUgYSByZWxhdGVkVGFyZ2V0IHdoaWNoIGlzIHNhbWUgdG8gdGhlIHRhcmdldAorICAg
ICAgICBub2RlLCB0aGUgYWxnb3JpdGhtIHdoaWNoIGNhbGN1bGF0ZXMgZXZlbnQncyBhbmNlc3Rv
cnMgaXMgYWxzbworICAgICAgICB1cGRhdGVkIHNvIHRoYXQgYW5jZXN0b3JzIGFyZSBub3Qgc2hy
dW5rIHdyb25nbHkuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvZGlzcGF0Y2gtc3ludGhl
dGljLW1vdXNlZXZlbnQuaHRtbAorICAgICAgICAgICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LWRvbS1ldmVudC1kaXNwYXRjaGluZy5odG1sCisKKyAgICAgICAgKiBkb20vRXZlbnREaXNwYXRj
aGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVsYXRlZFRhcmdldEFkanVzdGVyOjph
ZGp1c3QpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
TW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6Ok1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2
ZW50KToKKyAgICAgICAgKiBkb20vTW91c2VFdmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6TW91
c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6OmlzU3ludGhldGljTW91c2VFdmVudCk6CisgICAgICAg
IChNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcik6CisgICAgICAgICogZG9tL05vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hFdmVudCk6CisKIDIwMTItMTItMDYgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzY4MTguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNo
ZXIuY3BwCmluZGV4IDczYWMzMTk5ZmI4M2UyMDdiYjE0MTk2ODRhYjVhM2MzYjliNjRkYWMuLjdk
MjQ0Yjc3OGJiNDgxMGJkY2Y2N2YwNWJlOWMzNTEzOTBiZjZlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC02Miw2ICs2Miw5IEBAIEV2ZW50UmVsYXRlZFRhcmdl
dEFkanVzdGVyOjpFdmVudFJlbGF0ZWRUYXJnZXRBZGp1c3RlcihQYXNzUmVmUHRyPE5vZGU+IG5v
ZGUsIFBhCiAKIHZvaWQgRXZlbnRSZWxhdGVkVGFyZ2V0QWRqdXN0ZXI6OmFkanVzdChWZWN0b3I8
RXZlbnRDb250ZXh0PiYgYW5jZXN0b3JzKQogeworICAgIC8vIFN5bnRoZXRpYyBtb3VzZSBldmVu
dHMgY2FuIGhhdmUgYSByZWxhdGVkVGFyZ2V0IHdoaWNoIGlzIGlkZW50aWNhbCB0byB0aGUgdGFy
Z2V0LgorICAgIGJvb2wgdGFyZ2V0SXNJZGVudGljYWxUb1RvUmVsYXRlZFRhcmdldCA9IChtX25v
ZGUuZ2V0KCkgPT0gbV9yZWxhdGVkVGFyZ2V0LmdldCgpKTsKKwogICAgIFZlY3RvcjxFdmVudFRh
cmdldCo+IHJlbGF0ZWRUYXJnZXRTdGFjazsKICAgICBUcmVlU2NvcGUqIGxhc3RUcmVlU2NvcGUg
PSAwOwogICAgIGZvciAoQW5jZXN0b3JDaGFpbldhbGtlciB3YWxrZXIobV9yZWxhdGVkVGFyZ2V0
LmdldCgpKTsgd2Fsa2VyLmdldCgpOyB3YWxrZXIucGFyZW50KCkpIHsKQEAgLTkzLDcgKzk2LDEy
IEBAIHZvaWQgRXZlbnRSZWxhdGVkVGFyZ2V0QWRqdXN0ZXI6OmFkanVzdChWZWN0b3I8RXZlbnRD
b250ZXh0PiYgYW5jZXN0b3JzKQogICAgICAgICAgICAgaXRlci0+c2V0UmVsYXRlZFRhcmdldChh
ZGp1c3RlZFJlbGF0ZWRUYXJnZXQpOwogICAgICAgICB9CiAgICAgICAgIGxhc3RUcmVlU2NvcGUg
PSBzY29wZTsKLSAgICAgICAgaWYgKGl0ZXItPnRhcmdldCgpID09IGFkanVzdGVkUmVsYXRlZFRh
cmdldCkgeworICAgICAgICBpZiAodGFyZ2V0SXNJZGVudGljYWxUb1RvUmVsYXRlZFRhcmdldCkg
eworICAgICAgICAgICAgaWYgKG1fbm9kZS0+dHJlZVNjb3BlKCktPnJvb3ROb2RlKCkgPT0gaXRl
ci0+bm9kZSgpKSB7CisgICAgICAgICAgICAgICAgYW5jZXN0b3JzLnNocmluayhpdGVyICsgMSAt
IGFuY2VzdG9ycy5iZWdpbigpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfSBlbHNlIGlmIChpdGVyLT50YXJnZXQoKSA9PSBhZGp1c3RlZFJlbGF0ZWRU
YXJnZXQpIHsKICAgICAgICAgICAgIC8vIEV2ZW50IGRpc3BhdGNoaW5nIHNob3VsZCBiZSBzdG9w
cGVkIGhlcmUuCiAgICAgICAgICAgICBhbmNlc3RvcnMuc2hyaW5rKGl0ZXIgLSBhbmNlc3RvcnMu
YmVnaW4oKSk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Nb3VzZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApp
bmRleCBkZGUxOTM2MTVjMWI0MTU3NTUyZjc2Mzk5NzkxZTUzMDEyY2Q1YWY5Li5kZDEzYjMyYjJk
OGE1MmM3YjRhMTg1ZjcwOWZmZmMwN2Y1YTNhMzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQu
Y3BwCkBAIC0yMDksMTMgKzIwOSwxMyBAQCBTaW11bGF0ZWRNb3VzZUV2ZW50OjpTaW11bGF0ZWRN
b3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUAogICAgIH0K
IH0KIAotUGFzc1JlZlB0cjxNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4gTW91c2VFdmVudERp
c3BhdGNoTWVkaWF0b3I6OmNyZWF0ZShQYXNzUmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQp
CitQYXNzUmVmUHRyPE1vdXNlRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBNb3VzZUV2ZW50RGlzcGF0
Y2hNZWRpYXRvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8TW91c2VFdmVudD4gbW91c2VFdmVudCwgTW91
c2VFdmVudFR5cGUgbW91c2VFdmVudFR5cGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBN
b3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihtb3VzZUV2ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcihtb3VzZUV2ZW50LCBtb3VzZUV2ZW50
VHlwZSkpOwogfQogCi1Nb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6TW91c2VFdmVudERpc3Bh
dGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxNb3VzZUV2ZW50PiBtb3VzZUV2ZW50KQotICAgIDogRXZl
bnREaXNwYXRjaE1lZGlhdG9yKG1vdXNlRXZlbnQpCitNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRv
cjo6TW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxNb3VzZUV2ZW50PiBtb3Vz
ZUV2ZW50LCBNb3VzZUV2ZW50VHlwZSBtb3VzZUV2ZW50VHlwZSkKKyAgICA6IEV2ZW50RGlzcGF0
Y2hNZWRpYXRvcihtb3VzZUV2ZW50KSwgbV9tb3VzZUV2ZW50VHlwZShtb3VzZUV2ZW50VHlwZSkK
IHsKIH0KIApAQCAtMjI2LDEyICsyMjYsMTkgQEAgTW91c2VFdmVudCogTW91c2VFdmVudERpc3Bh
dGNoTWVkaWF0b3I6OmV2ZW50KCkgY29uc3QKIAogYm9vbCBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRp
YXRvcjo6ZGlzcGF0Y2hFdmVudChFdmVudERpc3BhdGNoZXIqIGRpc3BhdGNoZXIpIGNvbnN0CiB7
CisgICAgaWYgKGlzU3ludGhldGljTW91c2VFdmVudCgpKSB7CisgICAgICAgIGRpc3BhdGNoZXIt
PmFkanVzdFJlbGF0ZWRUYXJnZXQoZXZlbnQoKSwgZXZlbnQoKS0+cmVsYXRlZFRhcmdldCgpKTsK
KyAgICAgICAgcmV0dXJuIGRpc3BhdGNoZXItPmRpc3BhdGNoRXZlbnQoZXZlbnQoKSk7CisgICAg
fQorCiAgICAgaWYgKGRpc3BhdGNoZXItPm5vZGUoKS0+ZGlzYWJsZWQoKSkgLy8gRG9uJ3QgZXZl
biBzZW5kIERPTSBldmVudHMgZm9yIGRpc2FibGVkIGNvbnRyb2xzLi4KICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgaWYgKGV2ZW50KCktPnR5cGUoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiB0cnVlOyAvLyBTaG91bGRuJ3QgaGFwcGVuLgogCisgICAgQVNTRVJUKCFldmVudCgpLT50
YXJnZXQoKSB8fCBldmVudCgpLT50YXJnZXQoKSAhPSBldmVudCgpLT5yZWxhdGVkVGFyZ2V0KCkp
OworCiAgICAgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQgPSBldmVudCgpLT5yZWxhdGVkVGFy
Z2V0KCk7CiAgICAgZGlzcGF0Y2hlci0+YWRqdXN0UmVsYXRlZFRhcmdldChldmVudCgpLCByZWxh
dGVkVGFyZ2V0KTsKIApAQCAtMjQwLDYgKzI0Nyw3IEBAIGJvb2wgTW91c2VFdmVudERpc3BhdGNo
TWVkaWF0b3I6OmRpc3BhdGNoRXZlbnQoRXZlbnREaXNwYXRjaGVyKiBkaXNwYXRjaGVyKSBjb25z
CiAKICAgICBpZiAoZXZlbnQoKS0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50IHx8
IGV2ZW50KCktPmRldGFpbCgpICE9IDIpCiAgICAgICAgIHJldHVybiAhc3dhbGxvd0V2ZW50Owor
CiAgICAgLy8gU3BlY2lhbCBjYXNlOiBJZiBpdCdzIGEgZG91YmxlIGNsaWNrIGV2ZW50LCB3ZSBh
bHNvIHNlbmQgdGhlIGRibGNsaWNrIGV2ZW50LiBUaGlzIGlzIG5vdCBwYXJ0CiAgICAgLy8gb2Yg
dGhlIERPTSBzcGVjcywgYnV0IGlzIHVzZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgb25k
YmxjbGljaz0iIiBhdHRyaWJ1dGUuIFRoaXMgaXMgdHJlYXRlZAogICAgIC8vIGFzIGEgc2VwYXJh
dGUgZXZlbnQgaW4gb3RoZXIgRE9NLWNvbXBsaWFudCBicm93c2VycyBsaWtlIEZpcmVmb3gsIGFu
ZCBzbyB3ZSBkbyB0aGUgc2FtZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3Vz
ZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCmluZGV4IGExYzc5MjJi
OWM3ZDc0ZjJiOGQxNjRlODQwODllY2Q0NTdhOGNjNWUuLmNiYTcxYTdhM2FlZGM4YzY0NjllMWQw
OGYxZGQ1ZGUwMWJhNWE2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaApAQCAtMTE1LDEzICsx
MTUsMTYgQEAgcHJpdmF0ZToKIAogY2xhc3MgTW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3IgOiBw
dWJsaWMgRXZlbnREaXNwYXRjaE1lZGlhdG9yIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNb3VzZUV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8TW91c2VF
dmVudD4pOworICAgIGVudW0gTW91c2VFdmVudFR5cGUgeyBTeW50aGV0aWNNb3VzZUV2ZW50LCBO
b25TeW50aGV0aWNNb3VzZUV2ZW50fTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNb3VzZUV2ZW50
RGlzcGF0Y2hNZWRpYXRvcj4gY3JlYXRlKFBhc3NSZWZQdHI8TW91c2VFdmVudD4sIE1vdXNlRXZl
bnRUeXBlID0gTm9uU3ludGhldGljTW91c2VFdmVudCk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgTW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxNb3VzZUV2ZW50Pik7Cisg
ICAgZXhwbGljaXQgTW91c2VFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxNb3VzZUV2
ZW50PiwgTW91c2VFdmVudFR5cGUpOwogICAgIE1vdXNlRXZlbnQqIGV2ZW50KCkgY29uc3Q7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hFdmVudChFdmVudERpc3BhdGNoZXIqKSBjb25zdDsK
KyAgICBib29sIGlzU3ludGhldGljTW91c2VFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VF
dmVudFR5cGUgPT0gU3ludGhldGljTW91c2VFdmVudDsgfQorICAgIE1vdXNlRXZlbnRUeXBlIG1f
bW91c2VFdmVudFR5cGU7CiB9OwogCiBpbmxpbmUgTW91c2VFdmVudCogdG9Nb3VzZUV2ZW50KEV2
ZW50KiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA0YWE3NzJjMzZkYzA5NzY1N2FhMGZjZTky
ZmFkMzNiYWMxMjRiM2NjLi5jNzA4YTg0YzlmOWJmNzAzZDlhMzE4Njc1N2QwNzU5NjFhNzFkODA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yNTIyLDYgKzI1MjIsOCBAQCB2b2lkIE5vZGU6OmRpc3Bh
dGNoU2NvcGVkRXZlbnREaXNwYXRjaE1lZGlhdG9yKFBhc3NSZWZQdHI8RXZlbnREaXNwYXRjaE1l
ZGlhdG9yPgogCiBib29sIE5vZGU6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZl
bnQpCiB7CisgICAgaWYgKGV2ZW50LT5pc01vdXNlRXZlbnQoKSkKKyAgICAgICAgcmV0dXJuIEV2
ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudCh0aGlzLCBNb3VzZUV2ZW50RGlzcGF0Y2hNZWRp
YXRvcjo6Y3JlYXRlKGFkb3B0UmVmKHRvTW91c2VFdmVudChldmVudC5sZWFrUmVmKCkpKSwgTW91
c2VFdmVudERpc3BhdGNoTWVkaWF0b3I6OlN5bnRoZXRpY01vdXNlRXZlbnQpKTsKICAgICByZXR1
cm4gRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KHRoaXMsIEV2ZW50RGlzcGF0Y2hNZWRp
YXRvcjo6Y3JlYXRlKGV2ZW50KSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMTA2ZmZkNGU5ZmMzMjVjZDFkMGUw
MDVlOGY4YmM0Yjc2ODllYTE2Li5kZjRlZTJjNWI0MmJkNWY5NjY1ZWMxZTlkNDMyZTZkNjQ0MDM5
MjJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTItMDYgIEhheWF0byBJdG8gIDxoYXlh
dG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEV2ZW50J3MgcmVsYXRlZFRhcmdldCByZS10YXJn
ZXRpbmcgZG9lcyBub3Qgb2NjdXIgZm9yIG1hbnVhbGx5IGZpcmVkIG1vdXNlIGV2ZW50cyBjcmVh
dGVkIGJ5IGV2ZW50LmluaXRNb3VzZUV2ZW50KCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI2ODEKKworICAgICAgICBSZXZpZXdlZCBieSBEaW1p
dHJpIEdsYXprb3YuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVu
dC1kaXNwYXRjaGluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3No
YWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9k
aXNwYXRjaC1zeW50aGV0aWMtbW91c2VldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL2Rpc3BhdGNoLXN5bnRoZXRpYy1tb3VzZWV2ZW50Lmh0bWw6IEFkZGVk
LgorCiAyMDEyLTEyLTA2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM2ODE4LgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hp
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20t
ZXZlbnQtZGlzcGF0Y2hpbmctZXhwZWN0ZWQudHh0CmluZGV4IDFmODM1ZmY2YTM2MjY1YjUwYmE3
YmFlMTUyZmYxZTM2MGRjNTI0ZmYuLmVkMDliZmZjN2QzYzU5NzNhZDUyZDFhOWU2MWQ5ODMxM2Ez
ZTA2NjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZG9t
LWV2ZW50LWRpc3BhdGNoaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy1leHBlY3RlZC50eHQKQEAgLTQz
NSw2ICs0MzUsMzUgQEAgQ2xpY2sgbm9uLXVzZWQtZmFsbGJhY2sgbm9kZQogICAgICBAc2hhZG93
LXJvb3QgKHRhcmdldDogbm9uLXVzZWQtZmFsbGJhY2spCiAgICAgIEBBICh0YXJnZXQ6IEEpCiAg
ICAgIEB0b3AgKHRhcmdldDogQSkKKworCitDb21wb3NlZCBTaGFkb3cgVHJlZSB3aWxsIGJlOgor
RElWCSBpZD1zYW5kYm94CisJRElWCSBpZD10b3AKKwkJRElWCSBpZD1ob3N0CisJCQlESVYJIGlk
PWRpdjEKKwkJCURJVgkgaWQ9ZGl2MgorCisKKyAgbW91c2VvdXQKKworICBtb3VzZW92ZXIKKyAg
ICAgQGRpdjIgKHRhcmdldDogZGl2MikgKHJlbGF0ZWQ6IGRpdjEpCisgICAgIEBzaGFkb3ctcm9v
dCAodGFyZ2V0OiBkaXYyKSAocmVsYXRlZDogZGl2MSkKKworCitDb21wb3NlZCBTaGFkb3cgVHJl
ZSB3aWxsIGJlOgorRElWCSBpZD1zYW5kYm94CisJRElWCSBpZD10b3AKKwkJRElWCSBpZD1ob3N0
CisJCQlESVYJIGlkPWRpdjEKKworCisgIG1vdXNlb3V0CisKKyAgbW91c2VvdmVyCisgICAgIEBk
aXYxICh0YXJnZXQ6IGRpdjEpIChyZWxhdGVkOiBkaXYxKQorICAgICBAc2hhZG93LXJvb3QgKHRh
cmdldDogZGl2MSkgKHJlbGF0ZWQ6IGRpdjEpCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LWRvbS1ldmVudC1kaXNwYXRjaGluZy5odG1sCmluZGV4IGUyOTQ3
MGEyYjVkOTJmOGY4MDlkNmNiYWZjMzRiNDdkNDRkMDg5YTYuLmI2ZTMzMDYzZmFhZTFlNGE5ODk4
YmJlYjAzYjFjMDk3NDk0MjZiZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctZG9tLWV2ZW50LWRpc3BhdGNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kb20tZXZlbnQtZGlzcGF0Y2hpbmcuaHRtbApAQCAtMzc4
LDYgKzM3OCw1OCBAQCBmdW5jdGlvbiB0ZXN0RXZlbnRzT25GYWxsYmFja0VsZW1lbnRzKCkKICAg
ICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnY2xpY2snKTsKIH0KIAorZnVuY3Rpb24gdGVzdEV2ZW50
c0ZpcmVkTWFudWFsbHkoKQoreworICAgIHNhbmRib3guaW5uZXJIVE1MID0gJyc7CisgICAgc2Fu
ZGJveC5hcHBlbmRDaGlsZCgKKyAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcCd9
LAorICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2MSd9KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2Rp
djInfSkpKSkpOworCisgICAgYWRkRXZlbnRMaXN0ZW5lcnMoWyd0b3AnLCAnaG9zdCcsICdob3N0
LycsICdob3N0L2RpdjEnLCAnaG9zdC9kaXYyJ10pOworICAgIGdldE5vZGVJblNoYWRvd1RyZWVT
dGFjaygnaG9zdC8nKS5pZCA9ICdzaGFkb3ctcm9vdCc7CisgICAgc2hvd1NhbmRib3hUcmVlKCk7
CisKKyAgICB2YXIgZGl2MSA9IGdldE5vZGVJblNoYWRvd1RyZWVTdGFjaygnaG9zdC9kaXYxJyk7
CisgICAgdmFyIGRpdjIgPSBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2hvc3QvZGl2MicpOwor
CisgICAgY2xlYXJFdmVudFJlY29yZHMoKTsKKyAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVh
dGVFdmVudCgiTW91c2VFdmVudHMiKTsKKyAgICBldmVudC5pbml0TW91c2VFdmVudCgibW91c2Vv
dmVyIiwgdHJ1ZSwgZmFsc2UsIHdpbmRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAwLCAx
MCwgMTAsIDEwLCAxMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIGRpdjEpOworICAg
IGRpdjIuZGlzcGF0Y2hFdmVudChldmVudCk7CisKKyAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgn
bW91c2VvdXQnKTsKKyAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2VvdmVyJyk7Cit9CisK
K2Z1bmN0aW9uIHRlc3RFdmVudHNGaXJlZE1hbnVhbGx5V2l0aFJlbGF0ZWRUYXJnZXRTYW1lVG9U
YXJnZXQoKQoreworICAgIHNhbmRib3guaW5uZXJIVE1MID0gJyc7CisgICAgc2FuZGJveC5hcHBl
bmRDaGlsZCgKKyAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ3RvcCd9LAorICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2hvc3QnfSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZGl2MSd9KSkpKSk7CisKKyAgICBh
ZGRFdmVudExpc3RlbmVycyhbJ3RvcCcsICdob3N0JywgJ2hvc3QvJywgJ2hvc3QvZGl2MSddKTsK
KyAgICBnZXROb2RlSW5TaGFkb3dUcmVlU3RhY2soJ2hvc3QvJykuaWQgPSAnc2hhZG93LXJvb3Qn
OworICAgIHNob3dTYW5kYm94VHJlZSgpOworCisgICAgdmFyIGRpdjEgPSBnZXROb2RlSW5TaGFk
b3dUcmVlU3RhY2soJ2hvc3QvZGl2MScpOworCisgICAgY2xlYXJFdmVudFJlY29yZHMoKTsKKyAg
ICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKTsKKyAgICBl
dmVudC5pbml0TW91c2VFdmVudCgibW91c2VvdmVyIiwgdHJ1ZSwgZmFsc2UsIHdpbmRvdywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAwLCAxMCwgMTAsIDEwLCAxMCwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIDAsIGRpdjEpOworICAgIGRpdjEuZGlzcGF0Y2hFdmVudChldmVudCk7CisK
KyAgICBkZWJ1Z0Rpc3BhdGNoZWRFdmVudCgnbW91c2VvdXQnKTsKKyAgICBkZWJ1Z0Rpc3BhdGNo
ZWRFdmVudCgnbW91c2VvdmVyJyk7Cit9CisKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKQEAgLTM5Myw2ICs0NDUsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICB0ZXN0RXZlbnRzT25NdWx0aXBsZVNoYWRvd1Jvb3RzKCk7CiAgICAgdGVzdEV2ZW50c09uTm9u
RGlzdHJpYnV0ZWROb2RlcygpOwogICAgIHRlc3RFdmVudHNPbkZhbGxiYWNrRWxlbWVudHMoKTsK
KyAgICB0ZXN0RXZlbnRzRmlyZWRNYW51YWxseSgpOworICAgIHRlc3RFdmVudHNGaXJlZE1hbnVh
bGx5V2l0aFJlbGF0ZWRUYXJnZXRTYW1lVG9UYXJnZXQoKTsKIH0KIAogdGVzdCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGlzcGF0Y2gtc3ludGhldGljLW1vdXNlZXZl
bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGlzcGF0Y2gtc3ludGhl
dGljLW1vdXNlZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlNjU3YTQ5ZmUwYTEzYWM2
YWI5NGUxOWZiYWJkMTJiZGU4N2Y0ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9kaXNwYXRjaC1zeW50aGV0aWMtbW91c2VldmVudC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorVGVzdHMgdG8gZW5zdXJlIHRoYXQgZGJsY2xpY2sgZXZlbnQgaXMgbm90
IGZpcmVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworY2xpY2sgZXZlbnQgaXMg
ZmlyZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGlzcGF0Y2gtc3ludGhldGlj
LW1vdXNlZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Rpc3BhdGNoLXN5bnRo
ZXRpYy1tb3VzZWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdhNzUzNjhlZWFmZmQyNGY0ZTk3MjA5
N2U0OWY5MDE2MmExYWZlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2Rpc3BhdGNoLXN5bnRoZXRpYy1tb3VzZWV2ZW50Lmh0bWwKQEAgLTAsMCArMSw0NCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0ndG9wJz4KKzwvZGl2PgorPHByZSBpZD0iY29uc29s
ZSI+PC9wcmU+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRvIGVuc3VyZSB0aGF0IGRi
bGNsaWNrIGV2ZW50IGlzIG5vdCBmaXJlZC4iKTsKKworZnVuY3Rpb24gY2xpY2tIYW5kbGVyKGV2
ZW50KQoreworICAgIGRlYnVnKCdjbGljayBldmVudCBpcyBmaXJlZC4nKTsKK30KKworZnVuY3Rp
b24gZGJsY2xpY2tIYW5kbGVyKGV2ZW50KQoreworICAgIHRlc3RGYWlsZWQoJ2RibGNsaWNrIGV2
ZW50IHNob3VsZCBub3QgYmUgZmlyZWQuJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisKKyAgICB2YXIgbm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3AnKTsKKyAgICBu
b2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xpY2tIYW5kbGVyLCBmYWxzZSk7CisgICAg
bm9kZS5hZGRFdmVudExpc3RlbmVyKCdkYmxjbGljaycsIGRibGNsaWNrSGFuZGxlciwgZmFsc2Up
OworCisgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnRzIik7
CisgICAgdmFyIGRldGFpbHMgPSAyOworICAgIGV2ZW50LmluaXRNb3VzZUV2ZW50KCJjbGljayIs
IHRydWUsIGZhbHNlLCB3aW5kb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscywg
MTAsIDEwLCAxMCwgMTAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxsKTsKKyAg
ICBub2RlLmRpc3BhdGNoRXZlbnQoZXZlbnQpOworfQorCit0ZXN0KCk7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>