<?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>34449</bug_id>
          
          <creation_ts>2010-02-01 14:28:39 -0800</creation_ts>
          <short_desc>[Gtk] Evaluate and create tests for all the AtkRole&apos;s implemented by WebKitGtk</short_desc>
          <delta_ts>2010-04-22 08:46:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>25531</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Joanmarie Diggs">jdiggs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apinheiro</cc>
    
    <cc>commit-queue</cc>
    
    <cc>diegoe</cc>
    
    <cc>walker.willie</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zecke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>186575</commentid>
    <comment_count>0</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-02-01 14:28:39 -0800</bug_when>
    <thetext>We need to:

1. Ensure that all the AtkRole&apos;s that we believe were implemented have actually been implemented.

2. Create tests so that we don&apos;t have to go back and do #1 ever again. :-)

3. Implement any roles that we&apos;ve missed.

4. Be on the lookout for extraneous objects of ATK_ROLE_PANEL which we might&apos;ve missed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186582</commentid>
    <comment_count>1</comment_count>
      <attachid>47873</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-02-01 15:02:15 -0800</bug_when>
    <thetext>Created attachment 47873
Create testatkrole.c, add tests for the non-form roles

I&apos;ll add tests for the form roles in a separate patch to make things easier to review.

(Style Queue Bot will no-doubt spit up on the lack of space, but this is consistent with what we&apos;ve done in testatk.c)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186727</commentid>
    <comment_count>2</comment_count>
      <attachid>47889</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-02-01 17:42:38 -0800</bug_when>
    <thetext>Created attachment 47889
add tests for the form-roles

This patch adds tests for the form-roles. It requires the previous patch.

Note that this patch does *not* include ATK_ROLE_FORM itself. To do so requires a minor code change and will be done in the next patch for this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186740</commentid>
    <comment_count>3</comment_count>
      <attachid>47893</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-02-01 18:05:02 -0800</bug_when>
    <thetext>Created attachment 47893
implement ATK_ROLE_FORM (includes test) - PART 3.

Turns out that we (ok, I) spaced on implementing ATK_ROLE_FORM. This patch takes care of that and adds a new test to the set from the previous two patches. (Thus it depends on at least the first patch; it might apply cleanly without the second.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186750</commentid>
    <comment_count>4</comment_count>
      <attachid>47889</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-02-01 18:33:38 -0800</bug_when>
    <thetext>Comment on attachment 47889
add tests for the form-roles

Did something dumb. New patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186758</commentid>
    <comment_count>5</comment_count>
      <attachid>47899</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-02-01 18:51:22 -0800</bug_when>
    <thetext>Created attachment 47899
add tests for the form-roles - THIS IS PART 2

My apologies for catching a mistake in part 2 after attaching part 3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186772</commentid>
    <comment_count>6</comment_count>
      <attachid>47902</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-02-01 20:01:34 -0800</bug_when>
    <thetext>Created attachment 47902
Implement ATK_ROLE_SEPARATOR for &lt;hr&gt; (includes test)

Another wayward AtkRole detected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186790</commentid>
    <comment_count>7</comment_count>
      <attachid>47905</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-02-01 21:10:09 -0800</bug_when>
    <thetext>Created attachment 47905
Implement ATK_ROLE_SEPARATOR for &lt;hr&gt; (includes test) - revised</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186800</commentid>
    <comment_count>8</comment_count>
      <attachid>47906</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-02-01 21:42:41 -0800</bug_when>
    <thetext>Created attachment 47906
Implement ATK_ROLE_COMBO_BOX (includes test)

We have an open bug for the full implementation of combo boxes; this fix merely gets the objects appearing in the accessible hierarchy with the correct AtkRoles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186837</commentid>
    <comment_count>9</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2010-02-02 00:12:07 -0800</bug_when>
    <thetext>I fear the unit tests are the wrong way. You should implement WebKitTools/DumpRenderTree/gtk/Accessibility* for atk and then unskip the Accessibility tests from LayoutTests/platform/gtk/Skipped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186851</commentid>
    <comment_count>10</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-02-02 01:01:11 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; I fear the unit tests are the wrong way. You should implement
&gt; WebKitTools/DumpRenderTree/gtk/Accessibility* for atk and then unskip the
&gt; Accessibility tests from LayoutTests/platform/gtk/Skipped.

I don&apos;t agree. There might be some overlap between DRT and the unit tests, but DRT won&apos;t exercise thoroughly the whole ATK APIs, which is what applications will be using.

I guess you could extend DRT until you are satisfied with its coverage, but I suppose you&apos;d need to be careful to not make it too ATK-centric and you&apos;d still not be using the ATK APIs directly, which again is what we expose.

IMHO unit tests and DRT is an AND topic, not an OR one, but I guess I can be wrong :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186856</commentid>
    <comment_count>11</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2010-02-02 01:17:59 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; I fear the unit tests are the wrong way. You should implement
&gt; &gt; WebKitTools/DumpRenderTree/gtk/Accessibility* for atk and then unskip the
&gt; &gt; Accessibility tests from LayoutTests/platform/gtk/Skipped.
&gt; 
&gt; I don&apos;t agree. There might be some overlap between DRT and the unit tests, but
&gt; DRT won&apos;t exercise thoroughly the whole ATK APIs, which is what applications
&gt; will be using.


&gt; IMHO unit tests and DRT is an AND topic, not an OR one, but I guess I can be
&gt; wrong.

My understanding is that we create a unit test when the specific thing can not
be tested with a LayoutTest and extending the LayoutTestController or its child
objects is too complicated.

In this case we have 73 Accessibility Layout Tests waiting for us. From a quick
glance they are testing the basics that will be tested with the Gtk+ specific unit
tests. E.g. the Layout Tests should gurantee that &quot;#1 of Joanmarie&quot; is not
happening ever again.

So personally I would have loved to see the implementation of the DRT methods
first and then cover everything with unit tests. Well, Joanmarie has invested
quite some time in the ATK impl and the test cases so asking for them to be
thrown away is obviously not nice as well.

Is it asked too much if we would work on the DRT support first and then land
the test cases?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186883</commentid>
    <comment_count>12</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-02-02 03:04:19 -0800</bug_when>
    <thetext>(In reply to comment #11)

&gt; Is it asked too much if we would work on the DRT support first and then land
&gt; the test cases?

Personally, what I think we should work on *first* is implementing the support needed by actual end users with disabilities who are trying to access WebKitGtk. (And who are now coming to us on the Orca list and bugzilla to inform us that Ubuntu has switched its Yelp to WebKit and now they can no longer access help content.)

The attached patches implement three (and technically five if you count the descendants of the combo boxes) AtkRoles that are not currently implemented and which need to be implemented so that users with disabilities can access WebKitGtk content that includes objects which (should) have those roles.

If you&apos;d like me to separate out the roles that were implemented from the unit tests, I&apos;d be happy to.

And once things get under control a11y-wize, I&apos;ll even be happy to help you all work on the DRT support. I think DRT support is important. Really. It&apos;s just an issue of not enough time and not enough people and way too much that still needs to be done. :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186946</commentid>
    <comment_count>13</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2010-02-02 06:16:53 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; 
&gt; &gt; Is it asked too much if we would work on the DRT support first and then land
&gt; &gt; the test cases?
&gt; 
&gt; Personally, what I think we should work on *first* is implementing the support
&gt; needed by actual end users with disabilities who are trying to access
&gt; WebKitGtk. (And who are now coming to us on the Orca list and bugzilla to
&gt; inform us that Ubuntu has switched its Yelp to WebKit and now they can no
&gt; longer access help content.)

Let me state first you work is greatly appreciated. This argument works the other
way around as well. By not knowing about the state of the layout tests the work
that Apple has put into supporting end users with disabilities who are trying to
access the web/websites is not utilized. :)


&gt; If you&apos;d like me to separate out the roles that were implemented from the unit
&gt; tests, I&apos;d be happy to.

Well, personally I would favor this as this will allow to determine the overlap
between unit tests and LayoutTests but it is up to Xan. I will try to start with
the Accessibility controller probably my tomorrow afternoon...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187104</commentid>
    <comment_count>14</comment_count>
      <attachid>47899</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-02-02 12:59:47 -0800</bug_when>
    <thetext>Comment on attachment 47899
add tests for the form-roles - THIS IS PART 2

First of all, thanks a lot for working of this. No doubt we should also work in improving our DRT coverage, but I think there&apos;s no reason at all to not have our own ATK unit tests, especially if someone has gone through the effort already of writing them.

I just have a couple of general comments that I believe apply to all your patches:

- You should use g_test_add, which allows you to pass a couple of functions to setup/finalize things. This should allow you to reuse a bunch of repeated code you have all over to place. As an example you can check how it&apos;s done in testloading.c

- Do not use a timeout to bail out of the test. You can add queue an idle, run the mainloop, and in the idle callback do your stuff and then quit. Otherwise the 100ms keeps adding up and the tests would take a lot longer to run than needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193651</commentid>
    <comment_count>15</comment_count>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-02-25 00:28:07 -0800</bug_when>
    <thetext>Just to leave a note that Xan and Joanmarie agreed that I should work on these tests, I&apos;m already doing that :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194017</commentid>
    <comment_count>16</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-02-26 00:10:03 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Just to leave a note that Xan and Joanmarie agreed that I should work on these
&gt; tests, I&apos;m already doing that :-)

You totally rock Diego! Thanks so much for taking this on!!

On the to-do list, we&apos;ll need to add tables. It doesn&apos;t make much sense to do this until we get bug 30895 fixed (which is the next item on my to-do list). However, once that is fixed, we&apos;ll want objects of ATK_ROLE_TABLE and ATK_ROLE_TABLE_CELL similarly tested. Since I&apos;m absent-minded, I&apos;m mentioning it here. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194234</commentid>
    <comment_count>17</comment_count>
      <attachid>49618</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-02-26 13:02:27 -0800</bug_when>
    <thetext>Created attachment 49618
testatkroles: test non-form roles

This corresponds to joanmarie&apos;s original patch.

Bug #34449</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194235</commentid>
    <comment_count>18</comment_count>
      <attachid>49619</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-02-26 13:02:31 -0800</bug_when>
    <thetext>Created attachment 49619
testatkroles: test form roles

Corresponds to joanmarie&apos;s second patch.

Bug #34449</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194236</commentid>
    <comment_count>19</comment_count>
      <attachid>49620</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-02-26 13:02:36 -0800</bug_when>
    <thetext>Created attachment 49620
testatkroles: implement ATK_ROLE_FORM

Corresponds to joanmarie&apos;s third patch

Bug #34449</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194237</commentid>
    <comment_count>20</comment_count>
      <attachid>49621</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-02-26 13:02:40 -0800</bug_when>
    <thetext>Created attachment 49621
testatkroles: test ATK_ROLE_FORM

Corresponds to joanmarie&apos;s third patch.

Bug #34449</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194238</commentid>
    <comment_count>21</comment_count>
      <attachid>49622</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-02-26 13:02:45 -0800</bug_when>
    <thetext>Created attachment 49622
testatkroles: implement ATK_ROLE_SEPARATOR

This corresponds to joanmarie&apos;s fourth patch.

Bug #34449</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194239</commentid>
    <comment_count>22</comment_count>
      <attachid>49623</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-02-26 13:02:49 -0800</bug_when>
    <thetext>Created attachment 49623
testatkroles: test ATK_ROLE_SEPARATOR

This corresponds to joanmarie&apos;s fourth patch.

Bug #34449</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194241</commentid>
    <comment_count>23</comment_count>
      <attachid>49624</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-02-26 13:02:54 -0800</bug_when>
    <thetext>Created attachment 49624
testatkroles: implement ATK_ROLE_COMBO_BOX

Corresponds to joanmarie&apos;s fifth patch.

Bug #34449</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194242</commentid>
    <comment_count>24</comment_count>
      <attachid>49625</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-02-26 13:02:59 -0800</bug_when>
    <thetext>Created attachment 49625
testatkroles: test ATK_ROLE_COMBO_BOX

Corresponds to joanmarie&apos;s fifth patch.

Bug #34449</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194252</commentid>
    <comment_count>25</comment_count>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-02-26 13:10:23 -0800</bug_when>
    <thetext>I just attached an insane amount of patches, with love (and git-bz).
Please take a look at them and let me know what you think.

Yes, I didn&apos;t include a changelog intentionally. Let me know if you think they are ready and I&apos;ll re-post with changelogs.

PS: I can&apos;t set joanmarie&apos;s patches as obsolete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205794</commentid>
    <comment_count>26</comment_count>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-03-29 19:01:17 -0700</bug_when>
    <thetext>Back to this bug...

Last time Xan agreed we were in the right path, so I think we can expand coverage with Joanmarie and have Xan review without rush since this patches doesn&apos;t risk bitrot. Right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205802</commentid>
    <comment_count>27</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2010-03-29 19:16:54 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; Back to this bug...
&gt; 
&gt; Last time Xan agreed we were in the right path, so I think we can expand
&gt; coverage with Joanmarie and have Xan review without rush since this patches
&gt; doesn&apos;t risk bitrot. Right?

Mostly right. :-)

We need to implement combo boxes sooner rather than later. The other two roles implemented here (form and separator) also should be in place (though less rush). The tests themselves can wait longer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209661</commentid>
    <comment_count>28</comment_count>
      <attachid>49618</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-04-07 09:07:15 -0700</bug_when>
    <thetext>Comment on attachment 49618
testatkroles: test non-form roles

&gt;From 464999993ff6f20eaa76c4789cc607a5f4e9d84c Mon Sep 17 00:00:00 2001
&gt;From: Diego Escalante Urrelo &lt;descalante@igalia.com&gt;
&gt;Date: Thu, 25 Feb 2010 17:47:56 -0500
&gt;Subject: [PATCH] testatkroles: test non-form roles
&gt;
&gt;This corresponds to joanmarie&apos;s original patch.
&gt;
&gt;Bug #34449

We need an actual ChangeLog entry.


&gt;+/* vim: set sw=4 ts=4 sts=4 et: */

WebKit style does not allow to have this stuff.

&gt;+
&gt;+#include &lt;errno.h&gt;
&gt;+#include &lt;unistd.h&gt;

Do you actually use these?

&gt;+static gboolean _get_child_and_test_role(AtkObject *obj, gint pos, AtkRole role)

The &apos;*&apos; are wrong, and there&apos;s no need at all to prefix the function with &apos;_&apos; since it&apos;s already static.

&gt;+{
&gt;+    AtkObject *child;

Wrong &apos;*&apos;... happens in many other places, so just go through the file again.

&gt;+    AtkRole child_role;
&gt;+
&gt;+    child = atk_object_ref_accessible_child(obj, pos);
&gt;+    g_assert(child);
&gt;+    child_role = atk_object_get_role(child);
&gt;+    g_assert(child_role == role);
&gt;+
&gt;+    g_object_unref(child);
&gt;+
&gt;+    return TRUE;

Seems a bit pointless to make this a gboolean returning function since a) it always returns TRUE b) you ignore it anyway?

Other than this, looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209663</commentid>
    <comment_count>29</comment_count>
      <attachid>49619</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-04-07 09:09:46 -0700</bug_when>
    <thetext>Comment on attachment 49619
testatkroles: test form roles

Nothing to comment here othen than applying the suggested renaming of the previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211496</commentid>
    <comment_count>30</comment_count>
      <attachid>53128</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-04-11 19:44:13 -0700</bug_when>
    <thetext>Created attachment 53128
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Reviewed by NOBODY (OOPS!).

        [Gtk] Evaluate and create tests for all the AtkRole&apos;s implemented by
        WebKitGtk
        https://bugs.webkit.org/show_bug.cgi?id=34449

        Add and enable the build of testatkroles to test ATK non form roles.
        * GNUmakefile.am:
        * tests/testatkroles.c: Added.
        (finish_loading):
        (atk_roles_fixture_setup):
        (atk_roles_fixture_teardown):
        (get_child_and_test_role):
        (test_webkit_atk_get_role_document_frame):
        (test_webkit_atk_get_role_heading):
        (test_webkit_atk_get_role_image):
        (test_webkit_atk_get_role_link):
        (test_webkit_atk_get_role_list_and_item):
        (test_webkit_atk_get_role_paragraph):
        (test_webkit_atk_get_role_section):
        (test_webkit_atk_get_role_table):
        (main):</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211497</commentid>
    <comment_count>31</comment_count>
      <attachid>53129</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-04-11 19:44:30 -0700</bug_when>
    <thetext>Created attachment 53129
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Reviewed by NOBODY (OOPS!).

        [Gtk] Evaluate and create tests for all the AtkRole&apos;s implemented by
        WebKitGtk
        https://bugs.webkit.org/show_bug.cgi?id=34449

        Expand testatkroles to test ATK form roles.

        * tests/testatkroles.c:
        (test_webkit_atk_get_role_check_box):
        (test_webkit_atk_get_role_entry):
        (test_webkit_atk_get_role_label):
        (test_webkit_atk_get_role_listbox):
        (test_webkit_atk_get_role_password_text):
        (test_webkit_atk_get_role_push_button):
        (test_webkit_atk_get_role_radio_button):
        (main):</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211498</commentid>
    <comment_count>32</comment_count>
      <attachid>53130</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-04-11 19:44:40 -0700</bug_when>
    <thetext>Created attachment 53130
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Reviewed by NOBODY (OOPS!).

        [Gtk] Evaluate and create tests for all the AtkRole&apos;s implemented by
        WebKitGtk
        https://bugs.webkit.org/show_bug.cgi?id=34449

        Implement ATK_ROLE_FORM.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (webkit_accessible_get_role):</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211499</commentid>
    <comment_count>33</comment_count>
      <attachid>53131</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-04-11 19:44:48 -0700</bug_when>
    <thetext>Created attachment 53131
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Reviewed by NOBODY (OOPS!).

        [Gtk] Evaluate and create tests for all the AtkRole&apos;s implemented by
        WebKitGtk
        https://bugs.webkit.org/show_bug.cgi?id=34449

        Expand testatkroles to test ATK_ROLE_FORM.

        * tests/testatkroles.c:
        (test_webkit_atk_get_role_form):
        (main):</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211500</commentid>
    <comment_count>34</comment_count>
      <attachid>53132</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-04-11 19:44:59 -0700</bug_when>
    <thetext>Created attachment 53132
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Reviewed by NOBODY (OOPS!).

        [Gtk] Evaluate and create tests for all the AtkRole&apos;s implemented by
        WebKitGtk
        https://bugs.webkit.org/show_bug.cgi?id=34449

        Implement ATK_ROLE_SEPARATOR.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
        * accessibility/gtk/AccessibilityObjectAtk.cpp:
        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211501</commentid>
    <comment_count>35</comment_count>
      <attachid>53133</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-04-11 19:46:11 -0700</bug_when>
    <thetext>Created attachment 53133
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Reviewed by NOBODY (OOPS!).

        [Gtk] Evaluate and create tests for all the AtkRole&apos;s implemented by
        WebKitGtk
        https://bugs.webkit.org/show_bug.cgi?id=34449

        Expand testatkroles to test ATK_ROLE_SEPARATOR.

        * tests/testatkroles.c:
        (test_webkit_atk_get_role_separator):
        (main):</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211502</commentid>
    <comment_count>36</comment_count>
      <attachid>53134</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-04-11 19:46:24 -0700</bug_when>
    <thetext>Created attachment 53134
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Reviewed by NOBODY (OOPS!).

        [Gtk] Evaluate and create tests for all the AtkRole&apos;s implemented by
        WebKitGtk
        https://bugs.webkit.org/show_bug.cgi?id=34449

        Implement ATK_ROLE_COMBO_BOX.

        * accessibility/gtk/AccessibilityObjectAtk.cpp:
        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (atkRole):</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211503</commentid>
    <comment_count>37</comment_count>
      <attachid>53135</attachid>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-04-11 19:46:35 -0700</bug_when>
    <thetext>Created attachment 53135
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Reviewed by NOBODY (OOPS!).

        [Gtk] Evaluate and create tests for all the AtkRole&apos;s implemented by
        WebKitGtk
        https://bugs.webkit.org/show_bug.cgi?id=34449

        Expand testatkroles to test ATK_ROLE_COMBO_BOX.

        * tests/testatkroles.c:
        (test_webkit_atk_get_role_combobox):
        (main):</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211504</commentid>
    <comment_count>38</comment_count>
    <who name="Diego Escalante Urrelo">diegoe</who>
    <bug_when>2010-04-11 19:48:42 -0700</bug_when>
    <thetext>Updated to Xan&apos;s comments. Hopefully I didn&apos;t overlook anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214041</commentid>
    <comment_count>39</comment_count>
      <attachid>53128</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-04-19 08:29:29 -0700</bug_when>
    <thetext>Comment on attachment 53128
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214042</commentid>
    <comment_count>40</comment_count>
      <attachid>53129</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-04-19 08:38:02 -0700</bug_when>
    <thetext>Comment on attachment 53129
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214043</commentid>
    <comment_count>41</comment_count>
      <attachid>53130</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-04-19 08:40:03 -0700</bug_when>
    <thetext>Comment on attachment 53130
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

OK, but I don&apos;t think it makes any sense to split this from its test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214044</commentid>
    <comment_count>42</comment_count>
      <attachid>53131</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-04-19 08:40:37 -0700</bug_when>
    <thetext>Comment on attachment 53131
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214045</commentid>
    <comment_count>43</comment_count>
      <attachid>53132</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-04-19 08:41:17 -0700</bug_when>
    <thetext>Comment on attachment 53132
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214046</commentid>
    <comment_count>44</comment_count>
      <attachid>53133</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-04-19 08:41:40 -0700</bug_when>
    <thetext>Comment on attachment 53133
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

OK, same comment than before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214047</commentid>
    <comment_count>45</comment_count>
      <attachid>53134</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-04-19 08:42:11 -0700</bug_when>
    <thetext>Comment on attachment 53134
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214048</commentid>
    <comment_count>46</comment_count>
      <attachid>53135</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-04-19 08:42:39 -0700</bug_when>
    <thetext>Comment on attachment 53135
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

OK, same thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214094</commentid>
    <comment_count>47</comment_count>
      <attachid>53128</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-19 10:38:20 -0700</bug_when>
    <thetext>Comment on attachment 53128
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Clearing flags on attachment: 53128

Committed r57815: &lt;http://trac.webkit.org/changeset/57815&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214498</commentid>
    <comment_count>48</comment_count>
      <attachid>53129</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-19 23:40:06 -0700</bug_when>
    <thetext>Comment on attachment 53129
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Clearing flags on attachment: 53129

Committed r57874: &lt;http://trac.webkit.org/changeset/57874&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214830</commentid>
    <comment_count>49</comment_count>
      <attachid>53130</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-20 12:08:24 -0700</bug_when>
    <thetext>Comment on attachment 53130
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Clearing flags on attachment: 53130

Committed r57902: &lt;http://trac.webkit.org/changeset/57902&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215275</commentid>
    <comment_count>50</comment_count>
      <attachid>53131</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-21 06:18:06 -0700</bug_when>
    <thetext>Comment on attachment 53131
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Clearing flags on attachment: 53131

Committed r57973: &lt;http://trac.webkit.org/changeset/57973&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215640</commentid>
    <comment_count>51</comment_count>
      <attachid>53132</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-21 18:46:43 -0700</bug_when>
    <thetext>Comment on attachment 53132
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Clearing flags on attachment: 53132

Committed r58037: &lt;http://trac.webkit.org/changeset/58037&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215808</commentid>
    <comment_count>52</comment_count>
      <attachid>53133</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-22 03:31:43 -0700</bug_when>
    <thetext>Comment on attachment 53133
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Clearing flags on attachment: 53133

Committed r58083: &lt;http://trac.webkit.org/changeset/58083&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215870</commentid>
    <comment_count>53</comment_count>
      <attachid>53134</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-22 07:36:28 -0700</bug_when>
    <thetext>Comment on attachment 53134
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Clearing flags on attachment: 53134

Committed r58094: &lt;http://trac.webkit.org/changeset/58094&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215892</commentid>
    <comment_count>54</comment_count>
      <attachid>53135</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-22 08:46:29 -0700</bug_when>
    <thetext>Comment on attachment 53135
2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;

Clearing flags on attachment: 53135

Committed r58098: &lt;http://trac.webkit.org/changeset/58098&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215894</commentid>
    <comment_count>55</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-22 08:46:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47873</attachid>
            <date>2010-02-01 15:02:15 -0800</date>
            <delta_ts>2010-02-26 13:22:07 -0800</delta_ts>
            <desc>Create testatkrole.c, add tests for the non-form roles</desc>
            <filename>34449-1.patch</filename>
            <type>text/plain</type>
            <size>15371</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSBlNmFmYjQ1OTc5NDNjMGU0MWQwMzM3OTkzNDdkZTJhZTVhNTZhMWJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpkQHZibG9ja2hlYWQuKG5vbmUp
PgpEYXRlOiBNb24sIDEgRmViIDIwMTAgMTc6NDc6NTggLTA1MDAKU3ViamVjdDogW1BBVENIXSAy
MDEwLTAyLTAxICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwuY29tPgoK
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDQ5CiAgICAgICAgW0d0a10gRXZhbHVhdGUg
YW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1wbGVtZW50ZWQgYnkgV2Vi
S2l0R3RrCgogICAgICAgIEFkZHMgdGVzdCBmb3Igbm9uLWZvcm0gcm9sZXMuCgogICAgICAgICog
R05VbWFrZWZpbGUuYW0KICAgICAgICAqIHRlc3RzL3Rlc3RhdGtyb2xlLmM6IChOZXcpCiAgICAg
ICAgKHRlc3RXZWJraXRBdGtHZXRSb2xlRG9jdW1lbnRGcmFtZSk6CiAgICAgICAgKHRlc3RXZWJr
aXRBdGtHZXRSb2xlSGVhZGluZyk6CiAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRSb2xlSW1hZ2Up
OgogICAgICAgICh0ZXN0V2Via2l0QXRrR2V0Um9sZUxpbmspOgogICAgICAgICh0ZXN0V2Via2l0
QXRrR2V0Um9sZUxpc3RBbmRJdGVtKToKICAgICAgICAodGVzdFdlYmtpdEF0a0dldFJvbGVQYXJh
Z3JhcGgpOgogICAgICAgICh0ZXN0V2Via2l0QXRrR2V0Um9sZVNlY3Rpb24pOgogICAgICAgICh0
ZXN0V2Via2l0QXRrR2V0Um9sZVRhYmxlKToKICAgICAgICAoYmFpbG91dCk6CiAgICAgICAgKG1h
aW4pOgotLS0KIEdOVW1ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgfCAgICA2ICsKIFdlYktp
dC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgfCAgIDIyICsrKwogV2ViS2l0L2d0ay90ZXN0cy90
ZXN0YXRrcm9sZXMuYyB8ICAzNjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrCiAzIGZpbGVzIGNoYW5nZWQsIDM5MSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKCmRpZmYg
LS1naXQgYS9HTlVtYWtlZmlsZS5hbSBiL0dOVW1ha2VmaWxlLmFtCmluZGV4IGY5YWQyMWMuLmMz
OTQxOGQgMTAwNjQ0Ci0tLSBhL0dOVW1ha2VmaWxlLmFtCisrKyBiL0dOVW1ha2VmaWxlLmFtCkBA
IC01NzYsNiArNTc2LDcgQEAgVEVTVF9QUk9HUyArPSBQcm9ncmFtcy91bml0dGVzdHMvdGVzdGh0
dHBiYWNrZW5kIFwKIAlQcm9ncmFtcy91bml0dGVzdHMvdGVzdHdpbmRvdyBcCiAJUHJvZ3JhbXMv
dW5pdHRlc3RzL3Rlc3Rkb3dubG9hZCBcCiAJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3RhdGsgXAor
CVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0YXRrcm9sZXMgXAogCVByb2dyYW1zL3VuaXR0ZXN0cy90
ZXN0aGl0dGVzdHJlc3VsdCBcCiAJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3R3ZWJzZXR0aW5ncyBc
CiAJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3R3ZWJyZXNvdXJjZSBcCkBAIC02MzksNiArNjQwLDEx
IEBAIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0YXRrX0NGTEFHUyA9ICQod2Via2l0X3Rlc3RzX2Nm
bGFncykKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0YXRrX0xEQUREID0gJCh3ZWJraXRfdGVzdHNf
bGRhZGQpCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdGF0a19MREZMQUdTID0gJCh3ZWJraXRfdGVz
dHNfbGRmbGFncykKIAorUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3RhdGtyb2xlc19TT1VSQ0VTID0g
V2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9sZXMuYworUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3Rh
dGtyb2xlc19DRkxBR1MgPSAkKHdlYmtpdF90ZXN0c19jZmxhZ3MpCitQcm9ncmFtc191bml0dGVz
dHNfdGVzdGF0a3JvbGVzX0xEQUREID0gJCh3ZWJraXRfdGVzdHNfbGRhZGQpCitQcm9ncmFtc191
bml0dGVzdHNfdGVzdGF0a3JvbGVzX0xERkxBR1MgPSAkKHdlYmtpdF90ZXN0c19sZGZsYWdzKQor
CiBQcm9ncmFtc191bml0dGVzdHNfdGVzdHdlYnNldHRpbmdzX1NPVVJDRVMgPSBXZWJLaXQvZ3Rr
L3Rlc3RzL3Rlc3R3ZWJzZXR0aW5ncy5jCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdHdlYnNldHRp
bmdzX0NGTEFHUyA9ICQod2Via2l0X3Rlc3RzX2NmbGFncykKIFByb2dyYW1zX3VuaXR0ZXN0c190
ZXN0d2Vic2V0dGluZ3NfTERBREQgPSAkKHdlYmtpdF90ZXN0c19sZGFkZCkKZGlmZiAtLWdpdCBh
L1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggM2NkOTBk
ZS4uNjU4ODU1NCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wMi0wMSAgSm9hbm1hcmllIERp
Z2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzQ0NDkKKyAgICAgICAgW0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBm
b3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1wbGVtZW50ZWQgYnkgV2ViS2l0R3RrCisKKyAgICAgICAg
QWRkcyB0ZXN0IGZvciBub24tZm9ybSByb2xlcy4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFt
CisgICAgICAgICogdGVzdHMvdGVzdGF0a3JvbGUuYzogKE5ldykKKyAgICAgICAgKHRlc3RXZWJr
aXRBdGtHZXRSb2xlRG9jdW1lbnRGcmFtZSk6CisgICAgICAgICh0ZXN0V2Via2l0QXRrR2V0Um9s
ZUhlYWRpbmcpOgorICAgICAgICAodGVzdFdlYmtpdEF0a0dldFJvbGVJbWFnZSk6CisgICAgICAg
ICh0ZXN0V2Via2l0QXRrR2V0Um9sZUxpbmspOgorICAgICAgICAodGVzdFdlYmtpdEF0a0dldFJv
bGVMaXN0QW5kSXRlbSk6CisgICAgICAgICh0ZXN0V2Via2l0QXRrR2V0Um9sZVBhcmFncmFwaCk6
CisgICAgICAgICh0ZXN0V2Via2l0QXRrR2V0Um9sZVNlY3Rpb24pOgorICAgICAgICAodGVzdFdl
YmtpdEF0a0dldFJvbGVUYWJsZSk6CisgICAgICAgIChiYWlsb3V0KToKKyAgICAgICAgKG1haW4p
OgorCiAyMDEwLTAxLTI3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0
YXRrcm9sZXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDAzZDk4Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9sZXMuYwpAQCAtMCww
ICsxLDM2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBKb2FubWFyaWUgRGlnZ3MKKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lu
Y2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgor
I2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+CisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorI2luY2x1ZGUg
PHdlYmtpdC93ZWJraXQuaD4KKworI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTigyLCAxNiwgMCkgJiYg
R1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCisKK3N0YXRpYyBjb25zdCBjaGFyKiBkb2N1bWVu
dEZyYW1lID0gIjxodG1sPjxib2R5PlRoaXMgaXMgYSB0ZXN0LjwvYm9keT48L2h0bWw+IjsKK3N0
YXRpYyBjb25zdCBjaGFyKiBoZWFkaW5nID0gIjxodG1sPjxib2R5PjxoMT4xPC9oMT48aDI+Mjwv
aDI+PGgzPjM8L2gzPjxoND40PC9oND48aDU+NTwvaDU+PGg2PjY8L2g2PjwvYm9keT48L2h0bWw+
IjsKK3N0YXRpYyBjb25zdCBjaGFyKiBpbWFnZSA9ICI8aHRtbD48Ym9keT48aW1nIHNyYz0nZm9v
YmFyLnBuZycgYWx0PSdUaGlzIGlzIGEgdGVzdC4nLz48L2JvZHk+PC9odG1sPiI7CitzdGF0aWMg
Y29uc3QgY2hhciogbGlua1RleHQgPSAiPGh0bWw+PGJvZHk+PGEgaHJlZj0nZm9vYmFyLmh0bWwn
PlRoaXMgaXMgYSB0ZXN0LjwvYT48L2JvZHk+PC9odG1sPiI7CitzdGF0aWMgY29uc3QgY2hhciog
bGlzdCA9ICI8aHRtbD48Ym9keT48dWw+PGxpPjE8L2xpPjxsaT4yPC9saT48L3VsPjxvbD48bGk+
MTwvbGk+PGxpPjI8L2xpPjwvb2w+PC9ib2R5PjwvaHRtbD4iOworc3RhdGljIGNvbnN0IGNoYXIq
IHBhcmFncmFwaCA9ICI8aHRtbD48Ym9keT48cD5UaGlzIGlzIGEgdGVzdC48L3A+PC9ib2R5Pjwv
aHRtbD4iOworc3RhdGljIGNvbnN0IGNoYXIqIHNlY3Rpb24gPSAiPGh0bWw+PGJvZHk+PGRpdj5U
aGlzIGlzIGEgdGVzdC48L2Rpdj48L2JvZHk+PC9odG1sPiI7CitzdGF0aWMgY29uc3QgY2hhciog
dGFibGUgPSAiPGh0bWw+PGJvZHk+PHRhYmxlIGJvcmRlcj0nMSc+PHRyPjx0ZD5UaGlzIGlzPC90
ZD48dGQ+YSB0ZXN0LjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+IjsKKworc3RhdGlj
IGdib29sZWFuIGJhaWxPdXQoR01haW5Mb29wKiBsb29wKQoreworICAgIGlmIChnX21haW5fbG9v
cF9pc19ydW5uaW5nKGxvb3ApKQorICAgICAgICBnX21haW5fbG9vcF9xdWl0KGxvb3ApOworCisg
ICAgcmV0dXJuIEZBTFNFOworfQorCitzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0Um9sZURv
Y3VtZW50RnJhbWUodm9pZCkKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3OworICAgIEF0
a09iamVjdCogb2JqOworICAgIEF0a1JvbGUgcm9sZTsKKyAgICBHTWFpbkxvb3AqIGxvb3A7CisK
KyAgICB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7Cisg
ICAgZ19vYmplY3RfcmVmX3Npbmsod2ViVmlldyk7CisgICAgR3RrQWxsb2NhdGlvbiBhbGxvYyA9
IHsgMCwgMCwgODAwLCA2MDAgfTsKKyAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoR1RLX1dJ
REdFVCh3ZWJWaWV3KSwgJmFsbG9jKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmco
d2ViVmlldywgZG9jdW1lbnRGcmFtZSwgTlVMTCwgTlVMTCwgTlVMTCk7CisgICAgbG9vcCA9IGdf
bWFpbl9sb29wX25ldyhOVUxMLCBUUlVFKTsKKworICAgIGdfdGltZW91dF9hZGQoMTAwLCAoR1Nv
dXJjZUZ1bmMpYmFpbE91dCwgbG9vcCk7CisgICAgZ19tYWluX2xvb3BfcnVuKGxvb3ApOworCisg
ICAgb2JqID0gZ3RrX3dpZGdldF9nZXRfYWNjZXNzaWJsZShHVEtfV0lER0VUKHdlYlZpZXcpKTsK
KyAgICBnX2Fzc2VydChvYmopOworICAgIHJvbGUgPSBhdGtfb2JqZWN0X2dldF9yb2xlKG9iaik7
CisgICAgZ19hc3NlcnQocm9sZSA9PSBBVEtfUk9MRV9ET0NVTUVOVF9GUkFNRSk7CisKKyAgICBn
X29iamVjdF91bnJlZih3ZWJWaWV3KTsKK30KKworc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dl
dFJvbGVIZWFkaW5nKHZvaWQpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldzsKKyAgICBB
dGtPYmplY3QqIGRvY3VtZW50RnJhbWU7CisgICAgQXRrT2JqZWN0KiBvYmo7CisgICAgQXRrUm9s
ZSByb2xlOworICAgIEdNYWluTG9vcCogbG9vcDsKKworICAgIHdlYlZpZXcgPSBXRUJLSVRfV0VC
X1ZJRVcod2Via2l0X3dlYl92aWV3X25ldygpKTsKKyAgICBnX29iamVjdF9yZWZfc2luayh3ZWJW
aWV3KTsKKyAgICBHdGtBbGxvY2F0aW9uIGFsbG9jID0geyAwLCAwLCA4MDAsIDYwMCB9OworICAg
IGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShHVEtfV0lER0VUKHdlYlZpZXcpLCAmYWxsb2MpOwor
ICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJWaWV3LCBoZWFkaW5nLCBOVUxMLCBO
VUxMLCBOVUxMKTsKKyAgICBsb29wID0gZ19tYWluX2xvb3BfbmV3KE5VTEwsIFRSVUUpOworCisg
ICAgZ190aW1lb3V0X2FkZCgxMDAsIChHU291cmNlRnVuYyliYWlsT3V0LCBsb29wKTsKKyAgICBn
X21haW5fbG9vcF9ydW4obG9vcCk7CisKKyAgICBkb2N1bWVudEZyYW1lID0gZ3RrX3dpZGdldF9n
ZXRfYWNjZXNzaWJsZShHVEtfV0lER0VUKHdlYlZpZXcpKTsKKyAgICBnX2Fzc2VydChkb2N1bWVu
dEZyYW1lKTsKKworICAgIG9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQoZG9j
dW1lbnRGcmFtZSwgMCk7CisgICAgZ19hc3NlcnQob2JqKTsKKyAgICByb2xlID0gYXRrX29iamVj
dF9nZXRfcm9sZShvYmopOworICAgIGdfYXNzZXJ0KHJvbGUgPT0gQVRLX1JPTEVfSEVBRElORyk7
CisKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGRvY3VtZW50RnJh
bWUsIDEpOworICAgIGdfYXNzZXJ0KG9iaik7CisgICAgcm9sZSA9IGF0a19vYmplY3RfZ2V0X3Jv
bGUob2JqKTsKKyAgICBnX2Fzc2VydChyb2xlID09IEFUS19ST0xFX0hFQURJTkcpOworCisgICAg
b2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChkb2N1bWVudEZyYW1lLCAyKTsK
KyAgICBnX2Fzc2VydChvYmopOworICAgIHJvbGUgPSBhdGtfb2JqZWN0X2dldF9yb2xlKG9iaik7
CisgICAgZ19hc3NlcnQocm9sZSA9PSBBVEtfUk9MRV9IRUFESU5HKTsKKworICAgIG9iaiA9IGF0
a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQoZG9jdW1lbnRGcmFtZSwgMyk7CisgICAgZ19h
c3NlcnQob2JqKTsKKyAgICByb2xlID0gYXRrX29iamVjdF9nZXRfcm9sZShvYmopOworICAgIGdf
YXNzZXJ0KHJvbGUgPT0gQVRLX1JPTEVfSEVBRElORyk7CisKKyAgICBvYmogPSBhdGtfb2JqZWN0
X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGRvY3VtZW50RnJhbWUsIDQpOworICAgIGdfYXNzZXJ0KG9i
aik7CisgICAgcm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUob2JqKTsKKyAgICBnX2Fzc2VydChy
b2xlID09IEFUS19ST0xFX0hFQURJTkcpOworCisgICAgb2JqID0gYXRrX29iamVjdF9yZWZfYWNj
ZXNzaWJsZV9jaGlsZChkb2N1bWVudEZyYW1lLCA1KTsKKyAgICBnX2Fzc2VydChvYmopOworICAg
IHJvbGUgPSBhdGtfb2JqZWN0X2dldF9yb2xlKG9iaik7CisgICAgZ19hc3NlcnQocm9sZSA9PSBB
VEtfUk9MRV9IRUFESU5HKTsKKworICAgIGdfb2JqZWN0X3VucmVmKG9iaik7CisgICAgZ19vYmpl
Y3RfdW5yZWYoZG9jdW1lbnRGcmFtZSk7CisgICAgZ19vYmplY3RfdW5yZWYod2ViVmlldyk7Cit9
CisKK3N0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtHZXRSb2xlSW1hZ2Uodm9pZCkKK3sKKyAgICBX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3OworICAgIEF0a09iamVjdCogb2JqOworICAgIEF0a1JvbGUg
cm9sZTsKKyAgICBHTWFpbkxvb3AqIGxvb3A7CisKKyAgICB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9W
SUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7CisgICAgZ19vYmplY3RfcmVmX3Npbmsod2ViVmll
dyk7CisgICAgR3RrQWxsb2NhdGlvbiBhbGxvYyA9IHsgMCwgMCwgODAwLCA2MDAgfTsKKyAgICBn
dGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoR1RLX1dJREdFVCh3ZWJWaWV3KSwgJmFsbG9jKTsKKyAg
ICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcod2ViVmlldywgaW1hZ2UsIE5VTEwsIE5VTEws
IE5VTEwpOworICAgIGxvb3AgPSBnX21haW5fbG9vcF9uZXcoTlVMTCwgVFJVRSk7CisKKyAgICBn
X3RpbWVvdXRfYWRkKDEwMCwgKEdTb3VyY2VGdW5jKWJhaWxPdXQsIGxvb3ApOworICAgIGdfbWFp
bl9sb29wX3J1bihsb29wKTsKKworICAgIG9iaiA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUo
R1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgZ19hc3NlcnQob2JqKTsKKworICAgIC8vIFRoaXMg
aXMgYW4gZXh0cmFuZW91cyBvYmplY3Qgb2YgQVRLX1JPTEVfUEFORUwgd2hpY2ggd2Ugc2hvdWxk
IGdldCByaWQgb2YuCisgICAgb2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChv
YmosIDApOworICAgIGdfYXNzZXJ0KG9iaik7CisKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9h
Y2Nlc3NpYmxlX2NoaWxkKG9iaiwgMCk7CisgICAgZ19hc3NlcnQob2JqKTsKKyAgICByb2xlID0g
YXRrX29iamVjdF9nZXRfcm9sZShvYmopOworICAgIGdfYXNzZXJ0KHJvbGUgPT0gQVRLX1JPTEVf
SU1BR0UpOworCisgICAgZ19vYmplY3RfdW5yZWYob2JqKTsKKyAgICBnX29iamVjdF91bnJlZih3
ZWJWaWV3KTsKK30KKworc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFJvbGVMaW5rKHZvaWQp
Cit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldzsKKyAgICBBdGtPYmplY3QqIG9iajsKKyAg
ICBBdGtSb2xlIHJvbGU7CisgICAgR01haW5Mb29wKiBsb29wOworCisgICAgd2ViVmlldyA9IFdF
QktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9z
aW5rKHdlYlZpZXcpOworICAgIEd0a0FsbG9jYXRpb24gYWxsb2MgPSB7IDAsIDAsIDgwMCwgNjAw
IH07CisgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQod2ViVmlldyksICZh
bGxvYyk7CisgICAgd2Via2l0X3dlYl92aWV3X2xvYWRfc3RyaW5nKHdlYlZpZXcsIGxpbmtUZXh0
LCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgICBsb29wID0gZ19tYWluX2xvb3BfbmV3KE5VTEwsIFRS
VUUpOworCisgICAgZ190aW1lb3V0X2FkZCgxMDAsIChHU291cmNlRnVuYyliYWlsT3V0LCBsb29w
KTsKKyAgICBnX21haW5fbG9vcF9ydW4obG9vcCk7CisKKyAgICBvYmogPSBndGtfd2lkZ2V0X2dl
dF9hY2Nlc3NpYmxlKEdUS19XSURHRVQod2ViVmlldykpOworICAgIGdfYXNzZXJ0KG9iaik7CisK
KyAgICAvLyBUaGlzIGlzIGFuIGV4dHJhbmVvdXMgb2JqZWN0IG9mIEFUS19ST0xFX1BBTkVMIHdo
aWNoIHdlIHNob3VsZCBnZXQgcmlkIG9mLgorICAgIG9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vz
c2libGVfY2hpbGQob2JqLCAwKTsKKyAgICBnX2Fzc2VydChvYmopOworCisgICAgb2JqID0gYXRr
X29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmosIDApOworICAgIGdfYXNzZXJ0KG9iaik7
CisgICAgcm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUob2JqKTsKKyAgICBnX2Fzc2VydChyb2xl
ID09IEFUS19ST0xFX0xJTkspOworCisgICAgZ19vYmplY3RfdW5yZWYob2JqKTsKKyAgICBnX29i
amVjdF91bnJlZih3ZWJWaWV3KTsKK30KKworc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFJv
bGVMaXN0QW5kSXRlbSh2b2lkKQoreworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXc7CisgICAg
QXRrT2JqZWN0KiBkb2N1bWVudEZyYW1lOworICAgIEF0a09iamVjdCogbGlzdE9iajsKKyAgICBB
dGtPYmplY3QqIG9iajsKKyAgICBBdGtSb2xlIHJvbGU7CisgICAgR01haW5Mb29wKiBsb29wOwor
CisgICAgd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOwor
ICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOworICAgIEd0a0FsbG9jYXRpb24gYWxsb2Mg
PSB7IDAsIDAsIDgwMCwgNjAwIH07CisgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19X
SURHRVQod2ViVmlldyksICZhbGxvYyk7CisgICAgd2Via2l0X3dlYl92aWV3X2xvYWRfc3RyaW5n
KHdlYlZpZXcsIGxpc3QsIE5VTEwsIE5VTEwsIE5VTEwpOworICAgIGxvb3AgPSBnX21haW5fbG9v
cF9uZXcoTlVMTCwgVFJVRSk7CisKKyAgICBnX3RpbWVvdXRfYWRkKDEwMCwgKEdTb3VyY2VGdW5j
KWJhaWxPdXQsIGxvb3ApOworICAgIGdfbWFpbl9sb29wX3J1bihsb29wKTsKKworICAgIGRvY3Vt
ZW50RnJhbWUgPSBndGtfd2lkZ2V0X2dldF9hY2Nlc3NpYmxlKEdUS19XSURHRVQod2ViVmlldykp
OworICAgIGdfYXNzZXJ0KGRvY3VtZW50RnJhbWUpOworCisgICAgbGlzdE9iaiA9IGF0a19vYmpl
Y3RfcmVmX2FjY2Vzc2libGVfY2hpbGQoZG9jdW1lbnRGcmFtZSwgMCk7CisgICAgZ19hc3NlcnQo
bGlzdE9iaik7CisgICAgcm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUobGlzdE9iaik7CisgICAg
Z19hc3NlcnQocm9sZSA9PSBBVEtfUk9MRV9MSVNUKTsKKworICAgIG9iaiA9IGF0a19vYmplY3Rf
cmVmX2FjY2Vzc2libGVfY2hpbGQobGlzdE9iaiwgMCk7CisgICAgZ19hc3NlcnQob2JqKTsKKyAg
ICByb2xlID0gYXRrX29iamVjdF9nZXRfcm9sZShvYmopOworICAgIGdfYXNzZXJ0KHJvbGUgPT0g
QVRLX1JPTEVfTElTVF9JVEVNKTsKKworICAgIG9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2li
bGVfY2hpbGQobGlzdE9iaiwgMSk7CisgICAgZ19hc3NlcnQob2JqKTsKKyAgICByb2xlID0gYXRr
X29iamVjdF9nZXRfcm9sZShvYmopOworICAgIGdfYXNzZXJ0KHJvbGUgPT0gQVRLX1JPTEVfTElT
VF9JVEVNKTsKKworICAgIGxpc3RPYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxk
KGRvY3VtZW50RnJhbWUsIDEpOworICAgIGdfYXNzZXJ0KGxpc3RPYmopOworICAgIHJvbGUgPSBh
dGtfb2JqZWN0X2dldF9yb2xlKGxpc3RPYmopOworICAgIGdfYXNzZXJ0KHJvbGUgPT0gQVRLX1JP
TEVfTElTVCk7CisKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGxp
c3RPYmosIDApOworICAgIGdfYXNzZXJ0KG9iaik7CisgICAgcm9sZSA9IGF0a19vYmplY3RfZ2V0
X3JvbGUob2JqKTsKKyAgICBnX2Fzc2VydChyb2xlID09IEFUS19ST0xFX0xJU1RfSVRFTSk7CisK
KyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGxpc3RPYmosIDEpOwor
ICAgIGdfYXNzZXJ0KG9iaik7CisgICAgcm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUob2JqKTsK
KyAgICBnX2Fzc2VydChyb2xlID09IEFUS19ST0xFX0xJU1RfSVRFTSk7CisKKyAgICBnX29iamVj
dF91bnJlZihvYmopOworICAgIGdfb2JqZWN0X3VucmVmKGxpc3RPYmopOworICAgIGdfb2JqZWN0
X3VucmVmKGRvY3VtZW50RnJhbWUpOworICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOworfQor
CitzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0Um9sZVBhcmFncmFwaCh2b2lkKQoreworICAg
IFdlYktpdFdlYlZpZXcqIHdlYlZpZXc7CisgICAgQXRrT2JqZWN0KiBvYmo7CisgICAgQXRrUm9s
ZSByb2xlOworICAgIEdNYWluTG9vcCogbG9vcDsKKworICAgIHdlYlZpZXcgPSBXRUJLSVRfV0VC
X1ZJRVcod2Via2l0X3dlYl92aWV3X25ldygpKTsKKyAgICBnX29iamVjdF9yZWZfc2luayh3ZWJW
aWV3KTsKKyAgICBHdGtBbGxvY2F0aW9uIGFsbG9jID0geyAwLCAwLCA4MDAsIDYwMCB9OworICAg
IGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShHVEtfV0lER0VUKHdlYlZpZXcpLCAmYWxsb2MpOwor
ICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJWaWV3LCBwYXJhZ3JhcGgsIE5VTEws
IE5VTEwsIE5VTEwpOworICAgIGxvb3AgPSBnX21haW5fbG9vcF9uZXcoTlVMTCwgVFJVRSk7CisK
KyAgICBnX3RpbWVvdXRfYWRkKDEwMCwgKEdTb3VyY2VGdW5jKWJhaWxPdXQsIGxvb3ApOworICAg
IGdfbWFpbl9sb29wX3J1bihsb29wKTsKKworICAgIG9iaiA9IGd0a193aWRnZXRfZ2V0X2FjY2Vz
c2libGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgZ19hc3NlcnQob2JqKTsKKyAgICBvYmog
PSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iaiwgMCk7CisgICAgZ19hc3NlcnQo
b2JqKTsKKworICAgIHJvbGUgPSBhdGtfb2JqZWN0X2dldF9yb2xlKG9iaik7CisgICAgZ19hc3Nl
cnQocm9sZSA9PSBBVEtfUk9MRV9QQVJBR1JBUEgpOworCisgICAgZ19vYmplY3RfdW5yZWYob2Jq
KTsKKyAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKK30KKworc3RhdGljIHZvaWQgdGVzdFdl
YmtpdEF0a0dldFJvbGVTZWN0aW9uKHZvaWQpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmll
dzsKKyAgICBBdGtPYmplY3QqIG9iajsKKyAgICBBdGtSb2xlIHJvbGU7CisgICAgR01haW5Mb29w
KiBsb29wOworCisgICAgd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdf
bmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOworICAgIEd0a0FsbG9jYXRp
b24gYWxsb2MgPSB7IDAsIDAsIDgwMCwgNjAwIH07CisgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9j
YXRlKEdUS19XSURHRVQod2ViVmlldyksICZhbGxvYyk7CisgICAgd2Via2l0X3dlYl92aWV3X2xv
YWRfc3RyaW5nKHdlYlZpZXcsIHNlY3Rpb24sIE5VTEwsIE5VTEwsIE5VTEwpOworICAgIGxvb3Ag
PSBnX21haW5fbG9vcF9uZXcoTlVMTCwgVFJVRSk7CisKKyAgICBnX3RpbWVvdXRfYWRkKDEwMCwg
KEdTb3VyY2VGdW5jKWJhaWxPdXQsIGxvb3ApOworICAgIGdfbWFpbl9sb29wX3J1bihsb29wKTsK
KworICAgIG9iaiA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3
KSk7CisgICAgZ19hc3NlcnQob2JqKTsKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3Np
YmxlX2NoaWxkKG9iaiwgMCk7CisgICAgZ19hc3NlcnQob2JqKTsKKworICAgIHJvbGUgPSBhdGtf
b2JqZWN0X2dldF9yb2xlKG9iaik7CisgICAgZ19hc3NlcnQocm9sZSA9PSBBVEtfUk9MRV9TRUNU
SU9OKTsKKworICAgIGdfb2JqZWN0X3VucmVmKG9iaik7CisgICAgZ19vYmplY3RfdW5yZWYod2Vi
Vmlldyk7Cit9CisKKy8vIERvZXMgbm90IHlldCB0ZXN0IHRhYmxlIGNlbGxzIGJlY2F1c2Ugb2Yg
YnVnIDMwODk1Lgorc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFJvbGVUYWJsZSh2b2lkKQor
eworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXc7CisgICAgQXRrT2JqZWN0KiBvYmo7CisgICAg
QXRrUm9sZSByb2xlOworICAgIEdNYWluTG9vcCogbG9vcDsKKworICAgIHdlYlZpZXcgPSBXRUJL
SVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3X25ldygpKTsKKyAgICBnX29iamVjdF9yZWZfc2lu
ayh3ZWJWaWV3KTsKKyAgICBHdGtBbGxvY2F0aW9uIGFsbG9jID0geyAwLCAwLCA4MDAsIDYwMCB9
OworICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShHVEtfV0lER0VUKHdlYlZpZXcpLCAmYWxs
b2MpOworICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJWaWV3LCB0YWJsZSwgTlVM
TCwgTlVMTCwgTlVMTCk7CisgICAgbG9vcCA9IGdfbWFpbl9sb29wX25ldyhOVUxMLCBUUlVFKTsK
KworICAgIGdfdGltZW91dF9hZGQoMTAwLCAoR1NvdXJjZUZ1bmMpYmFpbE91dCwgbG9vcCk7Cisg
ICAgZ19tYWluX2xvb3BfcnVuKGxvb3ApOworCisgICAgb2JqID0gZ3RrX3dpZGdldF9nZXRfYWNj
ZXNzaWJsZShHVEtfV0lER0VUKHdlYlZpZXcpKTsKKyAgICBnX2Fzc2VydChvYmopOworICAgIG9i
aiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQob2JqLCAwKTsKKyAgICBnX2Fzc2Vy
dChvYmopOworCisgICAgcm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUob2JqKTsKKyAgICBnX2Fz
c2VydChyb2xlID09IEFUS19ST0xFX1RBQkxFKTsKKworICAgIGdfb2JqZWN0X3VucmVmKG9iaik7
CisgICAgZ19vYmplY3RfdW5yZWYod2ViVmlldyk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBj
aGFyKiogYXJndikKK3sKKyAgICBnX3RocmVhZF9pbml0KE5VTEwpOworICAgIGd0a190ZXN0X2lu
aXQoJmFyZ2MsICZhcmd2LCBOVUxMKTsKKworICAgIGdfdGVzdF9idWdfYmFzZSgiaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvIik7CisgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay90ZXN0
V2Via2l0QXRrR2V0Um9sZURvY3VtZW50RnJhbWUiLCB0ZXN0V2Via2l0QXRrR2V0Um9sZURvY3Vt
ZW50RnJhbWUpOworICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvdGVzdFdlYmtpdEF0
a0dldFJvbGVIZWFkaW5nIiwgdGVzdFdlYmtpdEF0a0dldFJvbGVIZWFkaW5nKTsKKyAgICBnX3Rl
c3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RXZWJraXRBdGtHZXRSb2xlSW1hZ2UiLCB0ZXN0
V2Via2l0QXRrR2V0Um9sZUltYWdlKTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRr
L3Rlc3RXZWJraXRBdGtHZXRSb2xlTGluayIsIHRlc3RXZWJraXRBdGtHZXRSb2xlTGluayk7Cisg
ICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay90ZXN0V2Via2l0QXRrR2V0Um9sZUxpc3RB
bmRJdGVtIiwgdGVzdFdlYmtpdEF0a0dldFJvbGVMaXN0QW5kSXRlbSk7CisgICAgZ190ZXN0X2Fk
ZF9mdW5jKCIvd2Via2l0L2F0ay90ZXN0V2Via2l0QXRrR2V0Um9sZVBhcmFncmFwaCIsIHRlc3RX
ZWJraXRBdGtHZXRSb2xlUGFyYWdyYXBoKTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQv
YXRrL3Rlc3RXZWJraXRBdGtHZXRSb2xlU2VjdGlvbiIsIHRlc3RXZWJraXRBdGtHZXRSb2xlU2Vj
dGlvbik7CisgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay90ZXN0V2Via2l0QXRrR2V0
Um9sZVRhYmxlIiwgdGVzdFdlYmtpdEF0a0dldFJvbGVUYWJsZSk7CisgICAgcmV0dXJuIGdfdGVz
dF9ydW4gKCk7Cit9CisKKyNlbHNlCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7
CisgICAgZ19jcml0aWNhbCgiWW91IHdpbGwgbmVlZCBhdCBsZWFzdCBnbGliLTIuMTYuMCBhbmQg
Z3RrLTIuMTQuMCB0byBydW4gdGhlIHVuaXQgdGVzdHMuIERvaW5nIG5vdGhpbmcgbm93LiIpOwor
ICAgIHJldHVybiAwOworfQorCisjZW5kaWYKLS0gCjEuNi41Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47889</attachid>
            <date>2010-02-01 17:42:38 -0800</date>
            <delta_ts>2010-02-01 18:33:37 -0800</delta_ts>
            <desc>add tests for the form-roles</desc>
            <filename>34449-2.patch</filename>
            <type>text/plain</type>
            <size>13722</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSBiYzAzODdkYTZiZDFlYjIzMjYxNzdiZjE1MGI0NWMwNDM4N2VlZjEzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpkQHZibG9ja2hlYWQuKG5vbmUp
PgpEYXRlOiBNb24sIDEgRmViIDIwMTAgMjA6MzY6NDMgLTA1MDAKU3ViamVjdDogW1BBVENIIDIv
Ml0gMjAxMC0wMi0wMSAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNv
bT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQogICAgICAgIFtHdGtdIEV2YWx1
YXRlIGFuZCBjcmVhdGUgdGVzdHMgZm9yIGFsbCB0aGUgQXRrUm9sZSdzIGltcGxlbWVudGVkIGJ5
IFdlYktpdEd0awoKICAgICAgICBBZGRzIHRlc3QgZm9yIGZvcm0gcm9sZXMuCgogICAgICAgICog
dGVzdHMvdGVzdGF0a3JvbGUuYzoKICAgICAgICAodGVzdFdlYmtpdEF0a0dldFJvbGVDaGVja2Jv
eCk6CiAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRSb2xlRW50cnkpOgogICAgICAgICh0ZXN0V2Vi
a2l0QXRrR2V0Um9sZUxhYmVsKToKICAgICAgICAodGVzdFdlYmtpdEF0a0dldFJvbGVMaXN0Ym94
KToKICAgICAgICAodGVzdFdlYmtpdEF0a0dldFJvbGVQYXNzd29yZFRleHQpOgogICAgICAgICh0
ZXN0V2Via2l0QXRrR2V0Um9sZVB1c2hCdXR0b24pOgogICAgICAgICh0ZXN0V2Via2l0QXRrR2V0
Um9sZVJhZGlvQnV0dG9uKToKICAgICAgICAobWFpbik6Ci0tLQogV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgICAgICAgICAgICB8ICAgMTkgKysrCiBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5j
IHwgIDI2MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMg
Y2hhbmdlZCwgMjgwIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA2NTg4NTU0
Li40NzY2NDE1IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtNSw2ICs1LDI1IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQogICAgICAgICBbR3RrXSBFdmFsdWF0ZSBhbmQg
Y3JlYXRlIHRlc3RzIGZvciBhbGwgdGhlIEF0a1JvbGUncyBpbXBsZW1lbnRlZCBieSBXZWJLaXRH
dGsKIAorICAgICAgICBBZGRzIHRlc3QgZm9yIGZvcm0gcm9sZXMuCisKKyAgICAgICAgKiB0ZXN0
cy90ZXN0YXRrcm9sZS5jOgorICAgICAgICAodGVzdFdlYmtpdEF0a0dldFJvbGVDaGVja2JveCk6
CisgICAgICAgICh0ZXN0V2Via2l0QXRrR2V0Um9sZUVudHJ5KToKKyAgICAgICAgKHRlc3RXZWJr
aXRBdGtHZXRSb2xlTGFiZWwpOgorICAgICAgICAodGVzdFdlYmtpdEF0a0dldFJvbGVMaXN0Ym94
KToKKyAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRSb2xlUGFzc3dvcmRUZXh0KToKKyAgICAgICAg
KHRlc3RXZWJraXRBdGtHZXRSb2xlUHVzaEJ1dHRvbik6CisgICAgICAgICh0ZXN0V2Via2l0QXRr
R2V0Um9sZVJhZGlvQnV0dG9uKToKKyAgICAgICAgKG1haW4pOgorCisyMDEwLTAyLTAxICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQorICAgICAgICBbR3RrXSBFdmFsdWF0ZSBhbmQgY3JlYXRl
IHRlc3RzIGZvciBhbGwgdGhlIEF0a1JvbGUncyBpbXBsZW1lbnRlZCBieSBXZWJLaXRHdGsKKwog
ICAgICAgICBBZGRzIHRlc3QgZm9yIG5vbi1mb3JtIHJvbGVzLgogCiAgICAgICAgICogR05VbWFr
ZWZpbGUuYW0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMgYi9X
ZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jCmluZGV4IGVkMDNkOTguLjRiMDE2MjkgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKKysrIGIvV2ViS2l0L2d0
ay90ZXN0cy90ZXN0YXRrcm9sZXMuYwpAQCAtMjYsMTIgKzI2LDE4IEBACiAKICNpZiBHTElCX0NI
RUNLX1ZFUlNJT04oMiwgMTYsIDApICYmIEdUS19DSEVDS19WRVJTSU9OKDIsIDE0LCAwKQogCitz
dGF0aWMgY29uc3QgY2hhciogY2hlY2tib3ggPSAiPGh0bWw+PGJvZHk+PGlucHV0IHR5cGU9J2No
ZWNrYm94JyAvPlRoaXMgaXMgYSB0ZXN0LjwvYm9keT48L2h0bWw+IjsKIHN0YXRpYyBjb25zdCBj
aGFyKiBkb2N1bWVudEZyYW1lID0gIjxodG1sPjxib2R5PlRoaXMgaXMgYSB0ZXN0LjwvYm9keT48
L2h0bWw+IjsKIHN0YXRpYyBjb25zdCBjaGFyKiBoZWFkaW5nID0gIjxodG1sPjxib2R5PjxoMT4x
PC9oMT48aDI+MjwvaDI+PGgzPjM8L2gzPjxoND40PC9oND48aDU+NTwvaDU+PGg2PjY8L2g2Pjwv
Ym9keT48L2h0bWw+IjsKIHN0YXRpYyBjb25zdCBjaGFyKiBpbWFnZSA9ICI8aHRtbD48Ym9keT48
aW1nIHNyYz0nZm9vYmFyLnBuZycgYWx0PSdUaGlzIGlzIGEgdGVzdC4nLz48L2JvZHk+PC9odG1s
PiI7CitzdGF0aWMgY29uc3QgY2hhciogbGFiZWxlZEVudHJ5ID0gIjxodG1sPjxib2R5PjxsYWJl
bCBmb3I9J2Zvbyc+TmFtZTo8L2xhYmVsPjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0nZm9vJyAvPjwv
Ym9keT48L2h0bWw+IjsKIHN0YXRpYyBjb25zdCBjaGFyKiBsaW5rVGV4dCA9ICI8aHRtbD48Ym9k
eT48YSBocmVmPSdmb29iYXIuaHRtbCc+VGhpcyBpcyBhIHRlc3QuPC9hPjwvYm9keT48L2h0bWw+
IjsKIHN0YXRpYyBjb25zdCBjaGFyKiBsaXN0ID0gIjxodG1sPjxib2R5Pjx1bD48bGk+MTwvbGk+
PGxpPjI8L2xpPjwvdWw+PG9sPjxsaT4xPC9saT48bGk+MjwvbGk+PC9vbD48L2JvZHk+PC9odG1s
PiI7CitzdGF0aWMgY29uc3QgY2hhciogbGlzdGJveCA9ICI8aHRtbD48Ym9keT48c2VsZWN0IHNp
emU9JzMnPjxvcHRpb24+b25lPC9vcHRpb24+PG9wdGlvbj50d288L29wdGlvbj48b3B0aW9uPnRo
cmVlPC9vcHRpb24+PC9zZWxlY3Q+PC9ib2R5PjwvaHRtbD4iOwogc3RhdGljIGNvbnN0IGNoYXIq
IHBhcmFncmFwaCA9ICI8aHRtbD48Ym9keT48cD5UaGlzIGlzIGEgdGVzdC48L3A+PC9ib2R5Pjwv
aHRtbD4iOworc3RhdGljIGNvbnN0IGNoYXIqIHBhc3N3b3JkVGV4dCA9ICI8aHRtbD48Ym9keT48
aW5wdXQgdHlwZT0ncGFzc3dvcmQnIC8+PC9ib2R5PjwvaHRtbD4iOworc3RhdGljIGNvbnN0IGNo
YXIqIHB1c2hCdXR0b24gPSAiPGh0bWw+PGJvZHk+PGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9
J29rJyAvPlRoaXMgaXMgYSB0ZXN0LjwvYm9keT48L2h0bWw+IjsKK3N0YXRpYyBjb25zdCBjaGFy
KiByYWRpb0J1dHRvbiA9ICI8aHRtbD48Ym9keT48aW5wdXQgdHlwZT0ncmFkaW8nIC8+VGhpcyBp
cyBhIHRlc3QuPC9ib2R5PjwvaHRtbD4iOwogc3RhdGljIGNvbnN0IGNoYXIqIHNlY3Rpb24gPSAi
PGh0bWw+PGJvZHk+PGRpdj5UaGlzIGlzIGEgdGVzdC48L2Rpdj48L2JvZHk+PC9odG1sPiI7CiBz
dGF0aWMgY29uc3QgY2hhciogdGFibGUgPSAiPGh0bWw+PGJvZHk+PHRhYmxlIGJvcmRlcj0nMSc+
PHRyPjx0ZD5UaGlzIGlzPC90ZD48dGQ+YSB0ZXN0LjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48
L2h0bWw+IjsKIApAQCAtNDMsNiArNDksMzkgQEAgc3RhdGljIGdib29sZWFuIGJhaWxPdXQoR01h
aW5Mb29wKiBsb29wKQogICAgIHJldHVybiBGQUxTRTsKIH0KIAorc3RhdGljIHZvaWQgdGVzdFdl
YmtpdEF0a0dldFJvbGVDaGVja2JveCh2b2lkKQoreworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXc7CisgICAgQXRrT2JqZWN0KiBvYmo7CisgICAgQXRrUm9sZSByb2xlOworICAgIEdNYWluTG9v
cCogbG9vcDsKKworICAgIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3
X25ldygpKTsKKyAgICBnX29iamVjdF9yZWZfc2luayh3ZWJWaWV3KTsKKyAgICBHdGtBbGxvY2F0
aW9uIGFsbG9jID0geyAwLCAwLCA4MDAsIDYwMCB9OworICAgIGd0a193aWRnZXRfc2l6ZV9hbGxv
Y2F0ZShHVEtfV0lER0VUKHdlYlZpZXcpLCAmYWxsb2MpOworICAgIHdlYmtpdF93ZWJfdmlld19s
b2FkX3N0cmluZyh3ZWJWaWV3LCBjaGVja2JveCwgTlVMTCwgTlVMTCwgTlVMTCk7CisgICAgbG9v
cCA9IGdfbWFpbl9sb29wX25ldyhOVUxMLCBUUlVFKTsKKworICAgIGdfdGltZW91dF9hZGQoMTAw
LCAoR1NvdXJjZUZ1bmMpYmFpbE91dCwgbG9vcCk7CisgICAgZ19tYWluX2xvb3BfcnVuKGxvb3Ap
OworCisgICAgb2JqID0gZ3RrX3dpZGdldF9nZXRfYWNjZXNzaWJsZShHVEtfV0lER0VUKHdlYlZp
ZXcpKTsKKyAgICBnX2Fzc2VydChvYmopOworCisgICAgLy8gVGhpcyBpcyBhbiBleHRyYW5lb3Vz
IG9iamVjdCBvZiBBVEtfUk9MRV9QQU5FTCB3aGljaCB3ZSBzaG91bGQgZ2V0IHJpZCBvZi4KKyAg
ICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iaiwgMCk7CisgICAgZ19h
c3NlcnQob2JqKTsKKworICAgIG9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQo
b2JqLCAwKTsKKyAgICBnX2Fzc2VydChvYmopOworICAgIHJvbGUgPSBhdGtfb2JqZWN0X2dldF9y
b2xlKG9iaik7CisgICAgZ19hc3NlcnQocm9sZSA9PSBBVEtfUk9MRV9DSEVDS19CT1gpOworCisg
ICAgZ19vYmplY3RfdW5yZWYob2JqKTsKKyAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKK30K
Kwogc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFJvbGVEb2N1bWVudEZyYW1lKHZvaWQpCiB7
CiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldzsKQEAgLTY4LDYgKzEwNywzOSBAQCBzdGF0aWMg
dm9pZCB0ZXN0V2Via2l0QXRrR2V0Um9sZURvY3VtZW50RnJhbWUodm9pZCkKICAgICBnX29iamVj
dF91bnJlZih3ZWJWaWV3KTsKIH0KIAorc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFJvbGVF
bnRyeSh2b2lkKQoreworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXc7CisgICAgQXRrT2JqZWN0
KiBvYmo7CisgICAgQXRrUm9sZSByb2xlOworICAgIEdNYWluTG9vcCogbG9vcDsKKworICAgIHdl
YlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3X25ldygpKTsKKyAgICBnX29i
amVjdF9yZWZfc2luayh3ZWJWaWV3KTsKKyAgICBHdGtBbGxvY2F0aW9uIGFsbG9jID0geyAwLCAw
LCA4MDAsIDYwMCB9OworICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShHVEtfV0lER0VUKHdl
YlZpZXcpLCAmYWxsb2MpOworICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJWaWV3
LCBsYWJlbGVkRW50cnksIE5VTEwsIE5VTEwsIE5VTEwpOworICAgIGxvb3AgPSBnX21haW5fbG9v
cF9uZXcoTlVMTCwgVFJVRSk7CisKKyAgICBnX3RpbWVvdXRfYWRkKDEwMCwgKEdTb3VyY2VGdW5j
KWJhaWxPdXQsIGxvb3ApOworICAgIGdfbWFpbl9sb29wX3J1bihsb29wKTsKKworICAgIG9iaiA9
IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgZ19h
c3NlcnQob2JqKTsKKworICAgIC8vIFRoaXMgaXMgYW4gZXh0cmFuZW91cyBvYmplY3Qgb2YgQVRL
X1JPTEVfUEFORUwgd2hpY2ggd2Ugc2hvdWxkIGdldCByaWQgb2YuCisgICAgb2JqID0gYXRrX29i
amVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmosIDApOworICAgIGdfYXNzZXJ0KG9iaik7CisK
KyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iaiwgMSk7CisgICAg
Z19hc3NlcnQob2JqKTsKKyAgICByb2xlID0gYXRrX29iamVjdF9nZXRfcm9sZShvYmopOworICAg
IGdfYXNzZXJ0KHJvbGUgPT0gQVRLX1JPTEVfRU5UUlkpOworCisgICAgZ19vYmplY3RfdW5yZWYo
b2JqKTsKKyAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKK30KKwogc3RhdGljIHZvaWQgdGVz
dFdlYmtpdEF0a0dldFJvbGVIZWFkaW5nKHZvaWQpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogd2Vi
VmlldzsKQEAgLTE1Nyw2ICsyMjksMzkgQEAgc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFJv
bGVJbWFnZSh2b2lkKQogICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOwogfQogCitzdGF0aWMg
dm9pZCB0ZXN0V2Via2l0QXRrR2V0Um9sZUxhYmVsKHZvaWQpCit7CisgICAgV2ViS2l0V2ViVmll
dyogd2ViVmlldzsKKyAgICBBdGtPYmplY3QqIG9iajsKKyAgICBBdGtSb2xlIHJvbGU7CisgICAg
R01haW5Mb29wKiBsb29wOworCisgICAgd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRf
d2ViX3ZpZXdfbmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOworICAgIEd0
a0FsbG9jYXRpb24gYWxsb2MgPSB7IDAsIDAsIDgwMCwgNjAwIH07CisgICAgZ3RrX3dpZGdldF9z
aXplX2FsbG9jYXRlKEdUS19XSURHRVQod2ViVmlldyksICZhbGxvYyk7CisgICAgd2Via2l0X3dl
Yl92aWV3X2xvYWRfc3RyaW5nKHdlYlZpZXcsIGxhYmVsZWRFbnRyeSwgTlVMTCwgTlVMTCwgTlVM
TCk7CisgICAgbG9vcCA9IGdfbWFpbl9sb29wX25ldyhOVUxMLCBUUlVFKTsKKworICAgIGdfdGlt
ZW91dF9hZGQoMTAwLCAoR1NvdXJjZUZ1bmMpYmFpbE91dCwgbG9vcCk7CisgICAgZ19tYWluX2xv
b3BfcnVuKGxvb3ApOworCisgICAgb2JqID0gZ3RrX3dpZGdldF9nZXRfYWNjZXNzaWJsZShHVEtf
V0lER0VUKHdlYlZpZXcpKTsKKyAgICBnX2Fzc2VydChvYmopOworCisgICAgLy8gVGhpcyBpcyBh
biBleHRyYW5lb3VzIG9iamVjdCBvZiBBVEtfUk9MRV9QQU5FTCB3aGljaCB3ZSBzaG91bGQgZ2V0
IHJpZCBvZi4KKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iaiwg
MCk7CisgICAgZ19hc3NlcnQob2JqKTsKKworICAgIG9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vz
c2libGVfY2hpbGQob2JqLCAwKTsKKyAgICBnX2Fzc2VydChvYmopOworICAgIHJvbGUgPSBhdGtf
b2JqZWN0X2dldF9yb2xlKG9iaik7CisgICAgZ19hc3NlcnQocm9sZSA9PSBBVEtfUk9MRV9MQUJF
TCk7CisKKyAgICBnX29iamVjdF91bnJlZihvYmopOworICAgIGdfb2JqZWN0X3VucmVmKHdlYlZp
ZXcpOworfQorCiBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0Um9sZUxpbmsodm9pZCkKIHsK
ICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3OwpAQCAtMjQ4LDYgKzM1Myw1NiBAQCBzdGF0aWMg
dm9pZCB0ZXN0V2Via2l0QXRrR2V0Um9sZUxpc3RBbmRJdGVtKHZvaWQpCiAgICAgZ19vYmplY3Rf
dW5yZWYod2ViVmlldyk7CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtHZXRSb2xlTGlz
dGJveCh2b2lkKQoreworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXc7CisgICAgQXRrT2JqZWN0
KiBwYW5lbDsKKyAgICBBdGtPYmplY3QqIG9iajsKKyAgICBBdGtSb2xlIHJvbGU7CisgICAgR01h
aW5Mb29wKiBsb29wOworCisgICAgd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2Vi
X3ZpZXdfbmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOworICAgIEd0a0Fs
bG9jYXRpb24gYWxsb2MgPSB7IDAsIDAsIDgwMCwgNjAwIH07CisgICAgZ3RrX3dpZGdldF9zaXpl
X2FsbG9jYXRlKEdUS19XSURHRVQod2ViVmlldyksICZhbGxvYyk7CisgICAgd2Via2l0X3dlYl92
aWV3X2xvYWRfc3RyaW5nKHdlYlZpZXcsIGxpc3Rib3gsIE5VTEwsIE5VTEwsIE5VTEwpOworICAg
IGxvb3AgPSBnX21haW5fbG9vcF9uZXcoTlVMTCwgVFJVRSk7CisKKyAgICBnX3RpbWVvdXRfYWRk
KDEwMCwgKEdTb3VyY2VGdW5jKWJhaWxPdXQsIGxvb3ApOworICAgIGdfbWFpbl9sb29wX3J1bihs
b29wKTsKKworICAgIG9iaiA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3
ZWJWaWV3KSk7CisgICAgZ19hc3NlcnQob2JqKTsKKworICAgIC8vIFRoaXMgaXMgYW4gZXh0cmFu
ZW91cyBvYmplY3Qgb2YgQVRLX1JPTEVfUEFORUwgd2hpY2ggd2Ugc2hvdWxkIGdldCByaWQgb2Yu
CisgICAgb2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmosIDApOworICAg
IGdfYXNzZXJ0KG9iaik7CisKKyAgICBsaXN0Ym94ID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJs
ZV9jaGlsZChvYmosIDApOworICAgIGdfYXNzZXJ0KGxpc3Rib3gpOworICAgIHJvbGUgPSBhdGtf
b2JqZWN0X2dldF9yb2xlKGxpc3Rib3gpOworICAgIGdfYXNzZXJ0KHJvbGUgPT0gQVRLX1JPTEVf
TElTVCk7CisKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGxpc3Ri
b3gsIDApOworICAgIGdfYXNzZXJ0KG9iaik7CisgICAgcm9sZSA9IGF0a19vYmplY3RfZ2V0X3Jv
bGUob2JqKTsKKyAgICBnX2Fzc2VydChyb2xlID09IEFUS19ST0xFX0xJU1RfSVRFTSk7CisKKyAg
ICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGxpc3Rib3gsIDEpOworICAg
IGdfYXNzZXJ0KG9iaik7CisgICAgcm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUob2JqKTsKKyAg
ICBnX2Fzc2VydChyb2xlID09IEFUS19ST0xFX0xJU1RfSVRFTSk7CisKKyAgICBvYmogPSBhdGtf
b2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGxpc3Rib3gsIDIpOworICAgIGdfYXNzZXJ0KG9i
aik7CisgICAgcm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUob2JqKTsKKyAgICBnX2Fzc2VydChy
b2xlID09IEFUS19ST0xFX0xJU1RfSVRFTSk7CisKKyAgICBnX29iamVjdF91bnJlZihvYmopOwor
ICAgIGdfb2JqZWN0X3VucmVmKGxpc3Rib3gpOworICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcp
OworfQorCiBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0Um9sZVBhcmFncmFwaCh2b2lkKQog
ewogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXc7CkBAIC0yNzcsNiArNDMyLDEwNSBAQCBzdGF0
aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0Um9sZVBhcmFncmFwaCh2b2lkKQogICAgIGdfb2JqZWN0
X3VucmVmKHdlYlZpZXcpOwogfQogCitzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0Um9sZVBh
c3N3b3JkVGV4dCh2b2lkKQoreworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXc7CisgICAgQXRr
T2JqZWN0KiBvYmo7CisgICAgQXRrUm9sZSByb2xlOworICAgIEdNYWluTG9vcCogbG9vcDsKKwor
ICAgIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3X25ldygpKTsKKyAg
ICBnX29iamVjdF9yZWZfc2luayh3ZWJWaWV3KTsKKyAgICBHdGtBbGxvY2F0aW9uIGFsbG9jID0g
eyAwLCAwLCA4MDAsIDYwMCB9OworICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShHVEtfV0lE
R0VUKHdlYlZpZXcpLCAmYWxsb2MpOworICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3
ZWJWaWV3LCBsYWJlbGVkRW50cnksIE5VTEwsIE5VTEwsIE5VTEwpOworICAgIGxvb3AgPSBnX21h
aW5fbG9vcF9uZXcoTlVMTCwgVFJVRSk7CisKKyAgICBnX3RpbWVvdXRfYWRkKDEwMCwgKEdTb3Vy
Y2VGdW5jKWJhaWxPdXQsIGxvb3ApOworICAgIGdfbWFpbl9sb29wX3J1bihsb29wKTsKKworICAg
IG9iaiA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7Cisg
ICAgZ19hc3NlcnQob2JqKTsKKworICAgIC8vIFRoaXMgaXMgYW4gZXh0cmFuZW91cyBvYmplY3Qg
b2YgQVRLX1JPTEVfUEFORUwgd2hpY2ggd2Ugc2hvdWxkIGdldCByaWQgb2YuCisgICAgb2JqID0g
YXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmosIDApOworICAgIGdfYXNzZXJ0KG9i
aik7CisKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iaiwgMSk7
CisgICAgZ19hc3NlcnQob2JqKTsKKyAgICByb2xlID0gYXRrX29iamVjdF9nZXRfcm9sZShvYmop
OworICAgIGdfYXNzZXJ0KHJvbGUgPT0gQVRLX1JPTEVfRU5UUlkpOworCisgICAgZ19vYmplY3Rf
dW5yZWYob2JqKTsKKyAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKK30KKworc3RhdGljIHZv
aWQgdGVzdFdlYmtpdEF0a0dldFJvbGVQdXNoQnV0dG9uKHZvaWQpCit7CisgICAgV2ViS2l0V2Vi
Vmlldyogd2ViVmlldzsKKyAgICBBdGtPYmplY3QqIG9iajsKKyAgICBBdGtSb2xlIHJvbGU7Cisg
ICAgR01haW5Mb29wKiBsb29wOworCisgICAgd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJr
aXRfd2ViX3ZpZXdfbmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOworICAg
IEd0a0FsbG9jYXRpb24gYWxsb2MgPSB7IDAsIDAsIDgwMCwgNjAwIH07CisgICAgZ3RrX3dpZGdl
dF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQod2ViVmlldyksICZhbGxvYyk7CisgICAgd2Via2l0
X3dlYl92aWV3X2xvYWRfc3RyaW5nKHdlYlZpZXcsIHBhc3N3b3JkVGV4dCwgTlVMTCwgTlVMTCwg
TlVMTCk7CisgICAgbG9vcCA9IGdfbWFpbl9sb29wX25ldyhOVUxMLCBUUlVFKTsKKworICAgIGdf
dGltZW91dF9hZGQoMTAwLCAoR1NvdXJjZUZ1bmMpYmFpbE91dCwgbG9vcCk7CisgICAgZ19tYWlu
X2xvb3BfcnVuKGxvb3ApOworCisgICAgb2JqID0gZ3RrX3dpZGdldF9nZXRfYWNjZXNzaWJsZShH
VEtfV0lER0VUKHdlYlZpZXcpKTsKKyAgICBnX2Fzc2VydChvYmopOworCisgICAgLy8gVGhpcyBp
cyBhbiBleHRyYW5lb3VzIG9iamVjdCBvZiBBVEtfUk9MRV9QQU5FTCB3aGljaCB3ZSBzaG91bGQg
Z2V0IHJpZCBvZi4KKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9i
aiwgMCk7CisgICAgZ19hc3NlcnQob2JqKTsKKworICAgIG9iaiA9IGF0a19vYmplY3RfcmVmX2Fj
Y2Vzc2libGVfY2hpbGQob2JqLCAwKTsKKyAgICBnX2Fzc2VydChvYmopOworICAgIHJvbGUgPSBh
dGtfb2JqZWN0X2dldF9yb2xlKG9iaik7CisgICAgZ19hc3NlcnQocm9sZSA9PSBBVEtfUk9MRV9Q
QVNTV09SRF9URVhUKTsKKworICAgIGdfb2JqZWN0X3VucmVmKG9iaik7CisgICAgZ19vYmplY3Rf
dW5yZWYod2ViVmlldyk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtHZXRSb2xlUmFk
aW9CdXR0b24odm9pZCkKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3OworICAgIEF0a09i
amVjdCogb2JqOworICAgIEF0a1JvbGUgcm9sZTsKKyAgICBHTWFpbkxvb3AqIGxvb3A7CisKKyAg
ICB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7CisgICAg
Z19vYmplY3RfcmVmX3Npbmsod2ViVmlldyk7CisgICAgR3RrQWxsb2NhdGlvbiBhbGxvYyA9IHsg
MCwgMCwgODAwLCA2MDAgfTsKKyAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoR1RLX1dJREdF
VCh3ZWJWaWV3KSwgJmFsbG9jKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcod2Vi
VmlldywgcmFkaW9CdXR0b24sIE5VTEwsIE5VTEwsIE5VTEwpOworICAgIGxvb3AgPSBnX21haW5f
bG9vcF9uZXcoTlVMTCwgVFJVRSk7CisKKyAgICBnX3RpbWVvdXRfYWRkKDEwMCwgKEdTb3VyY2VG
dW5jKWJhaWxPdXQsIGxvb3ApOworICAgIGdfbWFpbl9sb29wX3J1bihsb29wKTsKKworICAgIG9i
aiA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAg
Z19hc3NlcnQob2JqKTsKKworICAgIC8vIFRoaXMgaXMgYW4gZXh0cmFuZW91cyBvYmplY3Qgb2Yg
QVRLX1JPTEVfUEFORUwgd2hpY2ggd2Ugc2hvdWxkIGdldCByaWQgb2YuCisgICAgb2JqID0gYXRr
X29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmosIDApOworICAgIGdfYXNzZXJ0KG9iaik7
CisKKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iaiwgMCk7Cisg
ICAgZ19hc3NlcnQob2JqKTsKKyAgICByb2xlID0gYXRrX29iamVjdF9nZXRfcm9sZShvYmopOwor
ICAgIGdfYXNzZXJ0KHJvbGUgPT0gQVRLX1JPTEVfUkFESU9fQlVUVE9OKTsKKworICAgIGdfb2Jq
ZWN0X3VucmVmKG9iaik7CisgICAgZ19vYmplY3RfdW5yZWYod2ViVmlldyk7Cit9CisKIHN0YXRp
YyB2b2lkIHRlc3RXZWJraXRBdGtHZXRSb2xlU2VjdGlvbih2b2lkKQogewogICAgIFdlYktpdFdl
YlZpZXcqIHdlYlZpZXc7CkBAIC0zNDIsMTIgKzU5NiwxOSBAQCBpbnQgbWFpbihpbnQgYXJnYywg
Y2hhcioqIGFyZ3YpCiAgICAgZ3RrX3Rlc3RfaW5pdCgmYXJnYywgJmFyZ3YsIE5VTEwpOwogCiAg
ICAgZ190ZXN0X2J1Z19iYXNlKCJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8iKTsKKyAgICBnX3Rl
c3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RXZWJraXRBdGtHZXRSb2xlQ2hlY2tib3giLCB0
ZXN0V2Via2l0QXRrR2V0Um9sZUNoZWNrYm94KTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJr
aXQvYXRrL3Rlc3RXZWJraXRBdGtHZXRSb2xlRG9jdW1lbnRGcmFtZSIsIHRlc3RXZWJraXRBdGtH
ZXRSb2xlRG9jdW1lbnRGcmFtZSk7CisgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay90
ZXN0V2Via2l0QXRrR2V0Um9sZUVudHJ5IiwgdGVzdFdlYmtpdEF0a0dldFJvbGVFbnRyeSk7CiAg
ICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay90ZXN0V2Via2l0QXRrR2V0Um9sZUhlYWRp
bmciLCB0ZXN0V2Via2l0QXRrR2V0Um9sZUhlYWRpbmcpOwogICAgIGdfdGVzdF9hZGRfZnVuYygi
L3dlYmtpdC9hdGsvdGVzdFdlYmtpdEF0a0dldFJvbGVJbWFnZSIsIHRlc3RXZWJraXRBdGtHZXRS
b2xlSW1hZ2UpOworICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvdGVzdFdlYmtpdEF0
a0dldFJvbGVMYWJlbCIsIHRlc3RXZWJraXRBdGtHZXRSb2xlTGFiZWwpOwogICAgIGdfdGVzdF9h
ZGRfZnVuYygiL3dlYmtpdC9hdGsvdGVzdFdlYmtpdEF0a0dldFJvbGVMaW5rIiwgdGVzdFdlYmtp
dEF0a0dldFJvbGVMaW5rKTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RX
ZWJraXRBdGtHZXRSb2xlTGlzdEFuZEl0ZW0iLCB0ZXN0V2Via2l0QXRrR2V0Um9sZUxpc3RBbmRJ
dGVtKTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RXZWJraXRBdGtHZXRS
b2xlTGlzdGJveCIsIHRlc3RXZWJraXRBdGtHZXRSb2xlTGlzdGJveCk7CiAgICAgZ190ZXN0X2Fk
ZF9mdW5jKCIvd2Via2l0L2F0ay90ZXN0V2Via2l0QXRrR2V0Um9sZVBhcmFncmFwaCIsIHRlc3RX
ZWJraXRBdGtHZXRSb2xlUGFyYWdyYXBoKTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQv
YXRrL3Rlc3RXZWJraXRBdGtHZXRSb2xlUGFzc3dvcmRUZXh0IiwgdGVzdFdlYmtpdEF0a0dldFJv
bGVQYXNzd29yZFRleHQpOworICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvdGVzdFdl
YmtpdEF0a0dldFJvbGVQdXNoQnV0dG9uIiwgdGVzdFdlYmtpdEF0a0dldFJvbGVQdXNoQnV0dG9u
KTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RXZWJraXRBdGtHZXRSb2xl
UmFkaW9CdXR0b24iLCB0ZXN0V2Via2l0QXRrR2V0Um9sZVJhZGlvQnV0dG9uKTsKICAgICBnX3Rl
c3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RXZWJraXRBdGtHZXRSb2xlU2VjdGlvbiIsIHRl
c3RXZWJraXRBdGtHZXRSb2xlU2VjdGlvbik7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0
L2F0ay90ZXN0V2Via2l0QXRrR2V0Um9sZVRhYmxlIiwgdGVzdFdlYmtpdEF0a0dldFJvbGVUYWJs
ZSk7CiAgICAgcmV0dXJuIGdfdGVzdF9ydW4gKCk7Ci0tIAoxLjYuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47893</attachid>
            <date>2010-02-01 18:05:02 -0800</date>
            <delta_ts>2010-02-26 13:22:36 -0800</delta_ts>
            <desc>implement ATK_ROLE_FORM (includes test) - PART 3.</desc>
            <filename>34449-3.patch</filename>
            <type>text/plain</type>
            <size>5440</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSAxY2JmYjRiMWQwY2QzOTRmN2U4NDQ1YjFkYjI3YzU3ZDhiNWQ1Yjc4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpkQHZibG9ja2hlYWQuKG5vbmUp
PgpEYXRlOiBNb24sIDEgRmViIDIwMTAgMjA6NTg6MTIgLTA1MDAKU3ViamVjdDogW1BBVENIIDMv
M10gMjAxMC0wMi0wMSAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNv
bT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQogICAgICAgIFtHdGtdIEV2YWx1
YXRlIGFuZCBjcmVhdGUgdGVzdHMgZm9yIGFsbCB0aGUgQXRrUm9sZSdzIGltcGxlbWVudGVkIGJ5
IFdlYktpdEd0awoKICAgICAgICBJbXBsZW1lbnQgc3VwcHBvcnQgZm9yIEFUS19ST0xFX0ZPUk0u
CgogICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJB
dGsuY3BwOgogICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV9nZXRfcm9sZSk6Ci0tLQogV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKysr
KysKIC4uLi9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwg
ICAgMiArCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTMgKysrKysrKysKIFdlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMgICAgICAg
ICAgICAgICAgICAgIHwgICAzMSArKysrKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2Vk
LCA1OCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY5MzIwMC4uZmY2ODBiZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMC0wMi0wMSAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dz
QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKKyAgICAg
ICAgW0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3Mg
aW1wbGVtZW50ZWQgYnkgV2ViS2l0R3RrCisKKyAgICAgICAgSW1wbGVtZW50IHN1cHBwb3J0IGZv
ciBBVEtfUk9MRV9GT1JNLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgorICAgICAgICAod2Via2l0X2FjY2Vzc2libGVfZ2V0
X3JvbGUpOgorCiAyMDEwLTAyLTAxICBIZW5yeSBIYXZlcmluZW4gIDxoZW5yeS5oYXZlcmluZW5A
bm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckF0ay5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQXRrLmNwcAppbmRleCA4NzA3MGNkLi44N2UzZWY2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAorKysg
Yi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRr
LmNwcApAQCAtNDQ4LDYgKzQ0OCw4IEBAIHN0YXRpYyBBdGtSb2xlIHdlYmtpdF9hY2Nlc3NpYmxl
X2dldF9yb2xlKEF0a09iamVjdCogb2JqZWN0KQogICAgICAgICAgICAgICAgIHJldHVybiBBVEtf
Uk9MRV9MQUJFTDsKICAgICAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6
ZGl2VGFnKSkKICAgICAgICAgICAgICAgICByZXR1cm4gQVRLX1JPTEVfU0VDVElPTjsKKyAgICAg
ICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6Zm9ybVRhZykpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIEFUS19ST0xFX0ZPUk07CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAt
LWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXgg
NDc2NjQxNS4uNzljN2UzZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTUsNiArNSwxOSBAQAogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKICAgICAgICAgW0d0a10gRXZhbHVh
dGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1wbGVtZW50ZWQgYnkg
V2ViS2l0R3RrCiAKKyAgICAgICAgQWRkcyB0ZXN0IGZvciBBVEtfUk9MRV9GT1JNLgorCisgICAg
ICAgICogdGVzdHMvdGVzdGF0a3JvbGUuYzoKKyAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRSb2xl
Rm9ybSk6CisgICAgICAgIChtYWluKToKKworMjAxMC0wMi0wMSAgSm9hbm1hcmllIERpZ2dzICA8
am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzQ0NDkKKyAgICAgICAgW0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxs
IHRoZSBBdGtSb2xlJ3MgaW1wbGVtZW50ZWQgYnkgV2ViS2l0R3RrCisKICAgICAgICAgQWRkcyB0
ZXN0IGZvciBmb3JtIHJvbGVzLgogCiAgICAgICAgICogdGVzdHMvdGVzdGF0a3JvbGUuYzoKZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMgYi9XZWJLaXQvZ3RrL3Rl
c3RzL3Rlc3RhdGtyb2xlcy5jCmluZGV4IDRiMDE2MjkuLjQzNWFkZTQgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKKysrIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0
YXRrcm9sZXMuYwpAQCAtMjgsNiArMjgsNyBAQAogCiBzdGF0aWMgY29uc3QgY2hhciogY2hlY2ti
b3ggPSAiPGh0bWw+PGJvZHk+PGlucHV0IHR5cGU9J2NoZWNrYm94JyAvPlRoaXMgaXMgYSB0ZXN0
LjwvYm9keT48L2h0bWw+IjsKIHN0YXRpYyBjb25zdCBjaGFyKiBkb2N1bWVudEZyYW1lID0gIjxo
dG1sPjxib2R5PlRoaXMgaXMgYSB0ZXN0LjwvYm9keT48L2h0bWw+IjsKK3N0YXRpYyBjb25zdCBj
aGFyKiBmb3JtID0gIjxodG1sPjxib2R5Pjxmb3JtPlRoaXMgaXMgYSB0ZXN0LjwvZm9ybT48L2Jv
ZHk+PC9odG1sPiI7CiBzdGF0aWMgY29uc3QgY2hhciogaGVhZGluZyA9ICI8aHRtbD48Ym9keT48
aDE+MTwvaDE+PGgyPjI8L2gyPjxoMz4zPC9oMz48aDQ+NDwvaDQ+PGg1PjU8L2g1PjxoNj42PC9o
Nj48L2JvZHk+PC9odG1sPiI7CiBzdGF0aWMgY29uc3QgY2hhciogaW1hZ2UgPSAiPGh0bWw+PGJv
ZHk+PGltZyBzcmM9J2Zvb2Jhci5wbmcnIGFsdD0nVGhpcyBpcyBhIHRlc3QuJy8+PC9ib2R5Pjwv
aHRtbD4iOwogc3RhdGljIGNvbnN0IGNoYXIqIGxhYmVsZWRFbnRyeSA9ICI8aHRtbD48Ym9keT48
bGFiZWwgZm9yPSdmb28nPk5hbWU6PC9sYWJlbD48aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2Zvbycg
Lz48L2JvZHk+PC9odG1sPiI7CkBAIC0xNDAsNiArMTQxLDM1IEBAIHN0YXRpYyB2b2lkIHRlc3RX
ZWJraXRBdGtHZXRSb2xlRW50cnkodm9pZCkKICAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsK
IH0KIAorc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFJvbGVGb3JtKHZvaWQpCit7CisgICAg
V2ViS2l0V2ViVmlldyogd2ViVmlldzsKKyAgICBBdGtPYmplY3QqIG9iajsKKyAgICBBdGtSb2xl
IHJvbGU7CisgICAgR01haW5Mb29wKiBsb29wOworCisgICAgd2ViVmlldyA9IFdFQktJVF9XRUJf
VklFVyh3ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZp
ZXcpOworICAgIEd0a0FsbG9jYXRpb24gYWxsb2MgPSB7IDAsIDAsIDgwMCwgNjAwIH07CisgICAg
Z3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQod2ViVmlldyksICZhbGxvYyk7Cisg
ICAgd2Via2l0X3dlYl92aWV3X2xvYWRfc3RyaW5nKHdlYlZpZXcsIGZvcm0sIE5VTEwsIE5VTEws
IE5VTEwpOworICAgIGxvb3AgPSBnX21haW5fbG9vcF9uZXcoTlVMTCwgVFJVRSk7CisKKyAgICBn
X3RpbWVvdXRfYWRkKDEwMCwgKEdTb3VyY2VGdW5jKWJhaWxPdXQsIGxvb3ApOworICAgIGdfbWFp
bl9sb29wX3J1bihsb29wKTsKKworICAgIG9iaiA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUo
R1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgZ19hc3NlcnQob2JqKTsKKyAgICBvYmogPSBhdGtf
b2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iaiwgMCk7CisgICAgZ19hc3NlcnQob2JqKTsK
KworICAgIHJvbGUgPSBhdGtfb2JqZWN0X2dldF9yb2xlKG9iaik7CisgICAgZ19hc3NlcnQocm9s
ZSA9PSBBVEtfUk9MRV9GT1JNKTsKKworICAgIGdfb2JqZWN0X3VucmVmKG9iaik7CisgICAgZ19v
YmplY3RfdW5yZWYod2ViVmlldyk7Cit9CisKIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtHZXRS
b2xlSGVhZGluZyh2b2lkKQogewogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXc7CkBAIC01OTks
NiArNjI5LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIGdfdGVzdF9h
ZGRfZnVuYygiL3dlYmtpdC9hdGsvdGVzdFdlYmtpdEF0a0dldFJvbGVDaGVja2JveCIsIHRlc3RX
ZWJraXRBdGtHZXRSb2xlQ2hlY2tib3gpOwogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9h
dGsvdGVzdFdlYmtpdEF0a0dldFJvbGVEb2N1bWVudEZyYW1lIiwgdGVzdFdlYmtpdEF0a0dldFJv
bGVEb2N1bWVudEZyYW1lKTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RX
ZWJraXRBdGtHZXRSb2xlRW50cnkiLCB0ZXN0V2Via2l0QXRrR2V0Um9sZUVudHJ5KTsKKyAgICBn
X3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RXZWJraXRBdGtHZXRSb2xlRm9ybSIsIHRl
c3RXZWJraXRBdGtHZXRSb2xlRm9ybSk7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0
ay90ZXN0V2Via2l0QXRrR2V0Um9sZUhlYWRpbmciLCB0ZXN0V2Via2l0QXRrR2V0Um9sZUhlYWRp
bmcpOwogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvdGVzdFdlYmtpdEF0a0dldFJv
bGVJbWFnZSIsIHRlc3RXZWJraXRBdGtHZXRSb2xlSW1hZ2UpOwogICAgIGdfdGVzdF9hZGRfZnVu
YygiL3dlYmtpdC9hdGsvdGVzdFdlYmtpdEF0a0dldFJvbGVMYWJlbCIsIHRlc3RXZWJraXRBdGtH
ZXRSb2xlTGFiZWwpOwotLSAKMS42LjUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47899</attachid>
            <date>2010-02-01 18:51:22 -0800</date>
            <delta_ts>2010-02-26 13:23:02 -0800</delta_ts>
            <desc>add tests for the form-roles - THIS IS PART 2</desc>
            <filename>34449-2a.patch</filename>
            <type>text/plain</type>
            <size>13742</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSAyOTI5YzVlMmNiYzllZGZhYTYzZGFkMGFlMTNjNjIzYzEyYzZjNDg2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpkQHZibG9ja2hlYWQuKG5vbmUp
PgpEYXRlOiBNb24sIDEgRmViIDIwMTAgMjA6MzY6NDMgLTA1MDAKU3ViamVjdDogW1BBVENIIDIv
Ml0gMjAxMC0wMi0wMSBKb2FubWFyaWUgRGlnZ3MgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+
CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDQ5CiAgICAgICAgW0d0a10gRXZhbHVhdGUgYW5kIGNy
ZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1wbGVtZW50ZWQgYnkgV2ViS2l0R3Rr
CgogICAgICAgIEFkZHMgdGVzdCBmb3IgZm9ybSByb2xlcy4KCiAgICAgICAgKiB0ZXN0cy90ZXN0
YXRrcm9sZS5jOgogICAgICAgICh0ZXN0V2Via2l0QXRrR2V0Um9sZUNoZWNrYm94KToKICAgICAg
ICAodGVzdFdlYmtpdEF0a0dldFJvbGVFbnRyeSk6CiAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRS
b2xlTGFiZWwpOgogICAgICAgICh0ZXN0V2Via2l0QXRrR2V0Um9sZUxpc3Rib3gpOgogICAgICAg
ICh0ZXN0V2Via2l0QXRrR2V0Um9sZVBhc3N3b3JkVGV4dCk6CiAgICAgICAgKHRlc3RXZWJraXRB
dGtHZXRSb2xlUHVzaEJ1dHRvbik6CiAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRSb2xlUmFkaW9C
dXR0b24pOgogICAgICAgIChtYWluKToKLS0tCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAg
ICAgIHwgICAxOSArKysKIFdlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMgfCAgMjYxICsr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAy
ODAgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDY1ODg1NTQuLjQ3NjY0MTUg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCkBAIC01LDYgKzUsMjUgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM0NDQ5CiAgICAgICAgIFtHdGtdIEV2YWx1YXRlIGFuZCBjcmVhdGUgdGVz
dHMgZm9yIGFsbCB0aGUgQXRrUm9sZSdzIGltcGxlbWVudGVkIGJ5IFdlYktpdEd0awogCisgICAg
ICAgIEFkZHMgdGVzdCBmb3IgZm9ybSByb2xlcy4KKworICAgICAgICAqIHRlc3RzL3Rlc3RhdGty
b2xlLmM6CisgICAgICAgICh0ZXN0V2Via2l0QXRrR2V0Um9sZUNoZWNrYm94KToKKyAgICAgICAg
KHRlc3RXZWJraXRBdGtHZXRSb2xlRW50cnkpOgorICAgICAgICAodGVzdFdlYmtpdEF0a0dldFJv
bGVMYWJlbCk6CisgICAgICAgICh0ZXN0V2Via2l0QXRrR2V0Um9sZUxpc3Rib3gpOgorICAgICAg
ICAodGVzdFdlYmtpdEF0a0dldFJvbGVQYXNzd29yZFRleHQpOgorICAgICAgICAodGVzdFdlYmtp
dEF0a0dldFJvbGVQdXNoQnV0dG9uKToKKyAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRSb2xlUmFk
aW9CdXR0b24pOgorICAgICAgICAobWFpbik6CisKKzIwMTAtMDItMDEgIEpvYW5tYXJpZSBEaWdn
cyAgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM0NDQ5CisgICAgICAgIFtHdGtdIEV2YWx1YXRlIGFuZCBjcmVhdGUgdGVzdHMgZm9y
IGFsbCB0aGUgQXRrUm9sZSdzIGltcGxlbWVudGVkIGJ5IFdlYktpdEd0aworCiAgICAgICAgIEFk
ZHMgdGVzdCBmb3Igbm9uLWZvcm0gcm9sZXMuCiAKICAgICAgICAgKiBHTlVtYWtlZmlsZS5hbQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9sZXMuYyBiL1dlYktpdC9ndGsv
dGVzdHMvdGVzdGF0a3JvbGVzLmMKaW5kZXggZWQwM2Q5OC4uZDI1MDgyOSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9sZXMuYworKysgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rl
c3RhdGtyb2xlcy5jCkBAIC0yNiwxMiArMjYsMTggQEAKIAogI2lmIEdMSUJfQ0hFQ0tfVkVSU0lP
TigyLCAxNiwgMCkgJiYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCiAKK3N0YXRpYyBjb25z
dCBjaGFyKiBjaGVja2JveCA9ICI8aHRtbD48Ym9keT48aW5wdXQgdHlwZT0nY2hlY2tib3gnIC8+
VGhpcyBpcyBhIHRlc3QuPC9ib2R5PjwvaHRtbD4iOwogc3RhdGljIGNvbnN0IGNoYXIqIGRvY3Vt
ZW50RnJhbWUgPSAiPGh0bWw+PGJvZHk+VGhpcyBpcyBhIHRlc3QuPC9ib2R5PjwvaHRtbD4iOwog
c3RhdGljIGNvbnN0IGNoYXIqIGhlYWRpbmcgPSAiPGh0bWw+PGJvZHk+PGgxPjE8L2gxPjxoMj4y
PC9oMj48aDM+MzwvaDM+PGg0PjQ8L2g0PjxoNT41PC9oNT48aDY+NjwvaDY+PC9ib2R5PjwvaHRt
bD4iOwogc3RhdGljIGNvbnN0IGNoYXIqIGltYWdlID0gIjxodG1sPjxib2R5PjxpbWcgc3JjPSdm
b29iYXIucG5nJyBhbHQ9J1RoaXMgaXMgYSB0ZXN0LicvPjwvYm9keT48L2h0bWw+IjsKK3N0YXRp
YyBjb25zdCBjaGFyKiBsYWJlbGVkRW50cnkgPSAiPGh0bWw+PGJvZHk+PGxhYmVsIGZvcj0nZm9v
Jz5OYW1lOjwvbGFiZWw+PGlucHV0IHR5cGU9J3RleHQnIGlkPSdmb28nIC8+PC9ib2R5PjwvaHRt
bD4iOwogc3RhdGljIGNvbnN0IGNoYXIqIGxpbmtUZXh0ID0gIjxodG1sPjxib2R5PjxhIGhyZWY9
J2Zvb2Jhci5odG1sJz5UaGlzIGlzIGEgdGVzdC48L2E+PC9ib2R5PjwvaHRtbD4iOwogc3RhdGlj
IGNvbnN0IGNoYXIqIGxpc3QgPSAiPGh0bWw+PGJvZHk+PHVsPjxsaT4xPC9saT48bGk+MjwvbGk+
PC91bD48b2w+PGxpPjE8L2xpPjxsaT4yPC9saT48L29sPjwvYm9keT48L2h0bWw+IjsKK3N0YXRp
YyBjb25zdCBjaGFyKiBsaXN0Ym94ID0gIjxodG1sPjxib2R5PjxzZWxlY3Qgc2l6ZT0nMyc+PG9w
dGlvbj5vbmU8L29wdGlvbj48b3B0aW9uPnR3bzwvb3B0aW9uPjxvcHRpb24+dGhyZWU8L29wdGlv
bj48L3NlbGVjdD48L2JvZHk+PC9odG1sPiI7CiBzdGF0aWMgY29uc3QgY2hhciogcGFyYWdyYXBo
ID0gIjxodG1sPjxib2R5PjxwPlRoaXMgaXMgYSB0ZXN0LjwvcD48L2JvZHk+PC9odG1sPiI7Citz
dGF0aWMgY29uc3QgY2hhciogcGFzc3dvcmRUZXh0ID0gIjxodG1sPjxib2R5PjxpbnB1dCB0eXBl
PSdwYXNzd29yZCcgLz48L2JvZHk+PC9odG1sPiI7CitzdGF0aWMgY29uc3QgY2hhciogcHVzaEJ1
dHRvbiA9ICI8aHRtbD48Ym9keT48aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nb2snIC8+VGhp
cyBpcyBhIHRlc3QuPC9ib2R5PjwvaHRtbD4iOworc3RhdGljIGNvbnN0IGNoYXIqIHJhZGlvQnV0
dG9uID0gIjxodG1sPjxib2R5PjxpbnB1dCB0eXBlPSdyYWRpbycgLz5UaGlzIGlzIGEgdGVzdC48
L2JvZHk+PC9odG1sPiI7CiBzdGF0aWMgY29uc3QgY2hhciogc2VjdGlvbiA9ICI8aHRtbD48Ym9k
eT48ZGl2PlRoaXMgaXMgYSB0ZXN0LjwvZGl2PjwvYm9keT48L2h0bWw+IjsKIHN0YXRpYyBjb25z
dCBjaGFyKiB0YWJsZSA9ICI8aHRtbD48Ym9keT48dGFibGUgYm9yZGVyPScxJz48dHI+PHRkPlRo
aXMgaXM8L3RkPjx0ZD5hIHRlc3QuPC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4iOwog
CkBAIC00Myw2ICs0OSwzOSBAQCBzdGF0aWMgZ2Jvb2xlYW4gYmFpbE91dChHTWFpbkxvb3AqIGxv
b3ApCiAgICAgcmV0dXJuIEZBTFNFOwogfQogCitzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0
Um9sZUNoZWNrYm94KHZvaWQpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldzsKKyAgICBB
dGtPYmplY3QqIG9iajsKKyAgICBBdGtSb2xlIHJvbGU7CisgICAgR01haW5Mb29wKiBsb29wOwor
CisgICAgd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOwor
ICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOworICAgIEd0a0FsbG9jYXRpb24gYWxsb2Mg
PSB7IDAsIDAsIDgwMCwgNjAwIH07CisgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19X
SURHRVQod2ViVmlldyksICZhbGxvYyk7CisgICAgd2Via2l0X3dlYl92aWV3X2xvYWRfc3RyaW5n
KHdlYlZpZXcsIGNoZWNrYm94LCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgICBsb29wID0gZ19tYWlu
X2xvb3BfbmV3KE5VTEwsIFRSVUUpOworCisgICAgZ190aW1lb3V0X2FkZCgxMDAsIChHU291cmNl
RnVuYyliYWlsT3V0LCBsb29wKTsKKyAgICBnX21haW5fbG9vcF9ydW4obG9vcCk7CisKKyAgICBv
YmogPSBndGtfd2lkZ2V0X2dldF9hY2Nlc3NpYmxlKEdUS19XSURHRVQod2ViVmlldykpOworICAg
IGdfYXNzZXJ0KG9iaik7CisKKyAgICAvLyBUaGlzIGlzIGFuIGV4dHJhbmVvdXMgb2JqZWN0IG9m
IEFUS19ST0xFX1BBTkVMIHdoaWNoIHdlIHNob3VsZCBnZXQgcmlkIG9mLgorICAgIG9iaiA9IGF0
a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQob2JqLCAwKTsKKyAgICBnX2Fzc2VydChvYmop
OworCisgICAgb2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmosIDApOwor
ICAgIGdfYXNzZXJ0KG9iaik7CisgICAgcm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUob2JqKTsK
KyAgICBnX2Fzc2VydChyb2xlID09IEFUS19ST0xFX0NIRUNLX0JPWCk7CisKKyAgICBnX29iamVj
dF91bnJlZihvYmopOworICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOworfQorCiBzdGF0aWMg
dm9pZCB0ZXN0V2Via2l0QXRrR2V0Um9sZURvY3VtZW50RnJhbWUodm9pZCkKIHsKICAgICBXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3OwpAQCAtNjgsNiArMTA3LDM5IEBAIHN0YXRpYyB2b2lkIHRlc3RX
ZWJraXRBdGtHZXRSb2xlRG9jdW1lbnRGcmFtZSh2b2lkKQogICAgIGdfb2JqZWN0X3VucmVmKHdl
YlZpZXcpOwogfQogCitzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0Um9sZUVudHJ5KHZvaWQp
Cit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldzsKKyAgICBBdGtPYmplY3QqIG9iajsKKyAg
ICBBdGtSb2xlIHJvbGU7CisgICAgR01haW5Mb29wKiBsb29wOworCisgICAgd2ViVmlldyA9IFdF
QktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9z
aW5rKHdlYlZpZXcpOworICAgIEd0a0FsbG9jYXRpb24gYWxsb2MgPSB7IDAsIDAsIDgwMCwgNjAw
IH07CisgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQod2ViVmlldyksICZh
bGxvYyk7CisgICAgd2Via2l0X3dlYl92aWV3X2xvYWRfc3RyaW5nKHdlYlZpZXcsIGxhYmVsZWRF
bnRyeSwgTlVMTCwgTlVMTCwgTlVMTCk7CisgICAgbG9vcCA9IGdfbWFpbl9sb29wX25ldyhOVUxM
LCBUUlVFKTsKKworICAgIGdfdGltZW91dF9hZGQoMTAwLCAoR1NvdXJjZUZ1bmMpYmFpbE91dCwg
bG9vcCk7CisgICAgZ19tYWluX2xvb3BfcnVuKGxvb3ApOworCisgICAgb2JqID0gZ3RrX3dpZGdl
dF9nZXRfYWNjZXNzaWJsZShHVEtfV0lER0VUKHdlYlZpZXcpKTsKKyAgICBnX2Fzc2VydChvYmop
OworCisgICAgLy8gVGhpcyBpcyBhbiBleHRyYW5lb3VzIG9iamVjdCBvZiBBVEtfUk9MRV9QQU5F
TCB3aGljaCB3ZSBzaG91bGQgZ2V0IHJpZCBvZi4KKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9h
Y2Nlc3NpYmxlX2NoaWxkKG9iaiwgMCk7CisgICAgZ19hc3NlcnQob2JqKTsKKworICAgIG9iaiA9
IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQob2JqLCAxKTsKKyAgICBnX2Fzc2VydChv
YmopOworICAgIHJvbGUgPSBhdGtfb2JqZWN0X2dldF9yb2xlKG9iaik7CisgICAgZ19hc3NlcnQo
cm9sZSA9PSBBVEtfUk9MRV9FTlRSWSk7CisKKyAgICBnX29iamVjdF91bnJlZihvYmopOworICAg
IGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOworfQorCiBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRr
R2V0Um9sZUhlYWRpbmcodm9pZCkKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3OwpAQCAt
MTU3LDYgKzIyOSwzOSBAQCBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0Um9sZUltYWdlKHZv
aWQpCiAgICAgZ19vYmplY3RfdW5yZWYod2ViVmlldyk7CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RX
ZWJraXRBdGtHZXRSb2xlTGFiZWwodm9pZCkKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
OworICAgIEF0a09iamVjdCogb2JqOworICAgIEF0a1JvbGUgcm9sZTsKKyAgICBHTWFpbkxvb3Aq
IGxvb3A7CisKKyAgICB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19u
ZXcoKSk7CisgICAgZ19vYmplY3RfcmVmX3Npbmsod2ViVmlldyk7CisgICAgR3RrQWxsb2NhdGlv
biBhbGxvYyA9IHsgMCwgMCwgODAwLCA2MDAgfTsKKyAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2Nh
dGUoR1RLX1dJREdFVCh3ZWJWaWV3KSwgJmFsbG9jKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfbG9h
ZF9zdHJpbmcod2ViVmlldywgbGFiZWxlZEVudHJ5LCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgICBs
b29wID0gZ19tYWluX2xvb3BfbmV3KE5VTEwsIFRSVUUpOworCisgICAgZ190aW1lb3V0X2FkZCgx
MDAsIChHU291cmNlRnVuYyliYWlsT3V0LCBsb29wKTsKKyAgICBnX21haW5fbG9vcF9ydW4obG9v
cCk7CisKKyAgICBvYmogPSBndGtfd2lkZ2V0X2dldF9hY2Nlc3NpYmxlKEdUS19XSURHRVQod2Vi
VmlldykpOworICAgIGdfYXNzZXJ0KG9iaik7CisKKyAgICAvLyBUaGlzIGlzIGFuIGV4dHJhbmVv
dXMgb2JqZWN0IG9mIEFUS19ST0xFX1BBTkVMIHdoaWNoIHdlIHNob3VsZCBnZXQgcmlkIG9mLgor
ICAgIG9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQob2JqLCAwKTsKKyAgICBn
X2Fzc2VydChvYmopOworCisgICAgb2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGls
ZChvYmosIDApOworICAgIGdfYXNzZXJ0KG9iaik7CisgICAgcm9sZSA9IGF0a19vYmplY3RfZ2V0
X3JvbGUob2JqKTsKKyAgICBnX2Fzc2VydChyb2xlID09IEFUS19ST0xFX0xBQkVMKTsKKworICAg
IGdfb2JqZWN0X3VucmVmKG9iaik7CisgICAgZ19vYmplY3RfdW5yZWYod2ViVmlldyk7Cit9CisK
IHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtHZXRSb2xlTGluayh2b2lkKQogewogICAgIFdlYktp
dFdlYlZpZXcqIHdlYlZpZXc7CkBAIC0yNDgsNiArMzUzLDU2IEBAIHN0YXRpYyB2b2lkIHRlc3RX
ZWJraXRBdGtHZXRSb2xlTGlzdEFuZEl0ZW0odm9pZCkKICAgICBnX29iamVjdF91bnJlZih3ZWJW
aWV3KTsKIH0KIAorc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFJvbGVMaXN0Ym94KHZvaWQp
Cit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldzsKKyAgICBBdGtPYmplY3QqIGxpc3Rib3hP
Ymo7CisgICAgQXRrT2JqZWN0KiBvYmo7CisgICAgQXRrUm9sZSByb2xlOworICAgIEdNYWluTG9v
cCogbG9vcDsKKworICAgIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3
X25ldygpKTsKKyAgICBnX29iamVjdF9yZWZfc2luayh3ZWJWaWV3KTsKKyAgICBHdGtBbGxvY2F0
aW9uIGFsbG9jID0geyAwLCAwLCA4MDAsIDYwMCB9OworICAgIGd0a193aWRnZXRfc2l6ZV9hbGxv
Y2F0ZShHVEtfV0lER0VUKHdlYlZpZXcpLCAmYWxsb2MpOworICAgIHdlYmtpdF93ZWJfdmlld19s
b2FkX3N0cmluZyh3ZWJWaWV3LCBsaXN0Ym94LCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgICBsb29w
ID0gZ19tYWluX2xvb3BfbmV3KE5VTEwsIFRSVUUpOworCisgICAgZ190aW1lb3V0X2FkZCgxMDAs
IChHU291cmNlRnVuYyliYWlsT3V0LCBsb29wKTsKKyAgICBnX21haW5fbG9vcF9ydW4obG9vcCk7
CisKKyAgICBvYmogPSBndGtfd2lkZ2V0X2dldF9hY2Nlc3NpYmxlKEdUS19XSURHRVQod2ViVmll
dykpOworICAgIGdfYXNzZXJ0KG9iaik7CisKKyAgICAvLyBUaGlzIGlzIGFuIGV4dHJhbmVvdXMg
b2JqZWN0IG9mIEFUS19ST0xFX1BBTkVMIHdoaWNoIHdlIHNob3VsZCBnZXQgcmlkIG9mLgorICAg
IG9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQob2JqLCAwKTsKKyAgICBnX2Fz
c2VydChvYmopOworCisgICAgbGlzdGJveE9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVf
Y2hpbGQob2JqLCAwKTsKKyAgICBnX2Fzc2VydChsaXN0Ym94T2JqKTsKKyAgICByb2xlID0gYXRr
X29iamVjdF9nZXRfcm9sZShsaXN0Ym94T2JqKTsKKyAgICBnX2Fzc2VydChyb2xlID09IEFUS19S
T0xFX0xJU1QpOworCisgICAgb2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChs
aXN0Ym94T2JqLCAwKTsKKyAgICBnX2Fzc2VydChvYmopOworICAgIHJvbGUgPSBhdGtfb2JqZWN0
X2dldF9yb2xlKG9iaik7CisgICAgZ19hc3NlcnQocm9sZSA9PSBBVEtfUk9MRV9MSVNUX0lURU0p
OworCisgICAgb2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChsaXN0Ym94T2Jq
LCAxKTsKKyAgICBnX2Fzc2VydChvYmopOworICAgIHJvbGUgPSBhdGtfb2JqZWN0X2dldF9yb2xl
KG9iaik7CisgICAgZ19hc3NlcnQocm9sZSA9PSBBVEtfUk9MRV9MSVNUX0lURU0pOworCisgICAg
b2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChsaXN0Ym94T2JqLCAyKTsKKyAg
ICBnX2Fzc2VydChvYmopOworICAgIHJvbGUgPSBhdGtfb2JqZWN0X2dldF9yb2xlKG9iaik7Cisg
ICAgZ19hc3NlcnQocm9sZSA9PSBBVEtfUk9MRV9MSVNUX0lURU0pOworCisgICAgZ19vYmplY3Rf
dW5yZWYob2JqKTsKKyAgICBnX29iamVjdF91bnJlZihsaXN0Ym94T2JqKTsKKyAgICBnX29iamVj
dF91bnJlZih3ZWJWaWV3KTsKK30KKwogc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFJvbGVQ
YXJhZ3JhcGgodm9pZCkKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3OwpAQCAtMjc3LDYg
KzQzMiwxMDUgQEAgc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFJvbGVQYXJhZ3JhcGgodm9p
ZCkKICAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKIH0KIAorc3RhdGljIHZvaWQgdGVzdFdl
YmtpdEF0a0dldFJvbGVQYXNzd29yZFRleHQodm9pZCkKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3OworICAgIEF0a09iamVjdCogb2JqOworICAgIEF0a1JvbGUgcm9sZTsKKyAgICBHTWFp
bkxvb3AqIGxvb3A7CisKKyAgICB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJf
dmlld19uZXcoKSk7CisgICAgZ19vYmplY3RfcmVmX3Npbmsod2ViVmlldyk7CisgICAgR3RrQWxs
b2NhdGlvbiBhbGxvYyA9IHsgMCwgMCwgODAwLCA2MDAgfTsKKyAgICBndGtfd2lkZ2V0X3NpemVf
YWxsb2NhdGUoR1RLX1dJREdFVCh3ZWJWaWV3KSwgJmFsbG9jKTsKKyAgICB3ZWJraXRfd2ViX3Zp
ZXdfbG9hZF9zdHJpbmcod2ViVmlldywgcGFzc3dvcmRUZXh0LCBOVUxMLCBOVUxMLCBOVUxMKTsK
KyAgICBsb29wID0gZ19tYWluX2xvb3BfbmV3KE5VTEwsIFRSVUUpOworCisgICAgZ190aW1lb3V0
X2FkZCgxMDAsIChHU291cmNlRnVuYyliYWlsT3V0LCBsb29wKTsKKyAgICBnX21haW5fbG9vcF9y
dW4obG9vcCk7CisKKyAgICBvYmogPSBndGtfd2lkZ2V0X2dldF9hY2Nlc3NpYmxlKEdUS19XSURH
RVQod2ViVmlldykpOworICAgIGdfYXNzZXJ0KG9iaik7CisKKyAgICAvLyBUaGlzIGlzIGFuIGV4
dHJhbmVvdXMgb2JqZWN0IG9mIEFUS19ST0xFX1BBTkVMIHdoaWNoIHdlIHNob3VsZCBnZXQgcmlk
IG9mLgorICAgIG9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQob2JqLCAwKTsK
KyAgICBnX2Fzc2VydChvYmopOworCisgICAgb2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJs
ZV9jaGlsZChvYmosIDApOworICAgIGdfYXNzZXJ0KG9iaik7CisgICAgcm9sZSA9IGF0a19vYmpl
Y3RfZ2V0X3JvbGUob2JqKTsKKyAgICBnX2Fzc2VydChyb2xlID09IEFUS19ST0xFX1BBU1NXT1JE
X1RFWFQpOworCisgICAgZ19vYmplY3RfdW5yZWYob2JqKTsKKyAgICBnX29iamVjdF91bnJlZih3
ZWJWaWV3KTsKK30KKworc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFJvbGVQdXNoQnV0dG9u
KHZvaWQpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldzsKKyAgICBBdGtPYmplY3QqIG9i
ajsKKyAgICBBdGtSb2xlIHJvbGU7CisgICAgR01haW5Mb29wKiBsb29wOworCisgICAgd2ViVmll
dyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOworICAgIGdfb2JqZWN0
X3JlZl9zaW5rKHdlYlZpZXcpOworICAgIEd0a0FsbG9jYXRpb24gYWxsb2MgPSB7IDAsIDAsIDgw
MCwgNjAwIH07CisgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQod2ViVmll
dyksICZhbGxvYyk7CisgICAgd2Via2l0X3dlYl92aWV3X2xvYWRfc3RyaW5nKHdlYlZpZXcsIHB1
c2hCdXR0b24sIE5VTEwsIE5VTEwsIE5VTEwpOworICAgIGxvb3AgPSBnX21haW5fbG9vcF9uZXco
TlVMTCwgVFJVRSk7CisKKyAgICBnX3RpbWVvdXRfYWRkKDEwMCwgKEdTb3VyY2VGdW5jKWJhaWxP
dXQsIGxvb3ApOworICAgIGdfbWFpbl9sb29wX3J1bihsb29wKTsKKworICAgIG9iaiA9IGd0a193
aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgZ19hc3NlcnQo
b2JqKTsKKworICAgIC8vIFRoaXMgaXMgYW4gZXh0cmFuZW91cyBvYmplY3Qgb2YgQVRLX1JPTEVf
UEFORUwgd2hpY2ggd2Ugc2hvdWxkIGdldCByaWQgb2YuCisgICAgb2JqID0gYXRrX29iamVjdF9y
ZWZfYWNjZXNzaWJsZV9jaGlsZChvYmosIDApOworICAgIGdfYXNzZXJ0KG9iaik7CisKKyAgICBv
YmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iaiwgMCk7CisgICAgZ19hc3Nl
cnQob2JqKTsKKyAgICByb2xlID0gYXRrX29iamVjdF9nZXRfcm9sZShvYmopOworICAgIGdfYXNz
ZXJ0KHJvbGUgPT0gQVRLX1JPTEVfUFVTSF9CVVRUT04pOworCisgICAgZ19vYmplY3RfdW5yZWYo
b2JqKTsKKyAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKK30KKworc3RhdGljIHZvaWQgdGVz
dFdlYmtpdEF0a0dldFJvbGVSYWRpb0J1dHRvbih2b2lkKQoreworICAgIFdlYktpdFdlYlZpZXcq
IHdlYlZpZXc7CisgICAgQXRrT2JqZWN0KiBvYmo7CisgICAgQXRrUm9sZSByb2xlOworICAgIEdN
YWluTG9vcCogbG9vcDsKKworICAgIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dl
Yl92aWV3X25ldygpKTsKKyAgICBnX29iamVjdF9yZWZfc2luayh3ZWJWaWV3KTsKKyAgICBHdGtB
bGxvY2F0aW9uIGFsbG9jID0geyAwLCAwLCA4MDAsIDYwMCB9OworICAgIGd0a193aWRnZXRfc2l6
ZV9hbGxvY2F0ZShHVEtfV0lER0VUKHdlYlZpZXcpLCAmYWxsb2MpOworICAgIHdlYmtpdF93ZWJf
dmlld19sb2FkX3N0cmluZyh3ZWJWaWV3LCByYWRpb0J1dHRvbiwgTlVMTCwgTlVMTCwgTlVMTCk7
CisgICAgbG9vcCA9IGdfbWFpbl9sb29wX25ldyhOVUxMLCBUUlVFKTsKKworICAgIGdfdGltZW91
dF9hZGQoMTAwLCAoR1NvdXJjZUZ1bmMpYmFpbE91dCwgbG9vcCk7CisgICAgZ19tYWluX2xvb3Bf
cnVuKGxvb3ApOworCisgICAgb2JqID0gZ3RrX3dpZGdldF9nZXRfYWNjZXNzaWJsZShHVEtfV0lE
R0VUKHdlYlZpZXcpKTsKKyAgICBnX2Fzc2VydChvYmopOworCisgICAgLy8gVGhpcyBpcyBhbiBl
eHRyYW5lb3VzIG9iamVjdCBvZiBBVEtfUk9MRV9QQU5FTCB3aGljaCB3ZSBzaG91bGQgZ2V0IHJp
ZCBvZi4KKyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iaiwgMCk7
CisgICAgZ19hc3NlcnQob2JqKTsKKworICAgIG9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2li
bGVfY2hpbGQob2JqLCAwKTsKKyAgICBnX2Fzc2VydChvYmopOworICAgIHJvbGUgPSBhdGtfb2Jq
ZWN0X2dldF9yb2xlKG9iaik7CisgICAgZ19hc3NlcnQocm9sZSA9PSBBVEtfUk9MRV9SQURJT19C
VVRUT04pOworCisgICAgZ19vYmplY3RfdW5yZWYob2JqKTsKKyAgICBnX29iamVjdF91bnJlZih3
ZWJWaWV3KTsKK30KKwogc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFJvbGVTZWN0aW9uKHZv
aWQpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldzsKQEAgLTM0MiwxMiArNTk2LDE5IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICBndGtfdGVzdF9pbml0KCZhcmdj
LCAmYXJndiwgTlVMTCk7CiAKICAgICBnX3Rlc3RfYnVnX2Jhc2UoImh0dHBzOi8vYnVncy53ZWJr
aXQub3JnLyIpOworICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvdGVzdFdlYmtpdEF0
a0dldFJvbGVDaGVja2JveCIsIHRlc3RXZWJraXRBdGtHZXRSb2xlQ2hlY2tib3gpOwogICAgIGdf
dGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvdGVzdFdlYmtpdEF0a0dldFJvbGVEb2N1bWVudEZy
YW1lIiwgdGVzdFdlYmtpdEF0a0dldFJvbGVEb2N1bWVudEZyYW1lKTsKKyAgICBnX3Rlc3RfYWRk
X2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RXZWJraXRBdGtHZXRSb2xlRW50cnkiLCB0ZXN0V2Via2l0
QXRrR2V0Um9sZUVudHJ5KTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RX
ZWJraXRBdGtHZXRSb2xlSGVhZGluZyIsIHRlc3RXZWJraXRBdGtHZXRSb2xlSGVhZGluZyk7CiAg
ICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay90ZXN0V2Via2l0QXRrR2V0Um9sZUltYWdl
IiwgdGVzdFdlYmtpdEF0a0dldFJvbGVJbWFnZSk7CisgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Vi
a2l0L2F0ay90ZXN0V2Via2l0QXRrR2V0Um9sZUxhYmVsIiwgdGVzdFdlYmtpdEF0a0dldFJvbGVM
YWJlbCk7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay90ZXN0V2Via2l0QXRrR2V0
Um9sZUxpbmsiLCB0ZXN0V2Via2l0QXRrR2V0Um9sZUxpbmspOwogICAgIGdfdGVzdF9hZGRfZnVu
YygiL3dlYmtpdC9hdGsvdGVzdFdlYmtpdEF0a0dldFJvbGVMaXN0QW5kSXRlbSIsIHRlc3RXZWJr
aXRBdGtHZXRSb2xlTGlzdEFuZEl0ZW0pOworICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9h
dGsvdGVzdFdlYmtpdEF0a0dldFJvbGVMaXN0Ym94IiwgdGVzdFdlYmtpdEF0a0dldFJvbGVMaXN0
Ym94KTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RXZWJraXRBdGtHZXRS
b2xlUGFyYWdyYXBoIiwgdGVzdFdlYmtpdEF0a0dldFJvbGVQYXJhZ3JhcGgpOworICAgIGdfdGVz
dF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvdGVzdFdlYmtpdEF0a0dldFJvbGVQYXNzd29yZFRleHQi
LCB0ZXN0V2Via2l0QXRrR2V0Um9sZVBhc3N3b3JkVGV4dCk7CisgICAgZ190ZXN0X2FkZF9mdW5j
KCIvd2Via2l0L2F0ay90ZXN0V2Via2l0QXRrR2V0Um9sZVB1c2hCdXR0b24iLCB0ZXN0V2Via2l0
QXRrR2V0Um9sZVB1c2hCdXR0b24pOworICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsv
dGVzdFdlYmtpdEF0a0dldFJvbGVSYWRpb0J1dHRvbiIsIHRlc3RXZWJraXRBdGtHZXRSb2xlUmFk
aW9CdXR0b24pOwogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvdGVzdFdlYmtpdEF0
a0dldFJvbGVTZWN0aW9uIiwgdGVzdFdlYmtpdEF0a0dldFJvbGVTZWN0aW9uKTsKICAgICBnX3Rl
c3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RXZWJraXRBdGtHZXRSb2xlVGFibGUiLCB0ZXN0
V2Via2l0QXRrR2V0Um9sZVRhYmxlKTsKICAgICByZXR1cm4gZ190ZXN0X3J1biAoKTsKLS0gCjEu
Ni41Cgo=
</data>
<flag name="review"
          id="30467"
          type_id="1"
          status="-"
          setter="xan.lopez"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47902</attachid>
            <date>2010-02-01 20:01:34 -0800</date>
            <delta_ts>2010-02-01 21:10:09 -0800</delta_ts>
            <desc>Implement ATK_ROLE_SEPARATOR for &lt;hr&gt; (includes test)</desc>
            <filename>34449-4.patch</filename>
            <type>text/plain</type>
            <size>6969</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSBiMGM3OTVlY2Y1YzY5NzllYmY3YTE5NDkxNWZhMDBhOGUzN2FhOGM5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpkQHZibG9ja2hlYWQuKG5vbmUp
PgpEYXRlOiBNb24sIDEgRmViIDIwMTAgMjI6NTI6MDMgLTA1MDAKU3ViamVjdDogW1BBVENIIDQv
NF0gMjAxMC0wMi0wMSAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNv
bT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQogICAgICAgIFtHdGtdIEV2YWx1
YXRlIGFuZCBjcmVhdGUgdGVzdHMgZm9yIGFsbCB0aGUgQXRrUm9sZSdzIGltcGxlbWVudGVkIGJ5
IFdlYktpdEd0awoKICAgICAgICBJbXBsZW1lbnQgc3VwcHBvcnQgZm9yIEFUS19ST0xFX1NFUEFS
QVRPUi4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRr
LmNwcDoKICAgICAgICAoQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVBsYXRmb3Jt
SW5jbHVkZXNPYmplY3QpOgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcDoKICAgICAgICAoQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJt
aW5lQWNjZXNzaWJpbGl0eVJvbGUpOgoKMjAxMC0wMi0wMSAgSm9hbm1hcmllIERpZ2dzICA8am9h
bm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0
OQogICAgICAgIFtHdGtdIEV2YWx1YXRlIGFuZCBjcmVhdGUgdGVzdHMgZm9yIGFsbCB0aGUgQXRr
Um9sZSdzIGltcGxlbWVudGVkIGJ5IFdlYktpdEd0awoKICAgICAgICBBZGRzIHRlc3QgZm9yIEFU
S19ST0xFX1NFUEFSQVRPUi4KCiAgICAgICAgKiB0ZXN0cy90ZXN0YXRrcm9sZS5jOgogICAgICAg
ICh0ZXN0V2Via2l0QXRrR2V0Um9sZVNlcGFyYXRvcik6CiAgICAgICAgKG1haW4pOgotLS0KIFdl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNCAr
KysrKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
ICAgIHwgICAgNSArKysKIC4uLi9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0
QXRrLmNwcCAgIHwgICAgMyArKwogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEzICsrKysrKysrCiBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGty
b2xlcy5jICAgICAgICAgICAgICAgICAgICB8ICAgMzEgKysrKysrKysrKysrKysrKysrKysKIDUg
ZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZmNjgwYmUu
LmZhZmQzODYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC01LDYgKzUsMjAgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM0NDQ5CiAgICAgICAgIFtHdGtdIEV2YWx1YXRlIGFuZCBjcmVhdGUg
dGVzdHMgZm9yIGFsbCB0aGUgQXRrUm9sZSdzIGltcGxlbWVudGVkIGJ5IFdlYktpdEd0awogCisg
ICAgICAgIEltcGxlbWVudCBzdXBwcG9ydCBmb3IgQVRLX1JPTEVfU0VQQVJBVE9SLgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHA6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09i
amVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vz
c2liaWxpdHlSb2xlKToKKworMjAxMC0wMi0wMSAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmll
LmRpZ2dzQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkK
KyAgICAgICAgW0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtS
b2xlJ3MgaW1wbGVtZW50ZWQgYnkgV2ViS2l0R3RrCisKICAgICAgICAgSW1wbGVtZW50IHN1cHBw
b3J0IGZvciBBVEtfUk9MRV9GT1JNLgogCiAgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGQ3MzhjYTguLjlkYjcw
ZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAKQEAgLTI3MjYsNiArMjcyNiwxMSBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpCiAKICAg
ICBpZiAobm9kZSAmJiAobm9kZS0+aGFzVGFnTmFtZShycFRhZykgfHwgbm9kZS0+aGFzVGFnTmFt
ZShydFRhZykpKQogICAgICAgICByZXR1cm4gQW5ub3RhdGlvblJvbGU7CisKKyMgaWYgUExBVEZP
Uk0oR1RLKQorICAgIGlmIChtX3JlbmRlcmVyLT5pc0hSKCkpCisgICAgICAgIHJldHVybiBTcGxp
dHRlclJvbGU7CisjIGVuZGlmCiAgICAgCiAgICAgaWYgKG1fcmVuZGVyZXItPmlzQmxvY2tGbG93
KCkgfHwgKG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShsYWJlbFRhZykpKQogICAgICAgICByZXR1
cm4gR3JvdXBSb2xlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nl
c3NpYmlsaXR5T2JqZWN0QXRrLmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNz
aWJpbGl0eU9iamVjdEF0ay5jcHAKaW5kZXggZjQ4NzcwZi4uNmYyMzFjMSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcAorKysg
Yi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCkBA
IC00MSw2ICs0MSw5IEBAIEFjY2Vzc2liaWxpdHlPYmplY3RQbGF0Zm9ybUluY2x1c2lvbiBBY2Nl
c3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JCiAgICAgaWYgKGlzTWVudUxp
c3RQb3B1cCgpIHx8IGlzTWVudUxpc3RPcHRpb24oKSkKICAgICAgICAgcmV0dXJuIElnbm9yZU9i
amVjdDsKIAorICAgIGlmIChyb2xlVmFsdWUoKSA9PSBTcGxpdHRlclJvbGUpCisgICAgICAgIHJl
dHVybiBJbmNsdWRlT2JqZWN0OworCiAgICAgLy8gV2hlbiBhIGxpc3QgaXRlbSBpcyBtYWRlIHVw
IGVudGlyZWx5IG9mIGNoaWxkcmVuIChlLmcuIHBhcmFncmFwaHMpCiAgICAgLy8gdGhlIGxpc3Qg
aXRlbSBnZXRzIGlnbm9yZWQuIFdlIG5lZWQgaXQuCiAgICAgaWYgKGlzR3JvdXAoKSAmJiBwYXJl
bnQtPmlzTGlzdCgpKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwppbmRleCA3OWM3ZTNlLi5mY2NlZmNhIDEwMDY0NAotLS0gYS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtNSw2ICs1LDE5IEBA
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQog
ICAgICAgICBbR3RrXSBFdmFsdWF0ZSBhbmQgY3JlYXRlIHRlc3RzIGZvciBhbGwgdGhlIEF0a1Jv
bGUncyBpbXBsZW1lbnRlZCBieSBXZWJLaXRHdGsKIAorICAgICAgICBBZGRzIHRlc3QgZm9yIEFU
S19ST0xFX1NFUEFSQVRPUi4KKworICAgICAgICAqIHRlc3RzL3Rlc3RhdGtyb2xlLmM6CisgICAg
ICAgICh0ZXN0V2Via2l0QXRrR2V0Um9sZVNlcGFyYXRvcik6CisgICAgICAgIChtYWluKToKKwor
MjAxMC0wMi0wMSAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKKyAgICAgICAgW0d0a10gRXZh
bHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1wbGVtZW50ZWQg
YnkgV2ViS2l0R3RrCisKICAgICAgICAgQWRkcyB0ZXN0IGZvciBBVEtfUk9MRV9GT1JNLgogCiAg
ICAgICAgICogdGVzdHMvdGVzdGF0a3JvbGUuYzoKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvdGVz
dHMvdGVzdGF0a3JvbGVzLmMgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jCmluZGV4
IDdkNmJjN2QuLmY4ZjBlNTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3Jv
bGVzLmMKKysrIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9sZXMuYwpAQCAtNDAsNiArNDAs
NyBAQCBzdGF0aWMgY29uc3QgY2hhciogcGFzc3dvcmRUZXh0ID0gIjxodG1sPjxib2R5PjxpbnB1
dCB0eXBlPSdwYXNzd29yZCcgLz48L2JvZHk+PAogc3RhdGljIGNvbnN0IGNoYXIqIHB1c2hCdXR0
b24gPSAiPGh0bWw+PGJvZHk+PGlucHV0IHR5cGU9J3N1Ym1pdCcgdmFsdWU9J29rJyAvPlRoaXMg
aXMgYSB0ZXN0LjwvYm9keT48L2h0bWw+IjsKIHN0YXRpYyBjb25zdCBjaGFyKiByYWRpb0J1dHRv
biA9ICI8aHRtbD48Ym9keT48aW5wdXQgdHlwZT0ncmFkaW8nIC8+VGhpcyBpcyBhIHRlc3QuPC9i
b2R5PjwvaHRtbD4iOwogc3RhdGljIGNvbnN0IGNoYXIqIHNlY3Rpb24gPSAiPGh0bWw+PGJvZHk+
PGRpdj5UaGlzIGlzIGEgdGVzdC48L2Rpdj48L2JvZHk+PC9odG1sPiI7CitzdGF0aWMgY29uc3Qg
Y2hhciogc2VwYXJhdG9yID0gIjxodG1sPjxib2R5Pjxocj48L2JvZHk+PC9odG1sPiI7CiBzdGF0
aWMgY29uc3QgY2hhciogdGFibGUgPSAiPGh0bWw+PGJvZHk+PHRhYmxlIGJvcmRlcj0nMSc+PHRy
Pjx0ZD5UaGlzIGlzPC90ZD48dGQ+YSB0ZXN0LjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0
bWw+IjsKIAogc3RhdGljIGdib29sZWFuIGJhaWxPdXQoR01haW5Mb29wKiBsb29wKQpAQCAtNTkw
LDYgKzU5MSwzNSBAQCBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0Um9sZVNlY3Rpb24odm9p
ZCkKICAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKIH0KIAorc3RhdGljIHZvaWQgdGVzdFdl
YmtpdEF0a0dldFJvbGVTZXBhcmF0b3Iodm9pZCkKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3OworICAgIEF0a09iamVjdCogb2JqOworICAgIEF0a1JvbGUgcm9sZTsKKyAgICBHTWFpbkxv
b3AqIGxvb3A7CisKKyAgICB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJfdmll
d19uZXcoKSk7CisgICAgZ19vYmplY3RfcmVmX3Npbmsod2ViVmlldyk7CisgICAgR3RrQWxsb2Nh
dGlvbiBhbGxvYyA9IHsgMCwgMCwgODAwLCA2MDAgfTsKKyAgICBndGtfd2lkZ2V0X3NpemVfYWxs
b2NhdGUoR1RLX1dJREdFVCh3ZWJWaWV3KSwgJmFsbG9jKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdf
bG9hZF9zdHJpbmcod2ViVmlldywgc2VwYXJhdG9yLCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgICBs
b29wID0gZ19tYWluX2xvb3BfbmV3KE5VTEwsIFRSVUUpOworCisgICAgZ190aW1lb3V0X2FkZCgx
MDAsIChHU291cmNlRnVuYyliYWlsT3V0LCBsb29wKTsKKyAgICBnX21haW5fbG9vcF9ydW4obG9v
cCk7CisKKyAgICBvYmogPSBndGtfd2lkZ2V0X2dldF9hY2Nlc3NpYmxlKEdUS19XSURHRVQod2Vi
VmlldykpOworICAgIGdfYXNzZXJ0KG9iaik7CisgICAgb2JqID0gYXRrX29iamVjdF9yZWZfYWNj
ZXNzaWJsZV9jaGlsZChvYmosIDApOworICAgIGdfYXNzZXJ0KG9iaik7CisKKyAgICByb2xlID0g
YXRrX29iamVjdF9nZXRfcm9sZShvYmopOworICAgIGdfYXNzZXJ0KHJvbGUgPT0gQVRLX1JPTEVf
U0VQQVJBVE9SKTsKKworICAgIGdfb2JqZWN0X3VucmVmKG9iaik7CisgICAgZ19vYmplY3RfdW5y
ZWYod2ViVmlldyk7Cit9CisKIC8vIERvZXMgbm90IHlldCB0ZXN0IHRhYmxlIGNlbGxzIGJlY2F1
c2Ugb2YgYnVnIDMwODk1Lgogc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFJvbGVUYWJsZSh2
b2lkKQogewpAQCAtNjQxLDYgKzY3MSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJn
dikKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RXZWJraXRBdGtHZXRSb2xl
UHVzaEJ1dHRvbiIsIHRlc3RXZWJraXRBdGtHZXRSb2xlUHVzaEJ1dHRvbik7CiAgICAgZ190ZXN0
X2FkZF9mdW5jKCIvd2Via2l0L2F0ay90ZXN0V2Via2l0QXRrR2V0Um9sZVJhZGlvQnV0dG9uIiwg
dGVzdFdlYmtpdEF0a0dldFJvbGVSYWRpb0J1dHRvbik7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIv
d2Via2l0L2F0ay90ZXN0V2Via2l0QXRrR2V0Um9sZVNlY3Rpb24iLCB0ZXN0V2Via2l0QXRrR2V0
Um9sZVNlY3Rpb24pOworICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvdGVzdFdlYmtp
dEF0a0dldFJvbGVTZXBhcmF0b3IiLCB0ZXN0V2Via2l0QXRrR2V0Um9sZVNlcGFyYXRvcik7CiAg
ICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay90ZXN0V2Via2l0QXRrR2V0Um9sZVRhYmxl
IiwgdGVzdFdlYmtpdEF0a0dldFJvbGVUYWJsZSk7CiAgICAgcmV0dXJuIGdfdGVzdF9ydW4gKCk7
CiB9Ci0tIAoxLjYuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47905</attachid>
            <date>2010-02-01 21:10:09 -0800</date>
            <delta_ts>2010-02-26 13:23:26 -0800</delta_ts>
            <desc>Implement ATK_ROLE_SEPARATOR for &lt;hr&gt; (includes test) - revised</desc>
            <filename>34449-4.patch</filename>
            <type>text/plain</type>
            <size>6967</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSBiMGM3OTVlY2Y1YzY5NzllYmY3YTE5NDkxNWZhMDBhOGUzN2FhOGM5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpkQHZibG9ja2hlYWQuKG5vbmUp
PgpEYXRlOiBNb24sIDEgRmViIDIwMTAgMjI6NTI6MDMgLTA1MDAKU3ViamVjdDogW1BBVENIIDQv
NF0gMjAxMC0wMi0wMSAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNv
bT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQogICAgICAgIFtHdGtdIEV2YWx1
YXRlIGFuZCBjcmVhdGUgdGVzdHMgZm9yIGFsbCB0aGUgQXRrUm9sZSdzIGltcGxlbWVudGVkIGJ5
IFdlYktpdEd0awoKICAgICAgICBJbXBsZW1lbnQgc3VwcHBvcnQgZm9yIEFUS19ST0xFX1NFUEFS
QVRPUi4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRr
LmNwcDoKICAgICAgICAoQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVBsYXRmb3Jt
SW5jbHVkZXNPYmplY3QpOgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcDoKICAgICAgICAoQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJt
aW5lQWNjZXNzaWJpbGl0eVJvbGUpOgoKMjAxMC0wMi0wMSAgSm9hbm1hcmllIERpZ2dzICA8am9h
bm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0
OQogICAgICAgIFtHdGtdIEV2YWx1YXRlIGFuZCBjcmVhdGUgdGVzdHMgZm9yIGFsbCB0aGUgQXRr
Um9sZSdzIGltcGxlbWVudGVkIGJ5IFdlYktpdEd0awoKICAgICAgICBBZGRzIHRlc3QgZm9yIEFU
S19ST0xFX1NFUEFSQVRPUi4KCiAgICAgICAgKiB0ZXN0cy90ZXN0YXRrcm9sZS5jOgogICAgICAg
ICh0ZXN0V2Via2l0QXRrR2V0Um9sZVNlcGFyYXRvcik6CiAgICAgICAgKG1haW4pOgotLS0KIFdl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNCAr
KysrKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
ICAgIHwgICAgNSArKysKIC4uLi9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0
QXRrLmNwcCAgIHwgICAgMyArKwogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEzICsrKysrKysrCiBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGty
b2xlcy5jICAgICAgICAgICAgICAgICAgICB8ICAgMzEgKysrKysrKysrKysrKysrKysrKysKIDUg
ZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZmNjgwYmUu
LmZhZmQzODYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC01LDYgKzUsMjAgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM0NDQ5CiAgICAgICAgIFtHdGtdIEV2YWx1YXRlIGFuZCBjcmVhdGUg
dGVzdHMgZm9yIGFsbCB0aGUgQXRrUm9sZSdzIGltcGxlbWVudGVkIGJ5IFdlYktpdEd0awogCisg
ICAgICAgIEltcGxlbWVudCBzdXBwcG9ydCBmb3IgQVRLX1JPTEVfU0VQQVJBVE9SLgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHA6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09i
amVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vz
c2liaWxpdHlSb2xlKToKKworMjAxMC0wMi0wMSAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmll
LmRpZ2dzQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkK
KyAgICAgICAgW0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtS
b2xlJ3MgaW1wbGVtZW50ZWQgYnkgV2ViS2l0R3RrCisKICAgICAgICAgSW1wbGVtZW50IHN1cHBw
b3J0IGZvciBBVEtfUk9MRV9GT1JNLgogCiAgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGQ3MzhjYTguLjlkYjcw
ZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAorKysgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAKQEAgLTI3MjYsNiArMjcyNiwxMSBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpCiAKICAg
ICBpZiAobm9kZSAmJiAobm9kZS0+aGFzVGFnTmFtZShycFRhZykgfHwgbm9kZS0+aGFzVGFnTmFt
ZShydFRhZykpKQogICAgICAgICByZXR1cm4gQW5ub3RhdGlvblJvbGU7CisKKyNpZiBQTEFURk9S
TShHVEspCisgICAgaWYgKG1fcmVuZGVyZXItPmlzSFIoKSkKKyAgICAgICAgcmV0dXJuIFNwbGl0
dGVyUm9sZTsKKyNlbmRpZgogICAgIAogICAgIGlmIChtX3JlbmRlcmVyLT5pc0Jsb2NrRmxvdygp
IHx8IChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUobGFiZWxUYWcpKSkKICAgICAgICAgcmV0dXJu
IEdyb3VwUm9sZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNz
aWJpbGl0eU9iamVjdEF0ay5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2li
aWxpdHlPYmplY3RBdGsuY3BwCmluZGV4IGY0ODc3MGYuLjZmMjMxYzEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAKKysrIGIv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcApAQCAt
NDEsNiArNDEsOSBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0UGxhdGZvcm1JbmNsdXNpb24gQWNjZXNz
aWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVBsYXRmb3JtSQogICAgIGlmIChpc01lbnVMaXN0
UG9wdXAoKSB8fCBpc01lbnVMaXN0T3B0aW9uKCkpCiAgICAgICAgIHJldHVybiBJZ25vcmVPYmpl
Y3Q7CiAKKyAgICBpZiAocm9sZVZhbHVlKCkgPT0gU3BsaXR0ZXJSb2xlKQorICAgICAgICByZXR1
cm4gSW5jbHVkZU9iamVjdDsKKwogICAgIC8vIFdoZW4gYSBsaXN0IGl0ZW0gaXMgbWFkZSB1cCBl
bnRpcmVseSBvZiBjaGlsZHJlbiAoZS5nLiBwYXJhZ3JhcGhzKQogICAgIC8vIHRoZSBsaXN0IGl0
ZW0gZ2V0cyBpZ25vcmVkLiBXZSBuZWVkIGl0LgogICAgIGlmIChpc0dyb3VwKCkgJiYgcGFyZW50
LT5pc0xpc3QoKSkKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKaW5kZXggNzljN2UzZS4uZmNjZWZjYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTUsNiArNSwxOSBAQAog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKICAg
ICAgICAgW0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xl
J3MgaW1wbGVtZW50ZWQgYnkgV2ViS2l0R3RrCiAKKyAgICAgICAgQWRkcyB0ZXN0IGZvciBBVEtf
Uk9MRV9TRVBBUkFUT1IuCisKKyAgICAgICAgKiB0ZXN0cy90ZXN0YXRrcm9sZS5jOgorICAgICAg
ICAodGVzdFdlYmtpdEF0a0dldFJvbGVTZXBhcmF0b3IpOgorICAgICAgICAobWFpbik6CisKKzIw
MTAtMDItMDEgIEpvYW5tYXJpZSBEaWdncyAgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDQ5CisgICAgICAgIFtHdGtdIEV2YWx1
YXRlIGFuZCBjcmVhdGUgdGVzdHMgZm9yIGFsbCB0aGUgQXRrUm9sZSdzIGltcGxlbWVudGVkIGJ5
IFdlYktpdEd0aworCiAgICAgICAgIEFkZHMgdGVzdCBmb3IgQVRLX1JPTEVfRk9STS4KIAogICAg
ICAgICAqIHRlc3RzL3Rlc3RhdGtyb2xlLmM6CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3Rlc3Rz
L3Rlc3RhdGtyb2xlcy5jIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9sZXMuYwppbmRleCA3
ZDZiYzdkLi5mOGYwZTU4IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xl
cy5jCisrKyBiL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKQEAgLTQwLDYgKzQwLDcg
QEAgc3RhdGljIGNvbnN0IGNoYXIqIHBhc3N3b3JkVGV4dCA9ICI8aHRtbD48Ym9keT48aW5wdXQg
dHlwZT0ncGFzc3dvcmQnIC8+PC9ib2R5PjwKIHN0YXRpYyBjb25zdCBjaGFyKiBwdXNoQnV0dG9u
ID0gIjxodG1sPjxib2R5PjxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPSdvaycgLz5UaGlzIGlz
IGEgdGVzdC48L2JvZHk+PC9odG1sPiI7CiBzdGF0aWMgY29uc3QgY2hhciogcmFkaW9CdXR0b24g
PSAiPGh0bWw+PGJvZHk+PGlucHV0IHR5cGU9J3JhZGlvJyAvPlRoaXMgaXMgYSB0ZXN0LjwvYm9k
eT48L2h0bWw+IjsKIHN0YXRpYyBjb25zdCBjaGFyKiBzZWN0aW9uID0gIjxodG1sPjxib2R5Pjxk
aXY+VGhpcyBpcyBhIHRlc3QuPC9kaXY+PC9ib2R5PjwvaHRtbD4iOworc3RhdGljIGNvbnN0IGNo
YXIqIHNlcGFyYXRvciA9ICI8aHRtbD48Ym9keT48aHI+PC9ib2R5PjwvaHRtbD4iOwogc3RhdGlj
IGNvbnN0IGNoYXIqIHRhYmxlID0gIjxodG1sPjxib2R5Pjx0YWJsZSBib3JkZXI9JzEnPjx0cj48
dGQ+VGhpcyBpczwvdGQ+PHRkPmEgdGVzdC48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9odG1s
PiI7CiAKIHN0YXRpYyBnYm9vbGVhbiBiYWlsT3V0KEdNYWluTG9vcCogbG9vcCkKQEAgLTU5MCw2
ICs1OTEsMzUgQEAgc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFJvbGVTZWN0aW9uKHZvaWQp
CiAgICAgZ19vYmplY3RfdW5yZWYod2ViVmlldyk7CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RXZWJr
aXRBdGtHZXRSb2xlU2VwYXJhdG9yKHZvaWQpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmll
dzsKKyAgICBBdGtPYmplY3QqIG9iajsKKyAgICBBdGtSb2xlIHJvbGU7CisgICAgR01haW5Mb29w
KiBsb29wOworCisgICAgd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdf
bmV3KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOworICAgIEd0a0FsbG9jYXRp
b24gYWxsb2MgPSB7IDAsIDAsIDgwMCwgNjAwIH07CisgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9j
YXRlKEdUS19XSURHRVQod2ViVmlldyksICZhbGxvYyk7CisgICAgd2Via2l0X3dlYl92aWV3X2xv
YWRfc3RyaW5nKHdlYlZpZXcsIHNlcGFyYXRvciwgTlVMTCwgTlVMTCwgTlVMTCk7CisgICAgbG9v
cCA9IGdfbWFpbl9sb29wX25ldyhOVUxMLCBUUlVFKTsKKworICAgIGdfdGltZW91dF9hZGQoMTAw
LCAoR1NvdXJjZUZ1bmMpYmFpbE91dCwgbG9vcCk7CisgICAgZ19tYWluX2xvb3BfcnVuKGxvb3Ap
OworCisgICAgb2JqID0gZ3RrX3dpZGdldF9nZXRfYWNjZXNzaWJsZShHVEtfV0lER0VUKHdlYlZp
ZXcpKTsKKyAgICBnX2Fzc2VydChvYmopOworICAgIG9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vz
c2libGVfY2hpbGQob2JqLCAwKTsKKyAgICBnX2Fzc2VydChvYmopOworCisgICAgcm9sZSA9IGF0
a19vYmplY3RfZ2V0X3JvbGUob2JqKTsKKyAgICBnX2Fzc2VydChyb2xlID09IEFUS19ST0xFX1NF
UEFSQVRPUik7CisKKyAgICBnX29iamVjdF91bnJlZihvYmopOworICAgIGdfb2JqZWN0X3VucmVm
KHdlYlZpZXcpOworfQorCiAvLyBEb2VzIG5vdCB5ZXQgdGVzdCB0YWJsZSBjZWxscyBiZWNhdXNl
IG9mIGJ1ZyAzMDg5NS4KIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtHZXRSb2xlVGFibGUodm9p
ZCkKIHsKQEAgLTY0MSw2ICs2NzEsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3Yp
CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay90ZXN0V2Via2l0QXRrR2V0Um9sZVB1
c2hCdXR0b24iLCB0ZXN0V2Via2l0QXRrR2V0Um9sZVB1c2hCdXR0b24pOwogICAgIGdfdGVzdF9h
ZGRfZnVuYygiL3dlYmtpdC9hdGsvdGVzdFdlYmtpdEF0a0dldFJvbGVSYWRpb0J1dHRvbiIsIHRl
c3RXZWJraXRBdGtHZXRSb2xlUmFkaW9CdXR0b24pOwogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dl
YmtpdC9hdGsvdGVzdFdlYmtpdEF0a0dldFJvbGVTZWN0aW9uIiwgdGVzdFdlYmtpdEF0a0dldFJv
bGVTZWN0aW9uKTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RXZWJraXRB
dGtHZXRSb2xlU2VwYXJhdG9yIiwgdGVzdFdlYmtpdEF0a0dldFJvbGVTZXBhcmF0b3IpOwogICAg
IGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvdGVzdFdlYmtpdEF0a0dldFJvbGVUYWJsZSIs
IHRlc3RXZWJraXRBdGtHZXRSb2xlVGFibGUpOwogICAgIHJldHVybiBnX3Rlc3RfcnVuICgpOwog
fQotLSAKMS42LjUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47906</attachid>
            <date>2010-02-01 21:42:41 -0800</date>
            <delta_ts>2010-02-26 13:24:09 -0800</delta_ts>
            <desc>Implement ATK_ROLE_COMBO_BOX (includes test)</desc>
            <filename>34449-5.patch</filename>
            <type>text/plain</type>
            <size>7591</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">RnJvbSBlNDY1N2I0MWNlYTM1OThhZTA5MDNkYWYwMGY0ZGM0ZDIwZjQ1ZTYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2FubWFyaWUgRGlnZ3MgPGpkQHZibG9ja2hlYWQuKG5vbmUp
PgpEYXRlOiBUdWUsIDIgRmViIDIwMTAgMDA6MTk6MDQgLTA1MDAKU3ViamVjdDogW1BBVENIIDUv
NV0gMjAxMC0wMi0wMSAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNv
bT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQogICAgICAgIFtHdGtdIEV2YWx1
YXRlIGFuZCBjcmVhdGUgdGVzdHMgZm9yIGFsbCB0aGUgQXRrUm9sZSdzIGltcGxlbWVudGVkIGJ5
IFdlYktpdEd0awoKICAgICAgICBJbXBsZW1lbnQgc3VwcHBvcnQgZm9yIEFUS19ST0xFX0NPTUJP
X0JPWCBhbmQgaXRzIGRlc2NlbmRhbnRzLgoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0Fj
Y2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwOgogICAgICAgIChBY2Nlc3NpYmlsaXR5T2JqZWN0Ojph
Y2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCk6CiAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CiAgICAgICAgKGF0a1Jv
bGUpOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAxNCArKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmpl
Y3RBdGsuY3BwICAgfCAgICAzIC0KIC4uLi9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJB
dGsuY3BwICAgICAgICAgIHwgICAgMyArCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKysKIFdlYktpdC9ndGsvdGVzdHMvdGVzdGF0
a3JvbGVzLmMgICAgICAgICAgICAgICAgICAgIHwgICA1NyArKysrKysrKysrKysrKysrKysrKwog
NSBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFmZDM4
Ni4uZTVmNDMxNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTUsNiArNSwyMCBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKICAgICAgICAgW0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0
ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1wbGVtZW50ZWQgYnkgV2ViS2l0R3RrCiAK
KyAgICAgICAgSW1wbGVtZW50IHN1cHBwb3J0IGZvciBBVEtfUk9MRV9DT01CT19CT1ggYW5kIGl0
cyBkZXNjZW5kYW50cy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxp
dHlPYmplY3RBdGsuY3BwOgorICAgICAgICAoQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJp
bGl0eVBsYXRmb3JtSW5jbHVkZXNPYmplY3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3Rr
L0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKGF0a1JvbGUpOgor
CisyMDEwLTAyLTAxICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQorICAgICAgICBbR3RrXSBF
dmFsdWF0ZSBhbmQgY3JlYXRlIHRlc3RzIGZvciBhbGwgdGhlIEF0a1JvbGUncyBpbXBsZW1lbnRl
ZCBieSBXZWJLaXRHdGsKKwogICAgICAgICBJbXBsZW1lbnQgc3VwcHBvcnQgZm9yIEFUS19ST0xF
X1NFUEFSQVRPUi4KIAogICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlP
YmplY3RBdGsuY3BwOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nl
c3NpYmlsaXR5T2JqZWN0QXRrLmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNz
aWJpbGl0eU9iamVjdEF0ay5jcHAKaW5kZXggNmYyMzFjMS4uZmNiMzMxNSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcAorKysg
Yi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCkBA
IC0zOCw5ICszOCw2IEBAIEFjY2Vzc2liaWxpdHlPYmplY3RQbGF0Zm9ybUluY2x1c2lvbiBBY2Nl
c3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JCiAgICAgaWYgKCFwYXJlbnQp
CiAgICAgICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7CiAKLSAgICBpZiAoaXNNZW51TGlzdFBv
cHVwKCkgfHwgaXNNZW51TGlzdE9wdGlvbigpKQotICAgICAgICByZXR1cm4gSWdub3JlT2JqZWN0
OwotCiAgICAgaWYgKHJvbGVWYWx1ZSgpID09IFNwbGl0dGVyUm9sZSkKICAgICAgICAgcmV0dXJu
IEluY2x1ZGVPYmplY3Q7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKaW5kZXggODdlM2VmNi4uY2Jl
NDI0MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckF0ay5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKQEAgLTM2MCw4ICszNjAsMTAgQEAgc3RhdGlj
IEF0a1JvbGUgYXRrUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogICAgICAgICByZXR1cm4g
QVRLX1JPTEVfVFJFRTsKICAgICBjYXNlIE1lbnVCYXJSb2xlOgogICAgICAgICByZXR1cm4gQVRL
X1JPTEVfTUVOVV9CQVI7CisgICAgY2FzZSBNZW51TGlzdFBvcHVwUm9sZToKICAgICBjYXNlIE1l
bnVSb2xlOgogICAgICAgICByZXR1cm4gQVRLX1JPTEVfTUVOVTsKKyAgICBjYXNlIE1lbnVMaXN0
T3B0aW9uUm9sZToKICAgICBjYXNlIE1lbnVJdGVtUm9sZToKICAgICAgICAgcmV0dXJuIEFUS19S
T0xFX01FTlVfSVRFTTsKICAgICBjYXNlIENvbHVtblJvbGU6CkBAIC0zNzksNiArMzgxLDcgQEAg
c3RhdGljIEF0a1JvbGUgYXRrUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogICAgICAgICBy
ZXR1cm4gQVRLX1JPTEVfUFJPR1JFU1NfQkFSOwogICAgIGNhc2UgV2luZG93Um9sZToKICAgICAg
ICAgcmV0dXJuIEFUS19ST0xFX1dJTkRPVzsKKyAgICBjYXNlIFBvcFVwQnV0dG9uUm9sZToKICAg
ICBjYXNlIENvbWJvQm94Um9sZToKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX0NPTUJPX0JPWDsK
ICAgICBjYXNlIFNwbGl0R3JvdXBSb2xlOgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBmY2NlZmNhLi5hNzZmNWM2IDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAt
NSw2ICs1LDE5IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNDQ0OQogICAgICAgICBbR3RrXSBFdmFsdWF0ZSBhbmQgY3JlYXRlIHRlc3RzIGZvciBh
bGwgdGhlIEF0a1JvbGUncyBpbXBsZW1lbnRlZCBieSBXZWJLaXRHdGsKIAorICAgICAgICBBZGRz
IHRlc3QgZm9yIEFUS19ST0xFX0NPTUJPX0JPWCBhbmQgaXRzIGRlc2NlbmRhbnRzLgorCisgICAg
ICAgICogdGVzdHMvdGVzdGF0a3JvbGUuYzoKKyAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRSb2xl
Q29tYm9Cb3gpOgorICAgICAgICAobWFpbik6CisKKzIwMTAtMDItMDEgIEpvYW5tYXJpZSBEaWdn
cyAgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM0NDQ5CisgICAgICAgIFtHdGtdIEV2YWx1YXRlIGFuZCBjcmVhdGUgdGVzdHMgZm9y
IGFsbCB0aGUgQXRrUm9sZSdzIGltcGxlbWVudGVkIGJ5IFdlYktpdEd0aworCiAgICAgICAgIEFk
ZHMgdGVzdCBmb3IgQVRLX1JPTEVfU0VQQVJBVE9SLgogCiAgICAgICAgICogdGVzdHMvdGVzdGF0
a3JvbGUuYzoKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMgYi9X
ZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jCmluZGV4IGY4ZjBlNTguLjcwYWM5YzMgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKKysrIGIvV2ViS2l0L2d0
ay90ZXN0cy90ZXN0YXRrcm9sZXMuYwpAQCAtMjcsNiArMjcsNyBAQAogI2lmIEdMSUJfQ0hFQ0tf
VkVSU0lPTigyLCAxNiwgMCkgJiYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCiAKIHN0YXRp
YyBjb25zdCBjaGFyKiBjaGVja2JveCA9ICI8aHRtbD48Ym9keT48aW5wdXQgdHlwZT0nY2hlY2ti
b3gnIC8+VGhpcyBpcyBhIHRlc3QuPC9ib2R5PjwvaHRtbD4iOworc3RhdGljIGNvbnN0IGNoYXIq
IGNvbWJvYm94ID0gIjxodG1sPjxib2R5PjxzZWxlY3Qgc2l6ZT0nMSc+PG9wdGlvbj5vbmU8L29w
dGlvbj48b3B0aW9uPnR3bzwvb3B0aW9uPjxvcHRpb24+dGhyZWU8L29wdGlvbj48L3NlbGVjdD48
L2JvZHk+PC9odG1sPiI7CiBzdGF0aWMgY29uc3QgY2hhciogZG9jdW1lbnRGcmFtZSA9ICI8aHRt
bD48Ym9keT5UaGlzIGlzIGEgdGVzdC48L2JvZHk+PC9odG1sPiI7CiBzdGF0aWMgY29uc3QgY2hh
ciogZm9ybSA9ICI8aHRtbD48Ym9keT48Zm9ybT5UaGlzIGlzIGEgdGVzdC48L2Zvcm0+PC9ib2R5
PjwvaHRtbD4iOwogc3RhdGljIGNvbnN0IGNoYXIqIGhlYWRpbmcgPSAiPGh0bWw+PGJvZHk+PGgx
PjE8L2gxPjxoMj4yPC9oMj48aDM+MzwvaDM+PGg0PjQ8L2g0PjxoNT41PC9oNT48aDY+NjwvaDY+
PC9ib2R5PjwvaHRtbD4iOwpAQCAtODQsNiArODUsNjEgQEAgc3RhdGljIHZvaWQgdGVzdFdlYmtp
dEF0a0dldFJvbGVDaGVja2JveCh2b2lkKQogICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOwog
fQogCitzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0Um9sZUNvbWJvYm94KHZvaWQpCit7Cisg
ICAgV2ViS2l0V2ViVmlldyogd2ViVmlldzsKKyAgICBBdGtPYmplY3QqIGNvbWJvYm94TWVudTsK
KyAgICBBdGtPYmplY3QqIG9iajsKKyAgICBBdGtSb2xlIHJvbGU7CisgICAgR01haW5Mb29wKiBs
b29wOworCisgICAgd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdfbmV3
KCkpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKHdlYlZpZXcpOworICAgIEd0a0FsbG9jYXRpb24g
YWxsb2MgPSB7IDAsIDAsIDgwMCwgNjAwIH07CisgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRl
KEdUS19XSURHRVQod2ViVmlldyksICZhbGxvYyk7CisgICAgd2Via2l0X3dlYl92aWV3X2xvYWRf
c3RyaW5nKHdlYlZpZXcsIGNvbWJvYm94LCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgICBsb29wID0g
Z19tYWluX2xvb3BfbmV3KE5VTEwsIFRSVUUpOworCisgICAgZ190aW1lb3V0X2FkZCgxMDAsIChH
U291cmNlRnVuYyliYWlsT3V0LCBsb29wKTsKKyAgICBnX21haW5fbG9vcF9ydW4obG9vcCk7CisK
KyAgICBvYmogPSBndGtfd2lkZ2V0X2dldF9hY2Nlc3NpYmxlKEdUS19XSURHRVQod2ViVmlldykp
OworICAgIGdfYXNzZXJ0KG9iaik7CisKKyAgICAvLyBUaGlzIGlzIGFuIGV4dHJhbmVvdXMgb2Jq
ZWN0IG9mIEFUS19ST0xFX1BBTkVMIHdoaWNoIHdlIHNob3VsZCBnZXQgcmlkIG9mLgorICAgIG9i
aiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQob2JqLCAwKTsKKyAgICBnX2Fzc2Vy
dChvYmopOworCisgICAgb2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmos
IDApOworICAgIGdfYXNzZXJ0KG9iaik7CisgICAgcm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUo
b2JqKTsKKyAgICBnX2Fzc2VydChyb2xlID09IEFUS19ST0xFX0NPTUJPX0JPWCk7CisKKyAgICBj
b21ib2JveE1lbnUgPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iaiwgMCk7Cisg
ICAgZ19hc3NlcnQoY29tYm9ib3hNZW51KTsKKyAgICByb2xlID0gYXRrX29iamVjdF9nZXRfcm9s
ZShjb21ib2JveE1lbnUpOworICAgIGdfYXNzZXJ0KHJvbGUgPT0gQVRLX1JPTEVfTUVOVSk7CisK
KyAgICBvYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGNvbWJvYm94TWVudSwg
MCk7CisgICAgZ19hc3NlcnQob2JqKTsKKyAgICByb2xlID0gYXRrX29iamVjdF9nZXRfcm9sZShv
YmopOworICAgIGdfYXNzZXJ0KHJvbGUgPT0gQVRLX1JPTEVfTUVOVV9JVEVNKTsKKworICAgIG9i
aiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQoY29tYm9ib3hNZW51LCAxKTsKKyAg
ICBnX2Fzc2VydChvYmopOworICAgIHJvbGUgPSBhdGtfb2JqZWN0X2dldF9yb2xlKG9iaik7Cisg
ICAgZ19hc3NlcnQocm9sZSA9PSBBVEtfUk9MRV9NRU5VX0lURU0pOworCisgICAgb2JqID0gYXRr
X29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChjb21ib2JveE1lbnUsIDIpOworICAgIGdfYXNz
ZXJ0KG9iaik7CisgICAgcm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUob2JqKTsKKyAgICBnX2Fz
c2VydChyb2xlID09IEFUS19ST0xFX01FTlVfSVRFTSk7CisKKyAgICBnX29iamVjdF91bnJlZihv
YmopOworICAgIGdfb2JqZWN0X3VucmVmKGNvbWJvYm94TWVudSk7CisgICAgZ19vYmplY3RfdW5y
ZWYod2ViVmlldyk7Cit9CisKIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtHZXRSb2xlRG9jdW1l
bnRGcmFtZSh2b2lkKQogewogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXc7CkBAIC02NTcsNiAr
NzEzLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogCiAgICAgZ190ZXN0X2J1
Z19iYXNlKCJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8iKTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMo
Ii93ZWJraXQvYXRrL3Rlc3RXZWJraXRBdGtHZXRSb2xlQ2hlY2tib3giLCB0ZXN0V2Via2l0QXRr
R2V0Um9sZUNoZWNrYm94KTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RX
ZWJraXRBdGtHZXRSb2xlQ29tYm9ib3giLCB0ZXN0V2Via2l0QXRrR2V0Um9sZUNvbWJvYm94KTsK
ICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL3Rlc3RXZWJraXRBdGtHZXRSb2xlRG9j
dW1lbnRGcmFtZSIsIHRlc3RXZWJraXRBdGtHZXRSb2xlRG9jdW1lbnRGcmFtZSk7CiAgICAgZ190
ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay90ZXN0V2Via2l0QXRrR2V0Um9sZUVudHJ5IiwgdGVz
dFdlYmtpdEF0a0dldFJvbGVFbnRyeSk7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0
ay90ZXN0V2Via2l0QXRrR2V0Um9sZUZvcm0iLCB0ZXN0V2Via2l0QXRrR2V0Um9sZUZvcm0pOwot
LSAKMS42LjUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49618</attachid>
            <date>2010-02-26 13:02:27 -0800</date>
            <delta_ts>2010-04-11 19:44:13 -0700</delta_ts>
            <desc>testatkroles: test non-form roles</desc>
            <filename>testatkroles-test-non-form-roles.patch</filename>
            <type>text/plain</type>
            <size>10671</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSA0NjQ5OTk5OTNmZjZmMjBlYWE3NmM0Nzg5Y2M2MDdhNWY0ZTlkODRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IFRodSwgMjUgRmViIDIwMTAgMTc6NDc6NTYgLTA1MDAKU3ViamVjdDog
W1BBVENIXSB0ZXN0YXRrcm9sZXM6IHRlc3Qgbm9uLWZvcm0gcm9sZXMKClRoaXMgY29ycmVzcG9u
ZHMgdG8gam9hbm1hcmllJ3Mgb3JpZ2luYWwgcGF0Y2guCgpCdWcgIzM0NDQ5Ci0tLQogR05VbWFr
ZWZpbGUuYW0gICAgICAgICAgICAgICAgICB8ICAgIDYgKwogV2ViS2l0L2d0ay90ZXN0cy90ZXN0
YXRrcm9sZXMuYyB8ICAyMzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
CiAyIGZpbGVzIGNoYW5nZWQsIDI0NSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFdlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKCmRpZmYgLS1n
aXQgYS9HTlVtYWtlZmlsZS5hbSBiL0dOVW1ha2VmaWxlLmFtCmluZGV4IDg1NGExYjAuLjA3YmMy
NTQgMTAwNjQ0Ci0tLSBhL0dOVW1ha2VmaWxlLmFtCisrKyBiL0dOVW1ha2VmaWxlLmFtCkBAIC01
NzgsNiArNTc4LDcgQEAgVEVTVF9QUk9HUyArPSBQcm9ncmFtcy91bml0dGVzdHMvdGVzdGh0dHBi
YWNrZW5kIFwKIAlQcm9ncmFtcy91bml0dGVzdHMvdGVzdHdpbmRvdyBcCiAJUHJvZ3JhbXMvdW5p
dHRlc3RzL3Rlc3Rkb3dubG9hZCBcCiAJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3RhdGsgXAorCVBy
b2dyYW1zL3VuaXR0ZXN0cy90ZXN0YXRrcm9sZXMgXAogCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0
aGl0dGVzdHJlc3VsdCBcCiAJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3R3ZWJzZXR0aW5ncyBcCiAJ
UHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3R3ZWJyZXNvdXJjZSBcCkBAIC02NDEsNiArNjQyLDExIEBA
IFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0YXRrX0NGTEFHUyA9ICQod2Via2l0X3Rlc3RzX2NmbGFn
cykKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0YXRrX0xEQUREID0gJCh3ZWJraXRfdGVzdHNfbGRh
ZGQpCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdGF0a19MREZMQUdTID0gJCh3ZWJraXRfdGVzdHNf
bGRmbGFncykKIAorUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3RhdGtyb2xlc19TT1VSQ0VTID0gV2Vi
S2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9sZXMuYworUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3RhdGty
b2xlc19DRkxBR1MgPSAkKHdlYmtpdF90ZXN0c19jZmxhZ3MpCitQcm9ncmFtc191bml0dGVzdHNf
dGVzdGF0a3JvbGVzX0xEQUREID0gJCh3ZWJraXRfdGVzdHNfbGRhZGQpCitQcm9ncmFtc191bml0
dGVzdHNfdGVzdGF0a3JvbGVzX0xERkxBR1MgPSAkKHdlYmtpdF90ZXN0c19sZGZsYWdzKQorCiBQ
cm9ncmFtc191bml0dGVzdHNfdGVzdHdlYnNldHRpbmdzX1NPVVJDRVMgPSBXZWJLaXQvZ3RrL3Rl
c3RzL3Rlc3R3ZWJzZXR0aW5ncy5jCiBQcm9ncmFtc191bml0dGVzdHNfdGVzdHdlYnNldHRpbmdz
X0NGTEFHUyA9ICQod2Via2l0X3Rlc3RzX2NmbGFncykKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0
d2Vic2V0dGluZ3NfTERBREQgPSAkKHdlYmtpdF90ZXN0c19sZGFkZCkKZGlmZiAtLWdpdCBhL1dl
YktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGty
b2xlcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyNmQ5MTQKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jCkBAIC0wLDAgKzEs
MjM5IEBACisvKiB2aW06IHNldCBzdz00IHRzPTQgc3RzPTQgZXQ6ICovCisvKgorICogQ29weXJp
Z2h0IMKpIDIwMTAgSm9hbm1hcmllIERpZ2dzCisgKiBDb3B5cmlnaHQgwqkgMjAxMCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxn
bGliLmg+CisjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KKyNpbmNsdWRlIDxndGsvZ3RrLmg+Cisj
aW5jbHVkZSA8d2Via2l0L3dlYmtpdC5oPgorCisjaWYgR0xJQl9DSEVDS19WRVJTSU9OKDIsIDE2
LCAwKSAmJiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNCwgMCkKKworI2RlZmluZSBIVE1MX0RPQ1VN
RU5UX0ZSQU1FICI8aHRtbD48Ym9keT5UaGlzIGlzIGEgdGVzdC48L2JvZHk+PC9odG1sPiIKKyNk
ZWZpbmUgSFRNTF9IRUFESU5HICI8aHRtbD48Ym9keT48aDE+MTwvaDE+PGgyPjI8L2gyPjxoMz4z
PC9oMz48aDQ+NDwvaDQ+PGg1PjU8L2g1PjxoNj42PC9oNj48L2JvZHk+PC9odG1sPiIKKyNkZWZp
bmUgSFRNTF9JTUFHRSAiPGh0bWw+PGJvZHk+PGltZyBzcmM9J2Zvb2Jhci5wbmcnIGFsdD0nVGhp
cyBpcyBhIHRlc3QuJy8+PC9ib2R5PjwvaHRtbD4iCisjZGVmaW5lIEhUTUxfTElOS19URVhUICI8
aHRtbD48Ym9keT48YSBocmVmPSdmb29iYXIuaHRtbCc+VGhpcyBpcyBhIHRlc3QuPC9hPjwvYm9k
eT48L2h0bWw+IgorI2RlZmluZSBIVE1MX0xJU1QgIjxodG1sPjxib2R5Pjx1bD48bGk+MTwvbGk+
PGxpPjI8L2xpPjwvdWw+PG9sPjxsaT4xPC9saT48bGk+MjwvbGk+PC9vbD48L2JvZHk+PC9odG1s
PiIKKyNkZWZpbmUgSFRNTF9QQVJBR1JBUEggIjxodG1sPjxib2R5PjxwPlRoaXMgaXMgYSB0ZXN0
LjwvcD48L2JvZHk+PC9odG1sPiIKKyNkZWZpbmUgSFRNTF9TRUNUSU9OICI8aHRtbD48Ym9keT48
ZGl2PlRoaXMgaXMgYSB0ZXN0LjwvZGl2PjwvYm9keT48L2h0bWw+IgorI2RlZmluZSBIVE1MX1RB
QkxFICI8aHRtbD48Ym9keT48dGFibGUgYm9yZGVyPScxJz48dHI+PHRkPlRoaXMgaXM8L3RkPjx0
ZD5hIHRlc3QuPC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4iCisKK3R5cGVkZWYgc3Ry
dWN0IHsKKyAgICBBdGtPYmplY3QqIGRvY3VtZW50RnJhbWU7CisgICAgQXRrT2JqZWN0KiBvYmo7
CisgICAgQXRrUm9sZSByb2xlOworICAgIEd0a1dpZGdldCogd2ViVmlldzsKKyAgICBHdGtBbGxv
Y2F0aW9uIGFsbG9jOworICAgIEdNYWluTG9vcCogbG9vcDsKK30gQXRrUm9sZXNGaXh0dXJlOwor
CitzdGF0aWMgZ2Jvb2xlYW4gZmluaXNoX2xvYWRpbmcoQXRrUm9sZXNGaXh0dXJlKiBmaXh0dXJl
KQoreworICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKGZpeHR1cmUtPmxvb3ApKQorICAg
ICAgICBnX21haW5fbG9vcF9xdWl0KGZpeHR1cmUtPmxvb3ApOworCisgICAgZml4dHVyZS0+ZG9j
dW1lbnRGcmFtZSA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoZml4dHVyZS0+d2ViVmlldyk7
CisgICAgZ19hc3NlcnQoZml4dHVyZS0+ZG9jdW1lbnRGcmFtZSk7CisKKyAgICByZXR1cm4gRkFM
U0U7Cit9CisKK3N0YXRpYyB2b2lkIGF0a19yb2xlc19maXh0dXJlX3NldHVwKEF0a1JvbGVzRml4
dHVyZSogZml4dHVyZSwgZ2NvbnN0cG9pbnRlciBkYXRhKQoreworICAgIGZpeHR1cmUtPmxvb3Ag
PSBnX21haW5fbG9vcF9uZXcoTlVMTCwgVFJVRSk7CisgICAgZml4dHVyZS0+YWxsb2MgPSAoR3Rr
QWxsb2NhdGlvbikgeyAwLCAwLCA4MDAsIDYwMCB9OworICAgIGZpeHR1cmUtPndlYlZpZXcgPSB3
ZWJraXRfd2ViX3ZpZXdfbmV3KCk7CisgICAgZ19vYmplY3RfcmVmX3NpbmsoZml4dHVyZS0+d2Vi
Vmlldyk7CisKKyAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoZml4dHVyZS0+d2ViVmlldywg
JmZpeHR1cmUtPmFsbG9jKTsKKworICAgIGlmIChkYXRhICE9IE5VTEwpCisgICAgICAgIHdlYmtp
dF93ZWJfdmlld19sb2FkX3N0cmluZyhXRUJLSVRfV0VCX1ZJRVcgKGZpeHR1cmUtPndlYlZpZXcp
LCAoY29uc3QgY2hhciAqKSBkYXRhLCBOVUxMLCBOVUxMLCBOVUxMKTsKKworICAgIGdfaWRsZV9h
ZGQoKEdTb3VyY2VGdW5jKSBmaW5pc2hfbG9hZGluZywgZml4dHVyZSk7CisgICAgZ19tYWluX2xv
b3BfcnVuKGZpeHR1cmUtPmxvb3ApOworfQorCitzdGF0aWMgdm9pZCBhdGtfcm9sZXNfZml4dHVy
ZV90ZWFyZG93bihBdGtSb2xlc0ZpeHR1cmUqIGZpeHR1cmUsIGdjb25zdHBvaW50ZXIgZGF0YSkK
K3sKKyAgICBnX29iamVjdF91bnJlZihmaXh0dXJlLT53ZWJWaWV3KTsKKyAgICBnX21haW5fbG9v
cF91bnJlZihmaXh0dXJlLT5sb29wKTsKK30KKworc3RhdGljIGdib29sZWFuIF9nZXRfY2hpbGRf
YW5kX3Rlc3Rfcm9sZShBdGtPYmplY3QgKm9iaiwgZ2ludCBwb3MsIEF0a1JvbGUgcm9sZSkKK3sK
KyAgICBBdGtPYmplY3QgKmNoaWxkOworICAgIEF0a1JvbGUgY2hpbGRfcm9sZTsKKworICAgIGNo
aWxkID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmosIHBvcyk7CisgICAgZ19h
c3NlcnQoY2hpbGQpOworICAgIGNoaWxkX3JvbGUgPSBhdGtfb2JqZWN0X2dldF9yb2xlKGNoaWxk
KTsKKyAgICBnX2Fzc2VydChjaGlsZF9yb2xlID09IHJvbGUpOworCisgICAgZ19vYmplY3RfdW5y
ZWYoY2hpbGQpOworCisgICAgcmV0dXJuIFRSVUU7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfd2Vi
a2l0X2F0a19nZXRfcm9sZV9kb2N1bWVudF9mcmFtZShBdGtSb2xlc0ZpeHR1cmUgKmZpeHR1cmUs
IGdjb25zdHBvaW50ZXIgZGF0YSkKK3sKKyAgICBmaXh0dXJlLT5yb2xlID0gYXRrX29iamVjdF9n
ZXRfcm9sZShmaXh0dXJlLT5kb2N1bWVudEZyYW1lKTsKKyAgICBnX2Fzc2VydChmaXh0dXJlLT5y
b2xlID09IEFUS19ST0xFX0RPQ1VNRU5UX0ZSQU1FKTsKK30KKworc3RhdGljIHZvaWQgdGVzdF93
ZWJraXRfYXRrX2dldF9yb2xlX2hlYWRpbmcoQXRrUm9sZXNGaXh0dXJlICpmaXh0dXJlLCBnY29u
c3Rwb2ludGVyIGRhdGEpCit7CisgICAgX2dldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGZpeHR1cmUt
PmRvY3VtZW50RnJhbWUsIDAsIEFUS19ST0xFX0hFQURJTkcpOworICAgIF9nZXRfY2hpbGRfYW5k
X3Rlc3Rfcm9sZShmaXh0dXJlLT5kb2N1bWVudEZyYW1lLCAxLCBBVEtfUk9MRV9IRUFESU5HKTsK
KyAgICBfZ2V0X2NoaWxkX2FuZF90ZXN0X3JvbGUoZml4dHVyZS0+ZG9jdW1lbnRGcmFtZSwgMiwg
QVRLX1JPTEVfSEVBRElORyk7CisgICAgX2dldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGZpeHR1cmUt
PmRvY3VtZW50RnJhbWUsIDMsIEFUS19ST0xFX0hFQURJTkcpOworICAgIF9nZXRfY2hpbGRfYW5k
X3Rlc3Rfcm9sZShmaXh0dXJlLT5kb2N1bWVudEZyYW1lLCA0LCBBVEtfUk9MRV9IRUFESU5HKTsK
KyAgICBfZ2V0X2NoaWxkX2FuZF90ZXN0X3JvbGUoZml4dHVyZS0+ZG9jdW1lbnRGcmFtZSwgNSwg
QVRLX1JPTEVfSEVBRElORyk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X2F0a19nZXRf
cm9sZV9pbWFnZShBdGtSb2xlc0ZpeHR1cmUgKmZpeHR1cmUsIGdjb25zdHBvaW50ZXIgZGF0YSkK
K3sKKyAgICAvLyBUaGlzIGlzIGFuIGV4dHJhbmVvdXMgb2JqZWN0IG9mIEFUS19ST0xFX1BBTkVM
IHdoaWNoIHdlIHNob3VsZCBnZXQgcmlkIG9mLgorICAgIGZpeHR1cmUtPm9iaiA9IGF0a19vYmpl
Y3RfcmVmX2FjY2Vzc2libGVfY2hpbGQoZml4dHVyZS0+ZG9jdW1lbnRGcmFtZSwgMCk7CisgICAg
Z19hc3NlcnQoZml4dHVyZS0+b2JqKTsKKworICAgIF9nZXRfY2hpbGRfYW5kX3Rlc3Rfcm9sZShm
aXh0dXJlLT5vYmosIDAsIEFUS19ST0xFX0lNQUdFKTsKKworICAgIGdfb2JqZWN0X3VucmVmKGZp
eHR1cmUtPm9iaik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9s
aW5rKEF0a1JvbGVzRml4dHVyZSAqZml4dHVyZSwgZ2NvbnN0cG9pbnRlciBkYXRhKQoreworICAg
IC8vIFRoaXMgaXMgYW4gZXh0cmFuZW91cyBvYmplY3Qgb2YgQVRLX1JPTEVfUEFORUwgd2hpY2gg
d2Ugc2hvdWxkIGdldCByaWQgb2YuCisgICAgZml4dHVyZS0+b2JqID0gYXRrX29iamVjdF9yZWZf
YWNjZXNzaWJsZV9jaGlsZChmaXh0dXJlLT5kb2N1bWVudEZyYW1lLCAwKTsKKyAgICBnX2Fzc2Vy
dChmaXh0dXJlLT5vYmopOworCisgICAgX2dldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGZpeHR1cmUt
Pm9iaiwgMCwgQVRLX1JPTEVfTElOSyk7CisKKyAgICBnX29iamVjdF91bnJlZihmaXh0dXJlLT5v
YmopOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfbGlzdF9hbmRf
aXRlbShBdGtSb2xlc0ZpeHR1cmUgKmZpeHR1cmUsIGdjb25zdHBvaW50ZXIgZGF0YSkKK3sKKyAg
ICBBdGtPYmplY3QqIGxpc3RPYmo7CisKKyAgICBsaXN0T2JqID0gYXRrX29iamVjdF9yZWZfYWNj
ZXNzaWJsZV9jaGlsZChmaXh0dXJlLT5kb2N1bWVudEZyYW1lLCAwKTsKKyAgICBnX2Fzc2VydChs
aXN0T2JqKTsKKyAgICBmaXh0dXJlLT5yb2xlID0gYXRrX29iamVjdF9nZXRfcm9sZShsaXN0T2Jq
KTsKKyAgICBnX2Fzc2VydChmaXh0dXJlLT5yb2xlID09IEFUS19ST0xFX0xJU1QpOworCisgICAg
X2dldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGxpc3RPYmosIDAsIEFUS19ST0xFX0xJU1RfSVRFTSk7
CisgICAgX2dldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGxpc3RPYmosIDEsIEFUS19ST0xFX0xJU1Rf
SVRFTSk7CisgICAgZ19vYmplY3RfdW5yZWYobGlzdE9iaik7CisKKyAgICBsaXN0T2JqID0gYXRr
X29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChmaXh0dXJlLT5kb2N1bWVudEZyYW1lLCAxKTsK
KyAgICBnX2Fzc2VydChsaXN0T2JqKTsKKyAgICBmaXh0dXJlLT5yb2xlID0gYXRrX29iamVjdF9n
ZXRfcm9sZShsaXN0T2JqKTsKKyAgICBnX2Fzc2VydChmaXh0dXJlLT5yb2xlID09IEFUS19ST0xF
X0xJU1QpOworCisgICAgX2dldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGxpc3RPYmosIDAsIEFUS19S
T0xFX0xJU1RfSVRFTSk7CisgICAgX2dldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGxpc3RPYmosIDEs
IEFUS19ST0xFX0xJU1RfSVRFTSk7CisgICAgZ19vYmplY3RfdW5yZWYobGlzdE9iaik7Cit9CisK
K3N0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9wYXJhZ3JhcGgoQXRrUm9sZXNG
aXh0dXJlICpmaXh0dXJlLCBnY29uc3Rwb2ludGVyIGRhdGEpCit7CisgICAgX2dldF9jaGlsZF9h
bmRfdGVzdF9yb2xlKGZpeHR1cmUtPmRvY3VtZW50RnJhbWUsIDAsIEFUS19ST0xFX1BBUkFHUkFQ
SCk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9zZWN0aW9uKEF0
a1JvbGVzRml4dHVyZSAqZml4dHVyZSwgZ2NvbnN0cG9pbnRlciBkYXRhKQoreworICAgIF9nZXRf
Y2hpbGRfYW5kX3Rlc3Rfcm9sZShmaXh0dXJlLT5kb2N1bWVudEZyYW1lLCAwLCBBVEtfUk9MRV9T
RUNUSU9OKTsKK30KKworLy8gRG9lcyBub3QgeWV0IHRlc3QgdGFibGUgY2VsbHMgYmVjYXVzZSBv
ZiBidWcgMzA4OTUuCitzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfdGFibGUo
QXRrUm9sZXNGaXh0dXJlICpmaXh0dXJlLCBnY29uc3Rwb2ludGVyIGRhdGEpCit7CisgICAgX2dl
dF9jaGlsZF9hbmRfdGVzdF9yb2xlKGZpeHR1cmUtPmRvY3VtZW50RnJhbWUsIDAsIEFUS19ST0xF
X1RBQkxFKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIGdf
dGhyZWFkX2luaXQoTlVMTCk7CisgICAgZ3RrX3Rlc3RfaW5pdCgmYXJnYywgJmFyZ3YsIE5VTEwp
OworCisgICAgZ190ZXN0X2J1Z19iYXNlKCJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy8iKTsKKwor
ICAgIGdfdGVzdF9hZGQoIi93ZWJraXQvYXRrL3Rlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9kb2N1
bWVudF9mcmFtZSIsCisgICAgICAgICAgICAgICBBdGtSb2xlc0ZpeHR1cmUsIEhUTUxfRE9DVU1F
TlRfRlJBTUUsCisgICAgICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV9zZXR1cCwKKyAgICAg
ICAgICAgICAgIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9kb2N1bWVudF9mcmFtZSwKKyAgICAg
ICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3RlYXJkb3duKTsKKworICAgIGdfdGVzdF9hZGQo
Ii93ZWJraXQvYXRrL3Rlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9oZWFkaW5nIiwKKyAgICAgICAg
ICAgICAgIEF0a1JvbGVzRml4dHVyZSwgSFRNTF9IRUFESU5HLAorICAgICAgICAgICAgICAgYXRr
X3JvbGVzX2ZpeHR1cmVfc2V0dXAsCisgICAgICAgICAgICAgICB0ZXN0X3dlYmtpdF9hdGtfZ2V0
X3JvbGVfaGVhZGluZywKKyAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3RlYXJkb3du
KTsKKworICAgIGdfdGVzdF9hZGQoIi93ZWJraXQvYXRrL3Rlc3Rfd2Via2l0X2F0a19nZXRfcm9s
ZV9pbWFnZSIsCisgICAgICAgICAgICAgICBBdGtSb2xlc0ZpeHR1cmUsIEhUTUxfSU1BR0UsCisg
ICAgICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV9zZXR1cCwKKyAgICAgICAgICAgICAgIHRl
c3Rfd2Via2l0X2F0a19nZXRfcm9sZV9pbWFnZSwKKyAgICAgICAgICAgICAgIGF0a19yb2xlc19m
aXh0dXJlX3RlYXJkb3duKTsKKworICAgIGdfdGVzdF9hZGQoIi93ZWJraXQvYXRrL3Rlc3Rfd2Vi
a2l0X2F0a19nZXRfcm9sZV9saW5rIiwKKyAgICAgICAgICAgICAgIEF0a1JvbGVzRml4dHVyZSwg
SFRNTF9MSU5LX1RFWFQsCisgICAgICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV9zZXR1cCwK
KyAgICAgICAgICAgICAgIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9saW5rLAorICAgICAgICAg
ICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVhcmRvd24pOworCisgICAgZ190ZXN0X2FkZCgiL3dl
YmtpdC9hdGsvdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2xpc3RfYW5kX2l0ZW0iLAorICAgICAg
ICAgICAgICAgQXRrUm9sZXNGaXh0dXJlLCBIVE1MX0xJU1QsCisgICAgICAgICAgICAgICBhdGtf
cm9sZXNfZml4dHVyZV9zZXR1cCwKKyAgICAgICAgICAgICAgIHRlc3Rfd2Via2l0X2F0a19nZXRf
cm9sZV9saXN0X2FuZF9pdGVtLAorICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVh
cmRvd24pOworCisgICAgZ190ZXN0X2FkZCgiL3dlYmtpdC9hdGsvdGVzdF93ZWJraXRfYXRrX2dl
dF9yb2xlX3BhcmFncmFwaCIsCisgICAgICAgICAgICAgICBBdGtSb2xlc0ZpeHR1cmUsIEhUTUxf
UEFSQUdSQVBILAorICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfc2V0dXAsCisgICAg
ICAgICAgICAgICB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfcGFyYWdyYXBoLAorICAgICAgICAg
ICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVhcmRvd24pOworCisgICAgZ190ZXN0X2FkZCgiL3dl
YmtpdC9hdGsvdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX3NlY3Rpb24iLAorICAgICAgICAgICAg
ICAgQXRrUm9sZXNGaXh0dXJlLCBIVE1MX1NFQ1RJT04sCisgICAgICAgICAgICAgICBhdGtfcm9s
ZXNfZml4dHVyZV9zZXR1cCwKKyAgICAgICAgICAgICAgIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9s
ZV9zZWN0aW9uLAorICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVhcmRvd24pOwor
CisgICAgZ190ZXN0X2FkZCgiL3dlYmtpdC9hdGsvdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX3Rh
YmxlIiwKKyAgICAgICAgICAgICAgIEF0a1JvbGVzRml4dHVyZSwgSFRNTF9UQUJMRSwKKyAgICAg
ICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3NldHVwLAorICAgICAgICAgICAgICAgdGVzdF93
ZWJraXRfYXRrX2dldF9yb2xlX3RhYmxlLAorICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1
cmVfdGVhcmRvd24pOworCisgICAgcmV0dXJuIGdfdGVzdF9ydW4gKCk7Cit9CisKKyNlbHNlCitp
bnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgZ19jcml0aWNhbCgiWW91IHdp
bGwgbmVlZCBhdCBsZWFzdCBnbGliLTIuMTYuMCBhbmQgZ3RrLTIuMTQuMCB0byBydW4gdGhlIHVu
aXQgdGVzdHMuIERvaW5nIG5vdGhpbmcgbm93LiIpOworICAgIHJldHVybiAwOworfQorCisjZW5k
aWYKLS0gCjEuNy4w
</data>
<flag name="review"
          id="36304"
          type_id="1"
          status="-"
          setter="xan.lopez"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49619</attachid>
            <date>2010-02-26 13:02:31 -0800</date>
            <delta_ts>2010-04-11 19:44:30 -0700</delta_ts>
            <desc>testatkroles: test form roles</desc>
            <filename>testatkroles-test-form-roles.patch</filename>
            <type>text/plain</type>
            <size>7455</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSAzNDQ4ZTBlMDMyZDAzNGQ3NjIwZDBjYjIwMDhkODc4ODA3Y2Q5NmRiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IEZyaSwgMjYgRmViIDIwMTAgMTQ6MzE6MzQgLTA1MDAKU3ViamVjdDog
W1BBVENIXSB0ZXN0YXRrcm9sZXM6IHRlc3QgZm9ybSByb2xlcwoKQ29ycmVzcG9uZHMgdG8gam9h
bm1hcmllJ3Mgc2Vjb25kIHBhdGNoLgoKQnVnICMzNDQ0OQotLS0KIFdlYktpdC9ndGsvdGVzdHMv
dGVzdGF0a3JvbGVzLmMgfCAgMTQwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrLQogMSBmaWxlcyBjaGFuZ2VkLCAxMzkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jIGIvV2ViS2l0L2d0
ay90ZXN0cy90ZXN0YXRrcm9sZXMuYwppbmRleCA2MjZkOTE0Li5hYjI1MzA4IDEwMDY0NAotLS0g
YS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jCisrKyBiL1dlYktpdC9ndGsvdGVzdHMv
dGVzdGF0a3JvbGVzLmMKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEdMSUJfQ0hFQ0tfVkVSU0lP
TigyLCAxNiwgMCkgJiYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCiAKKy8qIE5vbiBmb3Jt
IHJvbGVzICovCiAjZGVmaW5lIEhUTUxfRE9DVU1FTlRfRlJBTUUgIjxodG1sPjxib2R5PlRoaXMg
aXMgYSB0ZXN0LjwvYm9keT48L2h0bWw+IgogI2RlZmluZSBIVE1MX0hFQURJTkcgIjxodG1sPjxi
b2R5PjxoMT4xPC9oMT48aDI+MjwvaDI+PGgzPjM8L2gzPjxoND40PC9oND48aDU+NTwvaDU+PGg2
PjY8L2g2PjwvYm9keT48L2h0bWw+IgogI2RlZmluZSBIVE1MX0lNQUdFICI8aHRtbD48Ym9keT48
aW1nIHNyYz0nZm9vYmFyLnBuZycgYWx0PSdUaGlzIGlzIGEgdGVzdC4nLz48L2JvZHk+PC9odG1s
PiIKQEAgLTM2LDYgKzM3LDEzIEBACiAjZGVmaW5lIEhUTUxfUEFSQUdSQVBIICI8aHRtbD48Ym9k
eT48cD5UaGlzIGlzIGEgdGVzdC48L3A+PC9ib2R5PjwvaHRtbD4iCiAjZGVmaW5lIEhUTUxfU0VD
VElPTiAiPGh0bWw+PGJvZHk+PGRpdj5UaGlzIGlzIGEgdGVzdC48L2Rpdj48L2JvZHk+PC9odG1s
PiIKICNkZWZpbmUgSFRNTF9UQUJMRSAiPGh0bWw+PGJvZHk+PHRhYmxlIGJvcmRlcj0nMSc+PHRy
Pjx0ZD5UaGlzIGlzPC90ZD48dGQ+YSB0ZXN0LjwvdGQ+PC90cj48L3RhYmxlPjwvYm9keT48L2h0
bWw+IgorLyogRm9ybSByb2xlcyAqLworI2RlZmluZSBIVE1MX0NIRUNLX0JPWCAiPGh0bWw+PGJv
ZHk+PGlucHV0IHR5cGU9J2NoZWNrYm94JyAvPlRoaXMgaXMgYSB0ZXN0LjwvYm9keT48L2h0bWw+
IgorI2RlZmluZSBIVE1MX0xBQkVMRURfRU5UUlkgIjxodG1sPjxib2R5PjxsYWJlbCBmb3I9J2Zv
byc+TmFtZTo8L2xhYmVsPjxpbnB1dCB0eXBlPSd0ZXh0JyBpZD0nZm9vJyAvPjwvYm9keT48L2h0
bWw+IgorI2RlZmluZSBIVE1MX0xJU1RCT1ggIjxodG1sPjxib2R5PjxzZWxlY3Qgc2l6ZT0nMyc+
PG9wdGlvbj5vbmU8L29wdGlvbj48b3B0aW9uPnR3bzwvb3B0aW9uPjxvcHRpb24+dGhyZWU8L29w
dGlvbj48L3NlbGVjdD48L2JvZHk+PC9odG1sPiIKKyNkZWZpbmUgSFRNTF9QQVNTV09SRF9URVhU
ICI8aHRtbD48Ym9keT48aW5wdXQgdHlwZT0ncGFzc3dvcmQnIC8+PC9ib2R5PjwvaHRtbD4iCisj
ZGVmaW5lIEhUTUxfUFVTSF9CVVRUT04gIjxodG1sPjxib2R5PjxpbnB1dCB0eXBlPSdzdWJtaXQn
IHZhbHVlPSdvaycgLz5UaGlzIGlzIGEgdGVzdC48L2JvZHk+PC9odG1sPiIKKyNkZWZpbmUgSFRN
TF9SQURJT19CVVRUT04gIjxodG1sPjxib2R5PjxpbnB1dCB0eXBlPSdyYWRpbycgLz5UaGlzIGlz
IGEgdGVzdC48L2JvZHk+PC9odG1sPiIKIAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIEF0a09iamVj
dCogZG9jdW1lbnRGcmFtZTsKQEAgLTE3MSw2ICsxNzksOTMgQEAgc3RhdGljIHZvaWQgdGVzdF93
ZWJraXRfYXRrX2dldF9yb2xlX3RhYmxlKEF0a1JvbGVzRml4dHVyZSAqZml4dHVyZSwgZ2NvbnN0
cG9pbnQKICAgICBfZ2V0X2NoaWxkX2FuZF90ZXN0X3JvbGUoZml4dHVyZS0+ZG9jdW1lbnRGcmFt
ZSwgMCwgQVRLX1JPTEVfVEFCTEUpOwogfQogCisvKiBGb3JtIHJvbGVzICovCitzdGF0aWMgdm9p
ZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfY2hlY2tfYm94KEF0a1JvbGVzRml4dHVyZSAqZml4
dHVyZSwgZ2NvbnN0cG9pbnRlciBkYXRhKQoreworICAgIC8vIFRoaXMgaXMgYW4gZXh0cmFuZW91
cyBvYmplY3Qgb2YgQVRLX1JPTEVfUEFORUwgd2hpY2ggd2Ugc2hvdWxkIGdldCByaWQgb2YuCisg
ICAgZml4dHVyZS0+b2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChmaXh0dXJl
LT5kb2N1bWVudEZyYW1lLCAwKTsKKyAgICBnX2Fzc2VydChmaXh0dXJlLT5vYmopOworCisgICAg
X2dldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGZpeHR1cmUtPm9iaiwgMCwgQVRLX1JPTEVfQ0hFQ0tf
Qk9YKTsKKworICAgIGdfb2JqZWN0X3VucmVmKGZpeHR1cmUtPm9iaik7Cit9CisKK3N0YXRpYyB2
b2lkIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9lbnRyeShBdGtSb2xlc0ZpeHR1cmUgKmZpeHR1
cmUsIGdjb25zdHBvaW50ZXIgZGF0YSkKK3sKKyAgICAvLyBUaGlzIGlzIGFuIGV4dHJhbmVvdXMg
b2JqZWN0IG9mIEFUS19ST0xFX1BBTkVMIHdoaWNoIHdlIHNob3VsZCBnZXQgcmlkIG9mLgorICAg
IGZpeHR1cmUtPm9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQoZml4dHVyZS0+
ZG9jdW1lbnRGcmFtZSwgMCk7CisgICAgZ19hc3NlcnQoZml4dHVyZS0+b2JqKTsKKworICAgIF9n
ZXRfY2hpbGRfYW5kX3Rlc3Rfcm9sZShmaXh0dXJlLT5vYmosIDEsIEFUS19ST0xFX0VOVFJZKTsK
KworICAgIGdfb2JqZWN0X3VucmVmKGZpeHR1cmUtPm9iaik7Cit9CisKK3N0YXRpYyB2b2lkIHRl
c3Rfd2Via2l0X2F0a19nZXRfcm9sZV9sYWJlbChBdGtSb2xlc0ZpeHR1cmUgKmZpeHR1cmUsIGdj
b25zdHBvaW50ZXIgZGF0YSkKK3sKKyAgICAvLyBUaGlzIGlzIGFuIGV4dHJhbmVvdXMgb2JqZWN0
IG9mIEFUS19ST0xFX1BBTkVMIHdoaWNoIHdlIHNob3VsZCBnZXQgcmlkIG9mLgorICAgIGZpeHR1
cmUtPm9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQoZml4dHVyZS0+ZG9jdW1l
bnRGcmFtZSwgMCk7CisgICAgZ19hc3NlcnQoZml4dHVyZS0+b2JqKTsKKworICAgIF9nZXRfY2hp
bGRfYW5kX3Rlc3Rfcm9sZShmaXh0dXJlLT5vYmosIDAsIEFUS19ST0xFX0xBQkVMKTsKKworICAg
IGdfb2JqZWN0X3VucmVmKGZpeHR1cmUtPm9iaik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfd2Vi
a2l0X2F0a19nZXRfcm9sZV9saXN0Ym94KEF0a1JvbGVzRml4dHVyZSAqZml4dHVyZSwgZ2NvbnN0
cG9pbnRlciBkYXRhKQoreworICAgIEF0a09iamVjdCogbGlzdGJveE9iajsKKyAgICAvLyBUaGlz
IGlzIGFuIGV4dHJhbmVvdXMgb2JqZWN0IG9mIEFUS19ST0xFX1BBTkVMIHdoaWNoIHdlIHNob3Vs
ZCBnZXQgcmlkIG9mLgorICAgIGZpeHR1cmUtPm9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2li
bGVfY2hpbGQoZml4dHVyZS0+ZG9jdW1lbnRGcmFtZSwgMCk7CisgICAgZ19hc3NlcnQoZml4dHVy
ZS0+b2JqKTsKKworICAgIGxpc3Rib3hPYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2No
aWxkKGZpeHR1cmUtPm9iaiwgMCk7CisgICAgZ19hc3NlcnQobGlzdGJveE9iaik7CisgICAgZml4
dHVyZS0+cm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUobGlzdGJveE9iaik7CisgICAgZ19hc3Nl
cnQoZml4dHVyZS0+cm9sZSA9PSBBVEtfUk9MRV9MSVNUKTsKKworICAgIF9nZXRfY2hpbGRfYW5k
X3Rlc3Rfcm9sZShsaXN0Ym94T2JqLCAwLCBBVEtfUk9MRV9MSVNUX0lURU0pOworICAgIF9nZXRf
Y2hpbGRfYW5kX3Rlc3Rfcm9sZShsaXN0Ym94T2JqLCAxLCBBVEtfUk9MRV9MSVNUX0lURU0pOwor
ICAgIF9nZXRfY2hpbGRfYW5kX3Rlc3Rfcm9sZShsaXN0Ym94T2JqLCAyLCBBVEtfUk9MRV9MSVNU
X0lURU0pOworCisgICAgZ19vYmplY3RfdW5yZWYoZml4dHVyZS0+b2JqKTsKKyAgICBnX29iamVj
dF91bnJlZihsaXN0Ym94T2JqKTsKK30KKworc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfYXRrX2dl
dF9yb2xlX3Bhc3N3b3JkX3RleHQoQXRrUm9sZXNGaXh0dXJlICpmaXh0dXJlLCBnY29uc3Rwb2lu
dGVyIGRhdGEpCit7CisgICAgLy8gVGhpcyBpcyBhbiBleHRyYW5lb3VzIG9iamVjdCBvZiBBVEtf
Uk9MRV9QQU5FTCB3aGljaCB3ZSBzaG91bGQgZ2V0IHJpZCBvZi4KKyAgICBmaXh0dXJlLT5vYmog
PSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGZpeHR1cmUtPmRvY3VtZW50RnJhbWUs
IDApOworICAgIGdfYXNzZXJ0KGZpeHR1cmUtPm9iaik7CisKKyAgICBfZ2V0X2NoaWxkX2FuZF90
ZXN0X3JvbGUoZml4dHVyZS0+b2JqLCAwLCBBVEtfUk9MRV9QQVNTV09SRF9URVhUKTsKKworICAg
IGdfb2JqZWN0X3VucmVmKGZpeHR1cmUtPm9iaik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfd2Vi
a2l0X2F0a19nZXRfcm9sZV9wdXNoX2J1dHRvbihBdGtSb2xlc0ZpeHR1cmUgKmZpeHR1cmUsIGdj
b25zdHBvaW50ZXIgZGF0YSkKK3sKKyAgICAvLyBUaGlzIGlzIGFuIGV4dHJhbmVvdXMgb2JqZWN0
IG9mIEFUS19ST0xFX1BBTkVMIHdoaWNoIHdlIHNob3VsZCBnZXQgcmlkIG9mLgorICAgIGZpeHR1
cmUtPm9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQoZml4dHVyZS0+ZG9jdW1l
bnRGcmFtZSwgMCk7CisgICAgZ19hc3NlcnQoZml4dHVyZS0+b2JqKTsKKworICAgIF9nZXRfY2hp
bGRfYW5kX3Rlc3Rfcm9sZShmaXh0dXJlLT5vYmosIDAsIEFUS19ST0xFX1BVU0hfQlVUVE9OKTsK
KworICAgIGdfb2JqZWN0X3VucmVmKGZpeHR1cmUtPm9iaik7Cit9CisKK3N0YXRpYyB2b2lkIHRl
c3Rfd2Via2l0X2F0a19nZXRfcm9sZV9yYWRpb19idXR0b24oQXRrUm9sZXNGaXh0dXJlICpmaXh0
dXJlLCBnY29uc3Rwb2ludGVyIGRhdGEpCit7CisgICAgLy8gVGhpcyBpcyBhbiBleHRyYW5lb3Vz
IG9iamVjdCBvZiBBVEtfUk9MRV9QQU5FTCB3aGljaCB3ZSBzaG91bGQgZ2V0IHJpZCBvZi4KKyAg
ICBmaXh0dXJlLT5vYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGZpeHR1cmUt
PmRvY3VtZW50RnJhbWUsIDApOworICAgIGdfYXNzZXJ0KGZpeHR1cmUtPm9iaik7CisKKyAgICBf
Z2V0X2NoaWxkX2FuZF90ZXN0X3JvbGUoZml4dHVyZS0+b2JqLCAwLCBBVEtfUk9MRV9SQURJT19C
VVRUT04pOworCisgICAgZ19vYmplY3RfdW5yZWYoZml4dHVyZS0+b2JqKTsKK30KKwogaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogewogICAgIGdfdGhyZWFkX2luaXQoTlVMTCk7CkBA
IC0yMjYsNyArMzIxLDUwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAg
ICAgICAgICAgIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV90YWJsZSwKICAgICAgICAgICAgICAg
IGF0a19yb2xlc19maXh0dXJlX3RlYXJkb3duKTsKIAotICAgIHJldHVybiBnX3Rlc3RfcnVuICgp
OworICAgIC8qIEZvcm0gcm9sZXMgKi8KKyAgICBnX3Rlc3RfYWRkKCIvd2Via2l0L2F0ay90ZXN0
X3dlYmtpdF9hdGtfZ2V0X3JvbGVfY2hlY2tfYm94IiwKKyAgICAgICAgICAgICAgIEF0a1JvbGVz
Rml4dHVyZSwgSFRNTF9DSEVDS19CT1gsCisgICAgICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVy
ZV9zZXR1cCwKKyAgICAgICAgICAgICAgIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9jaGVja19i
b3gsCisgICAgICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV90ZWFyZG93bik7CisKKyAgICBn
X3Rlc3RfYWRkKCIvd2Via2l0L2F0ay90ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfZW50cnkiLAor
ICAgICAgICAgICAgICAgQXRrUm9sZXNGaXh0dXJlLCBIVE1MX0xBQkVMRURfRU5UUlksCisgICAg
ICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV9zZXR1cCwKKyAgICAgICAgICAgICAgIHRlc3Rf
d2Via2l0X2F0a19nZXRfcm9sZV9lbnRyeSwKKyAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0
dXJlX3RlYXJkb3duKTsKKworICAgIGdfdGVzdF9hZGQoIi93ZWJraXQvYXRrL3Rlc3Rfd2Via2l0
X2F0a19nZXRfcm9sZV9sYWJlbCIsCisgICAgICAgICAgICAgICBBdGtSb2xlc0ZpeHR1cmUsIEhU
TUxfTEFCRUxFRF9FTlRSWSwKKyAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3NldHVw
LAorICAgICAgICAgICAgICAgdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2xhYmVsLAorICAgICAg
ICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVhcmRvd24pOworCisgICAgZ190ZXN0X2FkZCgi
L3dlYmtpdC9hdGsvdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2xpc3Rib3giLAorICAgICAgICAg
ICAgICAgQXRrUm9sZXNGaXh0dXJlLCBIVE1MX0xJU1RCT1gsCisgICAgICAgICAgICAgICBhdGtf
cm9sZXNfZml4dHVyZV9zZXR1cCwKKyAgICAgICAgICAgICAgIHRlc3Rfd2Via2l0X2F0a19nZXRf
cm9sZV9saXN0Ym94LAorICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVhcmRvd24p
OworCisgICAgZ190ZXN0X2FkZCgiL3dlYmtpdC9hdGsvdGVzdF93ZWJraXRfYXRrX2dldF9yb2xl
X3Bhc3N3b3JkX3RleHQiLAorICAgICAgICAgICAgICAgQXRrUm9sZXNGaXh0dXJlLCBIVE1MX1BB
U1NXT1JEX1RFWFQsCisgICAgICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV9zZXR1cCwKKyAg
ICAgICAgICAgICAgIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9wYXNzd29yZF90ZXh0LAorICAg
ICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVhcmRvd24pOworCisgICAgZ190ZXN0X2Fk
ZCgiL3dlYmtpdC9hdGsvdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX3B1c2hfYnV0dG9uIiwKKyAg
ICAgICAgICAgICAgIEF0a1JvbGVzRml4dHVyZSwgSFRNTF9QVVNIX0JVVFRPTiwKKyAgICAgICAg
ICAgICAgIGF0a19yb2xlc19maXh0dXJlX3NldHVwLAorICAgICAgICAgICAgICAgdGVzdF93ZWJr
aXRfYXRrX2dldF9yb2xlX3B1c2hfYnV0dG9uLAorICAgICAgICAgICAgICAgYXRrX3JvbGVzX2Zp
eHR1cmVfdGVhcmRvd24pOworCisgICAgZ190ZXN0X2FkZCgiL3dlYmtpdC9hdGsvdGVzdF93ZWJr
aXRfYXRrX2dldF9yb2xlX3JhZGlvX2J1dHRvbiIsCisgICAgICAgICAgICAgICBBdGtSb2xlc0Zp
eHR1cmUsIEhUTUxfUkFESU9fQlVUVE9OLAorICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1
cmVfc2V0dXAsCisgICAgICAgICAgICAgICB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfcmFkaW9f
YnV0dG9uLAorICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVhcmRvd24pOworCisg
ICAgcmV0dXJuIGdfdGVzdF9ydW4oKTsKIH0KIAogI2Vsc2UKLS0gCjEuNy4w
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49620</attachid>
            <date>2010-02-26 13:02:36 -0800</date>
            <delta_ts>2010-04-11 19:44:40 -0700</delta_ts>
            <desc>testatkroles: implement ATK_ROLE_FORM</desc>
            <filename>testatkroles-implement-ATKROLEFORM.patch</filename>
            <type>text/plain</type>
            <size>1023</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSAyMTg0YTllZWNlYzI5OGE2ZWU1NjU1ZTdkODliMjFlMzM0Y2NmOGU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IEZyaSwgMjYgRmViIDIwMTAgMTQ6NDM6MzkgLTA1MDAKU3ViamVjdDog
W1BBVENIXSB0ZXN0YXRrcm9sZXM6IGltcGxlbWVudCBBVEtfUk9MRV9GT1JNCgpDb3JyZXNwb25k
cyB0byBqb2FubWFyaWUncyB0aGlyZCBwYXRjaAoKQnVnICMzNDQ0OQotLS0KIC4uLi9ndGsvQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwgICAgMiArKwogMSBmaWxl
cyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5j
cHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
QXRrLmNwcAppbmRleCBiZmY1YWM0Li4xODVmNDRiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAorKysgYi9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcApA
QCAtNDQ4LDYgKzQ0OCw4IEBAIHN0YXRpYyBBdGtSb2xlIHdlYmtpdF9hY2Nlc3NpYmxlX2dldF9y
b2xlKEF0a09iamVjdCogb2JqZWN0KQogICAgICAgICAgICAgICAgIHJldHVybiBBVEtfUk9MRV9M
QUJFTDsKICAgICAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6ZGl2VGFn
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gQVRLX1JPTEVfU0VDVElPTjsKKyAgICAgICAgICAg
IGlmIChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6Zm9ybVRhZykpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIEFUS19ST0xFX0ZPUk07CiAgICAgICAgIH0KICAgICB9CiAKLS0gCjEuNy4w
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49621</attachid>
            <date>2010-02-26 13:02:40 -0800</date>
            <delta_ts>2010-04-11 19:44:48 -0700</delta_ts>
            <desc>testatkroles: test ATK_ROLE_FORM</desc>
            <filename>testatkroles-test-ATKROLEFORM.patch</filename>
            <type>text/plain</type>
            <size>2209</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSA5ZWFmMTM4ZDI1MDI5ZTdkNDg1ZTFiMmQ3ZDJlOWIxMTFhYjEyY2I5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IEZyaSwgMjYgRmViIDIwMTAgMTQ6NDQ6MTggLTA1MDAKU3ViamVjdDog
W1BBVENIXSB0ZXN0YXRrcm9sZXM6IHRlc3QgQVRLX1JPTEVfRk9STQoKQ29ycmVzcG9uZHMgdG8g
am9hbm1hcmllJ3MgdGhpcmQgcGF0Y2guCgpCdWcgIzM0NDQ5Ci0tLQogV2ViS2l0L2d0ay90ZXN0
cy90ZXN0YXRrcm9sZXMuYyB8ICAgMTAgKysrKysrKysrKwogMSBmaWxlcyBjaGFuZ2VkLCAxMCBp
bnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvdGVz
dHMvdGVzdGF0a3JvbGVzLmMgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jCmluZGV4
IGFiMjUzMDguLmUwODU3MzggMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3Jv
bGVzLmMKKysrIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9sZXMuYwpAQCAtMzgsNiArMzgs
NyBAQAogI2RlZmluZSBIVE1MX1NFQ1RJT04gIjxodG1sPjxib2R5PjxkaXY+VGhpcyBpcyBhIHRl
c3QuPC9kaXY+PC9ib2R5PjwvaHRtbD4iCiAjZGVmaW5lIEhUTUxfVEFCTEUgIjxodG1sPjxib2R5
Pjx0YWJsZSBib3JkZXI9JzEnPjx0cj48dGQ+VGhpcyBpczwvdGQ+PHRkPmEgdGVzdC48L3RkPjwv
dHI+PC90YWJsZT48L2JvZHk+PC9odG1sPiIKIC8qIEZvcm0gcm9sZXMgKi8KKyNkZWZpbmUgSFRN
TF9GT1JNICI8aHRtbD48Ym9keT48Zm9ybT5UaGlzIGlzIGEgdGVzdC48L2Zvcm0+PC9ib2R5Pjwv
aHRtbD4iCiAjZGVmaW5lIEhUTUxfQ0hFQ0tfQk9YICI8aHRtbD48Ym9keT48aW5wdXQgdHlwZT0n
Y2hlY2tib3gnIC8+VGhpcyBpcyBhIHRlc3QuPC9ib2R5PjwvaHRtbD4iCiAjZGVmaW5lIEhUTUxf
TEFCRUxFRF9FTlRSWSAiPGh0bWw+PGJvZHk+PGxhYmVsIGZvcj0nZm9vJz5OYW1lOjwvbGFiZWw+
PGlucHV0IHR5cGU9J3RleHQnIGlkPSdmb28nIC8+PC9ib2R5PjwvaHRtbD4iCiAjZGVmaW5lIEhU
TUxfTElTVEJPWCAiPGh0bWw+PGJvZHk+PHNlbGVjdCBzaXplPSczJz48b3B0aW9uPm9uZTwvb3B0
aW9uPjxvcHRpb24+dHdvPC9vcHRpb24+PG9wdGlvbj50aHJlZTwvb3B0aW9uPjwvc2VsZWN0Pjwv
Ym9keT48L2h0bWw+IgpAQCAtMTgwLDYgKzE4MSwxMCBAQCBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtp
dF9hdGtfZ2V0X3JvbGVfdGFibGUoQXRrUm9sZXNGaXh0dXJlICpmaXh0dXJlLCBnY29uc3Rwb2lu
dAogfQogCiAvKiBGb3JtIHJvbGVzICovCitzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0
X3JvbGVfZm9ybShBdGtSb2xlc0ZpeHR1cmUgKmZpeHR1cmUsIGdjb25zdHBvaW50ZXIgZGF0YSkK
K3sKKyAgICBfZ2V0X2NoaWxkX2FuZF90ZXN0X3JvbGUoZml4dHVyZS0+ZG9jdW1lbnRGcmFtZSwg
MCwgQVRLX1JPTEVfRk9STSk7Cit9CiBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3Jv
bGVfY2hlY2tfYm94KEF0a1JvbGVzRml4dHVyZSAqZml4dHVyZSwgZ2NvbnN0cG9pbnRlciBkYXRh
KQogewogICAgIC8vIFRoaXMgaXMgYW4gZXh0cmFuZW91cyBvYmplY3Qgb2YgQVRLX1JPTEVfUEFO
RUwgd2hpY2ggd2Ugc2hvdWxkIGdldCByaWQgb2YuCkBAIC0zMjIsNiArMzI3LDExIEBAIGludCBt
YWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0
dXJlX3RlYXJkb3duKTsKIAogICAgIC8qIEZvcm0gcm9sZXMgKi8KKyAgICBnX3Rlc3RfYWRkKCIv
d2Via2l0L2F0ay90ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfZm9ybSIsCisgICAgICAgICAgICAg
ICBBdGtSb2xlc0ZpeHR1cmUsIEhUTUxfRk9STSwKKyAgICAgICAgICAgICAgIGF0a19yb2xlc19m
aXh0dXJlX3NldHVwLAorICAgICAgICAgICAgICAgdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2Zv
cm0sCisgICAgICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV90ZWFyZG93bik7CiAgICAgZ190
ZXN0X2FkZCgiL3dlYmtpdC9hdGsvdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2NoZWNrX2JveCIs
CiAgICAgICAgICAgICAgICBBdGtSb2xlc0ZpeHR1cmUsIEhUTUxfQ0hFQ0tfQk9YLAogICAgICAg
ICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfc2V0dXAsCi0tIAoxLjcuMA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49622</attachid>
            <date>2010-02-26 13:02:45 -0800</date>
            <delta_ts>2010-04-11 19:44:59 -0700</delta_ts>
            <desc>testatkroles: implement ATK_ROLE_SEPARATOR</desc>
            <filename>testatkroles-implement-ATKROLESEPARATOR.patch</filename>
            <type>text/plain</type>
            <size>1831</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSBlZGQwNmIxZmMyY2UyNWYyNzc4OGYxNjlhOTU0Mzg2ZGQzNWUyMTE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IEZyaSwgMjYgRmViIDIwMTAgMTU6MDI6MzIgLTA1MDAKU3ViamVjdDog
W1BBVENIXSB0ZXN0YXRrcm9sZXM6IGltcGxlbWVudCBBVEtfUk9MRV9TRVBBUkFUT1IKClRoaXMg
Y29ycmVzcG9uZHMgdG8gam9hbm1hcmllJ3MgZm91cnRoIHBhdGNoLgoKQnVnICMzNDQ0OQotLS0K
IC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICAgIHwgICAg
NyArKysrKystCiAuLi4vYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5j
cHAgICB8ICAgIDMgKysrCiAyIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMSBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKaW5kZXggN2I3MzAxMi4uNjY2YTdlNSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjcyNiw3
ICsyNzI2LDEyIEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkKIAogICAgIGlmIChub2RlICYmIChub2RlLT5o
YXNUYWdOYW1lKHJwVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHJ0VGFnKSkpCiAgICAgICAgIHJl
dHVybiBBbm5vdGF0aW9uUm9sZTsKLSAgICAKKworI2lmIFBMQVRGT1JNKEdUSykKKyAgICBpZiAo
bV9yZW5kZXJlci0+aXNIUigpKQorICAgICAgICByZXR1cm4gU3BsaXR0ZXJSb2xlOworI2VuZGlm
CisKICAgICBpZiAobV9yZW5kZXJlci0+aXNCbG9ja0Zsb3coKSB8fCAobm9kZSAmJiBub2RlLT5o
YXNUYWdOYW1lKGxhYmVsVGFnKSkpCiAgICAgICAgIHJldHVybiBHcm91cFJvbGU7CiAgICAgCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RB
dGsuY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRr
LmNwcAppbmRleCBmNDg3NzBmLi42ZjIzMWMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAKQEAgLTQxLDYgKzQxLDkgQEAg
QWNjZXNzaWJpbGl0eU9iamVjdFBsYXRmb3JtSW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUkKICAgICBpZiAoaXNNZW51TGlzdFBvcHVwKCkgfHwgaXNN
ZW51TGlzdE9wdGlvbigpKQogICAgICAgICByZXR1cm4gSWdub3JlT2JqZWN0OwogCisgICAgaWYg
KHJvbGVWYWx1ZSgpID09IFNwbGl0dGVyUm9sZSkKKyAgICAgICAgcmV0dXJuIEluY2x1ZGVPYmpl
Y3Q7CisKICAgICAvLyBXaGVuIGEgbGlzdCBpdGVtIGlzIG1hZGUgdXAgZW50aXJlbHkgb2YgY2hp
bGRyZW4gKGUuZy4gcGFyYWdyYXBocykKICAgICAvLyB0aGUgbGlzdCBpdGVtIGdldHMgaWdub3Jl
ZC4gV2UgbmVlZCBpdC4KICAgICBpZiAoaXNHcm91cCgpICYmIHBhcmVudC0+aXNMaXN0KCkpCi0t
IAoxLjcuMA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49623</attachid>
            <date>2010-02-26 13:02:49 -0800</date>
            <delta_ts>2010-04-11 19:46:11 -0700</delta_ts>
            <desc>testatkroles: test ATK_ROLE_SEPARATOR</desc>
            <filename>testatkroles-test-ATKROLESEPARATOR.patch</filename>
            <type>text/plain</type>
            <size>2111</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSBmYmJmYzVhZDA0NTg4ODY0YjE0MzEzZjY5ZWM0YzUzMjZmYjQ1NTY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IEZyaSwgMjYgRmViIDIwMTAgMTU6MDM6NTAgLTA1MDAKU3ViamVjdDog
W1BBVENIXSB0ZXN0YXRrcm9sZXM6IHRlc3QgQVRLX1JPTEVfU0VQQVJBVE9SCgpUaGlzIGNvcnJl
c3BvbmRzIHRvIGpvYW5tYXJpZSdzIGZvdXJ0aCBwYXRjaC4KCkJ1ZyAjMzQ0NDkKLS0tCiBXZWJL
aXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jIHwgICAxMiArKysrKysrKysrKysKIDEgZmlsZXMg
Y2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9X
ZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRr
cm9sZXMuYwppbmRleCBlMDg1NzM4Li5kYTczMmZmIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3Rl
c3RzL3Rlc3RhdGtyb2xlcy5jCisrKyBiL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMK
QEAgLTM3LDYgKzM3LDcgQEAKICNkZWZpbmUgSFRNTF9QQVJBR1JBUEggIjxodG1sPjxib2R5Pjxw
PlRoaXMgaXMgYSB0ZXN0LjwvcD48L2JvZHk+PC9odG1sPiIKICNkZWZpbmUgSFRNTF9TRUNUSU9O
ICI8aHRtbD48Ym9keT48ZGl2PlRoaXMgaXMgYSB0ZXN0LjwvZGl2PjwvYm9keT48L2h0bWw+Igog
I2RlZmluZSBIVE1MX1RBQkxFICI8aHRtbD48Ym9keT48dGFibGUgYm9yZGVyPScxJz48dHI+PHRk
PlRoaXMgaXM8L3RkPjx0ZD5hIHRlc3QuPC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4i
CisjZGVmaW5lIEhUTUxfU0VQQVJBVE9SICI8aHRtbD48Ym9keT48aHIvPjwvYm9keT48L2h0bWw+
IgogLyogRm9ybSByb2xlcyAqLwogI2RlZmluZSBIVE1MX0ZPUk0gIjxodG1sPjxib2R5Pjxmb3Jt
PlRoaXMgaXMgYSB0ZXN0LjwvZm9ybT48L2JvZHk+PC9odG1sPiIKICNkZWZpbmUgSFRNTF9DSEVD
S19CT1ggIjxodG1sPjxib2R5PjxpbnB1dCB0eXBlPSdjaGVja2JveCcgLz5UaGlzIGlzIGEgdGVz
dC48L2JvZHk+PC9odG1sPiIKQEAgLTE4MCw2ICsxODEsMTEgQEAgc3RhdGljIHZvaWQgdGVzdF93
ZWJraXRfYXRrX2dldF9yb2xlX3RhYmxlKEF0a1JvbGVzRml4dHVyZSAqZml4dHVyZSwgZ2NvbnN0
cG9pbnQKICAgICBfZ2V0X2NoaWxkX2FuZF90ZXN0X3JvbGUoZml4dHVyZS0+ZG9jdW1lbnRGcmFt
ZSwgMCwgQVRLX1JPTEVfVEFCTEUpOwogfQogCitzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtf
Z2V0X3JvbGVfc2VwYXJhdG9yKEF0a1JvbGVzRml4dHVyZSAqZml4dHVyZSwgZ2NvbnN0cG9pbnRl
ciBkYXRhKQoreworICAgIF9nZXRfY2hpbGRfYW5kX3Rlc3Rfcm9sZShmaXh0dXJlLT5kb2N1bWVu
dEZyYW1lLCAwLCBBVEtfUk9MRV9TRVBBUkFUT1IpOworfQorCiAvKiBGb3JtIHJvbGVzICovCiBz
dGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfZm9ybShBdGtSb2xlc0ZpeHR1cmUg
KmZpeHR1cmUsIGdjb25zdHBvaW50ZXIgZGF0YSkKIHsKQEAgLTMyNiw2ICszMzIsMTIgQEAgaW50
IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICAgICAgICAgdGVzdF93ZWJraXRf
YXRrX2dldF9yb2xlX3RhYmxlLAogICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVh
cmRvd24pOwogCisgICAgZ190ZXN0X2FkZCgiL3dlYmtpdC9hdGsvdGVzdF93ZWJraXRfYXRrX2dl
dF9yb2xlX3NlcGFyYXRvciIsCisgICAgICAgICAgICAgICBBdGtSb2xlc0ZpeHR1cmUsIEhUTUxf
U0VQQVJBVE9SLAorICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfc2V0dXAsCisgICAg
ICAgICAgICAgICB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfc2VwYXJhdG9yLAorICAgICAgICAg
ICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVhcmRvd24pOworCiAgICAgLyogRm9ybSByb2xlcyAq
LwogICAgIGdfdGVzdF9hZGQoIi93ZWJraXQvYXRrL3Rlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9m
b3JtIiwKICAgICAgICAgICAgICAgIEF0a1JvbGVzRml4dHVyZSwgSFRNTF9GT1JNLAotLSAKMS43
LjA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49624</attachid>
            <date>2010-02-26 13:02:54 -0800</date>
            <delta_ts>2010-04-11 19:46:24 -0700</delta_ts>
            <desc>testatkroles: implement ATK_ROLE_COMBO_BOX</desc>
            <filename>testatkroles-implement-ATKROLECOMBOBOX.patch</filename>
            <type>text/plain</type>
            <size>1959</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSBjN2M3ZmE5M2JlNzA5NGVjNmE2ZGZhM2IwY2E5ODFiN2E0NTVhZmRiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IEZyaSwgMjYgRmViIDIwMTAgMTU6MTI6NDAgLTA1MDAKU3ViamVjdDog
W1BBVENIXSB0ZXN0YXRrcm9sZXM6IGltcGxlbWVudCBBVEtfUk9MRV9DT01CT19CT1gKCkNvcnJl
c3BvbmRzIHRvIGpvYW5tYXJpZSdzIGZpZnRoIHBhdGNoLgoKQnVnICMzNDQ0OQotLS0KIC4uLi9h
Y2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcCAgIHwgICAgMyAtLS0K
IC4uLi9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwICAgICAgICAgIHwgICAg
MyArKysKIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVj
dEF0ay5jcHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RB
dGsuY3BwCmluZGV4IDZmMjMxYzEuLmZjYjMzMTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAKKysrIGIvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcApAQCAtMzgsOSArMzgsNiBA
QCBBY2Nlc3NpYmlsaXR5T2JqZWN0UGxhdGZvcm1JbmNsdXNpb24gQWNjZXNzaWJpbGl0eU9iamVj
dDo6YWNjZXNzaWJpbGl0eVBsYXRmb3JtSQogICAgIGlmICghcGFyZW50KQogICAgICAgICByZXR1
cm4gRGVmYXVsdEJlaGF2aW9yOwogCi0gICAgaWYgKGlzTWVudUxpc3RQb3B1cCgpIHx8IGlzTWVu
dUxpc3RPcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIElnbm9yZU9iamVjdDsKLQogICAgIGlmIChy
b2xlVmFsdWUoKSA9PSBTcGxpdHRlclJvbGUpCiAgICAgICAgIHJldHVybiBJbmNsdWRlT2JqZWN0
OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQXRrLmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCmluZGV4IDE4NWY0NGIuLjYxMTM1ZTMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJB
dGsuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJBdGsuY3BwCkBAIC0zNjAsOCArMzYwLDEwIEBAIHN0YXRpYyBBdGtSb2xlIGF0a1Jv
bGUoQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX1RSRUU7
CiAgICAgY2FzZSBNZW51QmFyUm9sZToKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX01FTlVfQkFS
OworICAgIGNhc2UgTWVudUxpc3RQb3B1cFJvbGU6CiAgICAgY2FzZSBNZW51Um9sZToKICAgICAg
ICAgcmV0dXJuIEFUS19ST0xFX01FTlU7CisgICAgY2FzZSBNZW51TGlzdE9wdGlvblJvbGU6CiAg
ICAgY2FzZSBNZW51SXRlbVJvbGU6CiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9NRU5VX0lURU07
CiAgICAgY2FzZSBDb2x1bW5Sb2xlOgpAQCAtMzc5LDYgKzM4MSw3IEBAIHN0YXRpYyBBdGtSb2xl
IGF0a1JvbGUoQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKICAgICAgICAgcmV0dXJuIEFUS19ST0xF
X1BST0dSRVNTX0JBUjsKICAgICBjYXNlIFdpbmRvd1JvbGU6CiAgICAgICAgIHJldHVybiBBVEtf
Uk9MRV9XSU5ET1c7CisgICAgY2FzZSBQb3BVcEJ1dHRvblJvbGU6CiAgICAgY2FzZSBDb21ib0Jv
eFJvbGU6CiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9DT01CT19CT1g7CiAgICAgY2FzZSBTcGxp
dEdyb3VwUm9sZToKLS0gCjEuNy4w
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49625</attachid>
            <date>2010-02-26 13:02:59 -0800</date>
            <delta_ts>2010-04-11 19:46:35 -0700</delta_ts>
            <desc>testatkroles: test ATK_ROLE_COMBO_BOX</desc>
            <filename>testatkroles-test-ATKROLECOMBOBOX.patch</filename>
            <type>text/plain</type>
            <size>3032</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSBiZjUyNzBmNmM4MmM0ZjZhNGRmNWJmMmNkMGY4YzBhMzhjY2I1YTJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IEZyaSwgMjYgRmViIDIwMTAgMTU6MTM6MjMgLTA1MDAKU3ViamVjdDog
W1BBVENIXSB0ZXN0YXRrcm9sZXM6IHRlc3QgQVRLX1JPTEVfQ09NQk9fQk9YCgpDb3JyZXNwb25k
cyB0byBqb2FubWFyaWUncyBmaWZ0aCBwYXRjaC4KCkJ1ZyAjMzQ0NDkKLS0tCiBXZWJLaXQvZ3Rr
L3Rlc3RzL3Rlc3RhdGtyb2xlcy5jIHwgICAzMyArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysKIDEgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jIGIvV2ViS2l0L2d0
ay90ZXN0cy90ZXN0YXRrcm9sZXMuYwppbmRleCBkYTczMmZmLi5kMGE3OTJjIDEwMDY0NAotLS0g
YS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jCisrKyBiL1dlYktpdC9ndGsvdGVzdHMv
dGVzdGF0a3JvbGVzLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNkZWZpbmUgSFRNTF9TRUNUSU9OICI8
aHRtbD48Ym9keT48ZGl2PlRoaXMgaXMgYSB0ZXN0LjwvZGl2PjwvYm9keT48L2h0bWw+IgogI2Rl
ZmluZSBIVE1MX1RBQkxFICI8aHRtbD48Ym9keT48dGFibGUgYm9yZGVyPScxJz48dHI+PHRkPlRo
aXMgaXM8L3RkPjx0ZD5hIHRlc3QuPC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4iCiAj
ZGVmaW5lIEhUTUxfU0VQQVJBVE9SICI8aHRtbD48Ym9keT48aHIvPjwvYm9keT48L2h0bWw+Igor
I2RlZmluZSBIVE1MX0NPTUJPQk9YICI8aHRtbD48Ym9keT48c2VsZWN0IHNpemU9JzEnPjxvcHRp
b24+b25lPC9vcHRpb24+PG9wdGlvbj50d288L29wdGlvbj48b3B0aW9uPnRocmVlPC9vcHRpb24+
PC9zZWxlY3Q+PC9ib2R5PjwvaHRtbD4iCiAvKiBGb3JtIHJvbGVzICovCiAjZGVmaW5lIEhUTUxf
Rk9STSAiPGh0bWw+PGJvZHk+PGZvcm0+VGhpcyBpcyBhIHRlc3QuPC9mb3JtPjwvYm9keT48L2h0
bWw+IgogI2RlZmluZSBIVE1MX0NIRUNLX0JPWCAiPGh0bWw+PGJvZHk+PGlucHV0IHR5cGU9J2No
ZWNrYm94JyAvPlRoaXMgaXMgYSB0ZXN0LjwvYm9keT48L2h0bWw+IgpAQCAtMTg2LDYgKzE4Nywz
MiBAQCBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfc2VwYXJhdG9yKEF0a1Jv
bGVzRml4dHVyZSAqZml4dHVyZSwgZ2NvbnN0cAogICAgIF9nZXRfY2hpbGRfYW5kX3Rlc3Rfcm9s
ZShmaXh0dXJlLT5kb2N1bWVudEZyYW1lLCAwLCBBVEtfUk9MRV9TRVBBUkFUT1IpOwogfQogCitz
dGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfY29tYm9ib3goQXRrUm9sZXNGaXh0
dXJlICpmaXh0dXJlLCBnY29uc3Rwb2ludGVyIGRhdGEpCit7CisgICAgQXRrT2JqZWN0KiBjb21i
b2JveE1lbnU7CisKKyAgICAvLyBUaGlzIGlzIGFuIGV4dHJhbmVvdXMgb2JqZWN0IG9mIEFUS19S
T0xFX1BBTkVMIHdoaWNoIHdlIHNob3VsZCBnZXQgcmlkIG9mLgorICAgIGZpeHR1cmUtPm9iaiA9
IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQoZml4dHVyZS0+ZG9jdW1lbnRGcmFtZSwg
MCk7CisgICAgZ19hc3NlcnQoZml4dHVyZS0+b2JqKTsKKworICAgIGZpeHR1cmUtPm9iaiA9IGF0
a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQoZml4dHVyZS0+b2JqLCAwKTsKKyAgICBnX2Fz
c2VydChmaXh0dXJlLT5vYmopOworICAgIGZpeHR1cmUtPnJvbGUgPSBhdGtfb2JqZWN0X2dldF9y
b2xlKGZpeHR1cmUtPm9iaik7CisgICAgZ19hc3NlcnQoZml4dHVyZS0+cm9sZSA9PSBBVEtfUk9M
RV9DT01CT19CT1gpOworCisgICAgY29tYm9ib3hNZW51ID0gYXRrX29iamVjdF9yZWZfYWNjZXNz
aWJsZV9jaGlsZChmaXh0dXJlLT5vYmosIDApOworICAgIGdfYXNzZXJ0KGNvbWJvYm94TWVudSk7
CisgICAgZml4dHVyZS0+cm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUoY29tYm9ib3hNZW51KTsK
KyAgICBnX2Fzc2VydChmaXh0dXJlLT5yb2xlID09IEFUS19ST0xFX01FTlUpOworCisgICAgX2dl
dF9jaGlsZF9hbmRfdGVzdF9yb2xlKGNvbWJvYm94TWVudSwgMCwgQVRLX1JPTEVfTUVOVV9JVEVN
KTsKKyAgICBfZ2V0X2NoaWxkX2FuZF90ZXN0X3JvbGUoY29tYm9ib3hNZW51LCAxLCBBVEtfUk9M
RV9NRU5VX0lURU0pOworICAgIF9nZXRfY2hpbGRfYW5kX3Rlc3Rfcm9sZShjb21ib2JveE1lbnUs
IDIsIEFUS19ST0xFX01FTlVfSVRFTSk7CisKKyAgICBnX29iamVjdF91bnJlZihmaXh0dXJlLT5v
YmopOworICAgIGdfb2JqZWN0X3VucmVmKGNvbWJvYm94TWVudSk7Cit9CisKIC8qIEZvcm0gcm9s
ZXMgKi8KIHN0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9mb3JtKEF0a1JvbGVz
Rml4dHVyZSAqZml4dHVyZSwgZ2NvbnN0cG9pbnRlciBkYXRhKQogewpAQCAtMzM4LDYgKzM2NSwx
MiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICB0ZXN0
X3dlYmtpdF9hdGtfZ2V0X3JvbGVfc2VwYXJhdG9yLAogICAgICAgICAgICAgICAgYXRrX3JvbGVz
X2ZpeHR1cmVfdGVhcmRvd24pOwogCisgICAgZ190ZXN0X2FkZCgiL3dlYmtpdC9hdGsvdGVzdF93
ZWJraXRfYXRrX2dldF9yb2xlX2NvbWJvYm94IiwKKyAgICAgICAgICAgICAgIEF0a1JvbGVzRml4
dHVyZSwgSFRNTF9DT01CT0JPWCwKKyAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3Nl
dHVwLAorICAgICAgICAgICAgICAgdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2NvbWJvYm94LAor
ICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVhcmRvd24pOworCiAgICAgLyogRm9y
bSByb2xlcyAqLwogICAgIGdfdGVzdF9hZGQoIi93ZWJraXQvYXRrL3Rlc3Rfd2Via2l0X2F0a19n
ZXRfcm9sZV9mb3JtIiwKICAgICAgICAgICAgICAgIEF0a1JvbGVzRml4dHVyZSwgSFRNTF9GT1JN
LAotLSAKMS43LjA=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53128</attachid>
            <date>2010-04-11 19:44:13 -0700</date>
            <delta_ts>2010-04-19 10:38:20 -0700</delta_ts>
            <desc>2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;</desc>
            <filename>2010-04-11-Diego-Escalante-Urrelo-descalanteigalia.patch</filename>
            <type>text/plain</type>
            <size>13143</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSA1NzMxM2YzNDNiYWE5YzhmNDM1NGY0NGRlZDc4NTEyZmY4YWZmMzcyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IFRodSwgMjUgRmViIDIwMTAgMTc6NDc6NTYgLTA1MDAKU3ViamVjdDog
W1BBVENIXSAyMDEwLTA0LTExICBEaWVnbyBFc2NhbGFudGUgVXJyZWxvICA8ZGVzY2FsYW50ZUBp
Z2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAg
W0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1w
bGVtZW50ZWQgYnkKICAgICAgICBXZWJLaXRHdGsKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKCiAgICAgICAgQWRkIGFuZCBlbmFibGUgdGhlIGJ1
aWxkIG9mIHRlc3RhdGtyb2xlcyB0byB0ZXN0IEFUSyBub24gZm9ybSByb2xlcy4KICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOgogICAgICAgICogdGVzdHMvdGVzdGF0a3JvbGVzLmM6IEFkZGVkLgog
ICAgICAgIChmaW5pc2hfbG9hZGluZyk6CiAgICAgICAgKGF0a19yb2xlc19maXh0dXJlX3NldHVw
KToKICAgICAgICAoYXRrX3JvbGVzX2ZpeHR1cmVfdGVhcmRvd24pOgogICAgICAgIChnZXRfY2hp
bGRfYW5kX3Rlc3Rfcm9sZSk6CiAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9kb2N1
bWVudF9mcmFtZSk6CiAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9oZWFkaW5nKToK
ICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2ltYWdlKToKICAgICAgICAodGVzdF93
ZWJraXRfYXRrX2dldF9yb2xlX2xpbmspOgogICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3Jv
bGVfbGlzdF9hbmRfaXRlbSk6CiAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9wYXJh
Z3JhcGgpOgogICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfc2VjdGlvbik6CiAgICAg
ICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV90YWJsZSk6CiAgICAgICAgKG1haW4pOgotLS0K
IENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrCiBHTlVtYWtlZmlsZS5h
bSAgICAgICAgICAgICAgICAgIHwgICAgNiArCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAg
ICAgIHwgICAyNSArKysrCiBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jIHwgIDIzNCAr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwg
Mjc3IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2Vi
S2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9sZXMuYwoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0No
YW5nZUxvZwppbmRleCA4OTMzOTdhLi44MDU1MmZiIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysr
IGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDQtMTEgIERpZWdvIEVzY2FsYW50
ZSBVcnJlbG8gIDxkZXNjYWxhbnRlQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0
cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1wbGVtZW50ZWQgYnkKKyAgICAgICAgV2ViS2l0R3Rr
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQor
CisgICAgICAgIEFkZCBhbmQgZW5hYmxlIHRoZSBidWlsZCBvZiB0ZXN0YXRrcm9sZXMgdG8gdGVz
dCBBVEsgbm9uIGZvcm0gcm9sZXMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKwogMjAx
MC0wNC0wOSAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBjcmFzaCBmaXguCmRpZmYgLS1naXQgYS9HTlVtYWtlZmlsZS5hbSBi
L0dOVW1ha2VmaWxlLmFtCmluZGV4IDNiZGZlNTMuLmM2OTgxMzAgMTAwNjQ0Ci0tLSBhL0dOVW1h
a2VmaWxlLmFtCisrKyBiL0dOVW1ha2VmaWxlLmFtCkBAIC01NzUsNiArNTc1LDcgQEAgVEVTVF9Q
Uk9HUyArPSBQcm9ncmFtcy91bml0dGVzdHMvdGVzdGh0dHBiYWNrZW5kIFwKIAlQcm9ncmFtcy91
bml0dGVzdHMvdGVzdHdpbmRvdyBcCiAJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3Rkb3dubG9hZCBc
CiAJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rlc3RhdGsgXAorCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0
YXRrcm9sZXMgXAogCVByb2dyYW1zL3VuaXR0ZXN0cy90ZXN0aGl0dGVzdHJlc3VsdCBcCiAJUHJv
Z3JhbXMvdW5pdHRlc3RzL3Rlc3R3ZWJzZXR0aW5ncyBcCiAJUHJvZ3JhbXMvdW5pdHRlc3RzL3Rl
c3R3ZWJyZXNvdXJjZSBcCkBAIC02NDMsNiArNjQ0LDExIEBAIFByb2dyYW1zX3VuaXR0ZXN0c190
ZXN0YXRrX0NGTEFHUyA9ICQod2Via2l0X3Rlc3RzX2NmbGFncykKIFByb2dyYW1zX3VuaXR0ZXN0
c190ZXN0YXRrX0xEQUREID0gJCh3ZWJraXRfdGVzdHNfbGRhZGQpCiBQcm9ncmFtc191bml0dGVz
dHNfdGVzdGF0a19MREZMQUdTID0gJCh3ZWJraXRfdGVzdHNfbGRmbGFncykKIAorUHJvZ3JhbXNf
dW5pdHRlc3RzX3Rlc3RhdGtyb2xlc19TT1VSQ0VTID0gV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRr
cm9sZXMuYworUHJvZ3JhbXNfdW5pdHRlc3RzX3Rlc3RhdGtyb2xlc19DRkxBR1MgPSAkKHdlYmtp
dF90ZXN0c19jZmxhZ3MpCitQcm9ncmFtc191bml0dGVzdHNfdGVzdGF0a3JvbGVzX0xEQUREID0g
JCh3ZWJraXRfdGVzdHNfbGRhZGQpCitQcm9ncmFtc191bml0dGVzdHNfdGVzdGF0a3JvbGVzX0xE
RkxBR1MgPSAkKHdlYmtpdF90ZXN0c19sZGZsYWdzKQorCiBQcm9ncmFtc191bml0dGVzdHNfdGVz
dHdlYnNldHRpbmdzX1NPVVJDRVMgPSBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJzZXR0aW5ncy5j
CiBQcm9ncmFtc191bml0dGVzdHNfdGVzdHdlYnNldHRpbmdzX0NGTEFHUyA9ICQod2Via2l0X3Rl
c3RzX2NmbGFncykKIFByb2dyYW1zX3VuaXR0ZXN0c190ZXN0d2Vic2V0dGluZ3NfTERBREQgPSAk
KHdlYmtpdF90ZXN0c19sZGFkZCkKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggMzNhZTVmYS4uNWY2ZjMyNiAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyOCBAQAorMjAxMC0wNC0xMSAgRGllZ28gRXNjYWxhbnRlIFVycmVsbyAgPGRlc2NhbGFudGVA
aWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBbR3RrXSBFdmFsdWF0ZSBhbmQgY3JlYXRlIHRlc3RzIGZvciBhbGwgdGhlIEF0a1JvbGUn
cyBpbXBsZW1lbnRlZCBieQorICAgICAgICBXZWJLaXRHdGsKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDQ5CisKKyAgICAgICAgQWRkIHRlc3RhdGty
b2xlcyB0byB0ZXN0IEFUSyBub24gZm9ybSByb2xlcy4KKworICAgICAgICAqIHRlc3RzL3Rlc3Rh
dGtyb2xlcy5jOiBBZGRlZC4KKyAgICAgICAgKGZpbmlzaF9sb2FkaW5nKToKKyAgICAgICAgKGF0
a19yb2xlc19maXh0dXJlX3NldHVwKToKKyAgICAgICAgKGF0a19yb2xlc19maXh0dXJlX3RlYXJk
b3duKToKKyAgICAgICAgKGdldF9jaGlsZF9hbmRfdGVzdF9yb2xlKToKKyAgICAgICAgKHRlc3Rf
d2Via2l0X2F0a19nZXRfcm9sZV9kb2N1bWVudF9mcmFtZSk6CisgICAgICAgICh0ZXN0X3dlYmtp
dF9hdGtfZ2V0X3JvbGVfaGVhZGluZyk6CisgICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3Jv
bGVfaW1hZ2UpOgorICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2xpbmspOgorICAg
ICAgICAodGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2xpc3RfYW5kX2l0ZW0pOgorICAgICAgICAo
dGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX3BhcmFncmFwaCk6CisgICAgICAgICh0ZXN0X3dlYmtp
dF9hdGtfZ2V0X3JvbGVfc2VjdGlvbik6CisgICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3Jv
bGVfdGFibGUpOgorICAgICAgICAobWFpbik6CisKIDIwMTAtMDQtMDcgIEFuZHJleSBLb3N5YWtv
diAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlr
aGF0c2t5LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9sZXMuYyBiL1dl
YktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNzE1YzI4MAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9ndGsvdGVzdHMvdGVz
dGF0a3JvbGVzLmMKQEAgLTAsMCArMSwyMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxMCBK
b2FubWFyaWUgRGlnZ3MKKyAqIENvcHlyaWdodCDCqSAyMDEwIElnYWxpYSBTLkwuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRl
IDxnbGliLmg+CisjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KKyNpbmNsdWRlIDxndGsvZ3RrLmg+
CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdC5oPgorCisjaWYgR0xJQl9DSEVDS19WRVJTSU9OKDIs
IDE2LCAwKSAmJiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNCwgMCkKKworI2RlZmluZSBIVE1MX0RP
Q1VNRU5UX0ZSQU1FICI8aHRtbD48Ym9keT5UaGlzIGlzIGEgdGVzdC48L2JvZHk+PC9odG1sPiIK
KyNkZWZpbmUgSFRNTF9IRUFESU5HICI8aHRtbD48Ym9keT48aDE+MTwvaDE+PGgyPjI8L2gyPjxo
Mz4zPC9oMz48aDQ+NDwvaDQ+PGg1PjU8L2g1PjxoNj42PC9oNj48L2JvZHk+PC9odG1sPiIKKyNk
ZWZpbmUgSFRNTF9JTUFHRSAiPGh0bWw+PGJvZHk+PGltZyBzcmM9J2Zvb2Jhci5wbmcnIGFsdD0n
VGhpcyBpcyBhIHRlc3QuJy8+PC9ib2R5PjwvaHRtbD4iCisjZGVmaW5lIEhUTUxfTElOS19URVhU
ICI8aHRtbD48Ym9keT48YSBocmVmPSdmb29iYXIuaHRtbCc+VGhpcyBpcyBhIHRlc3QuPC9hPjwv
Ym9keT48L2h0bWw+IgorI2RlZmluZSBIVE1MX0xJU1QgIjxodG1sPjxib2R5Pjx1bD48bGk+MTwv
bGk+PGxpPjI8L2xpPjwvdWw+PG9sPjxsaT4xPC9saT48bGk+MjwvbGk+PC9vbD48L2JvZHk+PC9o
dG1sPiIKKyNkZWZpbmUgSFRNTF9QQVJBR1JBUEggIjxodG1sPjxib2R5PjxwPlRoaXMgaXMgYSB0
ZXN0LjwvcD48L2JvZHk+PC9odG1sPiIKKyNkZWZpbmUgSFRNTF9TRUNUSU9OICI8aHRtbD48Ym9k
eT48ZGl2PlRoaXMgaXMgYSB0ZXN0LjwvZGl2PjwvYm9keT48L2h0bWw+IgorI2RlZmluZSBIVE1M
X1RBQkxFICI8aHRtbD48Ym9keT48dGFibGUgYm9yZGVyPScxJz48dHI+PHRkPlRoaXMgaXM8L3Rk
Pjx0ZD5hIHRlc3QuPC90ZD48L3RyPjwvdGFibGU+PC9ib2R5PjwvaHRtbD4iCisKK3R5cGVkZWYg
c3RydWN0IHsKKyAgICBBdGtPYmplY3QqIGRvY3VtZW50RnJhbWU7CisgICAgQXRrT2JqZWN0KiBv
Ymo7CisgICAgQXRrUm9sZSByb2xlOworICAgIEd0a1dpZGdldCogd2ViVmlldzsKKyAgICBHdGtB
bGxvY2F0aW9uIGFsbG9jOworICAgIEdNYWluTG9vcCogbG9vcDsKK30gQXRrUm9sZXNGaXh0dXJl
OworCitzdGF0aWMgZ2Jvb2xlYW4gZmluaXNoX2xvYWRpbmcoQXRrUm9sZXNGaXh0dXJlKiBmaXh0
dXJlKQoreworICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKGZpeHR1cmUtPmxvb3ApKQor
ICAgICAgICBnX21haW5fbG9vcF9xdWl0KGZpeHR1cmUtPmxvb3ApOworCisgICAgZml4dHVyZS0+
ZG9jdW1lbnRGcmFtZSA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoZml4dHVyZS0+d2ViVmll
dyk7CisgICAgZ19hc3NlcnQoZml4dHVyZS0+ZG9jdW1lbnRGcmFtZSk7CisKKyAgICByZXR1cm4g
RkFMU0U7Cit9CisKK3N0YXRpYyB2b2lkIGF0a19yb2xlc19maXh0dXJlX3NldHVwKEF0a1JvbGVz
Rml4dHVyZSogZml4dHVyZSwgZ2NvbnN0cG9pbnRlciBkYXRhKQoreworICAgIGZpeHR1cmUtPmxv
b3AgPSBnX21haW5fbG9vcF9uZXcoTlVMTCwgVFJVRSk7CisgICAgZml4dHVyZS0+YWxsb2MgPSAo
R3RrQWxsb2NhdGlvbikgeyAwLCAwLCA4MDAsIDYwMCB9OworICAgIGZpeHR1cmUtPndlYlZpZXcg
PSB3ZWJraXRfd2ViX3ZpZXdfbmV3KCk7CisgICAgZ19vYmplY3RfcmVmX3NpbmsoZml4dHVyZS0+
d2ViVmlldyk7CisKKyAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoZml4dHVyZS0+d2ViVmll
dywgJmZpeHR1cmUtPmFsbG9jKTsKKworICAgIGlmIChkYXRhICE9IE5VTEwpCisgICAgICAgIHdl
YmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyhXRUJLSVRfV0VCX1ZJRVcgKGZpeHR1cmUtPndlYlZp
ZXcpLCAoY29uc3QgY2hhciopIGRhdGEsIE5VTEwsIE5VTEwsIE5VTEwpOworCisgICAgZ19pZGxl
X2FkZCgoR1NvdXJjZUZ1bmMpIGZpbmlzaF9sb2FkaW5nLCBmaXh0dXJlKTsKKyAgICBnX21haW5f
bG9vcF9ydW4oZml4dHVyZS0+bG9vcCk7Cit9CisKK3N0YXRpYyB2b2lkIGF0a19yb2xlc19maXh0
dXJlX3RlYXJkb3duKEF0a1JvbGVzRml4dHVyZSogZml4dHVyZSwgZ2NvbnN0cG9pbnRlciBkYXRh
KQoreworICAgIGdfb2JqZWN0X3VucmVmKGZpeHR1cmUtPndlYlZpZXcpOworICAgIGdfbWFpbl9s
b29wX3VucmVmKGZpeHR1cmUtPmxvb3ApOworfQorCitzdGF0aWMgdm9pZCBnZXRfY2hpbGRfYW5k
X3Rlc3Rfcm9sZShBdGtPYmplY3QqIG9iaiwgZ2ludCBwb3MsIEF0a1JvbGUgcm9sZSkKK3sKKyAg
ICBBdGtPYmplY3QqIGNoaWxkOworICAgIEF0a1JvbGUgY2hpbGRfcm9sZTsKKworICAgIGNoaWxk
ID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmosIHBvcyk7CisgICAgZ19hc3Nl
cnQoY2hpbGQpOworICAgIGNoaWxkX3JvbGUgPSBhdGtfb2JqZWN0X2dldF9yb2xlKGNoaWxkKTsK
KyAgICBnX2Fzc2VydChjaGlsZF9yb2xlID09IHJvbGUpOworCisgICAgZ19vYmplY3RfdW5yZWYo
Y2hpbGQpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfZG9jdW1l
bnRfZnJhbWUoQXRrUm9sZXNGaXh0dXJlKiBmaXh0dXJlLCBnY29uc3Rwb2ludGVyIGRhdGEpCit7
CisgICAgZml4dHVyZS0+cm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUoZml4dHVyZS0+ZG9jdW1l
bnRGcmFtZSk7CisgICAgZ19hc3NlcnQoZml4dHVyZS0+cm9sZSA9PSBBVEtfUk9MRV9ET0NVTUVO
VF9GUkFNRSk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9oZWFk
aW5nKEF0a1JvbGVzRml4dHVyZSogZml4dHVyZSwgZ2NvbnN0cG9pbnRlciBkYXRhKQoreworICAg
IGdldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGZpeHR1cmUtPmRvY3VtZW50RnJhbWUsIDAsIEFUS19S
T0xFX0hFQURJTkcpOworICAgIGdldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGZpeHR1cmUtPmRvY3Vt
ZW50RnJhbWUsIDEsIEFUS19ST0xFX0hFQURJTkcpOworICAgIGdldF9jaGlsZF9hbmRfdGVzdF9y
b2xlKGZpeHR1cmUtPmRvY3VtZW50RnJhbWUsIDIsIEFUS19ST0xFX0hFQURJTkcpOworICAgIGdl
dF9jaGlsZF9hbmRfdGVzdF9yb2xlKGZpeHR1cmUtPmRvY3VtZW50RnJhbWUsIDMsIEFUS19ST0xF
X0hFQURJTkcpOworICAgIGdldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGZpeHR1cmUtPmRvY3VtZW50
RnJhbWUsIDQsIEFUS19ST0xFX0hFQURJTkcpOworICAgIGdldF9jaGlsZF9hbmRfdGVzdF9yb2xl
KGZpeHR1cmUtPmRvY3VtZW50RnJhbWUsIDUsIEFUS19ST0xFX0hFQURJTkcpOworfQorCitzdGF0
aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfaW1hZ2UoQXRrUm9sZXNGaXh0dXJlKiBm
aXh0dXJlLCBnY29uc3Rwb2ludGVyIGRhdGEpCit7CisgICAgLy8gVGhpcyBpcyBhbiBleHRyYW5l
b3VzIG9iamVjdCBvZiBBVEtfUk9MRV9QQU5FTCB3aGljaCB3ZSBzaG91bGQgZ2V0IHJpZCBvZi4K
KyAgICBmaXh0dXJlLT5vYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGZpeHR1
cmUtPmRvY3VtZW50RnJhbWUsIDApOworICAgIGdfYXNzZXJ0KGZpeHR1cmUtPm9iaik7CisKKyAg
ICBnZXRfY2hpbGRfYW5kX3Rlc3Rfcm9sZShmaXh0dXJlLT5vYmosIDAsIEFUS19ST0xFX0lNQUdF
KTsKKworICAgIGdfb2JqZWN0X3VucmVmKGZpeHR1cmUtPm9iaik7Cit9CisKK3N0YXRpYyB2b2lk
IHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9saW5rKEF0a1JvbGVzRml4dHVyZSogZml4dHVyZSwg
Z2NvbnN0cG9pbnRlciBkYXRhKQoreworICAgIC8vIFRoaXMgaXMgYW4gZXh0cmFuZW91cyBvYmpl
Y3Qgb2YgQVRLX1JPTEVfUEFORUwgd2hpY2ggd2Ugc2hvdWxkIGdldCByaWQgb2YuCisgICAgZml4
dHVyZS0+b2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChmaXh0dXJlLT5kb2N1
bWVudEZyYW1lLCAwKTsKKyAgICBnX2Fzc2VydChmaXh0dXJlLT5vYmopOworCisgICAgZ2V0X2No
aWxkX2FuZF90ZXN0X3JvbGUoZml4dHVyZS0+b2JqLCAwLCBBVEtfUk9MRV9MSU5LKTsKKworICAg
IGdfb2JqZWN0X3VucmVmKGZpeHR1cmUtPm9iaik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfd2Vi
a2l0X2F0a19nZXRfcm9sZV9saXN0X2FuZF9pdGVtKEF0a1JvbGVzRml4dHVyZSogZml4dHVyZSwg
Z2NvbnN0cG9pbnRlciBkYXRhKQoreworICAgIEF0a09iamVjdCogbGlzdE9iajsKKworICAgIGxp
c3RPYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGZpeHR1cmUtPmRvY3VtZW50
RnJhbWUsIDApOworICAgIGdfYXNzZXJ0KGxpc3RPYmopOworICAgIGZpeHR1cmUtPnJvbGUgPSBh
dGtfb2JqZWN0X2dldF9yb2xlKGxpc3RPYmopOworICAgIGdfYXNzZXJ0KGZpeHR1cmUtPnJvbGUg
PT0gQVRLX1JPTEVfTElTVCk7CisKKyAgICBnZXRfY2hpbGRfYW5kX3Rlc3Rfcm9sZShsaXN0T2Jq
LCAwLCBBVEtfUk9MRV9MSVNUX0lURU0pOworICAgIGdldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGxp
c3RPYmosIDEsIEFUS19ST0xFX0xJU1RfSVRFTSk7CisgICAgZ19vYmplY3RfdW5yZWYobGlzdE9i
aik7CisKKyAgICBsaXN0T2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChmaXh0
dXJlLT5kb2N1bWVudEZyYW1lLCAxKTsKKyAgICBnX2Fzc2VydChsaXN0T2JqKTsKKyAgICBmaXh0
dXJlLT5yb2xlID0gYXRrX29iamVjdF9nZXRfcm9sZShsaXN0T2JqKTsKKyAgICBnX2Fzc2VydChm
aXh0dXJlLT5yb2xlID09IEFUS19ST0xFX0xJU1QpOworCisgICAgZ2V0X2NoaWxkX2FuZF90ZXN0
X3JvbGUobGlzdE9iaiwgMCwgQVRLX1JPTEVfTElTVF9JVEVNKTsKKyAgICBnZXRfY2hpbGRfYW5k
X3Rlc3Rfcm9sZShsaXN0T2JqLCAxLCBBVEtfUk9MRV9MSVNUX0lURU0pOworICAgIGdfb2JqZWN0
X3VucmVmKGxpc3RPYmopOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3Jv
bGVfcGFyYWdyYXBoKEF0a1JvbGVzRml4dHVyZSogZml4dHVyZSwgZ2NvbnN0cG9pbnRlciBkYXRh
KQoreworICAgIGdldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGZpeHR1cmUtPmRvY3VtZW50RnJhbWUs
IDAsIEFUS19ST0xFX1BBUkFHUkFQSCk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X2F0
a19nZXRfcm9sZV9zZWN0aW9uKEF0a1JvbGVzRml4dHVyZSogZml4dHVyZSwgZ2NvbnN0cG9pbnRl
ciBkYXRhKQoreworICAgIGdldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGZpeHR1cmUtPmRvY3VtZW50
RnJhbWUsIDAsIEFUS19ST0xFX1NFQ1RJT04pOworfQorCisvLyBEb2VzIG5vdCB5ZXQgdGVzdCB0
YWJsZSBjZWxscyBiZWNhdXNlIG9mIGJ1ZyAzMDg5NS4KK3N0YXRpYyB2b2lkIHRlc3Rfd2Via2l0
X2F0a19nZXRfcm9sZV90YWJsZShBdGtSb2xlc0ZpeHR1cmUqIGZpeHR1cmUsIGdjb25zdHBvaW50
ZXIgZGF0YSkKK3sKKyAgICBnZXRfY2hpbGRfYW5kX3Rlc3Rfcm9sZShmaXh0dXJlLT5kb2N1bWVu
dEZyYW1lLCAwLCBBVEtfUk9MRV9UQUJMRSk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFy
KiogYXJndikKK3sKKyAgICBnX3RocmVhZF9pbml0KE5VTEwpOworICAgIGd0a190ZXN0X2luaXQo
JmFyZ2MsICZhcmd2LCBOVUxMKTsKKworICAgIGdfdGVzdF9idWdfYmFzZSgiaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvIik7CisKKyAgICBnX3Rlc3RfYWRkKCIvd2Via2l0L2F0ay90ZXN0X3dlYmtp
dF9hdGtfZ2V0X3JvbGVfZG9jdW1lbnRfZnJhbWUiLAorICAgICAgICAgICAgICAgQXRrUm9sZXNG
aXh0dXJlLCBIVE1MX0RPQ1VNRU5UX0ZSQU1FLAorICAgICAgICAgICAgICAgYXRrX3JvbGVzX2Zp
eHR1cmVfc2V0dXAsCisgICAgICAgICAgICAgICB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfZG9j
dW1lbnRfZnJhbWUsCisgICAgICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV90ZWFyZG93bik7
CisKKyAgICBnX3Rlc3RfYWRkKCIvd2Via2l0L2F0ay90ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVf
aGVhZGluZyIsCisgICAgICAgICAgICAgICBBdGtSb2xlc0ZpeHR1cmUsIEhUTUxfSEVBRElORywK
KyAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3NldHVwLAorICAgICAgICAgICAgICAg
dGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2hlYWRpbmcsCisgICAgICAgICAgICAgICBhdGtfcm9s
ZXNfZml4dHVyZV90ZWFyZG93bik7CisKKyAgICBnX3Rlc3RfYWRkKCIvd2Via2l0L2F0ay90ZXN0
X3dlYmtpdF9hdGtfZ2V0X3JvbGVfaW1hZ2UiLAorICAgICAgICAgICAgICAgQXRrUm9sZXNGaXh0
dXJlLCBIVE1MX0lNQUdFLAorICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfc2V0dXAs
CisgICAgICAgICAgICAgICB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfaW1hZ2UsCisgICAgICAg
ICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV90ZWFyZG93bik7CisKKyAgICBnX3Rlc3RfYWRkKCIv
d2Via2l0L2F0ay90ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfbGluayIsCisgICAgICAgICAgICAg
ICBBdGtSb2xlc0ZpeHR1cmUsIEhUTUxfTElOS19URVhULAorICAgICAgICAgICAgICAgYXRrX3Jv
bGVzX2ZpeHR1cmVfc2V0dXAsCisgICAgICAgICAgICAgICB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3Jv
bGVfbGluaywKKyAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3RlYXJkb3duKTsKKwor
ICAgIGdfdGVzdF9hZGQoIi93ZWJraXQvYXRrL3Rlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9saXN0
X2FuZF9pdGVtIiwKKyAgICAgICAgICAgICAgIEF0a1JvbGVzRml4dHVyZSwgSFRNTF9MSVNULAor
ICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfc2V0dXAsCisgICAgICAgICAgICAgICB0
ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfbGlzdF9hbmRfaXRlbSwKKyAgICAgICAgICAgICAgIGF0
a19yb2xlc19maXh0dXJlX3RlYXJkb3duKTsKKworICAgIGdfdGVzdF9hZGQoIi93ZWJraXQvYXRr
L3Rlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9wYXJhZ3JhcGgiLAorICAgICAgICAgICAgICAgQXRr
Um9sZXNGaXh0dXJlLCBIVE1MX1BBUkFHUkFQSCwKKyAgICAgICAgICAgICAgIGF0a19yb2xlc19m
aXh0dXJlX3NldHVwLAorICAgICAgICAgICAgICAgdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX3Bh
cmFncmFwaCwKKyAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3RlYXJkb3duKTsKKwor
ICAgIGdfdGVzdF9hZGQoIi93ZWJraXQvYXRrL3Rlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9zZWN0
aW9uIiwKKyAgICAgICAgICAgICAgIEF0a1JvbGVzRml4dHVyZSwgSFRNTF9TRUNUSU9OLAorICAg
ICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfc2V0dXAsCisgICAgICAgICAgICAgICB0ZXN0
X3dlYmtpdF9hdGtfZ2V0X3JvbGVfc2VjdGlvbiwKKyAgICAgICAgICAgICAgIGF0a19yb2xlc19m
aXh0dXJlX3RlYXJkb3duKTsKKworICAgIGdfdGVzdF9hZGQoIi93ZWJraXQvYXRrL3Rlc3Rfd2Vi
a2l0X2F0a19nZXRfcm9sZV90YWJsZSIsCisgICAgICAgICAgICAgICBBdGtSb2xlc0ZpeHR1cmUs
IEhUTUxfVEFCTEUsCisgICAgICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV9zZXR1cCwKKyAg
ICAgICAgICAgICAgIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV90YWJsZSwKKyAgICAgICAgICAg
ICAgIGF0a19yb2xlc19maXh0dXJlX3RlYXJkb3duKTsKKworICAgIHJldHVybiBnX3Rlc3RfcnVu
ICgpOworfQorCisjZWxzZQoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAg
IGdfY3JpdGljYWwoIllvdSB3aWxsIG5lZWQgYXQgbGVhc3QgZ2xpYi0yLjE2LjAgYW5kIGd0ay0y
LjE0LjAgdG8gcnVuIHRoZSB1bml0IHRlc3RzLiBEb2luZyBub3RoaW5nIG5vdy4iKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworI2VuZGlmCi0tIAoxLjcuMC40
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53129</attachid>
            <date>2010-04-11 19:44:30 -0700</date>
            <delta_ts>2010-04-19 23:40:06 -0700</delta_ts>
            <desc>2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;</desc>
            <filename>2010-04-11-Diego-Escalante-Urrelo-descalanteigalia.patch</filename>
            <type>text/plain</type>
            <size>9101</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSA2MTcwM2ZhYTE2YmVjYjI1OGQ3YjVmZjM4OWViYjEzNjNkNzAzNjE5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IEZyaSwgMjYgRmViIDIwMTAgMTQ6MzE6MzQgLTA1MDAKU3ViamVjdDog
W1BBVENIXSAyMDEwLTA0LTExICBEaWVnbyBFc2NhbGFudGUgVXJyZWxvICA8ZGVzY2FsYW50ZUBp
Z2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAg
W0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1w
bGVtZW50ZWQgYnkKICAgICAgICBXZWJLaXRHdGsKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKCiAgICAgICAgRXhwYW5kIHRlc3RhdGtyb2xlcyB0
byB0ZXN0IEFUSyBmb3JtIHJvbGVzLgoKICAgICAgICAqIHRlc3RzL3Rlc3RhdGtyb2xlcy5jOgog
ICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfY2hlY2tfYm94KToKICAgICAgICAodGVz
dF93ZWJraXRfYXRrX2dldF9yb2xlX2VudHJ5KToKICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dl
dF9yb2xlX2xhYmVsKToKICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2xpc3Rib3gp
OgogICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfcGFzc3dvcmRfdGV4dCk6CiAgICAg
ICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9wdXNoX2J1dHRvbik6CiAgICAgICAgKHRlc3Rf
d2Via2l0X2F0a19nZXRfcm9sZV9yYWRpb19idXR0b24pOgogICAgICAgIChtYWluKToKLS0tCiBX
ZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgIHwgICAyMCArKysrKysKIFdlYktpdC9ndGsv
dGVzdHMvdGVzdGF0a3JvbGVzLmMgfCAgMTQwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxNTkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCmluZGV4IDVmNmYzMjYuLjhiOWQ3ODYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC02LDYgKzYsMjYgQEAKICAgICAg
ICAgV2ViS2l0R3RrCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNDQ0OQogCisgICAgICAgIEV4cGFuZCB0ZXN0YXRrcm9sZXMgdG8gdGVzdCBBVEsgZm9y
bSByb2xlcy4KKworICAgICAgICAqIHRlc3RzL3Rlc3RhdGtyb2xlcy5jOgorICAgICAgICAodGVz
dF93ZWJraXRfYXRrX2dldF9yb2xlX2NoZWNrX2JveCk6CisgICAgICAgICh0ZXN0X3dlYmtpdF9h
dGtfZ2V0X3JvbGVfZW50cnkpOgorICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2xh
YmVsKToKKyAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9saXN0Ym94KToKKyAgICAg
ICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9wYXNzd29yZF90ZXh0KToKKyAgICAgICAgKHRl
c3Rfd2Via2l0X2F0a19nZXRfcm9sZV9wdXNoX2J1dHRvbik6CisgICAgICAgICh0ZXN0X3dlYmtp
dF9hdGtfZ2V0X3JvbGVfcmFkaW9fYnV0dG9uKToKKyAgICAgICAgKG1haW4pOgorCisyMDEwLTA0
LTExICBEaWVnbyBFc2NhbGFudGUgVXJyZWxvICA8ZGVzY2FsYW50ZUBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHdGtdIEV2YWx1
YXRlIGFuZCBjcmVhdGUgdGVzdHMgZm9yIGFsbCB0aGUgQXRrUm9sZSdzIGltcGxlbWVudGVkIGJ5
CisgICAgICAgIFdlYktpdEd0aworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzQ0NDkKKwogICAgICAgICBBZGQgdGVzdGF0a3JvbGVzIHRvIHRlc3QgQVRL
IG5vbiBmb3JtIHJvbGVzLgogCiAgICAgICAgICogdGVzdHMvdGVzdGF0a3JvbGVzLmM6IEFkZGVk
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9sZXMuYyBiL1dlYktpdC9n
dGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKaW5kZXggNzE1YzI4MC4uNWYyYzlhNiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9sZXMuYworKysgYi9XZWJLaXQvZ3RrL3Rlc3Rz
L3Rlc3RhdGtyb2xlcy5jCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpZiBHTElCX0NIRUNLX1ZFUlNJ
T04oMiwgMTYsIDApICYmIEdUS19DSEVDS19WRVJTSU9OKDIsIDE0LCAwKQogCisvKiBOb24gZm9y
bSByb2xlcyAqLwogI2RlZmluZSBIVE1MX0RPQ1VNRU5UX0ZSQU1FICI8aHRtbD48Ym9keT5UaGlz
IGlzIGEgdGVzdC48L2JvZHk+PC9odG1sPiIKICNkZWZpbmUgSFRNTF9IRUFESU5HICI8aHRtbD48
Ym9keT48aDE+MTwvaDE+PGgyPjI8L2gyPjxoMz4zPC9oMz48aDQ+NDwvaDQ+PGg1PjU8L2g1Pjxo
Nj42PC9oNj48L2JvZHk+PC9odG1sPiIKICNkZWZpbmUgSFRNTF9JTUFHRSAiPGh0bWw+PGJvZHk+
PGltZyBzcmM9J2Zvb2Jhci5wbmcnIGFsdD0nVGhpcyBpcyBhIHRlc3QuJy8+PC9ib2R5PjwvaHRt
bD4iCkBAIC0zMyw2ICszNCwxMyBAQAogI2RlZmluZSBIVE1MX1BBUkFHUkFQSCAiPGh0bWw+PGJv
ZHk+PHA+VGhpcyBpcyBhIHRlc3QuPC9wPjwvYm9keT48L2h0bWw+IgogI2RlZmluZSBIVE1MX1NF
Q1RJT04gIjxodG1sPjxib2R5PjxkaXY+VGhpcyBpcyBhIHRlc3QuPC9kaXY+PC9ib2R5PjwvaHRt
bD4iCiAjZGVmaW5lIEhUTUxfVEFCTEUgIjxodG1sPjxib2R5Pjx0YWJsZSBib3JkZXI9JzEnPjx0
cj48dGQ+VGhpcyBpczwvdGQ+PHRkPmEgdGVzdC48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+PC9o
dG1sPiIKKy8qIEZvcm0gcm9sZXMgKi8KKyNkZWZpbmUgSFRNTF9DSEVDS19CT1ggIjxodG1sPjxi
b2R5PjxpbnB1dCB0eXBlPSdjaGVja2JveCcgLz5UaGlzIGlzIGEgdGVzdC48L2JvZHk+PC9odG1s
PiIKKyNkZWZpbmUgSFRNTF9MQUJFTEVEX0VOVFJZICI8aHRtbD48Ym9keT48bGFiZWwgZm9yPSdm
b28nPk5hbWU6PC9sYWJlbD48aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2ZvbycgLz48L2JvZHk+PC9o
dG1sPiIKKyNkZWZpbmUgSFRNTF9MSVNUQk9YICI8aHRtbD48Ym9keT48c2VsZWN0IHNpemU9JzMn
PjxvcHRpb24+b25lPC9vcHRpb24+PG9wdGlvbj50d288L29wdGlvbj48b3B0aW9uPnRocmVlPC9v
cHRpb24+PC9zZWxlY3Q+PC9ib2R5PjwvaHRtbD4iCisjZGVmaW5lIEhUTUxfUEFTU1dPUkRfVEVY
VCAiPGh0bWw+PGJvZHk+PGlucHV0IHR5cGU9J3Bhc3N3b3JkJyAvPjwvYm9keT48L2h0bWw+Igor
I2RlZmluZSBIVE1MX1BVU0hfQlVUVE9OICI8aHRtbD48Ym9keT48aW5wdXQgdHlwZT0nc3VibWl0
JyB2YWx1ZT0nb2snIC8+VGhpcyBpcyBhIHRlc3QuPC9ib2R5PjwvaHRtbD4iCisjZGVmaW5lIEhU
TUxfUkFESU9fQlVUVE9OICI8aHRtbD48Ym9keT48aW5wdXQgdHlwZT0ncmFkaW8nIC8+VGhpcyBp
cyBhIHRlc3QuPC9ib2R5PjwvaHRtbD4iCiAKIHR5cGVkZWYgc3RydWN0IHsKICAgICBBdGtPYmpl
Y3QqIGRvY3VtZW50RnJhbWU7CkBAIC0xNjYsNiArMTc0LDkzIEBAIHN0YXRpYyB2b2lkIHRlc3Rf
d2Via2l0X2F0a19nZXRfcm9sZV90YWJsZShBdGtSb2xlc0ZpeHR1cmUqIGZpeHR1cmUsIGdjb25z
dHBvaW50CiAgICAgZ2V0X2NoaWxkX2FuZF90ZXN0X3JvbGUoZml4dHVyZS0+ZG9jdW1lbnRGcmFt
ZSwgMCwgQVRLX1JPTEVfVEFCTEUpOwogfQogCisvKiBGb3JtIHJvbGVzICovCitzdGF0aWMgdm9p
ZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfY2hlY2tfYm94KEF0a1JvbGVzRml4dHVyZSogZml4
dHVyZSwgZ2NvbnN0cG9pbnRlciBkYXRhKQoreworICAgIC8vIFRoaXMgaXMgYW4gZXh0cmFuZW91
cyBvYmplY3Qgb2YgQVRLX1JPTEVfUEFORUwgd2hpY2ggd2Ugc2hvdWxkIGdldCByaWQgb2YuCisg
ICAgZml4dHVyZS0+b2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChmaXh0dXJl
LT5kb2N1bWVudEZyYW1lLCAwKTsKKyAgICBnX2Fzc2VydChmaXh0dXJlLT5vYmopOworCisgICAg
Z2V0X2NoaWxkX2FuZF90ZXN0X3JvbGUoZml4dHVyZS0+b2JqLCAwLCBBVEtfUk9MRV9DSEVDS19C
T1gpOworCisgICAgZ19vYmplY3RfdW5yZWYoZml4dHVyZS0+b2JqKTsKK30KKworc3RhdGljIHZv
aWQgdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2VudHJ5KEF0a1JvbGVzRml4dHVyZSogZml4dHVy
ZSwgZ2NvbnN0cG9pbnRlciBkYXRhKQoreworICAgIC8vIFRoaXMgaXMgYW4gZXh0cmFuZW91cyBv
YmplY3Qgb2YgQVRLX1JPTEVfUEFORUwgd2hpY2ggd2Ugc2hvdWxkIGdldCByaWQgb2YuCisgICAg
Zml4dHVyZS0+b2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChmaXh0dXJlLT5k
b2N1bWVudEZyYW1lLCAwKTsKKyAgICBnX2Fzc2VydChmaXh0dXJlLT5vYmopOworCisgICAgZ2V0
X2NoaWxkX2FuZF90ZXN0X3JvbGUoZml4dHVyZS0+b2JqLCAxLCBBVEtfUk9MRV9FTlRSWSk7CisK
KyAgICBnX29iamVjdF91bnJlZihmaXh0dXJlLT5vYmopOworfQorCitzdGF0aWMgdm9pZCB0ZXN0
X3dlYmtpdF9hdGtfZ2V0X3JvbGVfbGFiZWwoQXRrUm9sZXNGaXh0dXJlKiBmaXh0dXJlLCBnY29u
c3Rwb2ludGVyIGRhdGEpCit7CisgICAgLy8gVGhpcyBpcyBhbiBleHRyYW5lb3VzIG9iamVjdCBv
ZiBBVEtfUk9MRV9QQU5FTCB3aGljaCB3ZSBzaG91bGQgZ2V0IHJpZCBvZi4KKyAgICBmaXh0dXJl
LT5vYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGZpeHR1cmUtPmRvY3VtZW50
RnJhbWUsIDApOworICAgIGdfYXNzZXJ0KGZpeHR1cmUtPm9iaik7CisKKyAgICBnZXRfY2hpbGRf
YW5kX3Rlc3Rfcm9sZShmaXh0dXJlLT5vYmosIDAsIEFUS19ST0xFX0xBQkVMKTsKKworICAgIGdf
b2JqZWN0X3VucmVmKGZpeHR1cmUtPm9iaik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfd2Via2l0
X2F0a19nZXRfcm9sZV9saXN0Ym94KEF0a1JvbGVzRml4dHVyZSogZml4dHVyZSwgZ2NvbnN0cG9p
bnRlciBkYXRhKQoreworICAgIEF0a09iamVjdCogbGlzdGJveE9iajsKKyAgICAvLyBUaGlzIGlz
IGFuIGV4dHJhbmVvdXMgb2JqZWN0IG9mIEFUS19ST0xFX1BBTkVMIHdoaWNoIHdlIHNob3VsZCBn
ZXQgcmlkIG9mLgorICAgIGZpeHR1cmUtPm9iaiA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVf
Y2hpbGQoZml4dHVyZS0+ZG9jdW1lbnRGcmFtZSwgMCk7CisgICAgZ19hc3NlcnQoZml4dHVyZS0+
b2JqKTsKKworICAgIGxpc3Rib3hPYmogPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxk
KGZpeHR1cmUtPm9iaiwgMCk7CisgICAgZ19hc3NlcnQobGlzdGJveE9iaik7CisgICAgZml4dHVy
ZS0+cm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUobGlzdGJveE9iaik7CisgICAgZ19hc3NlcnQo
Zml4dHVyZS0+cm9sZSA9PSBBVEtfUk9MRV9MSVNUKTsKKworICAgIGdldF9jaGlsZF9hbmRfdGVz
dF9yb2xlKGxpc3Rib3hPYmosIDAsIEFUS19ST0xFX0xJU1RfSVRFTSk7CisgICAgZ2V0X2NoaWxk
X2FuZF90ZXN0X3JvbGUobGlzdGJveE9iaiwgMSwgQVRLX1JPTEVfTElTVF9JVEVNKTsKKyAgICBn
ZXRfY2hpbGRfYW5kX3Rlc3Rfcm9sZShsaXN0Ym94T2JqLCAyLCBBVEtfUk9MRV9MSVNUX0lURU0p
OworCisgICAgZ19vYmplY3RfdW5yZWYoZml4dHVyZS0+b2JqKTsKKyAgICBnX29iamVjdF91bnJl
ZihsaXN0Ym94T2JqKTsKK30KKworc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfYXRrX2dldF9yb2xl
X3Bhc3N3b3JkX3RleHQoQXRrUm9sZXNGaXh0dXJlKiBmaXh0dXJlLCBnY29uc3Rwb2ludGVyIGRh
dGEpCit7CisgICAgLy8gVGhpcyBpcyBhbiBleHRyYW5lb3VzIG9iamVjdCBvZiBBVEtfUk9MRV9Q
QU5FTCB3aGljaCB3ZSBzaG91bGQgZ2V0IHJpZCBvZi4KKyAgICBmaXh0dXJlLT5vYmogPSBhdGtf
b2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGZpeHR1cmUtPmRvY3VtZW50RnJhbWUsIDApOwor
ICAgIGdfYXNzZXJ0KGZpeHR1cmUtPm9iaik7CisKKyAgICBnZXRfY2hpbGRfYW5kX3Rlc3Rfcm9s
ZShmaXh0dXJlLT5vYmosIDAsIEFUS19ST0xFX1BBU1NXT1JEX1RFWFQpOworCisgICAgZ19vYmpl
Y3RfdW5yZWYoZml4dHVyZS0+b2JqKTsKK30KKworc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfYXRr
X2dldF9yb2xlX3B1c2hfYnV0dG9uKEF0a1JvbGVzRml4dHVyZSogZml4dHVyZSwgZ2NvbnN0cG9p
bnRlciBkYXRhKQoreworICAgIC8vIFRoaXMgaXMgYW4gZXh0cmFuZW91cyBvYmplY3Qgb2YgQVRL
X1JPTEVfUEFORUwgd2hpY2ggd2Ugc2hvdWxkIGdldCByaWQgb2YuCisgICAgZml4dHVyZS0+b2Jq
ID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChmaXh0dXJlLT5kb2N1bWVudEZyYW1l
LCAwKTsKKyAgICBnX2Fzc2VydChmaXh0dXJlLT5vYmopOworCisgICAgZ2V0X2NoaWxkX2FuZF90
ZXN0X3JvbGUoZml4dHVyZS0+b2JqLCAwLCBBVEtfUk9MRV9QVVNIX0JVVFRPTik7CisKKyAgICBn
X29iamVjdF91bnJlZihmaXh0dXJlLT5vYmopOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X3dlYmtp
dF9hdGtfZ2V0X3JvbGVfcmFkaW9fYnV0dG9uKEF0a1JvbGVzRml4dHVyZSogZml4dHVyZSwgZ2Nv
bnN0cG9pbnRlciBkYXRhKQoreworICAgIC8vIFRoaXMgaXMgYW4gZXh0cmFuZW91cyBvYmplY3Qg
b2YgQVRLX1JPTEVfUEFORUwgd2hpY2ggd2Ugc2hvdWxkIGdldCByaWQgb2YuCisgICAgZml4dHVy
ZS0+b2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChmaXh0dXJlLT5kb2N1bWVu
dEZyYW1lLCAwKTsKKyAgICBnX2Fzc2VydChmaXh0dXJlLT5vYmopOworCisgICAgZ2V0X2NoaWxk
X2FuZF90ZXN0X3JvbGUoZml4dHVyZS0+b2JqLCAwLCBBVEtfUk9MRV9SQURJT19CVVRUT04pOwor
CisgICAgZ19vYmplY3RfdW5yZWYoZml4dHVyZS0+b2JqKTsKK30KKwogaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIqKiBhcmd2KQogewogICAgIGdfdGhyZWFkX2luaXQoTlVMTCk7CkBAIC0yMjEsNyAr
MzE2LDUwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAg
IHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV90YWJsZSwKICAgICAgICAgICAgICAgIGF0a19yb2xl
c19maXh0dXJlX3RlYXJkb3duKTsKIAotICAgIHJldHVybiBnX3Rlc3RfcnVuICgpOworICAgIC8q
IEZvcm0gcm9sZXMgKi8KKyAgICBnX3Rlc3RfYWRkKCIvd2Via2l0L2F0ay90ZXN0X3dlYmtpdF9h
dGtfZ2V0X3JvbGVfY2hlY2tfYm94IiwKKyAgICAgICAgICAgICAgIEF0a1JvbGVzRml4dHVyZSwg
SFRNTF9DSEVDS19CT1gsCisgICAgICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV9zZXR1cCwK
KyAgICAgICAgICAgICAgIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9jaGVja19ib3gsCisgICAg
ICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV90ZWFyZG93bik7CisKKyAgICBnX3Rlc3RfYWRk
KCIvd2Via2l0L2F0ay90ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfZW50cnkiLAorICAgICAgICAg
ICAgICAgQXRrUm9sZXNGaXh0dXJlLCBIVE1MX0xBQkVMRURfRU5UUlksCisgICAgICAgICAgICAg
ICBhdGtfcm9sZXNfZml4dHVyZV9zZXR1cCwKKyAgICAgICAgICAgICAgIHRlc3Rfd2Via2l0X2F0
a19nZXRfcm9sZV9lbnRyeSwKKyAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3RlYXJk
b3duKTsKKworICAgIGdfdGVzdF9hZGQoIi93ZWJraXQvYXRrL3Rlc3Rfd2Via2l0X2F0a19nZXRf
cm9sZV9sYWJlbCIsCisgICAgICAgICAgICAgICBBdGtSb2xlc0ZpeHR1cmUsIEhUTUxfTEFCRUxF
RF9FTlRSWSwKKyAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3NldHVwLAorICAgICAg
ICAgICAgICAgdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2xhYmVsLAorICAgICAgICAgICAgICAg
YXRrX3JvbGVzX2ZpeHR1cmVfdGVhcmRvd24pOworCisgICAgZ190ZXN0X2FkZCgiL3dlYmtpdC9h
dGsvdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2xpc3Rib3giLAorICAgICAgICAgICAgICAgQXRr
Um9sZXNGaXh0dXJlLCBIVE1MX0xJU1RCT1gsCisgICAgICAgICAgICAgICBhdGtfcm9sZXNfZml4
dHVyZV9zZXR1cCwKKyAgICAgICAgICAgICAgIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9saXN0
Ym94LAorICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVhcmRvd24pOworCisgICAg
Z190ZXN0X2FkZCgiL3dlYmtpdC9hdGsvdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX3Bhc3N3b3Jk
X3RleHQiLAorICAgICAgICAgICAgICAgQXRrUm9sZXNGaXh0dXJlLCBIVE1MX1BBU1NXT1JEX1RF
WFQsCisgICAgICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV9zZXR1cCwKKyAgICAgICAgICAg
ICAgIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9wYXNzd29yZF90ZXh0LAorICAgICAgICAgICAg
ICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVhcmRvd24pOworCisgICAgZ190ZXN0X2FkZCgiL3dlYmtp
dC9hdGsvdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX3B1c2hfYnV0dG9uIiwKKyAgICAgICAgICAg
ICAgIEF0a1JvbGVzRml4dHVyZSwgSFRNTF9QVVNIX0JVVFRPTiwKKyAgICAgICAgICAgICAgIGF0
a19yb2xlc19maXh0dXJlX3NldHVwLAorICAgICAgICAgICAgICAgdGVzdF93ZWJraXRfYXRrX2dl
dF9yb2xlX3B1c2hfYnV0dG9uLAorICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVh
cmRvd24pOworCisgICAgZ190ZXN0X2FkZCgiL3dlYmtpdC9hdGsvdGVzdF93ZWJraXRfYXRrX2dl
dF9yb2xlX3JhZGlvX2J1dHRvbiIsCisgICAgICAgICAgICAgICBBdGtSb2xlc0ZpeHR1cmUsIEhU
TUxfUkFESU9fQlVUVE9OLAorICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfc2V0dXAs
CisgICAgICAgICAgICAgICB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfcmFkaW9fYnV0dG9uLAor
ICAgICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfdGVhcmRvd24pOworCisgICAgcmV0dXJu
IGdfdGVzdF9ydW4oKTsKIH0KIAogI2Vsc2UKLS0gCjEuNy4wLjQ=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53130</attachid>
            <date>2010-04-11 19:44:40 -0700</date>
            <delta_ts>2010-04-20 12:08:23 -0700</delta_ts>
            <desc>2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;</desc>
            <filename>2010-04-11-Diego-Escalante-Urrelo-descalanteigalia.patch</filename>
            <type>text/plain</type>
            <size>2058</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSBmNDE5Nzg5ODQ2NzRkOGQxZGQzN2Q4MTI3YmNhNzA5OTU3NWNhZmE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IEZyaSwgMjYgRmViIDIwMTAgMTQ6NDM6MzkgLTA1MDAKU3ViamVjdDog
W1BBVENIXSAyMDEwLTA0LTExICBEaWVnbyBFc2NhbGFudGUgVXJyZWxvICA8ZGVzY2FsYW50ZUBp
Z2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAg
W0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1w
bGVtZW50ZWQgYnkKICAgICAgICBXZWJLaXRHdGsKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKCiAgICAgICAgSW1wbGVtZW50IEFUS19ST0xFX0ZP
Uk0uCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJBdGsuY3BwOgogICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV9nZXRfcm9sZSk6Ci0tLQogV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsr
KysrKysrKysrKysKIC4uLi9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwICAg
ICAgICAgIHwgICAgMiArKwogMiBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAwIGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggODgxNjc3NC4uZTAwYmMzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNC0xMSAg
RGllZ28gRXNjYWxhbnRlIFVycmVsbyAgPGRlc2NhbGFudGVAaWdhbGlhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR3RrXSBFdmFsdWF0ZSBh
bmQgY3JlYXRlIHRlc3RzIGZvciBhbGwgdGhlIEF0a1JvbGUncyBpbXBsZW1lbnRlZCBieQorICAg
ICAgICBXZWJLaXRHdGsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM0NDQ5CisKKyAgICAgICAgSW1wbGVtZW50IEFUS19ST0xFX0ZPUk0uCisKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6
CisgICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV9nZXRfcm9sZSk6CisKIDIwMTAtMDQtMTAgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiAgUmVu
YW1lIG1fZm9yY2VTYW5kYm94RmxhZ3MgdG8gbV9mb3JjZWRTYW5kb3hGbGFncywgYXMKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJBdGsuY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckF0ay5jcHAKaW5kZXggNjNiZGRhMi4uZmZlZjJhOCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKKysr
IGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0
ay5jcHAKQEAgLTQ0OCw2ICs0NDgsOCBAQCBzdGF0aWMgQXRrUm9sZSB3ZWJraXRfYWNjZXNzaWJs
ZV9nZXRfcm9sZShBdGtPYmplY3QqIG9iamVjdCkKICAgICAgICAgICAgICAgICByZXR1cm4gQVRL
X1JPTEVfTEFCRUw7CiAgICAgICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6
OmRpdlRhZykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEFUS19ST0xFX1NFQ1RJT047CisgICAg
ICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmZvcm1UYWcpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBBVEtfUk9MRV9GT1JNOwogICAgICAgICB9CiAgICAgfQogCi0tIAox
LjcuMC40
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53131</attachid>
            <date>2010-04-11 19:44:48 -0700</date>
            <delta_ts>2010-04-21 06:18:06 -0700</delta_ts>
            <desc>2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;</desc>
            <filename>2010-04-11-Diego-Escalante-Urrelo-descalanteigalia.patch</filename>
            <type>text/plain</type>
            <size>3297</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSAzMDAzMDRlZDU1ODA4YTE1MjI0MDU2N2E5NjY5MmY5NmI5YTliYzBlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IFN1biwgMTEgQXByIDIwMTAgMjE6MDY6MzUgLTA1MDAKU3ViamVjdDog
W1BBVENIXSAyMDEwLTA0LTExICBEaWVnbyBFc2NhbGFudGUgVXJyZWxvICA8ZGVzY2FsYW50ZUBp
Z2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAg
W0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1w
bGVtZW50ZWQgYnkKICAgICAgICBXZWJLaXRHdGsKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKCiAgICAgICAgRXhwYW5kIHRlc3RhdGtyb2xlcyB0
byB0ZXN0IEFUS19ST0xFX0ZPUk0uCgogICAgICAgICogdGVzdHMvdGVzdGF0a3JvbGVzLmM6CiAg
ICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9mb3JtKToKICAgICAgICAobWFpbik6Ci0t
LQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICB8ICAgMTQgKysrKysrKysrKysrKysK
IFdlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMgfCAgIDExICsrKysrKysrKysrCiAyIGZp
bGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4Yjlk
Nzg2Li4xOGU0N2VjIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwpAQCAtNiw2ICs2LDIwIEBACiAgICAgICAgIFdlYktpdEd0awogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKIAorICAg
ICAgICBFeHBhbmQgdGVzdGF0a3JvbGVzIHRvIHRlc3QgQVRLX1JPTEVfRk9STS4KKworICAgICAg
ICAqIHRlc3RzL3Rlc3RhdGtyb2xlcy5jOgorICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF9y
b2xlX2Zvcm0pOgorICAgICAgICAobWFpbik6CisKKzIwMTAtMDQtMTEgIERpZWdvIEVzY2FsYW50
ZSBVcnJlbG8gIDxkZXNjYWxhbnRlQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0
cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1wbGVtZW50ZWQgYnkKKyAgICAgICAgV2ViS2l0R3Rr
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQor
CiAgICAgICAgIEV4cGFuZCB0ZXN0YXRrcm9sZXMgdG8gdGVzdCBBVEsgZm9ybSByb2xlcy4KIAog
ICAgICAgICAqIHRlc3RzL3Rlc3RhdGtyb2xlcy5jOgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay90
ZXN0cy90ZXN0YXRrcm9sZXMuYyBiL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKaW5k
ZXggNWYyYzlhNi4uZDNhZGU2ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRr
cm9sZXMuYworKysgYi9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jCkBAIC0zNSw2ICsz
NSw3IEBACiAjZGVmaW5lIEhUTUxfU0VDVElPTiAiPGh0bWw+PGJvZHk+PGRpdj5UaGlzIGlzIGEg
dGVzdC48L2Rpdj48L2JvZHk+PC9odG1sPiIKICNkZWZpbmUgSFRNTF9UQUJMRSAiPGh0bWw+PGJv
ZHk+PHRhYmxlIGJvcmRlcj0nMSc+PHRyPjx0ZD5UaGlzIGlzPC90ZD48dGQ+YSB0ZXN0LjwvdGQ+
PC90cj48L3RhYmxlPjwvYm9keT48L2h0bWw+IgogLyogRm9ybSByb2xlcyAqLworI2RlZmluZSBI
VE1MX0ZPUk0gIjxodG1sPjxib2R5Pjxmb3JtPlRoaXMgaXMgYSB0ZXN0LjwvZm9ybT48L2JvZHk+
PC9odG1sPiIKICNkZWZpbmUgSFRNTF9DSEVDS19CT1ggIjxodG1sPjxib2R5PjxpbnB1dCB0eXBl
PSdjaGVja2JveCcgLz5UaGlzIGlzIGEgdGVzdC48L2JvZHk+PC9odG1sPiIKICNkZWZpbmUgSFRN
TF9MQUJFTEVEX0VOVFJZICI8aHRtbD48Ym9keT48bGFiZWwgZm9yPSdmb28nPk5hbWU6PC9sYWJl
bD48aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2ZvbycgLz48L2JvZHk+PC9odG1sPiIKICNkZWZpbmUg
SFRNTF9MSVNUQk9YICI8aHRtbD48Ym9keT48c2VsZWN0IHNpemU9JzMnPjxvcHRpb24+b25lPC9v
cHRpb24+PG9wdGlvbj50d288L29wdGlvbj48b3B0aW9uPnRocmVlPC9vcHRpb24+PC9zZWxlY3Q+
PC9ib2R5PjwvaHRtbD4iCkBAIC0xNzUsNiArMTc2LDExIEBAIHN0YXRpYyB2b2lkIHRlc3Rfd2Vi
a2l0X2F0a19nZXRfcm9sZV90YWJsZShBdGtSb2xlc0ZpeHR1cmUqIGZpeHR1cmUsIGdjb25zdHBv
aW50CiB9CiAKIC8qIEZvcm0gcm9sZXMgKi8KK3N0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X2F0a19n
ZXRfcm9sZV9mb3JtKEF0a1JvbGVzRml4dHVyZSAqZml4dHVyZSwgZ2NvbnN0cG9pbnRlciBkYXRh
KQoreworICAgIGdldF9jaGlsZF9hbmRfdGVzdF9yb2xlKGZpeHR1cmUtPmRvY3VtZW50RnJhbWUs
IDAsIEFUS19ST0xFX0ZPUk0pOworfQorCiBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0
X3JvbGVfY2hlY2tfYm94KEF0a1JvbGVzRml4dHVyZSogZml4dHVyZSwgZ2NvbnN0cG9pbnRlciBk
YXRhKQogewogICAgIC8vIFRoaXMgaXMgYW4gZXh0cmFuZW91cyBvYmplY3Qgb2YgQVRLX1JPTEVf
UEFORUwgd2hpY2ggd2Ugc2hvdWxkIGdldCByaWQgb2YuCkBAIC0zMTcsNiArMzIzLDExIEBAIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAgIGF0a19yb2xlc19m
aXh0dXJlX3RlYXJkb3duKTsKIAogICAgIC8qIEZvcm0gcm9sZXMgKi8KKyAgICBnX3Rlc3RfYWRk
KCIvd2Via2l0L2F0ay90ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfZm9ybSIsCisgICAgICAgICAg
ICAgICBBdGtSb2xlc0ZpeHR1cmUsIEhUTUxfRk9STSwKKyAgICAgICAgICAgICAgIGF0a19yb2xl
c19maXh0dXJlX3NldHVwLAorICAgICAgICAgICAgICAgdGVzdF93ZWJraXRfYXRrX2dldF9yb2xl
X2Zvcm0sCisgICAgICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV90ZWFyZG93bik7CiAgICAg
Z190ZXN0X2FkZCgiL3dlYmtpdC9hdGsvdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2NoZWNrX2Jv
eCIsCiAgICAgICAgICAgICAgICBBdGtSb2xlc0ZpeHR1cmUsIEhUTUxfQ0hFQ0tfQk9YLAogICAg
ICAgICAgICAgICAgYXRrX3JvbGVzX2ZpeHR1cmVfc2V0dXAsCi0tIAoxLjcuMC40
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53132</attachid>
            <date>2010-04-11 19:44:59 -0700</date>
            <delta_ts>2010-04-21 18:46:43 -0700</delta_ts>
            <desc>2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;</desc>
            <filename>2010-04-11-Diego-Escalante-Urrelo-descalanteigalia.patch</filename>
            <type>text/plain</type>
            <size>3209</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSAzMmZmNDBiZGQ1M2NjZDA3Yjg4Y2ZhNDVhNzk4ZjliZTlmOTJhNzVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IEZyaSwgMjYgRmViIDIwMTAgMTU6MDI6MzIgLTA1MDAKU3ViamVjdDog
W1BBVENIXSAyMDEwLTA0LTExICBEaWVnbyBFc2NhbGFudGUgVXJyZWxvICA8ZGVzY2FsYW50ZUBp
Z2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAg
W0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1w
bGVtZW50ZWQgYnkKICAgICAgICBXZWJLaXRHdGsKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKCiAgICAgICAgSW1wbGVtZW50IEFUS19ST0xFX1NF
UEFSQVRPUi4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwOgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRl
cm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nl
c3NpYmlsaXR5T2JqZWN0QXRrLmNwcDoKICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6YWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPYmplY3QpOgotLS0KIFdlYkNvcmUv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArKysrKysr
KysrKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
ICAgIHwgICAgNyArKysrKystCiAuLi4vYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9i
amVjdEF0ay5jcHAgICB8ICAgIDMgKysrCiAzIGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMo
KyksIDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBlMDBiYzNlLi43NTM1NjViIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtNiw2ICs2LDIxIEBACiAgICAg
ICAgIFdlYktpdEd0awogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzQ0NDkKIAorICAgICAgICBJbXBsZW1lbnQgQVRLX1JPTEVfU0VQQVJBVE9SLgorCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vz
c2liaWxpdHlSb2xlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0QXRrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFj
Y2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KToKKworMjAxMC0wNC0xMSAgRGllZ28g
RXNjYWxhbnRlIFVycmVsbyAgPGRlc2NhbGFudGVAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR3RrXSBFdmFsdWF0ZSBhbmQgY3Jl
YXRlIHRlc3RzIGZvciBhbGwgdGhlIEF0a1JvbGUncyBpbXBsZW1lbnRlZCBieQorICAgICAgICBX
ZWJLaXRHdGsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM0NDQ5CisKICAgICAgICAgSW1wbGVtZW50IEFUS19ST0xFX0ZPUk0uCiAKICAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAgYi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAK
aW5kZXggYmM5ZDZmMS4uZDY4OGY0YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjc4Niw3ICsyNzg2LDEyIEBAIEFj
Y2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vz
c2liaWxpdHlSb2xlKCkKIAogICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUodGFibGVU
YWcpKQogICAgICAgICByZXR1cm4gVGFibGVSb2xlOwotI2VuZGlmICAgCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKEdUSykKKyAgICBpZiAobV9yZW5kZXJlci0+aXNIUigpKQorICAgICAgICByZXR1
cm4gU3BsaXR0ZXJSb2xlOworI2VuZGlmCiAKICAgICBpZiAobV9yZW5kZXJlci0+aXNCbG9ja0Zs
b3coKSB8fCAobm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKGxhYmVsVGFnKSkpCiAgICAgICAgIHJl
dHVybiBHcm91cFJvbGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0Fj
Y2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nl
c3NpYmlsaXR5T2JqZWN0QXRrLmNwcAppbmRleCBjYTNlOGNjLi44ZDkwNjcwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCisr
KyBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAK
QEAgLTQxLDYgKzQxLDkgQEAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBBY2Nlc3NpYmls
aXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc08KICAgICBpZiAoaXNNZW51
TGlzdFBvcHVwKCkgfHwgaXNNZW51TGlzdE9wdGlvbigpKQogICAgICAgICByZXR1cm4gSWdub3Jl
T2JqZWN0OwogCisgICAgaWYgKHJvbGVWYWx1ZSgpID09IFNwbGl0dGVyUm9sZSkKKyAgICAgICAg
cmV0dXJuIEluY2x1ZGVPYmplY3Q7CisKICAgICBpZiAoaXNHcm91cCgpKSB7CiAgICAgICAgIC8v
IFdoZW4gYSBsaXN0IGl0ZW0gaXMgbWFkZSB1cCBlbnRpcmVseSBvZiBjaGlsZHJlbiAoZS5nLiBw
YXJhZ3JhcGhzKQogICAgICAgICAvLyB0aGUgbGlzdCBpdGVtIGdldHMgaWdub3JlZC4gV2UgbmVl
ZCBpdC4KLS0gCjEuNy4wLjQ=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53133</attachid>
            <date>2010-04-11 19:46:11 -0700</date>
            <delta_ts>2010-04-22 03:31:43 -0700</delta_ts>
            <desc>2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;</desc>
            <filename>2010-04-11-Diego-Escalante-Urrelo-descalanteigalia.patch</filename>
            <type>text/plain</type>
            <size>3203</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSA0MmY5ZDBmOTI3M2UyM2Q4YTlkYTgxMDJlZTYwM2QxN2Y2MjRmZjIxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IEZyaSwgMjYgRmViIDIwMTAgMTU6MDM6NTAgLTA1MDAKU3ViamVjdDog
W1BBVENIXSAyMDEwLTA0LTExICBEaWVnbyBFc2NhbGFudGUgVXJyZWxvICA8ZGVzY2FsYW50ZUBp
Z2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAg
W0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1w
bGVtZW50ZWQgYnkKICAgICAgICBXZWJLaXRHdGsKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKCiAgICAgICAgRXhwYW5kIHRlc3RhdGtyb2xlcyB0
byB0ZXN0IEFUS19ST0xFX1NFUEFSQVRPUi4KCiAgICAgICAgKiB0ZXN0cy90ZXN0YXRrcm9sZXMu
YzoKICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX3NlcGFyYXRvcik6CiAgICAgICAg
KG1haW4pOgotLS0KIFdlYktpdC9ndGsvQ2hhbmdlTG9nICAgICAgICAgICAgfCAgIDE0ICsrKysr
KysrKysrKysrCiBXZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jIHwgICAxMiArKysrKysr
KysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CmluZGV4IDE4ZTQ3ZWMuLjFhZTQ0MGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC02LDYgKzYsMjAgQEAKICAgICAgICAgV2Vi
S2l0R3RrCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
NDQ0OQogCisgICAgICAgIEV4cGFuZCB0ZXN0YXRrcm9sZXMgdG8gdGVzdCBBVEtfUk9MRV9TRVBB
UkFUT1IuCisKKyAgICAgICAgKiB0ZXN0cy90ZXN0YXRrcm9sZXMuYzoKKyAgICAgICAgKHRlc3Rf
d2Via2l0X2F0a19nZXRfcm9sZV9zZXBhcmF0b3IpOgorICAgICAgICAobWFpbik6CisKKzIwMTAt
MDQtMTEgIERpZWdvIEVzY2FsYW50ZSBVcnJlbG8gIDxkZXNjYWxhbnRlQGlnYWxpYS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gRXZh
bHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1wbGVtZW50ZWQg
YnkKKyAgICAgICAgV2ViS2l0R3RrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNDQ0OQorCiAgICAgICAgIEV4cGFuZCB0ZXN0YXRrcm9sZXMgdG8gdGVz
dCBBVEtfUk9MRV9GT1JNLgogCiAgICAgICAgICogdGVzdHMvdGVzdGF0a3JvbGVzLmM6CmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jIGIvV2ViS2l0L2d0ay90ZXN0
cy90ZXN0YXRrcm9sZXMuYwppbmRleCBkM2FkZTZlLi4yMjliOWJhIDEwMDY0NAotLS0gYS9XZWJL
aXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jCisrKyBiL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0
a3JvbGVzLmMKQEAgLTM0LDYgKzM0LDcgQEAKICNkZWZpbmUgSFRNTF9QQVJBR1JBUEggIjxodG1s
Pjxib2R5PjxwPlRoaXMgaXMgYSB0ZXN0LjwvcD48L2JvZHk+PC9odG1sPiIKICNkZWZpbmUgSFRN
TF9TRUNUSU9OICI8aHRtbD48Ym9keT48ZGl2PlRoaXMgaXMgYSB0ZXN0LjwvZGl2PjwvYm9keT48
L2h0bWw+IgogI2RlZmluZSBIVE1MX1RBQkxFICI8aHRtbD48Ym9keT48dGFibGUgYm9yZGVyPScx
Jz48dHI+PHRkPlRoaXMgaXM8L3RkPjx0ZD5hIHRlc3QuPC90ZD48L3RyPjwvdGFibGU+PC9ib2R5
PjwvaHRtbD4iCisjZGVmaW5lIEhUTUxfU0VQQVJBVE9SICI8aHRtbD48Ym9keT48aHIvPjwvYm9k
eT48L2h0bWw+IgogLyogRm9ybSByb2xlcyAqLwogI2RlZmluZSBIVE1MX0ZPUk0gIjxodG1sPjxi
b2R5Pjxmb3JtPlRoaXMgaXMgYSB0ZXN0LjwvZm9ybT48L2JvZHk+PC9odG1sPiIKICNkZWZpbmUg
SFRNTF9DSEVDS19CT1ggIjxodG1sPjxib2R5PjxpbnB1dCB0eXBlPSdjaGVja2JveCcgLz5UaGlz
IGlzIGEgdGVzdC48L2JvZHk+PC9odG1sPiIKQEAgLTE3NSw2ICsxNzYsMTEgQEAgc3RhdGljIHZv
aWQgdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX3RhYmxlKEF0a1JvbGVzRml4dHVyZSogZml4dHVy
ZSwgZ2NvbnN0cG9pbnQKICAgICBnZXRfY2hpbGRfYW5kX3Rlc3Rfcm9sZShmaXh0dXJlLT5kb2N1
bWVudEZyYW1lLCAwLCBBVEtfUk9MRV9UQUJMRSk7CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3Rfd2Vi
a2l0X2F0a19nZXRfcm9sZV9zZXBhcmF0b3IoQXRrUm9sZXNGaXh0dXJlICpmaXh0dXJlLCBnY29u
c3Rwb2ludGVyIGRhdGEpCit7CisgICAgZ2V0X2NoaWxkX2FuZF90ZXN0X3JvbGUoZml4dHVyZS0+
ZG9jdW1lbnRGcmFtZSwgMCwgQVRLX1JPTEVfU0VQQVJBVE9SKTsKK30KKwogLyogRm9ybSByb2xl
cyAqLwogc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2Zvcm0oQXRrUm9sZXNG
aXh0dXJlICpmaXh0dXJlLCBnY29uc3Rwb2ludGVyIGRhdGEpCiB7CkBAIC0zMjIsNiArMzI4LDEy
IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAgIHRlc3Rf
d2Via2l0X2F0a19nZXRfcm9sZV90YWJsZSwKICAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0
dXJlX3RlYXJkb3duKTsKIAorICAgIGdfdGVzdF9hZGQoIi93ZWJraXQvYXRrL3Rlc3Rfd2Via2l0
X2F0a19nZXRfcm9sZV9zZXBhcmF0b3IiLAorICAgICAgICAgICAgICAgQXRrUm9sZXNGaXh0dXJl
LCBIVE1MX1NFUEFSQVRPUiwKKyAgICAgICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3NldHVw
LAorICAgICAgICAgICAgICAgdGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX3NlcGFyYXRvciwKKyAg
ICAgICAgICAgICAgIGF0a19yb2xlc19maXh0dXJlX3RlYXJkb3duKTsKKwogICAgIC8qIEZvcm0g
cm9sZXMgKi8KICAgICBnX3Rlc3RfYWRkKCIvd2Via2l0L2F0ay90ZXN0X3dlYmtpdF9hdGtfZ2V0
X3JvbGVfZm9ybSIsCiAgICAgICAgICAgICAgICBBdGtSb2xlc0ZpeHR1cmUsIEhUTUxfRk9STSwK
LS0gCjEuNy4wLjQ=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53134</attachid>
            <date>2010-04-11 19:46:24 -0700</date>
            <delta_ts>2010-04-22 07:36:27 -0700</delta_ts>
            <desc>2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;</desc>
            <filename>2010-04-11-Diego-Escalante-Urrelo-descalanteigalia.patch</filename>
            <type>text/plain</type>
            <size>3280</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSAyMGIwOGIxMGZhZTRhNDNiMWI2YTRmYWU1OTI2NGM4ZTQzZjM5Mjk3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IEZyaSwgMjYgRmViIDIwMTAgMTU6MTI6NDAgLTA1MDAKU3ViamVjdDog
W1BBVENIXSAyMDEwLTA0LTExICBEaWVnbyBFc2NhbGFudGUgVXJyZWxvICA8ZGVzY2FsYW50ZUBp
Z2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAg
W0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1w
bGVtZW50ZWQgYnkKICAgICAgICBXZWJLaXRHdGsKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKCiAgICAgICAgSW1wbGVtZW50IEFUS19ST0xFX0NP
TUJPX0JPWC4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0
QXRrLmNwcDoKICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJp
bGl0eVBsYXRmb3JtSW5jbHVkZXNPYmplY3QpOgogICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsv
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgogICAgICAgIChhdGtSb2xlKToKLS0t
CiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTUgKysrKysrKysrKysrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9i
amVjdEF0ay5jcHAgICB8ICAgIDMgLS0tCiAuLi4vZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQXRrLmNwcCAgICAgICAgICB8ICAgIDMgKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE4IGluc2Vy
dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NTM1NjViLi4yMWJmMjUzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtNiw2ICs2LDIxIEBA
CiAgICAgICAgIFdlYktpdEd0awogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzQ0NDkKIAorICAgICAgICBJbXBsZW1lbnQgQVRLX1JPTEVfQ09NQk9fQk9Y
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5
UGxhdGZvcm1JbmNsdWRlc09iamVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgorICAgICAgICAoYXRrUm9sZSk6CisKKzIw
MTAtMDQtMTEgIERpZWdvIEVzY2FsYW50ZSBVcnJlbG8gIDxkZXNjYWxhbnRlQGlnYWxpYS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10g
RXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1wbGVtZW50
ZWQgYnkKKyAgICAgICAgV2ViS2l0R3RrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQorCiAgICAgICAgIEltcGxlbWVudCBBVEtfUk9MRV9TRVBB
UkFUT1IuCiAKICAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmls
aXR5T2JqZWN0QXRrLmNwcCBiL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0
eU9iamVjdEF0ay5jcHAKaW5kZXggOGQ5MDY3MC4uZTMyMzQwYSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcAorKysgYi9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCkBAIC0zOCw5
ICszOCw2IEBAIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQWNjZXNzaWJpbGl0eU9iamVj
dDo6YWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPCiAgICAgaWYgKCFwYXJlbnQpCiAgICAg
ICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7CiAKLSAgICBpZiAoaXNNZW51TGlzdFBvcHVwKCkg
fHwgaXNNZW51TGlzdE9wdGlvbigpKQotICAgICAgICByZXR1cm4gSWdub3JlT2JqZWN0OwotCiAg
ICAgaWYgKHJvbGVWYWx1ZSgpID09IFNwbGl0dGVyUm9sZSkKICAgICAgICAgcmV0dXJuIEluY2x1
ZGVPYmplY3Q7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9B
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKaW5kZXggZmZlZjJhOC4uZDA5ODc3ZiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckF0ay5jcHAKKysrIGIvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKQEAgLTM2MCw4ICszNjAsMTAgQEAgc3RhdGljIEF0a1Jv
bGUgYXRrUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogICAgICAgICByZXR1cm4gQVRLX1JP
TEVfVFJFRTsKICAgICBjYXNlIE1lbnVCYXJSb2xlOgogICAgICAgICByZXR1cm4gQVRLX1JPTEVf
TUVOVV9CQVI7CisgICAgY2FzZSBNZW51TGlzdFBvcHVwUm9sZToKICAgICBjYXNlIE1lbnVSb2xl
OgogICAgICAgICByZXR1cm4gQVRLX1JPTEVfTUVOVTsKKyAgICBjYXNlIE1lbnVMaXN0T3B0aW9u
Um9sZToKICAgICBjYXNlIE1lbnVJdGVtUm9sZToKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX01F
TlVfSVRFTTsKICAgICBjYXNlIENvbHVtblJvbGU6CkBAIC0zNzksNiArMzgxLDcgQEAgc3RhdGlj
IEF0a1JvbGUgYXRrUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogICAgICAgICByZXR1cm4g
QVRLX1JPTEVfUFJPR1JFU1NfQkFSOwogICAgIGNhc2UgV2luZG93Um9sZToKICAgICAgICAgcmV0
dXJuIEFUS19ST0xFX1dJTkRPVzsKKyAgICBjYXNlIFBvcFVwQnV0dG9uUm9sZToKICAgICBjYXNl
IENvbWJvQm94Um9sZToKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX0NPTUJPX0JPWDsKICAgICBj
YXNlIFNwbGl0R3JvdXBSb2xlOgotLSAKMS43LjAuNA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53135</attachid>
            <date>2010-04-11 19:46:35 -0700</date>
            <delta_ts>2010-04-22 08:46:29 -0700</delta_ts>
            <desc>2010-04-11  Diego Escalante Urrelo  &lt;descalante@igalia.com&gt;</desc>
            <filename>2010-04-11-Diego-Escalante-Urrelo-descalanteigalia.patch</filename>
            <type>text/plain</type>
            <size>4131</size>
            <attacher name="Diego Escalante Urrelo">diegoe</attacher>
            
              <data encoding="base64">RnJvbSA1MWQ2ZTA5YTI3MmI1YjU2NTY3OWUzZDk1MTI0YjY2NWQ0ZDAwN2E3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkZXNjYWxhbnRlQGln
YWxpYS5jb20+CkRhdGU6IEZyaSwgMjYgRmViIDIwMTAgMTU6MTM6MjMgLTA1MDAKU3ViamVjdDog
W1BBVENIXSAyMDEwLTA0LTExICBEaWVnbyBFc2NhbGFudGUgVXJyZWxvICA8ZGVzY2FsYW50ZUBp
Z2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAg
W0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1w
bGVtZW50ZWQgYnkKICAgICAgICBXZWJLaXRHdGsKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKCiAgICAgICAgRXhwYW5kIHRlc3RhdGtyb2xlcyB0
byB0ZXN0IEFUS19ST0xFX0NPTUJPX0JPWC4KCiAgICAgICAgKiB0ZXN0cy90ZXN0YXRrcm9sZXMu
YzoKICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2NvbWJvYm94KToKICAgICAgICAo
bWFpbik6Ci0tLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICB8ICAgMTQgKysrKysr
KysrKysrKysKIFdlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMgfCAgIDMzICsrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25z
KCspLCAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggMWFlNDQwZC4uMDcxYzVhZiAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTYsNiAr
NiwyMCBAQAogICAgICAgICBXZWJLaXRHdGsKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM0NDQ5CiAKKyAgICAgICAgRXhwYW5kIHRlc3RhdGtyb2xlcyB0
byB0ZXN0IEFUS19ST0xFX0NPTUJPX0JPWC4KKworICAgICAgICAqIHRlc3RzL3Rlc3RhdGtyb2xl
cy5jOgorICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2NvbWJvYm94KToKKyAgICAg
ICAgKG1haW4pOgorCisyMDEwLTA0LTExICBEaWVnbyBFc2NhbGFudGUgVXJyZWxvICA8ZGVzY2Fs
YW50ZUBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtHdGtdIEV2YWx1YXRlIGFuZCBjcmVhdGUgdGVzdHMgZm9yIGFsbCB0aGUgQXRr
Um9sZSdzIGltcGxlbWVudGVkIGJ5CisgICAgICAgIFdlYktpdEd0aworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKKwogICAgICAgICBFeHBhbmQg
dGVzdGF0a3JvbGVzIHRvIHRlc3QgQVRLX1JPTEVfU0VQQVJBVE9SLgogCiAgICAgICAgICogdGVz
dHMvdGVzdGF0a3JvbGVzLmM6CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGty
b2xlcy5jIGIvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrcm9sZXMuYwppbmRleCAyMjliOWJhLi41
ZmQwOGIwIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jCisrKyBi
L1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKQEAgLTM1LDYgKzM1LDcgQEAKICNkZWZp
bmUgSFRNTF9TRUNUSU9OICI8aHRtbD48Ym9keT48ZGl2PlRoaXMgaXMgYSB0ZXN0LjwvZGl2Pjwv
Ym9keT48L2h0bWw+IgogI2RlZmluZSBIVE1MX1RBQkxFICI8aHRtbD48Ym9keT48dGFibGUgYm9y
ZGVyPScxJz48dHI+PHRkPlRoaXMgaXM8L3RkPjx0ZD5hIHRlc3QuPC90ZD48L3RyPjwvdGFibGU+
PC9ib2R5PjwvaHRtbD4iCiAjZGVmaW5lIEhUTUxfU0VQQVJBVE9SICI8aHRtbD48Ym9keT48aHIv
PjwvYm9keT48L2h0bWw+IgorI2RlZmluZSBIVE1MX0NPTUJPQk9YICI8aHRtbD48Ym9keT48c2Vs
ZWN0IHNpemU9JzEnPjxvcHRpb24+b25lPC9vcHRpb24+PG9wdGlvbj50d288L29wdGlvbj48b3B0
aW9uPnRocmVlPC9vcHRpb24+PC9zZWxlY3Q+PC9ib2R5PjwvaHRtbD4iCiAvKiBGb3JtIHJvbGVz
ICovCiAjZGVmaW5lIEhUTUxfRk9STSAiPGh0bWw+PGJvZHk+PGZvcm0+VGhpcyBpcyBhIHRlc3Qu
PC9mb3JtPjwvYm9keT48L2h0bWw+IgogI2RlZmluZSBIVE1MX0NIRUNLX0JPWCAiPGh0bWw+PGJv
ZHk+PGlucHV0IHR5cGU9J2NoZWNrYm94JyAvPlRoaXMgaXMgYSB0ZXN0LjwvYm9keT48L2h0bWw+
IgpAQCAtMTgxLDYgKzE4MiwzMiBAQCBzdGF0aWMgdm9pZCB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3Jv
bGVfc2VwYXJhdG9yKEF0a1JvbGVzRml4dHVyZSAqZml4dHVyZSwgZ2NvbnN0cAogICAgIGdldF9j
aGlsZF9hbmRfdGVzdF9yb2xlKGZpeHR1cmUtPmRvY3VtZW50RnJhbWUsIDAsIEFUS19ST0xFX1NF
UEFSQVRPUik7CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9jb21i
b2JveChBdGtSb2xlc0ZpeHR1cmUgKmZpeHR1cmUsIGdjb25zdHBvaW50ZXIgZGF0YSkKK3sKKyAg
ICBBdGtPYmplY3QqIGNvbWJvYm94TWVudTsKKworICAgIC8vIFRoaXMgaXMgYW4gZXh0cmFuZW91
cyBvYmplY3Qgb2YgQVRLX1JPTEVfUEFORUwgd2hpY2ggd2Ugc2hvdWxkIGdldCByaWQgb2YuCisg
ICAgZml4dHVyZS0+b2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChmaXh0dXJl
LT5kb2N1bWVudEZyYW1lLCAwKTsKKyAgICBnX2Fzc2VydChmaXh0dXJlLT5vYmopOworCisgICAg
Zml4dHVyZS0+b2JqID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChmaXh0dXJlLT5v
YmosIDApOworICAgIGdfYXNzZXJ0KGZpeHR1cmUtPm9iaik7CisgICAgZml4dHVyZS0+cm9sZSA9
IGF0a19vYmplY3RfZ2V0X3JvbGUoZml4dHVyZS0+b2JqKTsKKyAgICBnX2Fzc2VydChmaXh0dXJl
LT5yb2xlID09IEFUS19ST0xFX0NPTUJPX0JPWCk7CisKKyAgICBjb21ib2JveE1lbnUgPSBhdGtf
b2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKGZpeHR1cmUtPm9iaiwgMCk7CisgICAgZ19hc3Nl
cnQoY29tYm9ib3hNZW51KTsKKyAgICBmaXh0dXJlLT5yb2xlID0gYXRrX29iamVjdF9nZXRfcm9s
ZShjb21ib2JveE1lbnUpOworICAgIGdfYXNzZXJ0KGZpeHR1cmUtPnJvbGUgPT0gQVRLX1JPTEVf
TUVOVSk7CisKKyAgICBnZXRfY2hpbGRfYW5kX3Rlc3Rfcm9sZShjb21ib2JveE1lbnUsIDAsIEFU
S19ST0xFX01FTlVfSVRFTSk7CisgICAgZ2V0X2NoaWxkX2FuZF90ZXN0X3JvbGUoY29tYm9ib3hN
ZW51LCAxLCBBVEtfUk9MRV9NRU5VX0lURU0pOworICAgIGdldF9jaGlsZF9hbmRfdGVzdF9yb2xl
KGNvbWJvYm94TWVudSwgMiwgQVRLX1JPTEVfTUVOVV9JVEVNKTsKKworICAgIGdfb2JqZWN0X3Vu
cmVmKGZpeHR1cmUtPm9iaik7CisgICAgZ19vYmplY3RfdW5yZWYoY29tYm9ib3hNZW51KTsKK30K
KwogLyogRm9ybSByb2xlcyAqLwogc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfYXRrX2dldF9yb2xl
X2Zvcm0oQXRrUm9sZXNGaXh0dXJlICpmaXh0dXJlLCBnY29uc3Rwb2ludGVyIGRhdGEpCiB7CkBA
IC0zMzQsNiArMzYxLDEyIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAg
ICAgICAgICAgIHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9zZXBhcmF0b3IsCiAgICAgICAgICAg
ICAgICBhdGtfcm9sZXNfZml4dHVyZV90ZWFyZG93bik7CiAKKyAgICBnX3Rlc3RfYWRkKCIvd2Vi
a2l0L2F0ay90ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfY29tYm9ib3giLAorICAgICAgICAgICAg
ICAgQXRrUm9sZXNGaXh0dXJlLCBIVE1MX0NPTUJPQk9YLAorICAgICAgICAgICAgICAgYXRrX3Jv
bGVzX2ZpeHR1cmVfc2V0dXAsCisgICAgICAgICAgICAgICB0ZXN0X3dlYmtpdF9hdGtfZ2V0X3Jv
bGVfY29tYm9ib3gsCisgICAgICAgICAgICAgICBhdGtfcm9sZXNfZml4dHVyZV90ZWFyZG93bik7
CisKICAgICAvKiBGb3JtIHJvbGVzICovCiAgICAgZ190ZXN0X2FkZCgiL3dlYmtpdC9hdGsvdGVz
dF93ZWJraXRfYXRrX2dldF9yb2xlX2Zvcm0iLAogICAgICAgICAgICAgICAgQXRrUm9sZXNGaXh0
dXJlLCBIVE1MX0ZPUk0sCi0tIAoxLjcuMC40
</data>

          </attachment>
      

    </bug>

</bugzilla>