<?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>45192</bug_id>
          
          <creation_ts>2010-09-03 12:07:35 -0700</creation_ts>
          <short_desc>Provide a way to trigger a &lt;select multiple&gt; onchange event on changes</short_desc>
          <delta_ts>2023-05-31 17:36:21 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=257565</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>joepeck</cc>
    
    <cc>mitz</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>274100</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-03 12:07:35 -0700</bug_when>
    <thetext>&lt;select multiple&gt; when a listbox, triggers onchange events via mouse down events.
That means programmatically in a WebKit client wants to change a &lt;select multiple&gt;&apos;s
selectedIndexes  through a bindings interface the &quot;change&quot; event won&apos;t fire.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274108</commentid>
    <comment_count>1</comment_count>
      <attachid>66532</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-03 12:15:23 -0700</bug_when>
    <thetext>Created attachment 66532
[PATCH] Proposed Change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274140</commentid>
    <comment_count>2</comment_count>
      <attachid>66532</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-03 13:01:00 -0700</bug_when>
    <thetext>Comment on attachment 66532
[PATCH] Proposed Change

&gt; +    // On a &lt;select multiple&gt; this needs to be handled slightly differently since onchange events
&gt; +    // would have been fired via the mouse events on list box selects.
&gt; +    if (WebCore::HTMLSelectElement* select = core(self)) {
&gt; +        if (!select-&gt;multiple())
&gt; +            select-&gt;setSelectedIndexByUser(index, true, true);
&gt; +        else
&gt; +            select-&gt;setSelectedIndexOnMultipleByUser(index, true);
&gt; +    }

It seems strange that we need to call two different functions. Can we instead just change the setSelectedIndexByUser in WebCore to do the right thing when multiple() is true and usesMenuList() is false? Do we know of any specific problems caused if we do that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274147</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-03 13:27:50 -0700</bug_when>
    <thetext>&gt; It seems strange that we need to call two different functions. Can we instead
&gt; just change the setSelectedIndexByUser in WebCore to do the right thing
&gt; when multiple() is true and usesMenuList() is false? Do we know of any specific
&gt; problems caused if we do that?

You&apos;re absolute right. That would simplify this patch quite a bit as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274150</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-03 13:28:51 -0700</bug_when>
    <thetext>You&apos;re absolutely right.* My grammar on Bugzilla is atrocious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274187</commentid>
    <comment_count>5</comment_count>
      <attachid>66545</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-03 14:42:38 -0700</bug_when>
    <thetext>Created attachment 66545
[TEST] Autofill Test Case

This is a test case for Safari&apos;s Autofill. In my case, autofill selects California
and only triggers the &quot;change&quot; event for the bottom, single &lt;select&gt;. However,
the other &lt;selects&gt; are populated correctly.

After my patch all 3 selects trigger their &quot;change&quot; events, and are populated
correctly. Running autofill multiple times works as expected. Submitting the
form (it submits to itself) produces the values you would expect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274190</commentid>
    <comment_count>6</comment_count>
      <attachid>66546</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-03 14:44:49 -0700</bug_when>
    <thetext>Created attachment 66546
[PATCH] Generically Handle listbox &lt;select&gt;s

Dan Bernstein pointed out that listboxs could also be made by
&lt;select size=&quot;{value &gt; 1}&quot;&gt;. That exhibited the same problem.
This patch should handles that case as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274191</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-03 14:46:56 -0700</bug_when>
    <thetext>For the [TEST]. Apparently putting a &lt;form&gt; in an attachment on Bugzilla is not
a good idea. You should be able to save the html file locally and test it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274209</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-03 15:11:15 -0700</bug_when>
    <thetext>Hmm, there is a minor issue in this patch. The &quot;allowsMultiply&quot; (which I think should be
&quot;allowsMultiple&quot;) parameter should be passed in at the outer level at the _activate function.
To give clients the option of selecting multiple items in a &lt;select multiple&gt; or not.

Can the function&apos;s signature be changed without breaking browsers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274210</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-03 15:12:04 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Can the function&apos;s signature be changed without breaking browsers?

What function exactly? In C++ and Objective-C you can add a new argument with overloading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274211</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-03 15:14:14 -0700</bug_when>
    <thetext>If you’re referring to the Mac SPI method, _activateItemAtIndex:, then sure we can add an argument but we can’t remove the existing method until we get rid of all callers. For example, open source contributors use the old version of Safari, so need the old method still around.

We should only add the argument if we are sure we need to actually set it. We should not add it just in theory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274212</commentid>
    <comment_count>11</comment_count>
      <attachid>66546</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-03 15:14:40 -0700</bug_when>
    <thetext>Comment on attachment 66546
[PATCH] Generically Handle listbox &lt;select&gt;s

Is there any way to test this? Could you please add a manual test if not an automated one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274214</commentid>
    <comment_count>12</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-03 15:18:07 -0700</bug_when>
    <thetext>&gt; Is there any way to test this? Could you please add a manual test
&gt; if not an automated one?

Sure.


&gt; We should only add the argument if we are sure we need to actually set it.
&gt; We should not add it just in theory.

Yes, there is a case where this is necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274281</commentid>
    <comment_count>13</comment_count>
      <attachid>66569</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-03 17:21:58 -0700</bug_when>
    <thetext>Created attachment 66569
[PATCH] -[DOMHTMLSelectElement _activateItemAtIndex:allowMultipleSelection:]

This is the patch, adding the new method to the interface to also allow
multiple selections in a &lt;select multiple&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274282</commentid>
    <comment_count>14</comment_count>
      <attachid>66570</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-03 17:22:48 -0700</bug_when>
    <thetext>Created attachment 66570
[PATCH] Automated Test

I separated this out into its own patch because this has a lot
of boilerplate that would crowd the real changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274937</commentid>
    <comment_count>15</comment_count>
      <attachid>66546</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-07 03:20:01 -0700</bug_when>
    <thetext>Comment on attachment 66546
[PATCH] Generically Handle listbox &lt;select&gt;s

Cleared Darin Adler&apos;s review+ from obsolete attachment 66546 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275201</commentid>
    <comment_count>16</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-07 12:01:44 -0700</bug_when>
    <thetext>Darin could you review the updated patches?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275241</commentid>
    <comment_count>17</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-07 13:18:05 -0700</bug_when>
    <thetext>Thanks! Does that apply to both patches?

I also removed some unused JavaScript code from the LayoutTests I added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275243</commentid>
    <comment_count>18</comment_count>
      <attachid>66570</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-07 13:18:44 -0700</bug_when>
    <thetext>Comment on attachment 66570
[PATCH] Automated Test

Great to add a test for this!

This DOMHTMLController object doesn’t seem to have too much to do with DOM, except inasmuch all JavaScript functions are part of &quot;DOM&quot;. We have lots of functions like this on the main layout test controller. I’m not sure why we are making a new object for these functions. For example, the execCommand, isCommandEnabled, elementDoesAutoCompleteForElementWithId, counterValueForElementById, computedStyleIncludingVisitedInfo, and markerTextForListItem functions.

Maybe it would be better to make this part of a &quot;form testing&quot; controller, or a &quot;user input simulating&quot; type controller, or maybe make it part of LayoutTestController since many other functions like this are already there.

HTML should be in all caps (or all lower case in strange cases), not spelled &quot;Html&quot;.

The DOM prefix is reserved for WebKit use for the Objective-C DOM bindings, so it’s not great to have DumpRenderTree use this prefix for one of its classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275257</commentid>
    <comment_count>19</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-07 13:36:17 -0700</bug_when>
    <thetext>&gt; The DOM prefix is reserved for WebKit use for the Objective-C DOM bindings, so
&gt; it’s not great to have DumpRenderTree use this prefix for one of its classes.

This was meant to parts of the Objective-C DOM bindings. In this case, the
special DOMHTMLSelectElement functions defined in DOMPrivate.h. And, being
Obj-C specific it seemed natural to me to make it similar to the ObjCController.
I made the test platform/mac specific.


&gt; Maybe it would be better to make this part of a &quot;form testing&quot; controller,
&gt; or a &quot;user input simulating&quot; type controller, or maybe make it part of
&gt; LayoutTestController since many other functions like this are already there.

If I move this to LayoutTestController.cpp all other ports would have an empty
implementation. I like the idea of a form testing controller but I still see this
as being unique because it deals with the Obj-C bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275275</commentid>
    <comment_count>20</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-07 14:05:16 -0700</bug_when>
    <thetext>If your intent is to test ObjC bindings then you probably want to look at the objCController rather than adding a new object. We can also use the bridging between JavaScript and ObjC to test things directly in some cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275279</commentid>
    <comment_count>21</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-07 14:11:17 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; If your intent is to test ObjC bindings then you probably want to look at the
&gt; objCController rather than adding a new object. We can also use the bridging
&gt; between JavaScript and ObjC to test things directly in some cases.

Okay. I originally thought of adding onto that. I&apos;ll move these there, and
try to simplify the test a bit.

I also remember seeing this comment in EventSendingController:
http://trac.webkit.org/browser/trunk/WebKitTools/DumpRenderTree/mac/EventSendingController.mm#L810

&gt;     810  // FIXME: It&apos;s not good to have a test hard-wired into this controller like this.
&gt;     811  // Instead we need to get testing framework based on the Objective-C bindings
&gt;     812  // to work well enough that we can test that way instead.

For -[EventSendingController fireKeyboardEventsToElement:] so I thought it might
make sense to make a new controller. But now I think it is complaining more about
the controller&apos;s implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275289</commentid>
    <comment_count>22</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-07 14:21:44 -0700</bug_when>
    <thetext>Joe, here’s an example:

We could add a function that allows you to call any Objective-C method with a set of arguments of a given type. On the Objective-C controller. In fact, I thought we had this a while back, but I guess not.

    objCController.callMethod(select, &quot;_activateItemAtIndex:&quot;, 1);

We could probably find a way to make this work for at least simple cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275372</commentid>
    <comment_count>23</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-07 16:13:31 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Joe, here’s an example:
&gt; 
&gt; We could add a function that allows you to call any Objective-C method with a set of arguments of a given type. On the Objective-C controller. In fact, I thought we had this a while back, but I guess not.
&gt; 
&gt;     objCController.callMethod(select, &quot;_activateItemAtIndex:&quot;, 1);
&gt; 
&gt; We could probably find a way to make this work for at least simple cases.

For simple cases this should be easy. But creating a generic version to support
multiple arguments, of various types (primitives and pointers) seemed to
trip up my implementations using performSelector and then NSInvocation.
I&apos;d be interested to see a solution. My attempt used a WebScriptObject array
to pass in the arguments, so it looked something like:

  objCController.performSelector(obj, selector, [arg1, arg2]);

I walked the array and pulled out the (Obj-C) values using webScriptObjectAtIndex.
Passing these by address into NSInvocation gave me unexpected values.
My Obj-C knowledge is still pretty basic. If someone is interested in writing
something like this, the following links may be useful:

http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocSelectors.html
http://blog.jayway.com/2010/03/30/performing-any-selector-on-the-main-thread/
http://cocoawithlove.com/2008/03/construct-nsinvocation-for-any-message.html
http://stackoverflow.com/questions/313400/nsinvocation-for-dummies</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275373</commentid>
    <comment_count>24</comment_count>
      <attachid>66783</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-07 16:14:50 -0700</bug_when>
    <thetext>Created attachment 66783
[PATCH] Automated Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275387</commentid>
    <comment_count>25</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-07 16:35:50 -0700</bug_when>
    <thetext>r66929 = 78464d71a5b4dfd640adff8da0faecb209c771fd
http://trac.webkit.org/changeset/66929

r66930 = 93c516208fcec52b1d18b82b137afc2f8b336931
http://trac.webkit.org/changeset/66930</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66532</attachid>
            <date>2010-09-03 12:15:23 -0700</date>
            <delta_ts>2010-09-03 14:42:38 -0700</delta_ts>
            <desc>[PATCH] Proposed Change</desc>
            <filename>select-multiple.patch</filename>
            <type>text/plain</type>
            <size>4687</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTRiN2RjYy4uODUwMDM2MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wOS0wMyAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVja0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYSB3YXkgdG8gdHJpZ2dlciBhIDxzZWxlY3QgbXVs
dGlwbGU+IG9uY2hhbmdlIGV2ZW50IG9uIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTkyCisKKyAgICAgICAgVGhpcyBwcm92aWRlcyBh
IHdheSBmb3IgYSBXZWJLaXQgY2xpZW50IHVzaW5nIHRoZSBnZW5lcmF0ZWQgT2JqLUMgRE9NCisg
ICAgICAgIGJpbmRpbmdzIHRvIHNwZWNpZnkgYSBzZWxlY3RlZEluZGV4IGNoYW5nZSBvbiBhIDxz
ZWxlY3QgbXVsdGlwbGU+IGFuZAorICAgICAgICB0cmlnZ2VyIGFuIG9uY2hhbmdlIGV2ZW50Lgor
CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MLm1tOgorICAgICAgICAoLVtET01IVE1M
U2VsZWN0RWxlbWVudCBfYWN0aXZhdGVJdGVtQXRJbmRleDpdKTogZXh0ZW5kIHRoZSBvbGQgbWV0
aG9kIHRoYXQgZGlkIHRoaXMgZm9yIDxzZWxlY3Q+IHRvIGFsc28gaGFuZGxlIDxzZWxlY3QgbXVs
dGlwbGU+CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01Qcml2YXRlLmg6IHVuaWZpZWQgdGhl
IENhdGVnb3J5IG5hbWUuIFdhcyAiRm9ybXNBdXRvY29tcGxldGUiIG5vdyBhbGwgYXJlICJGb3Jt
QXV0b2NvbXBsZXRlIgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXhPbk11bHRp
cGxlQnlVc2VyKTogbGlzdEJveHMgbmVlZCB0byBiZSB0cmVhdGVkIHNwZWNpYWxseSB0byBhbHNv
IGZpcmUgYW4gZXZlbnQuCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOgorCiAy
MDEwLTA5LTAzICBKb2hubnkgRGluZyAgPGpuZEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01IVE1MLm1tIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0KaW5kZXggZGI2NGFm
ZS4uNjYwNzc5MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0K
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0KQEAgLTE2MSw5ICsxNjEsMTQg
QEAKIAogLSAodm9pZClfYWN0aXZhdGVJdGVtQXRJbmRleDooaW50KWluZGV4CiB7Ci0gICAgLy8g
VXNlIHRoZSBzZXRTZWxlY3RlZEluZGV4QnlVc2VyIGZ1bmN0aW9uIHNvIGEgY2hhbmdlIGV2ZW50
IHdpbGwgYmUgZmlyZWQuIDxyZGFyOi8vcHJvYmxlbS82NzYwNTkwPgotICAgIGlmIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gY29yZShzZWxmKSkKLSAgICAgICAgc2VsZWN0
LT5zZXRTZWxlY3RlZEluZGV4QnlVc2VyKGluZGV4LCB0cnVlLCB0cnVlKTsKKyAgICAvLyBPbiBh
IDxzZWxlY3QgbXVsdGlwbGU+IHRoaXMgbmVlZHMgdG8gYmUgaGFuZGxlZCBzbGlnaHRseSBkaWZm
ZXJlbnRseSBzaW5jZSBvbmNoYW5nZSBldmVudHMKKyAgICAvLyB3b3VsZCBoYXZlIGJlZW4gZmly
ZWQgdmlhIHRoZSBtb3VzZSBldmVudHMgb24gbGlzdCBib3ggc2VsZWN0cy4KKyAgICBpZiAoV2Vi
Q29yZTo6SFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IGNvcmUoc2VsZikpIHsKKyAgICAgICAg
aWYgKCFzZWxlY3QtPm11bHRpcGxlKCkpCisgICAgICAgICAgICBzZWxlY3QtPnNldFNlbGVjdGVk
SW5kZXhCeVVzZXIoaW5kZXgsIHRydWUsIHRydWUpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBzZWxlY3QtPnNldFNlbGVjdGVkSW5kZXhPbk11bHRpcGxlQnlVc2VyKGluZGV4LCB0cnVlKTsK
KyAgICB9CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Q
cml2YXRlLmggYi9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUHJpdmF0ZS5oCmluZGV4IGI4ZTQ0
NjAuLjcxZmU0YWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Qcml2YXRl
LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVByaXZhdGUuaApAQCAtNjksNyArNjks
NyBAQAogLy8gQWxsIHRoZSBtZXRob2RzIGluIHRoaXMgY2F0ZWdvcnkgYXJlIHVzZWQgYnkgU2Fm
YXJpIGZvcm1zIGF1dG9maWxsIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgZm9yIGFueSBvdGhlciBw
dXJwb3NlLgogLy8gRWFjaCBvbmUgc2hvdWxkIGV2ZW50dWFsbHkgYmUgcmVwbGFjZWQgYnkgcHVi
bGljIERPTSBBUEksIGFuZCB3aGVuIHRoYXQgaGFwcGVucyBTYWZhcmkgd2lsbCBzd2l0Y2ggdG8g
aW1wbGVtZW50YXRpb25zIAogLy8gdXNpbmcgdGhhdCBwdWJsaWMgQVBJLCBhbmQgdGhlc2Ugd2ls
bCBiZSBkZWxldGVkLgotQGludGVyZmFjZSBET01IVE1MSW5wdXRFbGVtZW50IChGb3Jtc0F1dG9G
aWxsVHJhbnNpdGlvbikKK0BpbnRlcmZhY2UgRE9NSFRNTElucHV0RWxlbWVudCAoRm9ybUF1dG9G
aWxsVHJhbnNpdGlvbikKIC0gKEJPT0wpX2lzQXV0b2ZpbGxlZDsKIC0gKEJPT0wpX2lzVGV4dEZp
ZWxkOwogLSAoTlNSZWN0KV9yZWN0T25TY3JlZW47IC8vIGJvdW5kaW5nIGJveCBvZiB0aGUgdGV4
dCBmaWVsZCwgaW4gc2NyZWVuIGNvb3JkaW5hdGVzCkBAIC05Miw2ICs5Miw2IEBACiAvLyBUaGV5
IGFyZSBzdG9wZ2FwIG1lYXN1cmVzIHVudGlsIHdlIGZpbmlzaCB0cmFuc2l0aW9uaW5nIGZvcm0g
Y29udHJvbHMgdG8gbm90IHVzZSBOU1ZpZXcuIEVhY2ggb25lIHNob3VsZCBiZWNvbWUKIC8vIHJl
cGxhY2VhYmxlIGJ5IHB1YmxpYyBET00gQVBJLCBhbmQgd2hlbiB0aGF0IGhhcHBlbnMgU2FmYXJp
IHdpbGwgc3dpdGNoIHRvIGltcGxlbWVudGF0aW9ucyB1c2luZyB0aGF0IHB1YmxpYyBBUEksCiAv
LyBhbmQgdGhlc2Ugd2lsbCBiZSBkZWxldGVkLgotQGludGVyZmFjZSBET01IVE1MU2VsZWN0RWxl
bWVudCAoRm9ybXNBdXRvRmlsbFRyYW5zaXRpb24pCitAaW50ZXJmYWNlIERPTUhUTUxTZWxlY3RF
bGVtZW50IChGb3JtQXV0b0ZpbGxUcmFuc2l0aW9uKQogLSAodm9pZClfYWN0aXZhdGVJdGVtQXRJ
bmRleDooaW50KWluZGV4OwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXgg
YjFiNmQyMy4uZjg0YjM0NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC05Nyw2
ICs5NywxNSBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4QnlVc2Vy
KGludCBvcHRpb25JbmRleCwgYm9vbCBkZXNlbGVjdCwgYgogICAgIFNlbGVjdEVsZW1lbnQ6OnNl
dFNlbGVjdGVkSW5kZXgobV9kYXRhLCB0aGlzLCBvcHRpb25JbmRleCwgZGVzZWxlY3QsIGZpcmVP
bkNoYW5nZU5vdywgdHJ1ZSk7CiB9CiAKK3ZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVj
dGVkSW5kZXhPbk11bHRpcGxlQnlVc2VyKGludCBvcHRpb25JbmRleCwgYm9vbCBmaXJlT25DaGFu
Z2VOb3cpCit7CisgICAgQVNTRVJUKG11bHRpcGxlKCkpOworICAgIGlmIChtX2RhdGEudXNlc01l
bnVMaXN0KCkpCisgICAgICAgIHNldFNlbGVjdGVkSW5kZXhCeVVzZXIob3B0aW9uSW5kZXgsIHRy
dWUsIGZpcmVPbkNoYW5nZU5vdyk7CisgICAgZWxzZQorICAgICAgICBsaXN0Qm94U2VsZWN0SXRl
bShvcHRpb25JbmRleCwgdHJ1ZSwgZmFsc2UsIGZpcmVPbkNoYW5nZU5vdyk7Cit9CisKIHZvaWQg
SFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hTZWxlY3RJdGVtKGludCBsaXN0SW5kZXgsIGJvb2wg
YWxsb3dNdWx0aXBseVNlbGVjdGlvbnMsIGJvb2wgc2hpZnQsIGJvb2wgZmlyZU9uQ2hhbmdlTm93
KQogewogICAgIGlmICghbXVsdGlwbGUoKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXgg
NzliMDc4OS4uZDY0NDYyNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTQyLDYgKzQy
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IHNlbGVjdGVkSW5kZXgoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRJbmRleChpbnQgaW5kZXgsIGJvb2wgZGVzZWxlY3Qg
PSB0cnVlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgaW5k
ZXgsIGJvb2wgZGVzZWxlY3QgPSB0cnVlLCBib29sIGZpcmVPbkNoYW5nZU5vdyA9IGZhbHNlKTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRJbmRleE9uTXVsdGlwbGVCeVVzZXIoaW50IGlu
ZGV4LCBib29sIGZpcmVPbkNoYW5nZU5vdyA9IGZhbHNlKTsKIAogICAgIHVuc2lnbmVkIGxlbmd0
aCgpIGNvbnN0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>66545</attachid>
            <date>2010-09-03 14:42:38 -0700</date>
            <delta_ts>2010-09-03 14:42:38 -0700</delta_ts>
            <desc>[TEST] Autofill Test Case</desc>
            <filename>autofill-test.html</filename>
            <type>text/html</type>
            <size>734</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">PGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0iIyI+CjxwPk11bHRpcGxlPC9wPgo8c2VsZWN0IG5h
bWU9InN0YXRlIiBtdWx0aXBsZT0ibXVsdGlwbGUiIG9uY2hhbmdlPSJhbGVydCgnbXVsdGlwbGUg
LSB3b3JrcycpOyI+CiAgICA8b3B0aW9uIHZhbHVlPSIwIj5OZXcgWW9yazwvb3B0aW9uPgogICAg
PG9wdGlvbiB2YWx1ZT0iMSI+Q2FsaWZvcm5pYTwvb3B0aW9uPgogICAgPG9wdGlvbiB2YWx1ZT0i
MiI+R2VvcmdpYTwvb3B0aW9uPgo8L3NlbGVjdD4KCjxwPnNpemU9MzwvcD4KPHNlbGVjdCBuYW1l
PSJzdGF0ZSIgc2l6ZT0iMyIgb25jaGFuZ2U9ImFsZXJ0KCdzaXplICZndDsgMSAtIHdvcmtzJyk7
Ij4KICAgIDxvcHRpb24gdmFsdWU9IjAiPk5ldyBZb3JrPC9vcHRpb24+CiAgICA8b3B0aW9uIHZh
bHVlPSIxIj5DYWxpZm9ybmlhPC9vcHRpb24+CiAgICA8b3B0aW9uIHZhbHVlPSIyIj5HZW9yZ2lh
PC9vcHRpb24+Cjwvc2VsZWN0PgoKPHA+U2luZ2xlPC9wPgo8c2VsZWN0IG5hbWU9InN0YXRlIiBv
bmNoYW5nZT0iYWxlcnQoJ3NpbmdsZSAtIHdvcmtzJyk7Ij4KICAgIDxvcHRpb24gdmFsdWU9IjAi
Pk5ldyBZb3JrPC9vcHRpb24+CiAgICA8b3B0aW9uIHZhbHVlPSIxIj5DYWxpZm9ybmlhPC9vcHRp
b24+CiAgICA8b3B0aW9uIHZhbHVlPSIyIj5HZW9yZ2lhPC9vcHRpb24+Cjwvc2VsZWN0PgoKPGJy
Pjxicj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCI+CjwvZm9ybT4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66546</attachid>
            <date>2010-09-03 14:44:49 -0700</date>
            <delta_ts>2010-09-07 03:20:00 -0700</delta_ts>
            <desc>[PATCH] Generically Handle listbox &lt;select&gt;s</desc>
            <filename>select-autocomplete-2.patch</filename>
            <type>text/plain</type>
            <size>3360</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTRiN2RjYy4uOTJhMGM3ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wOS0wMyAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVja0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYSB3YXkgdG8gdHJpZ2dlciBhIDxzZWxlY3QgbXVs
dGlwbGU+IG9uY2hhbmdlIGV2ZW50IG9uIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTkyCisKKyAgICAgICAgVGhpcyBwcm92aWRlcyBh
IHdheSBmb3IgYSBXZWJLaXQgY2xpZW50IHVzaW5nIHRoZSBPYmotQyBET00gYmluZGluZ3MgdG8K
KyAgICAgICAgdHJpZ2dlciB0aGUgImNoYW5nZSIgb24gYSBsaXN0Ym94IHNlbGVjdCAoPHNlbGVj
dCBtdWx0aXBsZT4gb3IgPHNlbGVjdD4KKyAgICAgICAgd2l0aCBzaXplID4gMSkuIFRoaXMgaXMg
YmVjYXVzZSB3aGVuIGEgc2VsZWN0IGlzIHJlbmRlcmVkIGFzIGEgbGlzdGJveAorICAgICAgICAi
Y2hhbmdlIiBldmVudHMgYXJlIHRyaWdnZXJlZCBieSBtb3VzZSBkb3duIGV2ZW50cy4KKworICAg
ICAgICAqIGJpbmRpbmdzL29iamMvRE9NUHJpdmF0ZS5oOiB1bmlmaWVkIHRoZSBDYXRlZ29yeSBu
YW1lLiBXYXMgIkZvcm1zQXV0b2NvbXBsZXRlIiBub3cgYWxsIGFyZSAiRm9ybUF1dG9jb21wbGV0
ZSIuCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcik6IGxpc3Rib3hz
IG5lZWQgdG8gYmUgdHJlYXRlZCBzcGVjaWFsbHkgdG8gZmlyZSB0aGVpciAiY2hhbmdlIiBldmVu
dC4KKwogMjAxMC0wOS0wMyAgSm9obm55IERpbmcgIDxqbmRAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NUHJpdmF0ZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVByaXZhdGUuaApp
bmRleCBiOGU0NDYwLi43MWZlNGFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NUHJpdmF0ZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Qcml2YXRlLmgKQEAg
LTY5LDcgKzY5LDcgQEAKIC8vIEFsbCB0aGUgbWV0aG9kcyBpbiB0aGlzIGNhdGVnb3J5IGFyZSB1
c2VkIGJ5IFNhZmFyaSBmb3JtcyBhdXRvZmlsbCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGZvciBh
bnkgb3RoZXIgcHVycG9zZS4KIC8vIEVhY2ggb25lIHNob3VsZCBldmVudHVhbGx5IGJlIHJlcGxh
Y2VkIGJ5IHB1YmxpYyBET00gQVBJLCBhbmQgd2hlbiB0aGF0IGhhcHBlbnMgU2FmYXJpIHdpbGwg
c3dpdGNoIHRvIGltcGxlbWVudGF0aW9ucyAKIC8vIHVzaW5nIHRoYXQgcHVibGljIEFQSSwgYW5k
IHRoZXNlIHdpbGwgYmUgZGVsZXRlZC4KLUBpbnRlcmZhY2UgRE9NSFRNTElucHV0RWxlbWVudCAo
Rm9ybXNBdXRvRmlsbFRyYW5zaXRpb24pCitAaW50ZXJmYWNlIERPTUhUTUxJbnB1dEVsZW1lbnQg
KEZvcm1BdXRvRmlsbFRyYW5zaXRpb24pCiAtIChCT09MKV9pc0F1dG9maWxsZWQ7CiAtIChCT09M
KV9pc1RleHRGaWVsZDsKIC0gKE5TUmVjdClfcmVjdE9uU2NyZWVuOyAvLyBib3VuZGluZyBib3gg
b2YgdGhlIHRleHQgZmllbGQsIGluIHNjcmVlbiBjb29yZGluYXRlcwpAQCAtOTIsNiArOTIsNiBA
QAogLy8gVGhleSBhcmUgc3RvcGdhcCBtZWFzdXJlcyB1bnRpbCB3ZSBmaW5pc2ggdHJhbnNpdGlv
bmluZyBmb3JtIGNvbnRyb2xzIHRvIG5vdCB1c2UgTlNWaWV3LiBFYWNoIG9uZSBzaG91bGQgYmVj
b21lCiAvLyByZXBsYWNlYWJsZSBieSBwdWJsaWMgRE9NIEFQSSwgYW5kIHdoZW4gdGhhdCBoYXBw
ZW5zIFNhZmFyaSB3aWxsIHN3aXRjaCB0byBpbXBsZW1lbnRhdGlvbnMgdXNpbmcgdGhhdCBwdWJs
aWMgQVBJLAogLy8gYW5kIHRoZXNlIHdpbGwgYmUgZGVsZXRlZC4KLUBpbnRlcmZhY2UgRE9NSFRN
TFNlbGVjdEVsZW1lbnQgKEZvcm1zQXV0b0ZpbGxUcmFuc2l0aW9uKQorQGludGVyZmFjZSBET01I
VE1MU2VsZWN0RWxlbWVudCAoRm9ybUF1dG9GaWxsVHJhbnNpdGlvbikKIC0gKHZvaWQpX2FjdGl2
YXRlSXRlbUF0SW5kZXg6KGludClpbmRleDsKIEBlbmQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwCmluZGV4IGIxYjZkMjMuLmY5OTQ2YjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cApAQCAtODcsNiArODcsMTUgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJ
bmRleChpbnQgb3B0aW9uSW5kZXgsIGJvb2wgZGVzZWxlY3QpCiAKIHZvaWQgSFRNTFNlbGVjdEVs
ZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXhCeVVzZXIoaW50IG9wdGlvbkluZGV4LCBib29sIGRlc2Vs
ZWN0LCBib29sIGZpcmVPbkNoYW5nZU5vdykKIHsKKyAgICAvLyBMaXN0IGJveCBzZWxlY3RzIGNh
biBmaXJlIG9uY2hhbmdlIGV2ZW50cyB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24sIHN1Y2ggYXMK
KyAgICAvLyBtb3VzZWRvd24gZXZlbnRzLiBUaGlzIGFsbG93cyB0aGF0IHNhbWUgYmVoYXZpb3Ig
cHJvZ3JhbW1hdGljYWxseS4KKyAgICBpZiAoIW1fZGF0YS51c2VzTWVudUxpc3QoKSkgeworICAg
ICAgICB1cGRhdGVTZWxlY3RlZFN0YXRlKG1fZGF0YSwgdGhpcywgb3B0aW9uSW5kZXgsIGZhbHNl
LCBmYWxzZSk7CisgICAgICAgIGlmIChmaXJlT25DaGFuZ2VOb3cpCisgICAgICAgICAgICBsaXN0
Qm94T25DaGFuZ2UoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIEJhaWwgb3V0
IGlmIHRoaXMgaW5kZXggaXMgYWxyZWFkeSB0aGUgc2VsZWN0ZWQgb25lLCB0byBhdm9pZCBydW5u
aW5nIHVubmVjZXNzYXJ5IEphdmFTY3JpcHQgdGhhdCBjYW4gbWVzcyB1cAogICAgIC8vIGF1dG9m
aWxsLCB3aGVuIHRoZXJlIGlzIG5vIGFjdHVhbCBjaGFuZ2UgKHNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUyNTYgYW5kIHJkYXI6Ly83NDY3OTE3ICkuCiAgICAg
Ly8gUGVyaGFwcyB0aGlzIGxvZ2ljIGNvdWxkIGJlIG1vdmVkIGludG8gU2VsZWN0RWxlbWVudCwg
YnV0IHNvbWUgY2FsbGVycyBvZiBTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4KCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66569</attachid>
            <date>2010-09-03 17:21:58 -0700</date>
            <delta_ts>2010-09-07 12:02:45 -0700</delta_ts>
            <desc>[PATCH] -[DOMHTMLSelectElement _activateItemAtIndex:allowMultipleSelection:]</desc>
            <filename>select-3.patch</filename>
            <type>text/plain</type>
            <size>7163</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTRiN2RjYy4uMGY4ZThkYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMC0wOS0wMyAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVja0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYSB3YXkgdG8gdHJpZ2dlciBhIDxzZWxlY3QgbXVs
dGlwbGU+IG9uY2hhbmdlIGV2ZW50IG9uIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTkyCisKKyAgICAgICAgVGVzdDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtYWN0aXZhdGUuaHRtbAor
CisgICAgICAgIFRoaXMgcHJvdmlkZXMgYSB3YXkgZm9yIGEgV2ViS2l0IGNsaWVudCB1c2luZyB0
aGUgT2JqLUMgRE9NIGJpbmRpbmdzIHRvCisgICAgICAgIHRyaWdnZXIgdGhlICJjaGFuZ2UiIG9u
IGEgbGlzdGJveCBzZWxlY3QgKDxzZWxlY3QgbXVsdGlwbGU+IG9yIDxzZWxlY3Q+CisgICAgICAg
IHdpdGggc2l6ZSA+IDEpLiBUaGlzIGlzIGJlY2F1c2Ugd2hlbiBhIHNlbGVjdCBpcyByZW5kZXJl
ZCBhcyBhIGxpc3Rib3gKKyAgICAgICAgImNoYW5nZSIgZXZlbnRzIGFyZSB0cmlnZ2VyZWQgYnkg
bW91c2UgZG93biBldmVudHMuCisKKyAgICAgICAgVGhpcyBhZGRzIC1bRE9NSFRNTFNlbGVjdEVs
ZW1lbnQgX2FjdGl2YXRlSXRlbUF0SW5kZXg6YWxsb3dNdWx0aXBsZVNlbGVjdGlvbjpdCisgICAg
ICAgIHRvIGFsbG93IGZvciBoYW5kbGluZyBtdWx0aXBsZSBzZWxlY3Rpb25zIGlmIHRoZSBzZWxl
Y3QgZWxlbWVudCBpcyBhCisgICAgICAgIG11bHRpLXNlbGVjdC4KKworICAgICAgICAqIGJpbmRp
bmdzL29iamMvRE9NSFRNTC5tbToKKyAgICAgICAgKC1bRE9NSFRNTFNlbGVjdEVsZW1lbnQgX2Fj
dGl2YXRlSXRlbUF0SW5kZXg6YWxsb3dNdWx0aXBsZVNlbGVjdGlvbjpdKToKKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTVByaXZhdGUuaDogdW5pZmllZCB0aGUgQ2F0ZWdvcnkgbmFtZS4gV2Fz
ICJGb3Jtc0F1dG9jb21wbGV0ZSIgbm93IGFsbCBhcmUgIkZvcm1BdXRvY29tcGxldGUiLgorICAg
ICAgICAqIGRvbS9TZWxlY3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0
ZWRJbmRleEJ5VXNlcik6IGxpc3Rib3hzIG5lZWQgdG8gYmUgdHJlYXRlZCBzcGVjaWFsbHkgdG8g
ZmlyZSB0aGVpciAiY2hhbmdlIiBldmVudC4KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVt
ZW50Lmg6CisgICAgICAgICogd21sL1dNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V01MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcik6CisKIDIwMTAt
MDktMDMgIEpvaG5ueSBEaW5nICA8am5kQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUwubW0gYi9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5tbQppbmRleCBkYjY0YWZlLi44
ODRhNWIwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5tbQorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5tbQpAQCAtMTY2LDYgKzE2NiwxNSBAQAog
ICAgICAgICBzZWxlY3QtPnNldFNlbGVjdGVkSW5kZXhCeVVzZXIoaW5kZXgsIHRydWUsIHRydWUp
OwogfQogCistICh2b2lkKV9hY3RpdmF0ZUl0ZW1BdEluZGV4OihpbnQpaW5kZXggYWxsb3dNdWx0
aXBsZVNlbGVjdGlvbjooQk9PTClhbGxvd011bHRpcGxlU2VsZWN0aW9uCit7CisgICAgLy8gVXNl
IHRoZSBzZXRTZWxlY3RlZEluZGV4QnlVc2VyIGZ1bmN0aW9uIHNvIGEgY2hhbmdlIGV2ZW50IHdp
bGwgYmUgZmlyZWQuIDxyZGFyOi8vcHJvYmxlbS82NzYwNTkwPgorICAgIC8vIElmIHRoaXMgaXMg
YSA8c2VsZWN0IG11bHRpcGxlPiB0aGUgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbiBmbGFnIHdpbGwg
YWxsb3cgc2V0dGluZyBtdWx0aXBsZQorICAgIC8vIHNlbGVjdGlvbnMgd2l0aG91dCBjbGVhcmlu
ZyB0aGUgb3RoZXIgc2VsZWN0aW9ucy4KKyAgICBpZiAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1l
bnQqIHNlbGVjdCA9IGNvcmUoc2VsZikpCisgICAgICAgIHNlbGVjdC0+c2V0U2VsZWN0ZWRJbmRl
eEJ5VXNlcihpbmRleCwgdHJ1ZSwgdHJ1ZSwgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbik7Cit9CisK
IEBlbmQKIAogQGltcGxlbWVudGF0aW9uIERPTUhUTUxJbnB1dEVsZW1lbnQgKEZvcm1Qcm9tcHRB
ZGRpdGlvbnMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUHJpdmF0ZS5o
IGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVByaXZhdGUuaAppbmRleCBiOGU0NDYwLi5hYjNi
NTYzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUHJpdmF0ZS5oCisrKyBi
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Qcml2YXRlLmgKQEAgLTY5LDcgKzY5LDcgQEAKIC8v
IEFsbCB0aGUgbWV0aG9kcyBpbiB0aGlzIGNhdGVnb3J5IGFyZSB1c2VkIGJ5IFNhZmFyaSBmb3Jt
cyBhdXRvZmlsbCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGZvciBhbnkgb3RoZXIgcHVycG9zZS4K
IC8vIEVhY2ggb25lIHNob3VsZCBldmVudHVhbGx5IGJlIHJlcGxhY2VkIGJ5IHB1YmxpYyBET00g
QVBJLCBhbmQgd2hlbiB0aGF0IGhhcHBlbnMgU2FmYXJpIHdpbGwgc3dpdGNoIHRvIGltcGxlbWVu
dGF0aW9ucyAKIC8vIHVzaW5nIHRoYXQgcHVibGljIEFQSSwgYW5kIHRoZXNlIHdpbGwgYmUgZGVs
ZXRlZC4KLUBpbnRlcmZhY2UgRE9NSFRNTElucHV0RWxlbWVudCAoRm9ybXNBdXRvRmlsbFRyYW5z
aXRpb24pCitAaW50ZXJmYWNlIERPTUhUTUxJbnB1dEVsZW1lbnQgKEZvcm1BdXRvRmlsbFRyYW5z
aXRpb24pCiAtIChCT09MKV9pc0F1dG9maWxsZWQ7CiAtIChCT09MKV9pc1RleHRGaWVsZDsKIC0g
KE5TUmVjdClfcmVjdE9uU2NyZWVuOyAvLyBib3VuZGluZyBib3ggb2YgdGhlIHRleHQgZmllbGQs
IGluIHNjcmVlbiBjb29yZGluYXRlcwpAQCAtOTIsNiArOTIsNyBAQAogLy8gVGhleSBhcmUgc3Rv
cGdhcCBtZWFzdXJlcyB1bnRpbCB3ZSBmaW5pc2ggdHJhbnNpdGlvbmluZyBmb3JtIGNvbnRyb2xz
IHRvIG5vdCB1c2UgTlNWaWV3LiBFYWNoIG9uZSBzaG91bGQgYmVjb21lCiAvLyByZXBsYWNlYWJs
ZSBieSBwdWJsaWMgRE9NIEFQSSwgYW5kIHdoZW4gdGhhdCBoYXBwZW5zIFNhZmFyaSB3aWxsIHN3
aXRjaCB0byBpbXBsZW1lbnRhdGlvbnMgdXNpbmcgdGhhdCBwdWJsaWMgQVBJLAogLy8gYW5kIHRo
ZXNlIHdpbGwgYmUgZGVsZXRlZC4KLUBpbnRlcmZhY2UgRE9NSFRNTFNlbGVjdEVsZW1lbnQgKEZv
cm1zQXV0b0ZpbGxUcmFuc2l0aW9uKQorQGludGVyZmFjZSBET01IVE1MU2VsZWN0RWxlbWVudCAo
Rm9ybUF1dG9GaWxsVHJhbnNpdGlvbikKIC0gKHZvaWQpX2FjdGl2YXRlSXRlbUF0SW5kZXg6KGlu
dClpbmRleDsKKy0gKHZvaWQpX2FjdGl2YXRlSXRlbUF0SW5kZXg6KGludClpbmRleCBhbGxvd011
bHRpcGxlU2VsZWN0aW9uOihCT09MKWFsbG93TXVsdGlwbGVTZWxlY3Rpb247CiBAZW5kCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmggYi9XZWJDb3JlL2RvbS9TZWxlY3RF
bGVtZW50LmgKaW5kZXggZjAwYmI2Ny4uNzNlMjYyMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
U2VsZWN0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuaApAQCAtNTks
NyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGludCBzZWxlY3RlZEluZGV4KCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZEluZGV4KGludCBpbmRleCwgYm9v
bCBkZXNlbGVjdCA9IHRydWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRJbmRl
eEJ5VXNlcihpbnQgaW5kZXgsIGJvb2wgZGVzZWxlY3QgPSB0cnVlLCBib29sIGZpcmVPbkNoYW5n
ZU5vdyA9IGZhbHNlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkSW5kZXhCeVVz
ZXIoaW50IGluZGV4LCBib29sIGRlc2VsZWN0ID0gdHJ1ZSwgYm9vbCBmaXJlT25DaGFuZ2VOb3cg
PSBmYWxzZSwgYm9vbCBhbGxvd011bHRpcGxlU2VsZWN0aW9uID0gZmFsc2UpID0gMDsKIAogICAg
IHZpcnR1YWwgdm9pZCBsaXN0Qm94U2VsZWN0SXRlbShpbnQgbGlzdEluZGV4LCBib29sIGFsbG93
TXVsdGlwbHlTZWxlY3Rpb25zLCBib29sIHNoaWZ0LCBib29sIGZpcmVPbkNoYW5nZU5vdyA9IHRy
dWUpID0gMDsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cCBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggYjFiNmQyMy4uYzY4
MGU5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC04NSw4ICs4NSwxNyBAQCB2
b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4KGludCBvcHRpb25JbmRleCwg
Ym9vbCBkZXNlbGVjdCkKICAgICBTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4KG1fZGF0
YSwgdGhpcywgb3B0aW9uSW5kZXgsIGRlc2VsZWN0LCBmYWxzZSwgZmFsc2UpOwogfQogCi12b2lk
IEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4QnlVc2VyKGludCBvcHRpb25JbmRl
eCwgYm9vbCBkZXNlbGVjdCwgYm9vbCBmaXJlT25DaGFuZ2VOb3cpCit2b2lkIEhUTUxTZWxlY3RF
bGVtZW50OjpzZXRTZWxlY3RlZEluZGV4QnlVc2VyKGludCBvcHRpb25JbmRleCwgYm9vbCBkZXNl
bGVjdCwgYm9vbCBmaXJlT25DaGFuZ2VOb3csIGJvb2wgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbikK
IHsKKyAgICAvLyBMaXN0IGJveCBzZWxlY3RzIGNhbiBmaXJlIG9uY2hhbmdlIGV2ZW50cyB0aHJv
dWdoIHVzZXIgaW50ZXJhY3Rpb24sIHN1Y2ggYXMKKyAgICAvLyBtb3VzZWRvd24gZXZlbnRzLiBU
aGlzIGFsbG93cyB0aGF0IHNhbWUgYmVoYXZpb3IgcHJvZ3JhbW1hdGljYWxseS4KKyAgICBpZiAo
IW1fZGF0YS51c2VzTWVudUxpc3QoKSkgeworICAgICAgICB1cGRhdGVTZWxlY3RlZFN0YXRlKG1f
ZGF0YSwgdGhpcywgb3B0aW9uSW5kZXgsIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24sIGZhbHNlKTsK
KyAgICAgICAgaWYgKGZpcmVPbkNoYW5nZU5vdykKKyAgICAgICAgICAgIGxpc3RCb3hPbkNoYW5n
ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gQmFpbCBvdXQgaWYgdGhpcyBp
bmRleCBpcyBhbHJlYWR5IHRoZSBzZWxlY3RlZCBvbmUsIHRvIGF2b2lkIHJ1bm5pbmcgdW5uZWNl
c3NhcnkgSmF2YVNjcmlwdCB0aGF0IGNhbiBtZXNzIHVwCiAgICAgLy8gYXV0b2ZpbGwsIHdoZW4g
dGhlcmUgaXMgbm8gYWN0dWFsIGNoYW5nZSAoc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNTI1NiBhbmQgcmRhcjovLzc0Njc5MTcgKS4KICAgICAvLyBQZXJoYXBz
IHRoaXMgbG9naWMgY291bGQgYmUgbW92ZWQgaW50byBTZWxlY3RFbGVtZW50LCBidXQgc29tZSBj
YWxsZXJzIG9mIFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgoKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuaAppbmRleCA3OWIwNzg5Li5hM2I0NDYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGludCBzZWxlY3Rl
ZEluZGV4KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkSW5kZXgoaW50IGlu
ZGV4LCBib29sIGRlc2VsZWN0ID0gdHJ1ZSk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVk
SW5kZXhCeVVzZXIoaW50IGluZGV4LCBib29sIGRlc2VsZWN0ID0gdHJ1ZSwgYm9vbCBmaXJlT25D
aGFuZ2VOb3cgPSBmYWxzZSk7CisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkSW5kZXhCeVVz
ZXIoaW50IGluZGV4LCBib29sIGRlc2VsZWN0ID0gdHJ1ZSwgYm9vbCBmaXJlT25DaGFuZ2VOb3cg
PSBmYWxzZSwgYm9vbCBhbGxvd011bHRpcGxlU2VsZWN0aW9uID0gZmFsc2UpOwogCiAgICAgdW5z
aWduZWQgbGVuZ3RoKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd21sL1dNTFNlbGVj
dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS93bWwvV01MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggODFj
M2E3Ny4uNzg3NDliMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS93bWwvV01MU2VsZWN0RWxlbWVudC5j
cHAKKysrIGIvV2ViQ29yZS93bWwvV01MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTExNCw4ICsxMTQs
OSBAQCB2b2lkIFdNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgoaW50IG9wdGlvbklu
ZGV4LCBib29sIGRlc2VsZWN0KQogICAgIFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgo
bV9kYXRhLCB0aGlzLCBvcHRpb25JbmRleCwgZGVzZWxlY3QsIGZhbHNlLCBmYWxzZSk7CiB9CiAK
LXZvaWQgV01MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgb3B0aW9u
SW5kZXgsIGJvb2wgZGVzZWxlY3QsIGJvb2wgZmlyZU9uQ2hhbmdlTm93KQordm9pZCBXTUxTZWxl
Y3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4QnlVc2VyKGludCBvcHRpb25JbmRleCwgYm9vbCBk
ZXNlbGVjdCwgYm9vbCBmaXJlT25DaGFuZ2VOb3csIGJvb2wgYWxsb3dNdWx0aXBsZVNlbGVjdGlv
bikKIHsKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dNdWx0aXBsZVNlbGVjdGlvbik7CiAgICAgU2Vs
ZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleChtX2RhdGEsIHRoaXMsIG9wdGlvbkluZGV4LCBk
ZXNlbGVjdCwgZmlyZU9uQ2hhbmdlTm93LCB0cnVlKTsKIH0KIAo=
</data>
<flag name="review"
          id="55619"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66570</attachid>
            <date>2010-09-03 17:22:48 -0700</date>
            <delta_ts>2010-09-07 16:14:50 -0700</delta_ts>
            <desc>[PATCH] Automated Test</desc>
            <filename>add-automated-test.patch</filename>
            <type>text/plain</type>
            <size>18707</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NDBkMjdmLi4xMGE5MjBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDkt
MDMgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIHRyaWdn
ZXIgYSA8c2VsZWN0IG11bHRpcGxlPiBvbmNoYW5nZSBldmVudCBvbiBjaGFuZ2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTE5MgorCisgICAgICAg
IFRlc3RpbmcgdGhlIERPTUhUTUxTZWxlY3RFbGVtZW50IGludGVyZmFjZSBmb3Igc2VsZWN0aW5n
IGFuCisgICAgICAgIGluZGV4IGluIGEgPHNlbGVjdD4gYW5kIHRyaWdnZXJpbmcgYSAiY2hhbmdl
IiBldmVudC4gVGhpcyBhbHNvCisgICAgICAgIHRlc3RzIGZvciBhbGxvd2luZyBtdWx0aXBsZSBz
ZWxlY3Rpb25zLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1z
ZWxlY3QtYWN0aXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1hY3RpdmF0ZS5odG1sOiBBZGRlZC4KKwogMjAx
MC0wOS0wMyAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1o
dG1sLXNlbGVjdC1hY3RpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1hY3RpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5NjE4MQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L29iamMvZG9tLWh0bWwtc2VsZWN0LWFjdGl2
YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACisgICAgICAKK1RoaXMgdGVzdHMgdGhl
IERPTSBIVE1MIEFQSSBmb3Igc2VsZWN0aW5nIGluZGV4ZXMgb2YgYSA8c2VsZWN0PiB0aGF0IGFs
c28gYWN0aXZhdGUgdGhlICJjaGFuZ2UiIGV2ZW50LgorCitTZWxlY3QgYSBzaW5nbGUgaW5kZXgg
aW4gYSBub3JtYWwgPHNlbGVjdD4uCistLSBjaGFuZ2UgZXZlbnQgZmlyZWQgLS0KK1BBU1MgLSBl
eHBlY3RlZCBpbmRleCB3YXMgc2VsZWN0ZWQuCisKK1NlbGVjdCBhIHNpbmdsZSBpbmRleCBpbiBh
IHNpemVkIDxzZWxlY3Q+LgorLS0gY2hhbmdlIGV2ZW50IGZpcmVkIC0tCitQQVNTIC0gZXhwZWN0
ZWQgaW5kZXggd2FzIHNlbGVjdGVkLgorCitTZWxlY3QgbXVsdGlwbGUgaW5kZXhlcywgaW4gYSA8
c2VsZWN0IG11bHRpcGxlPi4KKy0tIGNoYW5nZSBldmVudCBmaXJlZCAtLQorLS0gY2hhbmdlIGV2
ZW50IGZpcmVkIC0tCitQQVNTIC0gc2VsZWN0ZWQgb3B0aW9ucyB3ZXJlIHdoYXQgd2UgZXhwZWN0
ZWQuCisKK1NlbGVjdCBtdWx0aXBsZSBpbmRleGVzLCB3aXRoIG11bHRpLXNlbGVjdCBvbiwgaW4g
YSA8c2VsZWN0IG11bHRpcGxlPi4KKy0tIGNoYW5nZSBldmVudCBmaXJlZCAtLQorLS0gY2hhbmdl
IGV2ZW50IGZpcmVkIC0tCitQQVNTIC0gc2VsZWN0ZWQgb3B0aW9ucyB3ZXJlIHdoYXQgd2UgZXhw
ZWN0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L29iamMv
ZG9tLWh0bWwtc2VsZWN0LWFjdGl2YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1hY3RpdmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjRkYmNlNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1hY3RpdmF0ZS5odG1sCkBA
IC0wLDAgKzEsMTMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+PHRpdGxlPjwv
dGl0bGU+PC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorCisgICAgPHNlbGVjdCBpZD0i
c2luZ2xlIj4KKyAgICAgICAgPG9wdGlvbj4wPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+MTwv
b3B0aW9uPgorICAgICAgICA8b3B0aW9uPjI8L29wdGlvbj4KKyAgICA8L3NlbGVjdD4KKworICAg
IDxzZWxlY3QgaWQ9InNpemVkIiBzaXplPSIzIj4KKyAgICAgICAgPG9wdGlvbj4wPC9vcHRpb24+
CisgICAgICAgIDxvcHRpb24+MTwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPjI8L29wdGlvbj4K
KyAgICA8L3NlbGVjdD4KKworICAgIDxzZWxlY3QgaWQ9Im11bHRpcGxlLTEiIG11bHRpcGxlPgor
ICAgICAgICA8b3B0aW9uPjA8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj4xPC9vcHRpb24+Cisg
ICAgICAgIDxvcHRpb24+Mjwvb3B0aW9uPgorICAgIDwvc2VsZWN0PgorCisgICAgPHNlbGVjdCBp
ZD0ibXVsdGlwbGUtMiIgbXVsdGlwbGU+CisgICAgICAgIDxvcHRpb24+MDwvb3B0aW9uPgorICAg
ICAgICA8b3B0aW9uPjE8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj4yPC9vcHRpb24+CisgICAg
PC9zZWxlY3Q+CisKKyAgICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKworICAgIDxzY3JpcHQ+
CisKKyAgICAvLyAtLS0tLS0tLS0tLQorICAgIC8vICAgSGVscGVycworICAgIC8vIC0tLS0tLS0t
LS0tCisKKyAgICBmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNn
ICsgIlxuIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uQ2hhbmdlRXZlbnRIYW5kbGVyKGV2
ZW50KSB7CisgICAgICAgIGxvZygiLS0gY2hhbmdlIGV2ZW50IGZpcmVkIC0tIik7CisgICAgfQor
CisgICAgZnVuY3Rpb24gYXNzZXJ0U2VsZWN0ZWRJbmRleChlbGVtLCBpbmRleCkgeworICAgICAg
ICBpZiAoZWxlbS5zZWxlY3RlZEluZGV4ID09PSBpbmRleCkKKyAgICAgICAgICAgIGxvZygiUEFT
UyAtIGV4cGVjdGVkIGluZGV4IHdhcyBzZWxlY3RlZC4iKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgbG9nKCJGQUlMIC0gZXhwZWN0ZWQgaW5kZXggd2FzICIgKyBlbGVtLnNlbGVjdGVkICsg
IiBidXQgd2FzIGV4cGVjdGVkIHRvIGJlICIgKyBpbmRleCArIi4iKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBhc3NlcnROb3RoaW5nU2VsZWN0ZWQoZWxlbSkgeworICAgICAgICBpZiAoZWxlbS5z
ZWxlY3RlZEluZGV4ID09PSAtMSkKKyAgICAgICAgICAgIGxvZygiUEFTUyAtIFNlbGVjdCBoYXMg
bm90aGluZyBzZWxlY3RlZCB5ZXQuIik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYWxl
cnQoZWxlbS5zZWxlY3RlZEluZGV4KTsKKyAgICAgICAgICAgIGxvZygiRkFJTCAtIFNob3VsZCBu
b3QgaGF2ZSBoYWQgYSBzZWxlY3RlZCBlbGVtZW50LiIpOworICAgICAgICB9CisgICAgfQorCisg
ICAgZnVuY3Rpb24gYXNzZXJ0Q2hhbmdlRXZlbnRGaXJlZCgpIHsKKyAgICAgICAgaWYgKG9uY2hh
bmdlRGlkRmlyZSkKKyAgICAgICAgICAgIGxvZygiUEFTUyAtIGNoYW5nZSBldmVudCBmaXJlZC4i
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9nKCJGQUlMIC0gY2hhbmdlIGV2ZW50IGRp
ZCBub3QgZmlyZS4iKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhc3NlcnRTZWxlY3RlZEluZGV4
ZXMoZWxlbSwgZmxhZ3MpIHsKKyAgICAgICAgdmFyIGFsbEdvb2QgPSB0cnVlOworICAgICAgICB2
YXIgb3B0aW9ucyA9IGVsZW0ub3B0aW9uczsKKyAgICAgICAgZm9yICh2YXIgaT0wOyBpPG9wdGlv
bnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChvcHRpb25zW2ldLnNlbGVjdGVkICE9
PSBmbGFnc1tpXSkgeworICAgICAgICAgICAgICAgIGxvZygiRkFJTCAtIG9wdGlvbiAiICsgaSAr
ICIgd2FzIG5vdCB3aGF0IHdlIGV4cGVjdGVkLiIpOworICAgICAgICAgICAgICAgIGFsbEdvb2Qg
PSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChhbGxHb29k
KQorICAgICAgICAgICAgbG9nKCJQQVNTIC0gc2VsZWN0ZWQgb3B0aW9ucyB3ZXJlIHdoYXQgd2Ug
ZXhwZWN0ZWQuIikKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0KKyAgICAvLyAgIFRoZSBU
ZXN0CisgICAgLy8gLS0tLS0tLS0tLS0tCisKKyAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAg
ICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgbG9nKCJU
aGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiIpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworCisgICAgICAgIGxvZygiVGhpcyB0ZXN0cyB0aGUgRE9NIEhUTUwgQVBJ
IGZvciBzZWxlY3RpbmcgaW5kZXhlcyBvZiBhIDxzZWxlY3Q+IHRoYXQgYWxzbyBhY3RpdmF0ZSB0
aGUgXCJjaGFuZ2VcIiBldmVudC4iKTsKKyAgICAgICAgd3JhcHBlcigiU2VsZWN0IGEgc2luZ2xl
IGluZGV4IGluIGEgbm9ybWFsIDxzZWxlY3Q+LiIsICJzaW5nbGUiLCB0ZXN0U2luZ2xlKTsKKyAg
ICAgICAgd3JhcHBlcigiU2VsZWN0IGEgc2luZ2xlIGluZGV4IGluIGEgc2l6ZWQgPHNlbGVjdD4u
IiwgInNpemVkIiwgdGVzdFNpemVkKTsKKyAgICAgICAgd3JhcHBlcigiU2VsZWN0IG11bHRpcGxl
IGluZGV4ZXMsIGluIGEgPHNlbGVjdCBtdWx0aXBsZT4uIiwgIm11bHRpcGxlLTEiLCB0ZXN0TXVs
dGlwbGUxKTsKKyAgICAgICAgd3JhcHBlcigiU2VsZWN0IG11bHRpcGxlIGluZGV4ZXMsIHdpdGgg
bXVsdGktc2VsZWN0IG9uLCBpbiBhIDxzZWxlY3QgbXVsdGlwbGU+LiIsICJtdWx0aXBsZS0yIiwg
dGVzdE11bHRpcGxlMik7CisgICAgfQorCisgICAgZnVuY3Rpb24gd3JhcHBlcihtc2csIGlkLCBm
dW5jKSB7CisgICAgICAgIGxvZygiIik7CisgICAgICAgIGxvZyhtc2cpOworICAgICAgICB2YXIg
ZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgZWxlbS5hZGRFdmVu
dExpc3RlbmVyKCJjaGFuZ2UiLCBvbkNoYW5nZUV2ZW50SGFuZGxlciwgZmFsc2UpOworICAgICAg
ICBmdW5jKGVsZW0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RTaW5nbGUoZWxlbSkgewor
ICAgICAgICBkb21IdG1sQ29udHJvbGxlci50ZXN0QWN0aXZhdGVTaW5nbGVTZWxlY3RFbGVtZW50
KGVsZW0pOworICAgICAgICBhc3NlcnRTZWxlY3RlZEluZGV4KGVsZW0sIDEpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHRlc3RTaXplZChlbGVtKSB7CisgICAgICAgIGRvbUh0bWxDb250cm9sbGVy
LnRlc3RBY3RpdmF0ZVNpemVkU2VsZWN0RWxlbWVudChlbGVtKTsKKyAgICAgICAgYXNzZXJ0U2Vs
ZWN0ZWRJbmRleChlbGVtLCAxKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0TXVsdGlwbGUx
KGVsZW0pIHsKKyAgICAgICAgLy8gVHJpZ2dlcnMgc2VsZWN0aW5nIGluZGV4IDEgdGhlbiAyLCBl
eHBlY3RpbmcgdGhlIHJlc3VsdCB0byBiZSBqdXN0IGluZGV4IDIgc2VsZWN0ZWQuCisgICAgICAg
IGRvbUh0bWxDb250cm9sbGVyLnRlc3RBY3RpdmF0ZU11bHRpcGxlU2VsZWN0RWxlbWVudChlbGVt
KTsKKyAgICAgICAgYXNzZXJ0U2VsZWN0ZWRJbmRleGVzKGVsZW0sIFtmYWxzZSwgZmFsc2UsIHRy
dWVdKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0TXVsdGlwbGUyKGVsZW0pIHsKKyAgICAg
ICAgLy8gVHJpZ2dlcnMgc2VsZWN0aW5nIGluZGV4IDEgdGhlbiAyLCBleHBlY3RpbmcgdGhlIHJl
c3VsdCB0byBiZSBib3RoIGFyZSBzZWxlY3RlZC4KKyAgICAgICAgZG9tSHRtbENvbnRyb2xsZXIu
dGVzdEFjdGl2YXRlTXVsdGlwbGVTZWxlY3RFbGVtZW50QWxsb3dpbmdNdWx0aXBsZShlbGVtKTsK
KyAgICAgICAgYXNzZXJ0U2VsZWN0ZWRJbmRleGVzKGVsZW0sIFtmYWxzZSwgdHJ1ZSwgdHJ1ZV0p
OworICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCAxZjJlZjNl
Li4xM2IwOTMxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDktMDMgIEpvc2VwaCBQZWNv
cmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIHRyaWdnZXIgYSA8c2VsZWN0IG11
bHRpcGxlPiBvbmNoYW5nZSBldmVudCBvbiBjaGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTE5MgorCisgICAgICAgIEFkZHMgYSBjb250cm9s
bGVyIGZvciBkZWFsaW5nIHdpdGggRE9NIEhUTUwgcmVsYXRlZCBmZWF0dXJlcy4gVGhpcyB0ZXN0
cworICAgICAgICAtW0RPTUhUTUxTZWxlY3RFbGVtZW50IF9hY3RpdmF0ZUl0ZW1BdEluZGV4OmFs
bG93TXVsdGlwbGVTZWxlY3Rpb246XSBhbmQKKyAgICAgICAgaXRzIGRpZmZlcmVudCB1c2VzLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRE9NSFRNTENvbnRyb2xsZXIuaDogQWRkZWQuCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvRE9NSFRNTENvbnRyb2xsZXIubW06IEFkZGVkLgorICAg
ICAgICAoK1tET01IVE1MQ29udHJvbGxlciB3ZWJTY3JpcHROYW1lRm9yU2VsZWN0b3I6XSk6Cisg
ICAgICAgICgtW0RPTUhUTUxDb250cm9sbGVyIHRlc3RBY3RpdmF0ZVNpbmdsZVNlbGVjdEVsZW1l
bnQ6XSk6CisgICAgICAgICgtW0RPTUhUTUxDb250cm9sbGVyIHRlc3RBY3RpdmF0ZVNpemVkU2Vs
ZWN0RWxlbWVudDpdKToKKyAgICAgICAgKC1bRE9NSFRNTENvbnRyb2xsZXIgdGVzdEFjdGl2YXRl
TXVsdGlwbGVTZWxlY3RFbGVtZW50Ol0pOgorICAgICAgICAoLVtET01IVE1MQ29udHJvbGxlciB0
ZXN0QWN0aXZhdGVNdWx0aXBsZVNlbGVjdEVsZW1lbnRBbGxvd2luZ011bHRpcGxlOl0pOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0ZyYW1lTG9hZERlbGVnYXRlLm1t
OgorICAgICAgICAoLVtGcmFtZUxvYWREZWxlZ2F0ZSBkaWRDbGVhcldpbmRvd09iamVjdEluU3Rh
bmRhcmRXb3JsZEZvckZyYW1lOl0pOgorCiAyMDEwLTA5LTAzICBBbmRyZXkgS29zeWFrb3YgIDxj
YXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNr
eS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0RPTUhUTUxDb250cm9s
bGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ET01IVE1MQ29udHJvbGxlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlODllYTQKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ET01IVE1MQ29udHJvbGxlci5oCkBAIC0w
LDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKy8vIFRoaXMgQ29udHJvbGxl
ciBzaG91bGQgYmUgdXNlZCB0byB0ZXN0IE9iamVjdGl2ZSBDIERPTSBIVE1MIGJpbmRpbmcgZmVh
dHVyZXMuCitAaW50ZXJmYWNlIERPTUhUTUxDb250cm9sbGVyIDogTlNPYmplY3QKK0BlbmQKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0RPTUhUTUxDb250cm9sbGVyLm1t
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRE9NSFRNTENvbnRyb2xsZXIubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzI0NzMxNAotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0RPTUhUTUxDb250cm9sbGVyLm1tCkBAIC0wLDAg
KzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbXBvcnQgIkRPTUhUTUxDb250cm9sbGVyLmgiCisKKy8vIEF2b2lkIGNvbXBpbGUgZXJyb3Ig
aW4gRE9NUHJpdmF0ZS5oLgorQGNsYXNzIE5TRm9udDsKKworI2ltcG9ydCA8V2ViS2l0L0RPTS5o
PgorI2ltcG9ydCA8V2ViS2l0L0RPTVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJTY3Jp
cHRPYmplY3QuaD4KKworQGltcGxlbWVudGF0aW9uIERPTUhUTUxDb250cm9sbGVyCisKKysgKEJP
T0wpaXNTZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDooU0VMKWFTZWxlY3RvcgoreworICAg
IGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHRlc3RBY3RpdmF0ZVNpbmdsZVNlbGVjdEVsZW1l
bnQ6KQorICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHRlc3RBY3RpdmF0ZVNpemVk
U2VsZWN0RWxlbWVudDopCisgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IodGVzdEFj
dGl2YXRlTXVsdGlwbGVTZWxlY3RFbGVtZW50OikKKyAgICAgICAgfHwgYVNlbGVjdG9yID09IEBz
ZWxlY3Rvcih0ZXN0QWN0aXZhdGVNdWx0aXBsZVNlbGVjdEVsZW1lbnRBbGxvd2luZ011bHRpcGxl
OikpCisgICAgICAgIHJldHVybiBOTzsKKworICAgIHJldHVybiBZRVM7Cit9CisKKysgKE5TU3Ry
aW5nICopd2ViU2NyaXB0TmFtZUZvclNlbGVjdG9yOihTRUwpYVNlbGVjdG9yCit7CisgICAgaWYg
KGFTZWxlY3RvciA9PSBAc2VsZWN0b3IodGVzdEFjdGl2YXRlU2luZ2xlU2VsZWN0RWxlbWVudDop
KQorICAgICAgICByZXR1cm4gQCJ0ZXN0QWN0aXZhdGVTaW5nbGVTZWxlY3RFbGVtZW50IjsKKyAg
ICBlbHNlIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHRlc3RBY3RpdmF0ZVNpemVkU2VsZWN0
RWxlbWVudDopKQorICAgICAgICByZXR1cm4gQCJ0ZXN0QWN0aXZhdGVTaXplZFNlbGVjdEVsZW1l
bnQiOworICAgIGVsc2UgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IodGVzdEFjdGl2YXRlTXVs
dGlwbGVTZWxlY3RFbGVtZW50OikpCisgICAgICAgIHJldHVybiBAInRlc3RBY3RpdmF0ZU11bHRp
cGxlU2VsZWN0RWxlbWVudCI7CisgICAgZWxzZSBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rvcih0
ZXN0QWN0aXZhdGVNdWx0aXBsZVNlbGVjdEVsZW1lbnRBbGxvd2luZ011bHRpcGxlOikpCisgICAg
ICAgIHJldHVybiBAInRlc3RBY3RpdmF0ZU11bHRpcGxlU2VsZWN0RWxlbWVudEFsbG93aW5nTXVs
dGlwbGUiOworCisgICAgcmV0dXJuIG5pbDsKK30KKworLSAodm9pZCl0ZXN0QWN0aXZhdGVTaW5n
bGVTZWxlY3RFbGVtZW50OihXZWJTY3JpcHRPYmplY3QgKillbGVtZW50Cit7CisgICAgaWYgKCFb
ZWxlbWVudCBpc0tpbmRPZkNsYXNzOltET01IVE1MU2VsZWN0RWxlbWVudCBjbGFzc11dKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgRE9NSFRNTFNlbGVjdEVsZW1lbnQgKnNlbGVjdCA9IChE
T01IVE1MU2VsZWN0RWxlbWVudCopZWxlbWVudDsKKyAgICBbc2VsZWN0IF9hY3RpdmF0ZUl0ZW1B
dEluZGV4OjFdOworfQorCistICh2b2lkKXRlc3RBY3RpdmF0ZVNpemVkU2VsZWN0RWxlbWVudDoo
V2ViU2NyaXB0T2JqZWN0ICopZWxlbWVudAoreworICAgIGlmICghW2VsZW1lbnQgaXNLaW5kT2ZD
bGFzczpbRE9NSFRNTFNlbGVjdEVsZW1lbnQgY2xhc3NdXSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgRE9NSFRNTFNlbGVjdEVsZW1lbnQgKnNlbGVjdCA9IChET01IVE1MU2VsZWN0RWxlbWVudCop
ZWxlbWVudDsKKyAgICBbc2VsZWN0IF9hY3RpdmF0ZUl0ZW1BdEluZGV4OjFdOworfQorCistICh2
b2lkKXRlc3RBY3RpdmF0ZU11bHRpcGxlU2VsZWN0RWxlbWVudDooV2ViU2NyaXB0T2JqZWN0ICop
ZWxlbWVudAoreworICAgIGlmICghW2VsZW1lbnQgaXNLaW5kT2ZDbGFzczpbRE9NSFRNTFNlbGVj
dEVsZW1lbnQgY2xhc3NdXSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRE9NSFRNTFNlbGVjdEVs
ZW1lbnQgKnNlbGVjdCA9IChET01IVE1MU2VsZWN0RWxlbWVudCopZWxlbWVudDsKKyAgICBbc2Vs
ZWN0IF9hY3RpdmF0ZUl0ZW1BdEluZGV4OjEgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbjpOT107Cisg
ICAgW3NlbGVjdCBfYWN0aXZhdGVJdGVtQXRJbmRleDoyIGFsbG93TXVsdGlwbGVTZWxlY3Rpb246
Tk9dOworfQorCistICh2b2lkKXRlc3RBY3RpdmF0ZU11bHRpcGxlU2VsZWN0RWxlbWVudEFsbG93
aW5nTXVsdGlwbGU6KFdlYlNjcmlwdE9iamVjdCAqKWVsZW1lbnQKK3sKKyAgICBpZiAoIVtlbGVt
ZW50IGlzS2luZE9mQ2xhc3M6W0RPTUhUTUxTZWxlY3RFbGVtZW50IGNsYXNzXV0pCisgICAgICAg
IHJldHVybjsKKworICAgIERPTUhUTUxTZWxlY3RFbGVtZW50ICpzZWxlY3QgPSAoRE9NSFRNTFNl
bGVjdEVsZW1lbnQqKWVsZW1lbnQ7CisgICAgW3NlbGVjdCBfYWN0aXZhdGVJdGVtQXRJbmRleDox
IGFsbG93TXVsdGlwbGVTZWxlY3Rpb246WUVTXTsKKyAgICBbc2VsZWN0IF9hY3RpdmF0ZUl0ZW1B
dEluZGV4OjIgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbjpZRVNdOworfQorCitAZW5kCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjOTJjNzA0Li5kNGY1ZjY2IDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBS
ZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYyLDYgKzYyLDggQEAKIAkJ
OTMzQkY1QUMwRjkzRkE1QzAwMEYwNDQxIC8qIFBsYWluVGV4dENvbnRyb2xsZXIubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzNCRjVBQTBGOTNGQTVD
MDAwRjA0NDEgLyogUGxhaW5UZXh0Q29udHJvbGxlci5tbSAqLzsgfTsKIAkJOTM0MDk5NEMwODU0
MENBRTAwN0YzQkM4IC8qIER1bXBSZW5kZXJUcmVlUHJlZml4LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMkE3MEFBQjAzNzA1RTFGMDBDOTE3ODMgLyog
RHVtcFJlbmRlclRyZWVQcmVmaXguaCAqLzsgfTsKIAkJOTM0MDk5NTEwODU0MENBRTAwN0YzQkM4
IC8qIFdlYktpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzM1NDM1RjAzRDc1NTAyMDA4NjM1Q0UgLyogV2ViS2l0LmZyYW1ld29y
ayAqLzsgfTsKKwkJQTVGNjVEQzcxMjMxQjFFQjAwODE1NkU4IC8qIERPTUhUTUxDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUY2NURB
RTEyMzFCMEYwMDA4MTU2RTggLyogRE9NSFRNTENvbnRyb2xsZXIuaCAqLzsgfTsKKwkJQTVGNjVE
REYxMjMxQjFGQzAwODE1NkU4IC8qIERPTUhUTUxDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVGNjVEQUYxMjMxQjBGMDAwODE1NkU4
IC8qIERPTUhUTUxDb250cm9sbGVyLm1tICovOyB9OwogCQlBODE3MDkwMDA4QjE2M0VGMDBDQ0I5
RkIgLyogQ29jb2EuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTg0RjYwODkwOEIxMzZEQTAwRTk3NDVGIC8qIENvY29hLmZyYW1ld29y
ayAqLzsgfTsKIAkJQTgxNzA5MDQwOEIxNjREMzAwQ0NCOUZCIC8qIEphdmFTY3JpcHRDb3JlLmZy
YW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MTcwOTAzMDhCMTY0RDMwMENDQjlGQiAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi87
IH07CiAJCUE4NEY2MDhBMDhCMTM2REEwMEU5NzQ1RiAvKiBDb2NvYS5mcmFtZXdvcmsgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODRGNjA4OTA4QjEz
NkRBMDBFOTc0NUYgLyogQ29jb2EuZnJhbWV3b3JrICovOyB9OwpAQCAtMjIxLDYgKzIyMyw4IEBA
CiAJCTkzM0JGNUE5MEY5M0ZBNUMwMDBGMDQ0MSAvKiBQbGFpblRleHRDb250cm9sbGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBsYWluVGV4dENvbnRyb2xsZXIuaDsgcGF0
aCA9IG1hYy9QbGFpblRleHRDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzM0JGNUFBMEY5M0ZBNUMwMDBGMDQ0MSAvKiBQbGFpblRleHRDb250cm9sbGVyLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUGxhaW5UZXh0Q29udHJvbGxl
ci5tbTsgcGF0aCA9IG1hYy9QbGFpblRleHRDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzQwOTk1NDA4NTQwQ0FGMDA3RjNCQzggLyogRHVtcFJlbmRlclRyZWUg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxl
ZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IER1bXBSZW5k
ZXJUcmVlOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlBNUY2NURBRTEy
MzFCMEYwMDA4MTU2RTggLyogRE9NSFRNTENvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NSFRNTENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTVGNjVEQUYxMjMxQjBGMDAwODE1NkU4IC8qIERPTUhUTUxDb250cm9sbGVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTENvbnRyb2xs
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MDNGRjc0MDlDQUFEMDgwMDlC
MkEzNyAvKiBEdW1wUmVuZGVyVHJlZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5oOyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRo
ID0gRHVtcFJlbmRlclRyZWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgxNzA5
MDMwOEIxNjREMzAwQ0NCOUZCIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3Jr
OyBwYXRoID0gSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwogCQlBODRGNjA4OTA4QjEzNkRBMDBFOTc0NUYgLyogQ29jb2EuZnJhbWV3
b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3Jh
cHBlci5mcmFtZXdvcms7IG5hbWUgPSBDb2NvYS5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xp
YnJhcnkvRnJhbWV3b3Jrcy9Db2NvYS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRl
PiI7IH07CkBAIC0zOTQsNiArMzk4LDggQEAKIAkJCQlCQzBFMjYxNDBFMkRBNEM2MDAxQjZCQzIg
LyogQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSAqLywKIAkJCQlCQ0ExOEIzNjBDOUIwMjE5
MDAxMTQzNjkgLyogQXBwbGVTY3JpcHRDb250cm9sbGVyLmggKi8sCiAJCQkJQkNBMThCMzcwQzlC
MDIxOTAwMTE0MzY5IC8qIEFwcGxlU2NyaXB0Q29udHJvbGxlci5tICovLAorCQkJCUE1RjY1REFF
MTIzMUIwRjAwMDgxNTZFOCAvKiBET01IVE1MQ29udHJvbGxlci5oICovLAorCQkJCUE1RjY1REFG
MTIzMUIwRjAwMDgxNTZFOCAvKiBET01IVE1MQ29udHJvbGxlci5tbSAqLywKIAkJCQlCQ0ExOEI2
QjBDOUIwOERCMDAxMTQzNjkgLyogRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oICovLAogCQkJCUJD
QTE4QjZDMEM5QjA4REIwMDExNDM2OSAvKiBFdmVudFNlbmRpbmdDb250cm9sbGVyLm1tICovLAog
CQkJCUJDRjZDNjRGMEM5OEU5QzAwMEFDMDYzRSAvKiBHQ0NvbnRyb2xsZXIuY3BwICovLApAQCAt
NTg1LDYgKzU5MSw3IEBACiAJCQkJQkM5RDkwMjYwQzk3NDcyRTAwOTlBNEEzIC8qIFdvcmtRdWV1
ZUl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGNkIzMTA3MTRFMTIwMDdBQTM5MyAvKiBI
aXN0b3J5RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjc4MTY3MTFBRjMxQzMwMDdF
MUJDMiAvKiBNb2NrR2VvbG9jYXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTVG
NjVEQzcxMjMxQjFFQjAwODE1NkU4IC8qIERPTUhUTUxDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKQEAgLTc1OCw2ICs3NjUsNyBAQAogCQkJCUJDQTE4QjI2MEM5QjAxNUMwMDExNDM2OSAvKiBX
b3JrUXVldWVJdGVtTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4NUY2QjIxMDcxNEUwNzAw
N0FBMzkzIC8qIEhpc3RvcnlEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUUxQjc4MTY1
MTFBRjMxQjcwMDdFMUJDMiAvKiBNb2NrR2VvbG9jYXRpb25Qcm92aWRlci5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCUE1RjY1RERGMTIzMUIxRkMwMDgxNTZFOCAvKiBET01IVE1MQ29udHJvbGxlci5t
bSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0ZyYW1lTG9hZERlbGVnYXRlLm1tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0ZyYW1lTG9hZERlbGVnYXRlLm1tCmluZGV4IDk2M2VhZTcuLjEyZDE3OTggMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9GcmFtZUxvYWREZWxlZ2F0ZS5tbQorKysg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRnJhbWVMb2FkRGVsZWdhdGUubW0KQEAg
LTMyLDYgKzMyLDcgQEAKIAogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCIKICNp
bXBvcnQgIkFwcGxlU2NyaXB0Q29udHJvbGxlci5oIgorI2ltcG9ydCAiRE9NSFRNTENvbnRyb2xs
ZXIuaCIKICNpbXBvcnQgIkV2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIkdDQ29u
dHJvbGxlci5oIgogI2ltcG9ydCAiTGF5b3V0VGVzdENvbnRyb2xsZXIuaCIKQEAgLTI2Miw2ICsy
NjMsMTAgQEAKICAgICBbb2JqIHNldFZhbHVlOmFzYyBmb3JLZXk6QCJhcHBsZVNjcmlwdENvbnRy
b2xsZXIiXTsKICAgICBbYXNjIHJlbGVhc2VdOwogCisgICAgRE9NSFRNTENvbnRyb2xsZXIgKmRv
bUh0bWxDb250cm9sbGVyID0gW1tET01IVE1MQ29udHJvbGxlciBhbGxvY10gaW5pdF07CisgICAg
W29iaiBzZXRWYWx1ZTpkb21IdG1sQ29udHJvbGxlciBmb3JLZXk6QCJkb21IdG1sQ29udHJvbGxl
ciJdOworICAgIFtkb21IdG1sQ29udHJvbGxlciByZWxlYXNlXTsKKwogICAgIEV2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIgKmVzYyA9IFtbRXZlbnRTZW5kaW5nQ29udHJvbGxlciBhbGxvY10gaW5pdF07
CiAgICAgW29iaiBzZXRWYWx1ZTplc2MgZm9yS2V5OkAiZXZlbnRTZW5kZXIiXTsKICAgICBbZXNj
IHJlbGVhc2VdOwo=
</data>
<flag name="review"
          id="55618"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66783</attachid>
            <date>2010-09-07 16:14:50 -0700</date>
            <delta_ts>2010-09-07 16:15:46 -0700</delta_ts>
            <desc>[PATCH] Automated Test</desc>
            <filename>objccontroller.patch</filename>
            <type>text/plain</type>
            <size>10173</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">Y29tbWl0IDI1OTZiYzM3YzJkNTkwZGY4YjViZDVkNTY0N2Q3ODQzYWM1ODMwYzUKQXV0aG9yOiBK
b3NlcGggUGVjb3Jhcm8gPGpvZXBlY2tAd2Via2l0Lm9yZz4KRGF0ZTogICBUdWUgU2VwIDcgMTI6
Mzk6NDggMjAxMCAtMDcwMAoKICAgIDIwMTAtMDktMDcgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBl
Y2tAd2Via2l0Lm9yZz4KICAgIAogICAgICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KICAgIAogICAgICAgICAgICBQcm92aWRlIGEgd2F5IHRvIHRyaWdnZXIgYSA8c2VsZWN0IG11
bHRpcGxlPiBvbmNoYW5nZSBldmVudCBvbiBjaGFuZ2VzCiAgICAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTE5MgogICAgCiAgICAgICAgICAgIFRlc3Rp
bmcgdGhlIERPTUhUTUxTZWxlY3RFbGVtZW50IGludGVyZmFjZSBmb3Igc2VsZWN0aW5nIGFuCiAg
ICAgICAgICAgIGluZGV4IGluIGEgPHNlbGVjdD4gYW5kIHRyaWdnZXJpbmcgYSAiY2hhbmdlIiBl
dmVudC4gVGhpcyBhbHNvCiAgICAgICAgICAgIHRlc3RzIGZvciBhbGxvd2luZyBtdWx0aXBsZSBz
ZWxlY3Rpb25zLgogICAgCiAgICAgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20t
aHRtbC1zZWxlY3QtYWN0aXZhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KICAgICAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1hY3RpdmF0ZS5odG1sOiBBZGRl
ZC4KICAgIAogICAgMjAxMC0wOS0wNyAgSm9zZXBoIFBlY29yYXJvICA8am9lcGVja0B3ZWJraXQu
b3JnPgogICAgCiAgICAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogICAgCiAg
ICAgICAgICAgIFByb3ZpZGUgYSB3YXkgdG8gdHJpZ2dlciBhIDxzZWxlY3QgbXVsdGlwbGU+IG9u
Y2hhbmdlIGV2ZW50IG9uIGNoYW5nZXMKICAgICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ1MTkyCiAgICAKICAgICAgICAgICAgQWRkcyBhIHNlbGVjdG9y
IG9uIE9iakNDb250cm9sbGVyIGZvciB0ZXN0aW5nCiAgICAgICAgICAgIC1bRE9NSFRNTFNlbGVj
dEVsZW1lbnQgX2FjdGl2YXRlSXRlbUF0SW5kZXg6YWxsb3dNdWx0aXBsZVNlbGVjdGlvbjpdIGFu
ZAogICAgICAgICAgICBpdHMgZGlmZmVyZW50IHVzZXMuCiAgICAKICAgICAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9tYWMvT2JqQ0NvbnRyb2xsZXIubToKICAgICAgICAgICAgKCtbT2JqQ0NvbnRy
b2xsZXIgaXNTZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDpdKToKICAgICAgICAgICAgKCtb
T2JqQ0NvbnRyb2xsZXIgd2ViU2NyaXB0TmFtZUZvclNlbGVjdG9yOl0pOgogICAgICAgICAgICAo
LVtPYmpDQ29udHJvbGxlciBzZXRTZWxlY3RFbGVtZW50OnNlbGVjdGVkSW5kZXg6YWxsb3dpbmdN
dWx0aXBsZTpdKToKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjBkNzYzNy4uMjE0ZDkwNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDEwLTA5LTA3ICBKb3NlcGggUGVjb3Jhcm8gIDxqb2VwZWNrQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBh
IHdheSB0byB0cmlnZ2VyIGEgPHNlbGVjdCBtdWx0aXBsZT4gb25jaGFuZ2UgZXZlbnQgb24gY2hh
bmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUx
OTIKKworICAgICAgICBUZXN0aW5nIHRoZSBET01IVE1MU2VsZWN0RWxlbWVudCBpbnRlcmZhY2Ug
Zm9yIHNlbGVjdGluZyBhbgorICAgICAgICBpbmRleCBpbiBhIDxzZWxlY3Q+IGFuZCB0cmlnZ2Vy
aW5nIGEgImNoYW5nZSIgZXZlbnQuIFRoaXMgYWxzbworICAgICAgICB0ZXN0cyBmb3IgYWxsb3dp
bmcgbXVsdGlwbGUgc2VsZWN0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L29i
amMvZG9tLWh0bWwtc2VsZWN0LWFjdGl2YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtYWN0aXZhdGUuaHRtbDog
QWRkZWQuCisKIDIwMTAtMDktMDcgIEZyYW7Dp29pcyBTYXVzc2V0ICA8c2F1c3NldEBnbWFpbC5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQmV0aCBEYWtpbi4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L29iamMvZG9tLWh0bWwtc2VsZWN0LWFjdGl2YXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L29iamMvZG9tLWh0bWwt
c2VsZWN0LWFjdGl2YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5hYzI3NjY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtYWN0aXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjEgQEAKKyAgICAgIAorVGhpcyB0ZXN0cyB0aGUgUHJpdmF0ZSBPYmplY3RpdmUtQyBE
T00gSFRNTCBCaW5kaW5ncyBBUEkgZm9yIHNlbGVjdGluZyBpbmRleGVzIG9mIGEgPHNlbGVjdD4g
dGhhdCBhbHNvIGFjdGl2YXRlIHRoZSAiY2hhbmdlIiBldmVudC4KKworU2VsZWN0IGEgc2luZ2xl
IGluZGV4IGluIGEgbm9ybWFsIDxzZWxlY3Q+LgorLS0gY2hhbmdlIGV2ZW50IGZpcmVkIC0tCitQ
QVNTIC0gZXhwZWN0ZWQgaW5kZXggd2FzIHNlbGVjdGVkLgorCitTZWxlY3QgYSBzaW5nbGUgaW5k
ZXggaW4gYSBzaXplZCA8c2VsZWN0Pi4KKy0tIGNoYW5nZSBldmVudCBmaXJlZCAtLQorUEFTUyAt
IGV4cGVjdGVkIGluZGV4IHdhcyBzZWxlY3RlZC4KKworU2VsZWN0IG11bHRpcGxlIGluZGV4ZXMs
IGluIGEgPHNlbGVjdCBtdWx0aXBsZT4uCistLSBjaGFuZ2UgZXZlbnQgZmlyZWQgLS0KKy0tIGNo
YW5nZSBldmVudCBmaXJlZCAtLQorUEFTUyAtIHNlbGVjdGVkIG9wdGlvbnMgd2VyZSB3aGF0IHdl
IGV4cGVjdGVkLgorCitTZWxlY3QgbXVsdGlwbGUgaW5kZXhlcywgd2l0aCBtdWx0aS1zZWxlY3Qg
b24sIGluIGEgPHNlbGVjdCBtdWx0aXBsZT4uCistLSBjaGFuZ2UgZXZlbnQgZmlyZWQgLS0KKy0t
IGNoYW5nZSBldmVudCBmaXJlZCAtLQorUEFTUyAtIHNlbGVjdGVkIG9wdGlvbnMgd2VyZSB3aGF0
IHdlIGV4cGVjdGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9vYmpjL2RvbS1odG1sLXNlbGVjdC1hY3RpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtYWN0aXZhdGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTg1OGFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtYWN0aXZhdGUu
aHRtbApAQCAtMCwwICsxLDEyMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPjx0
aXRsZT48L3RpdGxlPjwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKworICAgIDxzZWxl
Y3QgaWQ9InNpbmdsZSI+CisgICAgICAgIDxvcHRpb24+MDwvb3B0aW9uPgorICAgICAgICA8b3B0
aW9uPjE8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj4yPC9vcHRpb24+CisgICAgPC9zZWxlY3Q+
CisKKyAgICA8c2VsZWN0IGlkPSJzaXplZCIgc2l6ZT0iMyI+CisgICAgICAgIDxvcHRpb24+MDwv
b3B0aW9uPgorICAgICAgICA8b3B0aW9uPjE8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj4yPC9v
cHRpb24+CisgICAgPC9zZWxlY3Q+CisKKyAgICA8c2VsZWN0IGlkPSJtdWx0aXBsZS0xIiBtdWx0
aXBsZT4KKyAgICAgICAgPG9wdGlvbj4wPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+MTwvb3B0
aW9uPgorICAgICAgICA8b3B0aW9uPjI8L29wdGlvbj4KKyAgICA8L3NlbGVjdD4KKworICAgIDxz
ZWxlY3QgaWQ9Im11bHRpcGxlLTIiIG11bHRpcGxlPgorICAgICAgICA8b3B0aW9uPjA8L29wdGlv
bj4KKyAgICAgICAgPG9wdGlvbj4xPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+Mjwvb3B0aW9u
PgorICAgIDwvc2VsZWN0PgorCisgICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisKKyAgICA8
c2NyaXB0PgorCisgICAgLy8gLS0tLS0tLS0tLS0KKyAgICAvLyAgIEhlbHBlcnMKKyAgICAvLyAt
LS0tLS0tLS0tLQorCisgICAgZnVuY3Rpb24gbG9nKG1zZykgeworICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKG1zZyArICJcbiIpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvbkNoYW5nZUV2ZW50SGFu
ZGxlcihldmVudCkgeworICAgICAgICBsb2coIi0tIGNoYW5nZSBldmVudCBmaXJlZCAtLSIpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGFzc2VydFNlbGVjdGVkSW5kZXgoZWxlbSwgaW5kZXgpIHsK
KyAgICAgICAgaWYgKGVsZW0uc2VsZWN0ZWRJbmRleCA9PT0gaW5kZXgpCisgICAgICAgICAgICBs
b2coIlBBU1MgLSBleHBlY3RlZCBpbmRleCB3YXMgc2VsZWN0ZWQuIik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGxvZygiRkFJTCAtIGV4cGVjdGVkIGluZGV4IHdhcyAiICsgZWxlbS5zZWxl
Y3RlZCArICIgYnV0IHdhcyBleHBlY3RlZCB0byBiZSAiICsgaW5kZXggKyAiLiIpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGFzc2VydFNlbGVjdGVkSW5kZXhlcyhlbGVtLCBmbGFncykgeworICAg
ICAgICB2YXIgYWxsR29vZCA9IHRydWU7CisgICAgICAgIHZhciBvcHRpb25zID0gZWxlbS5vcHRp
b25zOworICAgICAgICBmb3IgKHZhciBpPTA7IGk8b3B0aW9ucy5sZW5ndGg7ICsraSkgeworICAg
ICAgICAgICAgaWYgKG9wdGlvbnNbaV0uc2VsZWN0ZWQgIT09IGZsYWdzW2ldKSB7CisgICAgICAg
ICAgICAgICAgbG9nKCJGQUlMIC0gb3B0aW9uICIgKyBpICsgIiB3YXMgbm90IHdoYXQgd2UgZXhw
ZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgYWxsR29vZCA9IGZhbHNlOworICAgICAgICAgICAg
fQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGFsbEdvb2QpCisgICAgICAgICAgICBsb2coIlBB
U1MgLSBzZWxlY3RlZCBvcHRpb25zIHdlcmUgd2hhdCB3ZSBleHBlY3RlZC4iKQorICAgIH0KKwor
ICAgIC8vIC0tLS0tLS0tLS0tLQorICAgIC8vICAgVGhlIFRlc3QKKyAgICAvLyAtLS0tLS0tLS0t
LS0KKworICAgIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgICAgIGlmICghd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICBsb2coIlRoaXMgdGVzdCBjYW4gb25seSBiZSBy
dW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAg
ICAgbG9nKCJUaGlzIHRlc3RzIHRoZSBQcml2YXRlIE9iamVjdGl2ZS1DIERPTSBIVE1MIEJpbmRp
bmdzIEFQSSBmb3Igc2VsZWN0aW5nIGluZGV4ZXMgb2YgYSA8c2VsZWN0PiB0aGF0IGFsc28gYWN0
aXZhdGUgdGhlIFwiY2hhbmdlXCIgZXZlbnQuIik7CisgICAgICAgIHdyYXBwZXIoIlNlbGVjdCBh
IHNpbmdsZSBpbmRleCBpbiBhIG5vcm1hbCA8c2VsZWN0Pi4iLCAic2luZ2xlIiwgdGVzdFNpbmds
ZSk7CisgICAgICAgIHdyYXBwZXIoIlNlbGVjdCBhIHNpbmdsZSBpbmRleCBpbiBhIHNpemVkIDxz
ZWxlY3Q+LiIsICJzaXplZCIsIHRlc3RTaXplZCk7CisgICAgICAgIHdyYXBwZXIoIlNlbGVjdCBt
dWx0aXBsZSBpbmRleGVzLCBpbiBhIDxzZWxlY3QgbXVsdGlwbGU+LiIsICJtdWx0aXBsZS0xIiwg
dGVzdE11bHRpcGxlMSk7CisgICAgICAgIHdyYXBwZXIoIlNlbGVjdCBtdWx0aXBsZSBpbmRleGVz
LCB3aXRoIG11bHRpLXNlbGVjdCBvbiwgaW4gYSA8c2VsZWN0IG11bHRpcGxlPi4iLCAibXVsdGlw
bGUtMiIsIHRlc3RNdWx0aXBsZTIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHdyYXBwZXIobXNn
LCBpZCwgZnVuYykgeworICAgICAgICBsb2coIiIpOworICAgICAgICBsb2cobXNnKTsKKyAgICAg
ICAgdmFyIGVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgICAgIGVsZW0u
YWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgb25DaGFuZ2VFdmVudEhhbmRsZXIsIGZhbHNlKTsK
KyAgICAgICAgZnVuYyhlbGVtKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0U2luZ2xlKGVs
ZW0pIHsKKyAgICAgICAgb2JqQ0NvbnRyb2xsZXIuc2V0U2VsZWN0RWxlbWVudFNlbGVjdGVkSW5k
ZXhBbGxvd2luZ011bHRpcGxlKGVsZW0sIDEsIGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0U2VsZWN0
ZWRJbmRleChlbGVtLCAxKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0U2l6ZWQoZWxlbSkg
eworICAgICAgICBvYmpDQ29udHJvbGxlci5zZXRTZWxlY3RFbGVtZW50U2VsZWN0ZWRJbmRleEFs
bG93aW5nTXVsdGlwbGUoZWxlbSwgMSwgZmFsc2UpOworICAgICAgICBhc3NlcnRTZWxlY3RlZElu
ZGV4KGVsZW0sIDEpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RNdWx0aXBsZTEoZWxlbSkg
eworICAgICAgICAvLyBUcmlnZ2VycyBzZWxlY3RpbmcgaW5kZXggMSB0aGVuIDIsIGV4cGVjdGlu
ZyB0aGUgcmVzdWx0IHRvIGJlIGp1c3QgaW5kZXggMiBzZWxlY3RlZC4KKyAgICAgICAgb2JqQ0Nv
bnRyb2xsZXIuc2V0U2VsZWN0RWxlbWVudFNlbGVjdGVkSW5kZXhBbGxvd2luZ011bHRpcGxlKGVs
ZW0sIDEsIGZhbHNlKTsKKyAgICAgICAgb2JqQ0NvbnRyb2xsZXIuc2V0U2VsZWN0RWxlbWVudFNl
bGVjdGVkSW5kZXhBbGxvd2luZ011bHRpcGxlKGVsZW0sIDIsIGZhbHNlKTsKKyAgICAgICAgYXNz
ZXJ0U2VsZWN0ZWRJbmRleGVzKGVsZW0sIFtmYWxzZSwgZmFsc2UsIHRydWVdKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiB0ZXN0TXVsdGlwbGUyKGVsZW0pIHsKKyAgICAgICAgLy8gVHJpZ2dlcnMg
c2VsZWN0aW5nIGluZGV4IDEgdGhlbiAyLCBleHBlY3RpbmcgdGhlIHJlc3VsdCB0byBiZSBib3Ro
IGFyZSBzZWxlY3RlZC4KKyAgICAgICAgb2JqQ0NvbnRyb2xsZXIuc2V0U2VsZWN0RWxlbWVudFNl
bGVjdGVkSW5kZXhBbGxvd2luZ011bHRpcGxlKGVsZW0sIDEsIHRydWUpOworICAgICAgICBvYmpD
Q29udHJvbGxlci5zZXRTZWxlY3RFbGVtZW50U2VsZWN0ZWRJbmRleEFsbG93aW5nTXVsdGlwbGUo
ZWxlbSwgMiwgdHJ1ZSk7CisgICAgICAgIGFzc2VydFNlbGVjdGVkSW5kZXhlcyhlbGVtLCBbZmFs
c2UsIHRydWUsIHRydWVdKTsKKyAgICB9CisKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5n
ZUxvZwppbmRleCBmN2VmN2ZlLi5iOTYwY2U2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAt
MDktMDcgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIHRy
aWdnZXIgYSA8c2VsZWN0IG11bHRpcGxlPiBvbmNoYW5nZSBldmVudCBvbiBjaGFuZ2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTE5MgorCisgICAg
ICAgIEFkZHMgYSBzZWxlY3RvciBvbiBPYmpDQ29udHJvbGxlciBmb3IgdGVzdGluZworICAgICAg
ICAtW0RPTUhUTUxTZWxlY3RFbGVtZW50IF9hY3RpdmF0ZUl0ZW1BdEluZGV4OmFsbG93TXVsdGlw
bGVTZWxlY3Rpb246XSBhbmQKKyAgICAgICAgaXRzIGRpZmZlcmVudCB1c2VzLgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvbWFjL09iakNDb250cm9sbGVyLm06CisgICAgICAgICgrW09iakND
b250cm9sbGVyIGlzU2VsZWN0b3JFeGNsdWRlZEZyb21XZWJTY3JpcHQ6XSk6CisgICAgICAgICgr
W09iakNDb250cm9sbGVyIHdlYlNjcmlwdE5hbWVGb3JTZWxlY3RvcjpdKToKKyAgICAgICAgKC1b
T2JqQ0NvbnRyb2xsZXIgc2V0U2VsZWN0RWxlbWVudDpzZWxlY3RlZEluZGV4OmFsbG93aW5nTXVs
dGlwbGU6XSk6CisKIDIwMTAtMDktMDcgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLiBNYWMgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL09iakNDb250cm9sbGVyLm0gYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvT2JqQ0NvbnRyb2xsZXIubQppbmRleCA2NDFkMmNjLi5mMWQx
YzEwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvT2JqQ0NvbnRy
b2xsZXIubQorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvT2JqQ0NvbnRyb2xs
ZXIubQpAQCAtMjksOCArMjksMTIgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiT2Jq
Q0NvbnRyb2xsZXIuaCIKIAorLy8gQXZvaWQgY29tcGlsZSBlcnJvciBpbiBET01Qcml2YXRlLmgu
CitAY2xhc3MgTlNGb250OworCiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTUFic3RyYWN0Vmlldy5oPgorI2ltcG9ydCA8V2ViS2l0
L0RPTVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJTY3JpcHRPYmplY3QuaD4KICNpbXBv
cnQgPFdlYktpdC9XZWJWaWV3Lmg+CiAjaW1wb3J0IDxwdGhyZWFkLmg+CkBAIC03Myw2ICs3Nyw3
IEBAICsgKEJPT0wpaXNTZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDooU0VMKWFTZWxlY3Rv
cgogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcih0ZXN0VmFsdWVGb3JLZXkp
CiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHRlc3RIYXNXZWJTY3JpcHRL
ZXk6KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcih0ZXN0QXJyYXkpCisg
ICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHNldFNlbGVjdEVsZW1lbnQ6c2Vs
ZWN0ZWRJbmRleDphbGxvd2luZ011bHRpcGxlOikKICAgICAgICAgKQogICAgICAgICByZXR1cm4g
Tk87CiAgICAgcmV0dXJuIFlFUzsKQEAgLTEwMiw2ICsxMDcsOCBAQCArIChOU1N0cmluZyAqKXdl
YlNjcmlwdE5hbWVGb3JTZWxlY3RvcjooU0VMKWFTZWxlY3RvcgogICAgICAgICByZXR1cm4gQCJ0
ZXN0SGFzV2ViU2NyaXB0S2V5IjsKICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rvcih0ZXN0
QXJyYXkpKQogICAgICAgICByZXR1cm4gQCJ0ZXN0QXJyYXkiOworICAgIGlmIChhU2VsZWN0b3Ig
PT0gQHNlbGVjdG9yKHNldFNlbGVjdEVsZW1lbnQ6c2VsZWN0ZWRJbmRleDphbGxvd2luZ011bHRp
cGxlOikpCisgICAgICAgIHJldHVybiBAInNldFNlbGVjdEVsZW1lbnRTZWxlY3RlZEluZGV4QWxs
b3dpbmdNdWx0aXBsZSI7CiAKICAgICByZXR1cm4gbmlsOwogfQpAQCAtMjYzLDQgKzI3MCwxNiBA
QCAtIChpZClpbnZva2VVbmRlZmluZWRNZXRob2RGcm9tV2ViU2NyaXB0OihOU1N0cmluZyAqKW5h
bWUgd2l0aEFyZ3VtZW50czooTlNBcnJheQogICAgIHJldHVybiBuaWw7CiB9CiAKKyNwcmFnbWEg
bWFyayAtCisjcHJhZ21hIG1hcmsgVGVzdGluZyBPYmplY3RpdmUtQyBET00gSFRNTCBCaW5kaW5n
cworCistICh2b2lkKXNldFNlbGVjdEVsZW1lbnQ6KFdlYlNjcmlwdE9iamVjdCAqKWVsZW1lbnQg
c2VsZWN0ZWRJbmRleDooaW50KWluZGV4IGFsbG93aW5nTXVsdGlwbGU6KEJPT0wpYWxsb3dpbmdN
dWx0aXBsZQoreworICAgIGlmICghW2VsZW1lbnQgaXNLaW5kT2ZDbGFzczpbRE9NSFRNTFNlbGVj
dEVsZW1lbnQgY2xhc3NdXSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRE9NSFRNTFNlbGVjdEVs
ZW1lbnQgKnNlbGVjdCA9IChET01IVE1MU2VsZWN0RWxlbWVudCopZWxlbWVudDsKKyAgICBbc2Vs
ZWN0IF9hY3RpdmF0ZUl0ZW1BdEluZGV4OmluZGV4IGFsbG93TXVsdGlwbGVTZWxlY3Rpb246YWxs
b3dpbmdNdWx0aXBsZV07Cit9CisKIEBlbmQK
</data>
<flag name="review"
          id="55898"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>