<?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>39493</bug_id>
          
          <creation_ts>2010-05-21 09:04:42 -0700</creation_ts>
          <short_desc>Touch events do not affect the :active CSS state</short_desc>
          <delta_ts>2010-08-10 22:42:11 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>32485</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Murdoch">benm</reporter>
          <assigned_to name="Ben Murdoch">benm</assigned_to>
          <cc>abarth</cc>
    
    <cc>android-webkit-unforking</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>gdk</cc>
    
    <cc>hausmann</cc>
    
    <cc>kim.1.gronholm</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>228942</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-05-21 09:04:42 -0700</bug_when>
    <thetext>When using touch events, clicking an element with an active state defined in CSS does not cause a transition into that state.

I&apos;m working on a patch for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229734</commentid>
    <comment_count>1</comment_count>
      <attachid>56884</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-05-24 07:36:41 -0700</bug_when>
    <thetext>Created attachment 56884
Proposed patch and test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229735</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-24 07:41:55 -0700</bug_when>
    <thetext>Attachment 56884 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/page/EventHandler.cpp:2771:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229737</commentid>
    <comment_count>3</comment_count>
      <attachid>56886</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-05-24 07:48:21 -0700</bug_when>
    <thetext>Created attachment 56886
Patch and layout test changes.

Correct style on switch statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234796</commentid>
    <comment_count>4</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-06-07 05:02:20 -0700</bug_when>
    <thetext>ping .... thoughts anyone? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235174</commentid>
    <comment_count>5</comment_count>
    <who name="Kim Grönholm">kim.1.gronholm</who>
    <bug_when>2010-06-08 01:07:59 -0700</bug_when>
    <thetext>Hi Ben and sorry for late reply.

I was thinking about the definition of the :active pseudo-class:
&quot;•The :active pseudo-class applies while an element is being activated by the user. For example, between the times the user presses the mouse button and releases it. On systems with more than one mouse button, :active applies only to the primary or primary activation button (typically the &quot;left&quot; mouse button), and any aliases thereof.&quot; (http://www.w3.org/TR/css3-selectors/#the-user-action-pseudo-classes-hover-act)

Should we only do transition to the active state from left mouse button events since those are the ones that actually activate e.g. a link? And then mapping touch events to mouse events on system/whatever level makes the links work and also enable the active state transitions (since eventhandler thinks that left mouse button was used).

This is just a thought, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235409</commentid>
    <comment_count>6</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-06-08 11:57:10 -0700</bug_when>
    <thetext>(In reply to comment #5)

Hey Kim,

Thanks for the comments. We don&apos;t convert the touches on android to  mouse events until the touch sequence is complete - i.e. the finger is released again, by which time the active class wouldn&apos;t apply anymore. Although they are similar, I don&apos;t think mouse and touch events are the same enough to do conversion sooner than this. We don&apos;t know the intent of the user&apos;s touch until later - were they just meaning to pan the page or perform a long press for the context menu for example (in which case we wouldn&apos;t want to trigger links/send mouse events to webcore ... or set the active state).

There&apos;s a good example of using active on divs with touch handlers at this page: http://xdev.org/anim/browser/ the divs should turn blue while you are touching them. The motivation behind trying to come up with a fix for this is to bring WebKit touch support in line with that of the iPhone :)

Cheers, Ben</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235436</commentid>
    <comment_count>7</comment_count>
    <who name="Kim Grönholm">kim.1.gronholm</who>
    <bug_when>2010-06-08 12:35:35 -0700</bug_when>
    <thetext>Ah.. Right, that&apos;s a good point, I see now :) And it is common not to send the left mouse button press immediately.. This is fine on my behalf.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249739</commentid>
    <comment_count>8</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-07-12 03:17:12 -0700</bug_when>
    <thetext>Thanks for taking a look Kim. I suspect that I&apos;ll need to rebase this patch now but rather than just uploading a new rebased one I could also make any changes that reviewers suggest at the same time. Any thoughts guys? :)

Thanks, Ben</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253674</commentid>
    <comment_count>9</comment_count>
      <attachid>62058</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-07-20 05:55:51 -0700</bug_when>
    <thetext>Created attachment 62058
Rebased patch / layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253676</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-20 06:01:13 -0700</bug_when>
    <thetext>Attachment 62058 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/page/EventHandler.cpp:2857:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253681</commentid>
    <comment_count>11</comment_count>
      <attachid>62063</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-07-20 06:07:29 -0700</bug_when>
    <thetext>Created attachment 62063
Rebased patch / layout test, fixed style error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253712</commentid>
    <comment_count>12</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-07-20 07:26:31 -0700</bug_when>
    <thetext>Hmm, strange that the Mac EWS isn&apos;t happy - built fine for me locally.

I&apos;m trying a clean build locally to try and see what the problem is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253742</commentid>
    <comment_count>13</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-07-20 08:33:38 -0700</bug_when>
    <thetext>Hmm, built completely fine on my local machine. Perhaps some flakiness in the bot... doesn&apos;t seem to provide any extra information other than &quot;fail&quot;...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253747</commentid>
    <comment_count>14</comment_count>
      <attachid>62063</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-07-20 08:48:16 -0700</bug_when>
    <thetext>Comment on attachment 62063
Rebased patch / layout test, fixed style error.

Kim&apos;s the expert here, but given his previous review, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254175</commentid>
    <comment_count>15</comment_count>
      <attachid>62063</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-07-21 02:14:47 -0700</bug_when>
    <thetext>Comment on attachment 62063
Rebased patch / layout test, fixed style error.

I can&apos;t repro the Mac build problem, so going to try landing. Will watch the build pages carefully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254189</commentid>
    <comment_count>16</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-07-21 03:06:34 -0700</bug_when>
    <thetext>Patch landed as r63807; there was a break on Mac (not sure why it didn&apos;t repro on my local MacBook build though) and the fix for that break (simple xcodeproj update) landed in r63808.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254368</commentid>
    <comment_count>17</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-07-21 09:55:26 -0700</bug_when>
    <thetext>Using an int for hitType is ugly. This should be a typedef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254439</commentid>
    <comment_count>18</comment_count>
      <attachid>62215</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-07-21 11:59:43 -0700</bug_when>
    <thetext>Created attachment 62215
Use a typedef as suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254441</commentid>
    <comment_count>19</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-07-21 12:01:10 -0700</bug_when>
    <thetext>Reopening based on SImon&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254442</commentid>
    <comment_count>20</comment_count>
      <attachid>62215</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-07-21 12:05:19 -0700</bug_when>
    <thetext>Comment on attachment 62215
Use a typedef as suggested.

You should use the same type in HitTestRequest, like this:

class HitTestRequest {
public:
    enum RequestTypeFlags {
        ReadOnly = 1 &lt;&lt; 1,
        ...
    };

    typedef unsigned HitTestRequestType;

    HitTestRequest(HitTestRequestType requestType) ...

private:
    HitTestRequestType m_requestType;
}
etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254469</commentid>
    <comment_count>21</comment_count>
      <attachid>62222</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-07-21 12:53:15 -0700</bug_when>
    <thetext>Created attachment 62222
Patch with typedef.

I couldn&apos;t find anywhere else in WebCore that is using an int/unsigned for this purpose that needed updating. WDYT?

Thanks, Ben</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254494</commentid>
    <comment_count>22</comment_count>
      <attachid>62222</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-07-21 13:34:53 -0700</bug_when>
    <thetext>Comment on attachment 62222
Patch with typedef.

r=me. Thanks for the cleanup!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254768</commentid>
    <comment_count>23</comment_count>
      <attachid>62222</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-22 07:07:33 -0700</bug_when>
    <thetext>Comment on attachment 62222
Patch with typedef.

Clearing flags on attachment: 62222

Committed r63888: &lt;http://trac.webkit.org/changeset/63888&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263027</commentid>
    <comment_count>24</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-10 22:42:11 -0700</bug_when>
    <thetext>This patch claims to have been landed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56884</attachid>
            <date>2010-05-24 07:36:41 -0700</date>
            <delta_ts>2010-05-24 07:48:21 -0700</delta_ts>
            <desc>Proposed patch and test.</desc>
            <filename>39493.txt</filename>
            <type>text/plain</type>
            <size>12206</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDA2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMTAtMDUtMjQgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvdWNo
IGV2ZW50cyBkbyBub3QgYWZmZWN0IHRoZSA6YWN0aXZlIENTUyBzdGF0ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk0OTMKKworICAgICAgICBUZXN0
OiBmYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUuaHRtbAorCisgICAgICAgKiBwYWdlL0V2
ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFu
ZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhpdFRlc3RSZXN1bHRBdFBv
aW50KTogUGFzcyB0aGUgdHlwZSBvZiBoaXQgdGVzdCB3cnQuIHNldHRpbmcgdGhlCisgICAgICAg
ICAgICBhY3RpdmUgZWxlbWVudCBhcyBhIHBhcmFtZXRlciB3aXRoIGEgZGVmYXVsdCB2YWx1ZSBy
YXRoZXIgdGhhbiBoYXJkIGNvZGluZyBpdCBpbnRvIHRoZQorICAgICAgICAgICAgZnVuY3Rpb24g
Ym9keS4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZl
bnQpOiBEbyBub3QgbW9kaWZ5IHRoZSBhY3RpdmUgZWxlbWVudCBkdXJpbmcgYQorICAgICAgICAg
ICAgbW91c2UgbW92ZSBpZiB0aGUgdXNlciBoYXMgdG91Y2hlZCB0aGUgc2NyZWVuLgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KTogU2V0IHRoZSBjb3Jy
ZWN0IHR5cGUgb2YgaGl0IHRlc3QgdG8gcGVyZm9ybSB3aXRoCisgICAgICAgICAgICByZXNwZWN0
IHRvIG1vZGlmeWluZyB0aGUgYWN0aXZlIGVsZW1lbnQuCisgICAgICAgICogcGFnZS9FdmVudEhh
bmRsZXIuaDogVXBkYXRlIHNpZ25hdHVyZSBvZiBoaXRUZXN0UmVzdWx0QXRQb2ludCBhbmQgYWRk
IGEgbWVtYmVyIGJvb2wgdG8gdHJhY2sKKyAgICAgICAgICAgIGlmIHRoZSB1c2VyIGhhcyBhIGZp
bmdlciBwcmVzc2VkIGRvd24uCisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDogVXBkYXRlIGV4
cG9ydHMgZm9yIG5ldyBzaWduYXR1cmUgb2YgaGl0VGVzdFJlc3VsdEF0UG9pbnQuCisgICAgICAg
ICogV2ViQ29yZS5vcmRlcjogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOk1ha2UgSGl0VGVzdFJlcXVlc3QuaCBQcml2YXRlLgorIAorCiAyMDEwLTA1
LTI0ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDYwMDY2KQorKysg
V2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTQsNyArMjE0LDcg
QEAgX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxNHNjcm9sbE92ZXJmbAogX19aTjdXZWJDb3Jl
MTJFdmVudEhhbmRsZXIxNXNlbmRTY3JvbGxFdmVudEV2CiBfX1pON1dlYkNvcmUxMkV2ZW50SGFu
ZGxlcjE2aGFuZGxlV2hlZWxFdmVudEVSTlNfMThQbGF0Zm9ybVdoZWVsRXZlbnRFCiBfX1pON1dl
YkNvcmUxMkV2ZW50SGFuZGxlcjIwaGFuZGxlVGV4dElucHV0RXZlbnRFUktOU182U3RyaW5nRVBO
U181RXZlbnRFYmIKLV9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjBoaXRUZXN0UmVzdWx0QXRQ
b2ludEVSS05TXzhJbnRQb2ludEViYk5TXzE3SGl0VGVzdFNjcm9sbGJhcnNFCitfX1pON1dlYkNv
cmUxMkV2ZW50SGFuZGxlcjIwaGl0VGVzdFJlc3VsdEF0UG9pbnRFUktOU184SW50UG9pbnRFYmJO
U18xN0hpdFRlc3RTY3JvbGxiYXJzRWkKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjFoYW5k
bGVNb3VzZVByZXNzRXZlbnRFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEUKIF9fWk43V2ViQ29y
ZTEyRXZlbnRIYW5kbGVyMjNoYW5kbGVNb3VzZVJlbGVhc2VFdmVudEVSS05TXzE4UGxhdGZvcm1N
b3VzZUV2ZW50RQogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIyN2NhcHNMb2NrU3RhdGVNYXlI
YXZlQ2hhbmdlZEV2CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUub3JkZXIKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9XZWJDb3JlLm9yZGVyCShyZXZpc2lvbiA2MDA2NikKKysrIFdlYkNvcmUvV2ViQ29y
ZS5vcmRlcgkod29ya2luZyBjb3B5KQpAQCAtMjk5OSw3ICsyOTk5LDcgQEAgX19aTjdXZWJDb3Jl
MjRTdHJpbmdXcmFwcGVyQ0ZBbGxvY2F0b3JMMgogX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0
NXRoZW1lRXYKIF9fWk5LN1dlYkNvcmUxNFJlbmRlclRoZW1lTWFjMjBzdXBwb3J0c0NvbnRyb2xU
aW50c0V2CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDIzc2V0VXBkYXRpbmdDb250cm9s
VGludHNFYgotX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIyMGhpdFRlc3RSZXN1bHRBdFBvaW50
RVJLTlNfOEludFBvaW50RWJiTlNfMTdIaXRUZXN0U2Nyb2xsYmFyc0UKK19fWk43V2ViQ29yZTEy
RXZlbnRIYW5kbGVyMjBoaXRUZXN0UmVzdWx0QXRQb2ludEVSS05TXzhJbnRQb2ludEViYk5TXzE3
SGl0VGVzdFNjcm9sbGJhcnNFaQogX19aTks3V2ViQ29yZTEzSGl0VGVzdFJlc3VsdDEwaXNTZWxl
Y3RlZEV2CiBfX1pON1dlYkNvcmUxOVNlbGVjdGlvbkNvbnRyb2xsZXI4Y29udGFpbnNFUktOU184
SW50UG9pbnRFCiBfX1pON1dlYkNvcmUxM0lubGluZVRleHRCb3gxMW5vZGVBdFBvaW50RVJLTlNf
MTRIaXRUZXN0UmVxdWVzdEVSTlNfMTNIaXRUZXN0UmVzdWx0RWlpaWkKSW5kZXg6IFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA2MDA2NikKKysrIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0yMjg2LDcgKzIyODYsNyBAQAogCQk5MzA3RjExMzBBRjJDOEJFMDBEQkEzMUEgLyogRE9NTm9k
ZUludGVybmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NUI0OThGQTBBREIzNDAyMDA5MjVDQkIgLyogRE9NTm9kZUludGVy
bmFsLmggKi87IH07CiAJCTkzMDdGMUQ3MEFGMkQ1OTAwMERCQTMxQSAvKiBIaXRUZXN0UmVzdWx0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDdG
MUQ1MEFGMkQ1OTAwMERCQTMxQSAvKiBIaXRUZXN0UmVzdWx0LmNwcCAqLzsgfTsKIAkJOTMwN0Yx
RDgwQUYyRDU5MDAwREJBMzFBIC8qIEhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDdGMUQ2MEFGMkQ1OTAwMERCQTMxQSAvKiBI
aXRUZXN0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJOTMwOTA4OTEwQUY3RURFNDAwODFERjAxIC8qIEhpdFRlc3RSZXF1ZXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA5MDg5MDBBRjdF
REU0MDA4MURGMDEgLyogSGl0VGVzdFJlcXVlc3QuaCAqLzsgfTsKKwkJOTMwOTA4OTEwQUY3RURF
NDAwODFERjAxIC8qIEhpdFRlc3RSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA5MDg5MDBBRjdFREU0MDA4MURGMDEgLyogSGl0VGVzdFJl
cXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5MzBGQzY4QTEwNzJCOTI4MDA0NTI5M0UgLyogVGV4dFJlbmRlcmluZ01vZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMEZDNjg5MTA3MkI5Mjgw
MDQ1MjkzRSAvKiBUZXh0UmVuZGVyaW5nTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMUJDQzYxMTEyNERGQ0IwMEJFNzBERCAvKiBNZWRp
YUNhblN0YXJ0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzMUJDQzYwMTEyNERGQ0IwMEJFNzBERCAvKiBNZWRpYUNhblN0YXJ0TGlzdGVu
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
MzI2REMwQzA5REFENUQ2MDBBRkM4NDcgLyogQ2hhcnNldERhdGEuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgxQUMwOUQxNEVFNjAwMEU2MUQ3
IC8qIENoYXJzZXREYXRhLmNwcCAqLzsgfTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCShyZXZp
c2lvbiA2MDA2NikKKysrIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xODksNiArMTg5LDkgQEAgRXZlbnRIYW5kbGVyOjpFdmVudEhhbmRsZXIoRnJhbWUq
IGZyYW1lKQogICAgICwgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcoZmFsc2UpCiAgICAgLCBtX2Fj
dGl2YXRpb25FdmVudE51bWJlcigwKQogI2VuZGlmCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykK
KyAgICAsIG1fdG91Y2hQcmVzc2VkKGZhbHNlKQorI2VuZGlmCiB7CiB9CiAKQEAgLTg1OCwxMiAr
ODYxLDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjphbGxvd0RIVE1MRHJhZyhib29sJiAKIH0KICNl
bmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIAotSGl0VGVzdFJlc3VsdCBFdmVudEhh
bmRsZXI6OmhpdFRlc3RSZXN1bHRBdFBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCwgYm9vbCBh
bGxvd1NoYWRvd0NvbnRlbnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcsIEhpdFRlc3RTY3JvbGxiYXJz
IHRlc3RTY3JvbGxiYXJzKQorSGl0VGVzdFJlc3VsdCBFdmVudEhhbmRsZXI6OmhpdFRlc3RSZXN1
bHRBdFBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCwgYm9vbCBhbGxvd1NoYWRvd0NvbnRlbnQs
IGJvb2wgaWdub3JlQ2xpcHBpbmcsIEhpdFRlc3RTY3JvbGxiYXJzIHRlc3RTY3JvbGxiYXJzLCBp
bnQgaGl0VHlwZSkKIHsKICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdChwb2ludCk7CiAgICAgaWYg
KCFtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICBpbnQgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0
OjpBY3RpdmU7CiAgICAgaWYgKGlnbm9yZUNsaXBwaW5nKQogICAgICAgICBoaXRUeXBlIHw9IEhp
dFRlc3RSZXF1ZXN0OjpJZ25vcmVDbGlwcGluZzsKICAgICBtX2ZyYW1lLT5jb250ZW50UmVuZGVy
ZXIoKS0+bGF5ZXIoKS0+aGl0VGVzdChIaXRUZXN0UmVxdWVzdChoaXRUeXBlKSwgcmVzdWx0KTsK
QEAgLTE0MzAsMTAgKzE0MzIsMTUgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92
ZUV2ZW50KAogICAgIC8vIFRoaXMgbWVhbnMgdGhhdCA6aG92ZXIgYW5kIDphY3RpdmUgZnJlZXpl
IGluIHRoZSBzdGF0ZSB0aGV5IHdlcmUgaW4gd2hlbiB0aGUgbW91c2UKICAgICAvLyB3YXMgcHJl
c3NlZCwgcmF0aGVyIHRoYW4gdXBkYXRpbmcgZm9yIG5vZGVzIHRoZSBtb3VzZSBtb3ZlcyBvdmVy
IGFzIHlvdSBob2xkIHRoZSBtb3VzZSBkb3duLgogICAgIGludCBoaXRUeXBlID0gSGl0VGVzdFJl
cXVlc3Q6Ok1vdXNlTW92ZTsKLSAgICBpZiAobV9tb3VzZVByZXNzZWQgJiYgbV9tb3VzZURvd25N
YXlTdGFydFNlbGVjdCkKKyAgICBpZiAobV9tb3VzZVByZXNzZWQgJiYgbV9tb3VzZURvd25NYXlT
dGFydFNlbGVjdAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgICAgIHx8IG1fdG91Y2hQ
cmVzc2VkCisjZW5kaWYKKyAgICAgICAgKQogICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1
ZXN0OjpSZWFkT25seTsKICAgICBpZiAobV9tb3VzZVByZXNzZWQpCiAgICAgICAgIGhpdFR5cGUg
fD0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZTsKKwogICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3Qo
aGl0VHlwZSk7CiAgICAgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyBtZXYgPSBwcmVwYXJl
TW91c2VFdmVudChyZXF1ZXN0LCBtb3VzZUV2ZW50KTsKICAgICBpZiAoaG92ZXJlZE5vZGUpCkBA
IC0yNzU5LDcgKzI3NjYsMjEgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQo
Y29ucwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwb2ludHMuc2l6ZSgpOyArK2kpIHsK
ICAgICAgICAgY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiBwb2ludCA9IHBvaW50c1tpXTsKICAg
ICAgICAgSW50UG9pbnQgcGFnZVBvaW50ID0gZG9jdW1lbnRQb2ludEZvcldpbmRvd1BvaW50KG1f
ZnJhbWUsIHBvaW50LnBvcygpKTsKLSAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBoaXRU
ZXN0UmVzdWx0QXRQb2ludChwYWdlUG9pbnQsIC8qYWxsb3dTaGFkb3dDb250ZW50Ki8gZmFsc2Up
OworICAgICAgICBpbnQgaGl0VHlwZSA9IDA7CisgICAgICAgIHN3aXRjaCAocG9pbnQuc3RhdGUo
KSkgeworICAgICAgICAgICAgY2FzZSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZDoK
KyAgICAgICAgICAgICAgICBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaE1vdmVkOgorICAgICAgICAgICAgICAgIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6QWN0
aXZlIHwgSGl0VGVzdFJlcXVlc3Q6Ok1vdXNlTW92ZSB8IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25s
eTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUGxhdGZvcm1Ub3Vj
aFBvaW50OjpUb3VjaFJlbGVhc2VkOgorICAgICAgICAgICAgICAgIGhpdFR5cGUgPSBIaXRUZXN0
UmVxdWVzdDo6TW91c2VVcDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICAgICAgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUg
fCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHk7CisgICAgICAgIH0KKyAgICAgICAgSGl0VGVzdFJl
c3VsdCByZXN1bHQgPSBoaXRUZXN0UmVzdWx0QXRQb2ludChwYWdlUG9pbnQsIC8qYWxsb3dTaGFk
b3dDb250ZW50Ki8gZmFsc2UsIGZhbHNlLCBEb250SGl0VGVzdFNjcm9sbGJhcnMsIGhpdFR5cGUp
OwogICAgICAgICBOb2RlKiB0YXJnZXQgPSByZXN1bHQuaW5uZXJOb2RlKCk7CiAKICAgICAgICAg
Ly8gVG91Y2ggZXZlbnRzIHNob3VsZCBub3QgZ28gdG8gdGV4dCBub2RlcwpAQCAtMjgwMSw4ICsy
ODIyLDExIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KGNvbnMKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRqdXN0ZWRQYWdlWCwgYWRq
dXN0ZWRQYWdlWSk7CiAKICAgICAgICAgLy8gdG91Y2hlcyBzaG91bGQgY29udGFpbiBpbmZvcm1h
dGlvbiBhYm91dCBldmVyeSB0b3VjaCBjdXJyZW50bHkgb24gdGhlIHNjcmVlbi4KLSAgICAgICAg
aWYgKHBvaW50LnN0YXRlKCkgIT0gUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkKQor
ICAgICAgICBtX3RvdWNoUHJlc3NlZCA9IGZhbHNlOworICAgICAgICBpZiAocG9pbnQuc3RhdGUo
KSAhPSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQpIHsKICAgICAgICAgICAgIHRv
dWNoZXMtPmFwcGVuZCh0b3VjaCk7CisgICAgICAgICAgICBtX3RvdWNoUHJlc3NlZCA9IHRydWU7
CisgICAgICAgIH0KIAogICAgICAgICAvLyBOb3cgYnVpbGQgdXAgdGhlIGNvcnJlY3QgbGlzdCBm
b3IgY2hhbmdlZFRvdWNoZXMuCiAgICAgICAgIC8vIE5vdGUgdGhhdCAgYW55IHRvdWNoZXMgdGhh
dCBhcmUgaW4gdGhlIFRvdWNoU3RhdGlvbmFyeSBzdGF0ZSAoZS5nLiBpZgpJbmRleDogV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuaAkocmV2aXNpb24gNjAwNjYpCisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkRyYWdBY3Rpb25z
LmgiCiAjaW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIKKyNpbmNsdWRlICJIaXRUZXN0UmVxdWVz
dC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlNjcm9sbFR5
cGVzLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTEwNSw3ICsxMDYsNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbkluUXVhZChjb25zdCBGbG9h
dFF1YWQmKTsKIAotICAgIEhpdFRlc3RSZXN1bHQgaGl0VGVzdFJlc3VsdEF0UG9pbnQoY29uc3Qg
SW50UG9pbnQmLCBib29sIGFsbG93U2hhZG93Q29udGVudCwgYm9vbCBpZ25vcmVDbGlwcGluZyA9
IGZhbHNlLCBIaXRUZXN0U2Nyb2xsYmFycyBzY3JvbGxiYXJzID0gRG9udEhpdFRlc3RTY3JvbGxi
YXJzKTsKKyAgICBIaXRUZXN0UmVzdWx0IGhpdFRlc3RSZXN1bHRBdFBvaW50KGNvbnN0IEludFBv
aW50JiwgYm9vbCBhbGxvd1NoYWRvd0NvbnRlbnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcgPSBmYWxz
ZSwgSGl0VGVzdFNjcm9sbGJhcnMgc2Nyb2xsYmFycyA9IERvbnRIaXRUZXN0U2Nyb2xsYmFycywg
aW50IGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6
QWN0aXZlKTsKIAogICAgIGJvb2wgbW91c2VQcmVzc2VkKCkgY29uc3QgeyByZXR1cm4gbV9tb3Vz
ZVByZXNzZWQ7IH0KICAgICB2b2lkIHNldE1vdXNlUHJlc3NlZChib29sIHByZXNzZWQpIHsgbV9t
b3VzZVByZXNzZWQgPSBwcmVzc2VkOyB9CkBAIC00MjksNiArNDMwLDcgQEAgcHJpdmF0ZToKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFJlZlB0cjxF
dmVudFRhcmdldD4gPiBUb3VjaFRhcmdldE1hcDsKICAgICBUb3VjaFRhcmdldE1hcCBtX29yaWdp
bmF0aW5nVG91Y2hQb2ludFRhcmdldHM7CisgICAgYm9vbCBtX3RvdWNoUHJlc3NlZDsKICNlbmRp
ZgogfTsKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjAwNzEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wNS0yNCAgQmVuIE11cmRv
Y2ggIDxiZW5tQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVG91Y2ggZXZlbnRzIGRvIG5vdCBhZmZlY3QgdGhlIDphY3RpdmUgQ1NT
IHN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
OTQ5MworCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtYWN0aXZlLXN0YXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtYWN0
aXZlLXN0YXRlLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA1LTI0ICBKZXJlbXkgT3Jsb3cgIDxqb3Js
b3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBGb3Jnb3QgdG8gcmVkbyB0
aGUgZXhwZWN0YXRpb24gYWZ0ZXIgYWRkaW5nIHRoZSBjb250YWlucwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3Rh
dGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvdG91Y2gtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw5IEBACitUZXN0IHRvdWNoZXMgc2V0IHRoZSBhY3RpdmUgc3RhdGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvdG91
Y2gtYWN0aXZlLXN0YXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvdG91Y2gtYWN0aXZlLXN0YXRlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0OCBAQAorPGh0bWw+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjYm94IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOmJsdWU7
CisgICAgd2lkdGg6MTAwcHg7CisgICAgaGVpZ2h0OjEwMHB4OworfQorCisjYm94OmFjdGl2ZSB7
CisgICAgdmlzaWJpbGl0eTpoaWRkZW47Cit9CisKKzwvc3R5bGU+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKTsiPgorPGRpdiBpZD0iYm94IiBvbnRvdWNoc3RhcnQ9InRlc3RDb21wbGV0ZSgpOyI+
RkFJTDwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CitkZXNjcmlwdGlvbign
VGVzdCB0b3VjaGVzIHNldCB0aGUgYWN0aXZlIHN0YXRlLicpOworCitmdW5jdGlvbiB0ZXN0Q29t
cGxldGUoZXZlbnQpCit7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQorewor
ICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgLy8gVG91Y2ggdGhlIGNlbnRl
ciBvZiB0aGUgZGl2LgorICAgICAgICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KDUwLCA1MCk7
CisgICAgICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
ZGVidWcoJ1RoaXMgdGVzdCByZXF1aXJlcyBEUlQuJyk7Cit9CisKK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56886</attachid>
            <date>2010-05-24 07:48:21 -0700</date>
            <delta_ts>2010-07-20 05:55:51 -0700</delta_ts>
            <desc>Patch and layout test changes.</desc>
            <filename>39493.txt</filename>
            <type>text/plain</type>
            <size>12178</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDA3MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMTAtMDUtMjQgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvdWNo
IGV2ZW50cyBkbyBub3QgYWZmZWN0IHRoZSA6YWN0aXZlIENTUyBzdGF0ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk0OTMKKworICAgICAgICBUZXN0
OiBmYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUuaHRtbAorCisgICAgICAgKiBwYWdlL0V2
ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFu
ZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhpdFRlc3RSZXN1bHRBdFBv
aW50KTogUGFzcyB0aGUgdHlwZSBvZiBoaXQgdGVzdCB3cnQuIHNldHRpbmcgdGhlCisgICAgICAg
ICAgICBhY3RpdmUgZWxlbWVudCBhcyBhIHBhcmFtZXRlciB3aXRoIGEgZGVmYXVsdCB2YWx1ZSBy
YXRoZXIgdGhhbiBoYXJkIGNvZGluZyBpdCBpbnRvIHRoZQorICAgICAgICAgICAgZnVuY3Rpb24g
Ym9keS4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZl
bnQpOiBEbyBub3QgbW9kaWZ5IHRoZSBhY3RpdmUgZWxlbWVudCBkdXJpbmcgYQorICAgICAgICAg
ICAgbW91c2UgbW92ZSBpZiB0aGUgdXNlciBoYXMgdG91Y2hlZCB0aGUgc2NyZWVuLgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KTogU2V0IHRoZSBjb3Jy
ZWN0IHR5cGUgb2YgaGl0IHRlc3QgdG8gcGVyZm9ybSB3aXRoCisgICAgICAgICAgICByZXNwZWN0
IHRvIG1vZGlmeWluZyB0aGUgYWN0aXZlIGVsZW1lbnQuCisgICAgICAgICogcGFnZS9FdmVudEhh
bmRsZXIuaDogVXBkYXRlIHNpZ25hdHVyZSBvZiBoaXRUZXN0UmVzdWx0QXRQb2ludCBhbmQgYWRk
IGEgbWVtYmVyIGJvb2wgdG8gdHJhY2sKKyAgICAgICAgICAgIGlmIHRoZSB1c2VyIGhhcyBhIGZp
bmdlciBwcmVzc2VkIGRvd24uCisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDogVXBkYXRlIGV4
cG9ydHMgZm9yIG5ldyBzaWduYXR1cmUgb2YgaGl0VGVzdFJlc3VsdEF0UG9pbnQuCisgICAgICAg
ICogV2ViQ29yZS5vcmRlcjogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOk1ha2UgSGl0VGVzdFJlcXVlc3QuaCBQcml2YXRlLgorIAorCiAyMDEwLTA1
LTI0ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQuICBDaGVja2VkIGluIG1lcmdlIGVycm9yLiAgOi0oCkluZGV4OiBXZWJDb3JlL1dlYkNv
cmUuYmFzZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCShyZXZp
c2lvbiA2MDA3MSkKKysrIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAkod29ya2luZyBjb3B5KQpA
QCAtMjE0LDcgKzIxNCw3IEBAIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTRzY3JvbGxPdmVy
ZmwKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTVzZW5kU2Nyb2xsRXZlbnRFdgogX19aTjdX
ZWJDb3JlMTJFdmVudEhhbmRsZXIxNmhhbmRsZVdoZWVsRXZlbnRFUk5TXzE4UGxhdGZvcm1XaGVl
bEV2ZW50RQogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIyMGhhbmRsZVRleHRJbnB1dEV2ZW50
RVJLTlNfNlN0cmluZ0VQTlNfNUV2ZW50RWJiCi1fX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjIw
aGl0VGVzdFJlc3VsdEF0UG9pbnRFUktOU184SW50UG9pbnRFYmJOU18xN0hpdFRlc3RTY3JvbGxi
YXJzRQorX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIyMGhpdFRlc3RSZXN1bHRBdFBvaW50RVJL
TlNfOEludFBvaW50RWJiTlNfMTdIaXRUZXN0U2Nyb2xsYmFyc0VpCiBfX1pON1dlYkNvcmUxMkV2
ZW50SGFuZGxlcjIxaGFuZGxlTW91c2VQcmVzc0V2ZW50RVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZl
bnRFCiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjIzaGFuZGxlTW91c2VSZWxlYXNlRXZlbnRF
UktOU18xOFBsYXRmb3JtTW91c2VFdmVudEUKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjdj
YXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWRFdgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLm9yZGVy
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5vcmRlcgkocmV2aXNpb24gNjAwNzEpCisr
KyBXZWJDb3JlL1dlYkNvcmUub3JkZXIJKHdvcmtpbmcgY29weSkKQEAgLTI5OTksNyArMjk5OSw3
IEBAIF9fWk43V2ViQ29yZTI0U3RyaW5nV3JhcHBlckNGQWxsb2NhdG9yTDIKIF9fWk5LN1dlYkNv
cmUxMlJlbmRlck9iamVjdDV0aGVtZUV2CiBfX1pOSzdXZWJDb3JlMTRSZW5kZXJUaGVtZU1hYzIw
c3VwcG9ydHNDb250cm9sVGludHNFdgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQyM3Nl
dFVwZGF0aW5nQ29udHJvbFRpbnRzRWIKLV9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjBoaXRU
ZXN0UmVzdWx0QXRQb2ludEVSS05TXzhJbnRQb2ludEViYk5TXzE3SGl0VGVzdFNjcm9sbGJhcnNF
CitfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjIwaGl0VGVzdFJlc3VsdEF0UG9pbnRFUktOU184
SW50UG9pbnRFYmJOU18xN0hpdFRlc3RTY3JvbGxiYXJzRWkKIF9fWk5LN1dlYkNvcmUxM0hpdFRl
c3RSZXN1bHQxMGlzU2VsZWN0ZWRFdgogX19aTjdXZWJDb3JlMTlTZWxlY3Rpb25Db250cm9sbGVy
OGNvbnRhaW5zRVJLTlNfOEludFBvaW50RQogX19aTjdXZWJDb3JlMTNJbmxpbmVUZXh0Qm94MTFu
b2RlQXRQb2ludEVSS05TXzE0SGl0VGVzdFJlcXVlc3RFUk5TXzEzSGl0VGVzdFJlc3VsdEVpaWlp
CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gNjAwNzEpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMjI4Niw3ICsyMjg2LDcgQEAKIAkJOTMwN0YxMTMwQUYyQzhCRTAw
REJBMzFBIC8qIERPTU5vZGVJbnRlcm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVCNDk4RkEwQURCMzQwMjAwOTI1Q0JC
IC8qIERPTU5vZGVJbnRlcm5hbC5oICovOyB9OwogCQk5MzA3RjFENzBBRjJENTkwMDBEQkEzMUEg
LyogSGl0VGVzdFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzA3RjFENTBBRjJENTkwMDBEQkEzMUEgLyogSGl0VGVzdFJlc3VsdC5jcHAg
Ki87IH07CiAJCTkzMDdGMUQ4MEFGMkQ1OTAwMERCQTMxQSAvKiBIaXRUZXN0UmVzdWx0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA3RjFENjBBRjJE
NTkwMDBEQkEzMUEgLyogSGl0VGVzdFJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTkzMDkwODkxMEFGN0VERTQwMDgxREYwMSAvKiBIaXRU
ZXN0UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMwOTA4OTAwQUY3RURFNDAwODFERjAxIC8qIEhpdFRlc3RSZXF1ZXN0LmggKi87IH07CisJ
CTkzMDkwODkxMEFGN0VERTQwMDgxREYwMSAvKiBIaXRUZXN0UmVxdWVzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwOTA4OTAwQUY3RURFNDAwODFE
RjAxIC8qIEhpdFRlc3RSZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTMwRkM2OEExMDcyQjkyODAwNDUyOTNFIC8qIFRleHRSZW5kZXJp
bmdNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzBGQzY4OTEwNzJCOTI4MDA0NTI5M0UgLyogVGV4dFJlbmRlcmluZ01vZGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzFCQ0M2MTExMjRERkNC
MDBCRTcwREQgLyogTWVkaWFDYW5TdGFydExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFCQ0M2MDExMjRERkNCMDBCRTcwREQgLyogTWVk
aWFDYW5TdGFydExpc3RlbmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTMyNkRDMEMwOURBRDVENjAwQUZDODQ3IC8qIENoYXJzZXREYXRhLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjU4MUFD
MDlEMTRFRTYwMDBFNjFENyAvKiBDaGFyc2V0RGF0YS5jcHAgKi87IH07CkluZGV4OiBXZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAkocmV2aXNpb24gNjAwNzEpCisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg5LDYgKzE4OSw5IEBAIEV2ZW50SGFuZGxlcjo6RXZl
bnRIYW5kbGVyKEZyYW1lKiBmcmFtZSkKICAgICAsIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KGZh
bHNlKQogICAgICwgbV9hY3RpdmF0aW9uRXZlbnROdW1iZXIoMCkKICNlbmRpZgorI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCisgICAgLCBtX3RvdWNoUHJlc3NlZChmYWxzZSkKKyNlbmRpZgogewog
fQogCkBAIC04NTgsMTIgKzg2MSwxMSBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6YWxsb3dESFRNTERy
YWcoYm9vbCYgCiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAKLUhpdFRl
c3RSZXN1bHQgRXZlbnRIYW5kbGVyOjpoaXRUZXN0UmVzdWx0QXRQb2ludChjb25zdCBJbnRQb2lu
dCYgcG9pbnQsIGJvb2wgYWxsb3dTaGFkb3dDb250ZW50LCBib29sIGlnbm9yZUNsaXBwaW5nLCBI
aXRUZXN0U2Nyb2xsYmFycyB0ZXN0U2Nyb2xsYmFycykKK0hpdFRlc3RSZXN1bHQgRXZlbnRIYW5k
bGVyOjpoaXRUZXN0UmVzdWx0QXRQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQsIGJvb2wgYWxs
b3dTaGFkb3dDb250ZW50LCBib29sIGlnbm9yZUNsaXBwaW5nLCBIaXRUZXN0U2Nyb2xsYmFycyB0
ZXN0U2Nyb2xsYmFycywgaW50IGhpdFR5cGUpCiB7CiAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQo
cG9pbnQpOwogICAgIGlmICghbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpCiAgICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgaW50IGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkg
fCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlOwogICAgIGlmIChpZ25vcmVDbGlwcGluZykKICAgICAg
ICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6SWdub3JlQ2xpcHBpbmc7CiAgICAgbV9mcmFt
ZS0+Y29udGVudFJlbmRlcmVyKCktPmxheWVyKCktPmhpdFRlc3QoSGl0VGVzdFJlcXVlc3QoaGl0
VHlwZSksIHJlc3VsdCk7CkBAIC0xNDMwLDEwICsxNDMyLDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpoYW5kbGVNb3VzZU1vdmVFdmVudCgKICAgICAvLyBUaGlzIG1lYW5zIHRoYXQgOmhvdmVyIGFu
ZCA6YWN0aXZlIGZyZWV6ZSBpbiB0aGUgc3RhdGUgdGhleSB3ZXJlIGluIHdoZW4gdGhlIG1vdXNl
CiAgICAgLy8gd2FzIHByZXNzZWQsIHJhdGhlciB0aGFuIHVwZGF0aW5nIGZvciBub2RlcyB0aGUg
bW91c2UgbW92ZXMgb3ZlciBhcyB5b3UgaG9sZCB0aGUgbW91c2UgZG93bi4KICAgICBpbnQgaGl0
VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpNb3VzZU1vdmU7Ci0gICAgaWYgKG1fbW91c2VQcmVzc2Vk
ICYmIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QpCisgICAgaWYgKG1fbW91c2VQcmVzc2VkICYm
IG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAg
ICAgICB8fCBtX3RvdWNoUHJlc3NlZAorI2VuZGlmCisgICAgICAgICkKICAgICAgICAgaGl0VHlw
ZSB8PSBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHk7CiAgICAgaWYgKG1fbW91c2VQcmVzc2VkKQog
ICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmU7CisKICAgICBIaXRUZXN0
UmVxdWVzdCByZXF1ZXN0KGhpdFR5cGUpOwogICAgIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3Vs
dHMgbWV2ID0gcHJlcGFyZU1vdXNlRXZlbnQocmVxdWVzdCwgbW91c2VFdmVudCk7CiAgICAgaWYg
KGhvdmVyZWROb2RlKQpAQCAtMjc1OSw3ICsyNzY2LDIxIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpo
YW5kbGVUb3VjaEV2ZW50KGNvbnMKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcG9pbnRz
LnNpemUoKTsgKytpKSB7CiAgICAgICAgIGNvbnN0IFBsYXRmb3JtVG91Y2hQb2ludCYgcG9pbnQg
PSBwb2ludHNbaV07CiAgICAgICAgIEludFBvaW50IHBhZ2VQb2ludCA9IGRvY3VtZW50UG9pbnRG
b3JXaW5kb3dQb2ludChtX2ZyYW1lLCBwb2ludC5wb3MoKSk7Ci0gICAgICAgIEhpdFRlc3RSZXN1
bHQgcmVzdWx0ID0gaGl0VGVzdFJlc3VsdEF0UG9pbnQocGFnZVBvaW50LCAvKmFsbG93U2hhZG93
Q29udGVudCovIGZhbHNlKTsKKyAgICAgICAgaW50IGhpdFR5cGUgPSAwOworICAgICAgICBzd2l0
Y2ggKHBvaW50LnN0YXRlKCkpIHsKKyAgICAgICAgY2FzZSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRv
dWNoUHJlc3NlZDoKKyAgICAgICAgICAgIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6QWN0aXZl
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaE1vdmVkOgorICAgICAgICAgICAgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUg
fCBIaXRUZXN0UmVxdWVzdDo6TW91c2VNb3ZlIHwgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5Owor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3Vj
aFJlbGVhc2VkOgorICAgICAgICAgICAgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpNb3VzZVVw
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBoaXRU
eXBlID0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seTsK
KyAgICAgICAgfQorICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IGhpdFRlc3RSZXN1bHRB
dFBvaW50KHBhZ2VQb2ludCwgLyphbGxvd1NoYWRvd0NvbnRlbnQqLyBmYWxzZSwgZmFsc2UsIERv
bnRIaXRUZXN0U2Nyb2xsYmFycywgaGl0VHlwZSk7CiAgICAgICAgIE5vZGUqIHRhcmdldCA9IHJl
c3VsdC5pbm5lck5vZGUoKTsKIAogICAgICAgICAvLyBUb3VjaCBldmVudHMgc2hvdWxkIG5vdCBn
byB0byB0ZXh0IG5vZGVzCkBAIC0yODAxLDggKzI4MjIsMTEgQEAgYm9vbCBFdmVudEhhbmRsZXI6
OmhhbmRsZVRvdWNoRXZlbnQoY29ucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhZGp1c3RlZFBhZ2VYLCBhZGp1c3RlZFBhZ2VZKTsKIAogICAgICAgICAvLyB0
b3VjaGVzIHNob3VsZCBjb250YWluIGluZm9ybWF0aW9uIGFib3V0IGV2ZXJ5IHRvdWNoIGN1cnJl
bnRseSBvbiB0aGUgc2NyZWVuLgotICAgICAgICBpZiAocG9pbnQuc3RhdGUoKSAhPSBQbGF0Zm9y
bVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQpCisgICAgICAgIG1fdG91Y2hQcmVzc2VkID0gZmFs
c2U7CisgICAgICAgIGlmIChwb2ludC5zdGF0ZSgpICE9IFBsYXRmb3JtVG91Y2hQb2ludDo6VG91
Y2hSZWxlYXNlZCkgewogICAgICAgICAgICAgdG91Y2hlcy0+YXBwZW5kKHRvdWNoKTsKKyAgICAg
ICAgICAgIG1fdG91Y2hQcmVzc2VkID0gdHJ1ZTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIE5v
dyBidWlsZCB1cCB0aGUgY29ycmVjdCBsaXN0IGZvciBjaGFuZ2VkVG91Y2hlcy4KICAgICAgICAg
Ly8gTm90ZSB0aGF0ICBhbnkgdG91Y2hlcyB0aGF0IGFyZSBpbiB0aGUgVG91Y2hTdGF0aW9uYXJ5
IHN0YXRlIChlLmcuIGlmCkluZGV4OiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCShyZXZpc2lvbiA2MDA3MSkKKysr
IFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgs
NyBAQAogCiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNpbmNsdWRlICJGb2N1c0RpcmVjdGlv
bi5oIgorI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3Vz
ZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgpA
QCAtMTA1LDcgKzEwNiw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlzcGF0Y2hGYWtlTW91c2VN
b3ZlRXZlbnRTb29uSW5RdWFkKGNvbnN0IEZsb2F0UXVhZCYpOwogCi0gICAgSGl0VGVzdFJlc3Vs
dCBoaXRUZXN0UmVzdWx0QXRQb2ludChjb25zdCBJbnRQb2ludCYsIGJvb2wgYWxsb3dTaGFkb3dD
b250ZW50LCBib29sIGlnbm9yZUNsaXBwaW5nID0gZmFsc2UsIEhpdFRlc3RTY3JvbGxiYXJzIHNj
cm9sbGJhcnMgPSBEb250SGl0VGVzdFNjcm9sbGJhcnMpOworICAgIEhpdFRlc3RSZXN1bHQgaGl0
VGVzdFJlc3VsdEF0UG9pbnQoY29uc3QgSW50UG9pbnQmLCBib29sIGFsbG93U2hhZG93Q29udGVu
dCwgYm9vbCBpZ25vcmVDbGlwcGluZyA9IGZhbHNlLCBIaXRUZXN0U2Nyb2xsYmFycyBzY3JvbGxi
YXJzID0gRG9udEhpdFRlc3RTY3JvbGxiYXJzLCBpbnQgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0
OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUpOwogCiAgICAgYm9vbCBtb3VzZVBy
ZXNzZWQoKSBjb25zdCB7IHJldHVybiBtX21vdXNlUHJlc3NlZDsgfQogICAgIHZvaWQgc2V0TW91
c2VQcmVzc2VkKGJvb2wgcHJlc3NlZCkgeyBtX21vdXNlUHJlc3NlZCA9IHByZXNzZWQ7IH0KQEAg
LTQyOSw2ICs0MzAsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAg
dHlwZWRlZiBIYXNoTWFwPGludCwgUmVmUHRyPEV2ZW50VGFyZ2V0PiA+IFRvdWNoVGFyZ2V0TWFw
OwogICAgIFRvdWNoVGFyZ2V0TWFwIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0czsKKyAg
ICBib29sIG1fdG91Y2hQcmVzc2VkOwogI2VuZGlmCiB9OwogCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2
MDA3MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDEwLTA1LTI0ICBCZW4gTXVyZG9jaCAgPGJlbm1AZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUb3VjaCBldmVudHMg
ZG8gbm90IGFmZmVjdCB0aGUgOmFjdGl2ZSBDU1Mgc3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NDkzCisKKyAgICAgICAgKiBmYXN0L2V2ZW50
cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUuaHRtbDogQWRkZWQuCisKIDIw
MTAtMDUtMjQgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZC4gIEZvcmdvdCB0byByZWRvIHRoZSBleHBlY3RhdGlvbiBhZnRlciBhZGRpbmcg
dGhlIGNvbnRhaW5zCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1h
Y3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL3RvdWNoLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkgQEAKK1Rlc3QgdG91Y2hlcyBzZXQg
dGhlIGFjdGl2ZSBzdGF0ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3RvdWNo
LWFjdGl2ZS1zdGF0ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ4IEBACis8aHRtbD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyNib3gg
eworICAgIGJhY2tncm91bmQtY29sb3I6Ymx1ZTsKKyAgICB3aWR0aDoxMDBweDsKKyAgICBoZWln
aHQ6MTAwcHg7Cit9CisKKyNib3g6YWN0aXZlIHsKKyAgICB2aXNpYmlsaXR5OmhpZGRlbjsKK30K
KworPC9zdHlsZT4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Cis8ZGl2IGlkPSJib3giIG9u
dG91Y2hzdGFydD0idGVzdENvbXBsZXRlKCk7Ij5GQUlMPC9kaXY+CisKKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KK2Rlc2NyaXB0aW9uKCdUZXN0IHRvdWNoZXMgc2V0IHRoZSBhY3RpdmUg
c3RhdGUuJyk7CisKK2Z1bmN0aW9uIHRlc3RDb21wbGV0ZShldmVudCkKK3sKKyAgICBpc1N1Y2Nl
c3NmdWxseVBhcnNlZCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
K30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
eworICAgICAgICAvLyBUb3VjaCB0aGUgY2VudGVyIG9mIHRoZSBkaXYuCisgICAgICAgIGV2ZW50
U2VuZGVyLmFkZFRvdWNoUG9pbnQoNTAsIDUwKTsKKyAgICAgICAgZXZlbnRTZW5kZXIudG91Y2hT
dGFydCgpOworICAgIH0gZWxzZQorICAgICAgICBkZWJ1ZygnVGhpcyB0ZXN0IHJlcXVpcmVzIERS
VC4nKTsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62058</attachid>
            <date>2010-07-20 05:55:51 -0700</date>
            <delta_ts>2010-07-20 06:07:29 -0700</delta_ts>
            <desc>Rebased patch / layout test.</desc>
            <filename>39493-5.txt</filename>
            <type>text/plain</type>
            <size>10256</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzczOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMTAtMDctMjAgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvdWNo
IGV2ZW50cyBkbyBub3QgYWZmZWN0IHRoZSA6YWN0aXZlIENTUyBzdGF0ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk0OTMKKworICAgICAgICBUZXN0
OiBmYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUuaHRtbAorCisgICAgICAgICog
V2ViQ29yZS5leHAuaW46IFVwZGF0ZSBleHBvcnRzIGZvciBuZXcgc2lnbmF0dXJlIG9mCisgICAg
ICAgICAgICBoaXRUZXN0UmVzdWx0QXRQb2ludC4KKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOiBk
aXR0by4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OmhpdFRlc3RSZXN1bHRBdFBvaW50KTogUGFzcyB0aGUgdHlwZQorICAgICAgICAgICAg
b2YgdGhlIGhpdCB0ZXN0IHRvIHBlcmZvcm0gYXMgYSBwYXJhbWV0ZXIgd2l0aCBhIGRlZmF1bHQK
KyAgICAgICAgICAgIHZhbHVlIHJhdGhlciB0aGFuIGhhcmNvZGluZyBpdCBpbiB0aGUgZnVuY3Rp
b24gYm9keS4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3Zl
RXZlbnQpOiBEbyBub3QgbW9kaWlmeQorICAgICAgICAgICAgdGhlIGFjdGl2ZSBlbGVtZW50IGR1
cmluZyBhIG1vdXNlIG1vdmUgaWYgdGhlIHVzZXIgaXMKKyAgICAgICAgICAgIHRvdWNoaW5nIHRo
ZSBzY3JlZW4uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZl
bnQpOiBTZXQgdGhlIGNvcnJlY3QKKyAgICAgICAgICAgIHR5cGUgb2YgaGl0IHRlc3QgdG8gcGVy
Zm9ybSBkZXBlbmRpbmcgb24gdGhlIHR5cGUgb2YgdGhlCisgICAgICAgICAgICB0b3VjaCBldmVu
dCB3ZSBhcmUgaGFuZGxpbmcuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDogVXBkYXRl
IHRoZSBzaWduYXR1cmUgb2YgaGl0VGVzdFJlc3VsdEF0UG9pbnQuCisKIDIwMTAtMDctMjAgIEFs
ZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBQYXZlbCBGZWxkbWFuLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiA2MzczOCkKKysrIFdlYkNv
cmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIxNyw3ICsyMTcsNyBAQCBfX1pO
N1dlYkNvcmUxMkV2ZW50SGFuZGxlcjE0c2Nyb2xsT3ZlcmZsCiBfX1pON1dlYkNvcmUxMkV2ZW50
SGFuZGxlcjE1c2VuZFNjcm9sbEV2ZW50RXYKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTZo
YW5kbGVXaGVlbEV2ZW50RVJOU18xOFBsYXRmb3JtV2hlZWxFdmVudEUKIF9fWk43V2ViQ29yZTEy
RXZlbnRIYW5kbGVyMjBoYW5kbGVUZXh0SW5wdXRFdmVudEVSS05TXzZTdHJpbmdFUE5TXzVFdmVu
dEViYgotX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIyMGhpdFRlc3RSZXN1bHRBdFBvaW50RVJL
TlNfOEludFBvaW50RWJiTlNfMTdIaXRUZXN0U2Nyb2xsYmFyc0UKK19fWk43V2ViQ29yZTEyRXZl
bnRIYW5kbGVyMjBoaXRUZXN0UmVzdWx0QXRQb2ludEVSS05TXzhJbnRQb2ludEViYk5TXzE3SGl0
VGVzdFNjcm9sbGJhcnNFaQogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIyMWhhbmRsZU1vdXNl
UHJlc3NFdmVudEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RQogX19aTjdXZWJDb3JlMTJFdmVu
dEhhbmRsZXIyM2hhbmRsZU1vdXNlUmVsZWFzZUV2ZW50RVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZl
bnRFCiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjI3Y2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFu
Z2VkRXYKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5vcmRlcgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUub3JkZXIJKHJldmlzaW9uIDYzNzM4KQorKysgV2ViQ29yZS9XZWJDb3JlLm9yZGVy
CSh3b3JraW5nIGNvcHkpCkBAIC0yOTk5LDcgKzI5OTksNyBAQCBfX1pON1dlYkNvcmUyNFN0cmlu
Z1dyYXBwZXJDRkFsbG9jYXRvckwyCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3Q1dGhlbWVF
dgogX19aTks3V2ViQ29yZTE0UmVuZGVyVGhlbWVNYWMyMHN1cHBvcnRzQ29udHJvbFRpbnRzRXYK
IF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0MjNzZXRVcGRhdGluZ0NvbnRyb2xUaW50c0Vi
Ci1fX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjIwaGl0VGVzdFJlc3VsdEF0UG9pbnRFUktOU184
SW50UG9pbnRFYmJOU18xN0hpdFRlc3RTY3JvbGxiYXJzRQorX19aTjdXZWJDb3JlMTJFdmVudEhh
bmRsZXIyMGhpdFRlc3RSZXN1bHRBdFBvaW50RVJLTlNfOEludFBvaW50RWJiTlNfMTdIaXRUZXN0
U2Nyb2xsYmFyc0VpCiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTBpc1NlbGVjdGVkRXYK
IF9fWk43V2ViQ29yZTE5U2VsZWN0aW9uQ29udHJvbGxlcjhjb250YWluc0VSS05TXzhJbnRQb2lu
dEUKIF9fWk43V2ViQ29yZTEzSW5saW5lVGV4dEJveDExbm9kZUF0UG9pbnRFUktOU18xNEhpdFRl
c3RSZXF1ZXN0RVJOU18xM0hpdFRlc3RSZXN1bHRFaWlpaQpJbmRleDogV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAJKHJldmlzaW9uIDYzNzM4KQorKysgV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE5MCw2ICsxOTAsOSBAQCBFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxl
cihGcmFtZSogZnJhbWUpCiAgICAgLCBtX3NlbmRpbmdFdmVudFRvU3VidmlldyhmYWxzZSkKICAg
ICAsIG1fYWN0aXZhdGlvbkV2ZW50TnVtYmVyKDApCiAjZW5kaWYKKyNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQorICAgICwgbV90b3VjaFByZXNzZWQoZmFsc2UpCisjZW5kaWYKIHsKIH0KIApAQCAt
ODU5LDEyICs4NjIsMTEgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmFsbG93REhUTUxEcmFnKGJvb2wm
IAogfQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgCi1IaXRUZXN0UmVzdWx0
IEV2ZW50SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0UG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50
LCBib29sIGFsbG93U2hhZG93Q29udGVudCwgYm9vbCBpZ25vcmVDbGlwcGluZywgSGl0VGVzdFNj
cm9sbGJhcnMgdGVzdFNjcm9sbGJhcnMpCitIaXRUZXN0UmVzdWx0IEV2ZW50SGFuZGxlcjo6aGl0
VGVzdFJlc3VsdEF0UG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50LCBib29sIGFsbG93U2hhZG93
Q29udGVudCwgYm9vbCBpZ25vcmVDbGlwcGluZywgSGl0VGVzdFNjcm9sbGJhcnMgdGVzdFNjcm9s
bGJhcnMsIGludCBoaXRUeXBlKQogewogICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KHBvaW50KTsK
ICAgICBpZiAoIW1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgIGludCBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVz
dFJlcXVlc3Q6OkFjdGl2ZTsKICAgICBpZiAoaWdub3JlQ2xpcHBpbmcpCiAgICAgICAgIGhpdFR5
cGUgfD0gSGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNsaXBwaW5nOwogICAgIG1fZnJhbWUtPmNvbnRl
bnRSZW5kZXJlcigpLT5sYXllcigpLT5oaXRUZXN0KEhpdFRlc3RSZXF1ZXN0KGhpdFR5cGUpLCBy
ZXN1bHQpOwpAQCAtMTQ0MSw2ICsxNDQzLDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVN
b3VzZU1vdmVFdmVudCgKICAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6UmVhZE9u
bHk7CiAgICAgaWYgKG1fbW91c2VQcmVzc2VkKQogICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RS
ZXF1ZXN0OjpBY3RpdmU7CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIC8vIFRyZWF0
IGFueSBtb3VzZSBtb3ZlIGV2ZW50cyBhcyByZWFkb25seSBpZiB0aGUgdXNlciBpcyBjdXJyZW50
bHkgdG91Y2hpbmcgdGhlIHNjcmVlbi4KKyAgICBpZiAobV90b3VjaFByZXNzZWQpCisgICAgICAg
IGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpSZWFk
T25seTsKKyNlbmRpZgogICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoaGl0VHlwZSk7CiAgICAg
TW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyBtZXYgPSBwcmVwYXJlTW91c2VFdmVudChyZXF1
ZXN0LCBtb3VzZUV2ZW50KTsKICAgICBpZiAoaG92ZXJlZE5vZGUpCkBAIC0yODM4LDcgKzI4NDYs
MjggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29ucwogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwb2ludHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgY29uc3Qg
UGxhdGZvcm1Ub3VjaFBvaW50JiBwb2ludCA9IHBvaW50c1tpXTsKICAgICAgICAgSW50UG9pbnQg
cGFnZVBvaW50ID0gZG9jdW1lbnRQb2ludEZvcldpbmRvd1BvaW50KG1fZnJhbWUsIHBvaW50LnBv
cygpKTsKLSAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBoaXRUZXN0UmVzdWx0QXRQb2lu
dChwYWdlUG9pbnQsIC8qYWxsb3dTaGFkb3dDb250ZW50Ki8gZmFsc2UpOworCisgICAgICAgIGlu
dCBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpSZWFk
T25seTsKKyAgICAgICAgLy8gVGhlIEhpdFRlc3RSZXF1ZXN0IHR5cGVzIHVzZWQgZm9yIG1vdXNl
IGV2ZW50cyBtYXAgcXVpdGUgYWRlcXVhdGVseQorICAgICAgICAvLyB0byB0b3VjaCBldmVudHMu
IE5vdGUgdGhhdCBpbiBhZGRpdGlvbiB0byBtZWFuaW5nIHRoYXQgdGhlIGhpdCB0ZXN0CisgICAg
ICAgIC8vIHNob3VsZCBhZmZlY3QgdGhlIGFjdGl2ZSBzdGF0ZSBvZiB0aGUgY3VycmVudCBub2Rl
IGlmIG5lY2Vzc2FyeSwKKyAgICAgICAgLy8gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSBzaWduaWZp
ZXMgdGhhdCB0aGUgaGl0IHRlc3QgaXMgdGFraW5nIHBsYWNlCisgICAgICAgIC8vIHdpdGggdGhl
IG1vdXNlIChvciBmaW5nZXIgaW4gdGhpcyBjYXNlKSBiZWluZyBwcmVzc2VkLgorICAgICAgICBz
d2l0Y2ggKHBvaW50LnN0YXRlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgUGxhdGZvcm1Ub3VjaFBv
aW50OjpUb3VjaFByZXNzZWQ6CisgICAgICAgICAgICAgICAgaGl0VHlwZSA9IEhpdFRlc3RSZXF1
ZXN0OjpBY3RpdmU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBs
YXRmb3JtVG91Y2hQb2ludDo6VG91Y2hNb3ZlZDoKKyAgICAgICAgICAgICAgICBoaXRUeXBlID0g
SGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpNb3VzZU1vdmUgfCBIaXRU
ZXN0UmVxdWVzdDo6UmVhZE9ubHk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hSZWxlYXNlZDoKKyAgICAgICAgICAgIGNh
c2UgUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaENhbmNlbGxlZDoKKyAgICAgICAgICAgICAgICBo
aXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6Ok1vdXNlVXA7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBkZWZhdWx0OiBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIEhpdFRl
c3RSZXN1bHQgcmVzdWx0ID0gaGl0VGVzdFJlc3VsdEF0UG9pbnQocGFnZVBvaW50LCAvKmFsbG93
U2hhZG93Q29udGVudCovIGZhbHNlLCBmYWxzZSwgRG9udEhpdFRlc3RTY3JvbGxiYXJzLCBoaXRU
eXBlKTsKICAgICAgICAgTm9kZSogdGFyZ2V0ID0gcmVzdWx0LmlubmVyTm9kZSgpOwogCiAgICAg
ICAgIC8vIFRvdWNoIGV2ZW50cyBzaG91bGQgbm90IGdvIHRvIHRleHQgbm9kZXMKQEAgLTI5MDEs
NiArMjkzMCw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KGNvbnMKICAg
ICAgICAgICAgIG1vdmVkVG91Y2hlcy0+YXBwZW5kKHRvdWNoKTsKICAgICB9CiAKKyAgICBtX3Rv
dWNoUHJlc3NlZCA9IHRvdWNoZXMtPmxlbmd0aCgpID4gMDsKKwogICAgIGJvb2wgZGVmYXVsdFBy
ZXZlbnRlZCA9IGZhbHNlOwogICAgIFRvdWNoKiBjaGFuZ2VkVG91Y2ggPSAwOwogICAgIEV2ZW50
VGFyZ2V0KiB0b3VjaEV2ZW50VGFyZ2V0ID0gMDsKSW5kZXg6IFdlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgJKHJldmlz
aW9uIDYzNzM4KQorKysgV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJEcmFnQWN0aW9ucy5oIgogI2luY2x1ZGUg
IkZvY3VzRGlyZWN0aW9uLmgiCisjaW5jbHVkZSAiSGl0VGVzdFJlcXVlc3QuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCkBAIC0xMDUsNyArMTA2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNw
YXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1YWQoY29uc3QgRmxvYXRRdWFkJik7CiAKLSAg
ICBIaXRUZXN0UmVzdWx0IGhpdFRlc3RSZXN1bHRBdFBvaW50KGNvbnN0IEludFBvaW50JiwgYm9v
bCBhbGxvd1NoYWRvd0NvbnRlbnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcgPSBmYWxzZSwgSGl0VGVz
dFNjcm9sbGJhcnMgc2Nyb2xsYmFycyA9IERvbnRIaXRUZXN0U2Nyb2xsYmFycyk7CisgICAgSGl0
VGVzdFJlc3VsdCBoaXRUZXN0UmVzdWx0QXRQb2ludChjb25zdCBJbnRQb2ludCYsIGJvb2wgYWxs
b3dTaGFkb3dDb250ZW50LCBib29sIGlnbm9yZUNsaXBwaW5nID0gZmFsc2UsIEhpdFRlc3RTY3Jv
bGxiYXJzIHNjcm9sbGJhcnMgPSBEb250SGl0VGVzdFNjcm9sbGJhcnMsIGludCBoaXRUeXBlID0g
SGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7CiAKICAg
ICBib29sIG1vdXNlUHJlc3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VQcmVzc2VkOyB9CiAg
ICAgdm9pZCBzZXRNb3VzZVByZXNzZWQoYm9vbCBwcmVzc2VkKSB7IG1fbW91c2VQcmVzc2VkID0g
cHJlc3NlZDsgfQpAQCAtNDMxLDYgKzQzMiw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKICAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBSZWZQdHI8RXZlbnRUYXJnZXQ+ID4g
VG91Y2hUYXJnZXRNYXA7CiAgICAgVG91Y2hUYXJnZXRNYXAgbV9vcmlnaW5hdGluZ1RvdWNoUG9p
bnRUYXJnZXRzOworICAgIGJvb2wgbV90b3VjaFByZXNzZWQ7CiAjZW5kaWYKIH07CiAKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDYzNzM5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDctMjAgIEJlbiBNdXJkb2NoICA8YmVubUBnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRvdWNoIGV2ZW50cyBkbyBub3QgYWZmZWN0IHRoZSA6YWN0aXZlIENTUyBzdGF0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk0OTMKKworICAgICAg
ICAqIGZhc3QvZXZlbnRzL3RvdWNoL3RvdWNoLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL3RvdWNoLWFjdGl2ZS1zdGF0ZS5odG1s
OiBBZGRlZC4KKwogMjAxMC0wNy0yMCAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlh
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvdG91Y2gtYWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gt
YWN0aXZlLXN0YXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitU
ZXN0IHRvdWNoZXMgc2V0IHRoZSBhY3RpdmUgc3RhdGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtYWN0aXZlLXN0
YXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvdG91
Y2gtYWN0aXZlLXN0YXRlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0OCBAQAorPGh0bWw+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+CisjYm94IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOmJsdWU7CisgICAgd2lkdGg6
MTAwcHg7CisgICAgaGVpZ2h0OjEwMHB4OworfQorCisjYm94OmFjdGl2ZSB7CisgICAgdmlzaWJp
bGl0eTpoaWRkZW47Cit9CisKKzwvc3R5bGU+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgor
PGRpdiBpZD0iYm94IiBvbnRvdWNoc3RhcnQ9InRlc3RDb21wbGV0ZSgpOyI+RkFJTDwvZGl2Pgor
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CitkZXNjcmlwdGlvbignVGVzdCB0b3VjaGVz
IHNldCB0aGUgYWN0aXZlIHN0YXRlLicpOworCitmdW5jdGlvbiB0ZXN0Q29tcGxldGUoZXZlbnQp
Cit7CisgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgLy8gVG91Y2ggdGhlIGNlbnRlciBvZiB0aGUgZGl2
LgorICAgICAgICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KDUwLCA1MCk7CisgICAgICAgIGV2
ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgZGVidWcoJ1RoaXMg
dGVzdCByZXF1aXJlcyBEUlQuJyk7Cit9CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62063</attachid>
            <date>2010-07-20 06:07:29 -0700</date>
            <delta_ts>2010-07-21 02:14:46 -0700</delta_ts>
            <desc>Rebased patch / layout test, fixed style error.</desc>
            <filename>39493-6.txt</filename>
            <type>text/plain</type>
            <size>10225</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzczOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMTAtMDctMjAgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvdWNo
IGV2ZW50cyBkbyBub3QgYWZmZWN0IHRoZSA6YWN0aXZlIENTUyBzdGF0ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk0OTMKKworICAgICAgICBUZXN0
OiBmYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUuaHRtbAorCisgICAgICAgICog
V2ViQ29yZS5leHAuaW46IFVwZGF0ZSBleHBvcnRzIGZvciBuZXcgc2lnbmF0dXJlIG9mCisgICAg
ICAgICAgICBoaXRUZXN0UmVzdWx0QXRQb2ludC4KKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOiBk
aXR0by4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OmhpdFRlc3RSZXN1bHRBdFBvaW50KTogUGFzcyB0aGUgdHlwZQorICAgICAgICAgICAg
b2YgdGhlIGhpdCB0ZXN0IHRvIHBlcmZvcm0gYXMgYSBwYXJhbWV0ZXIgd2l0aCBhIGRlZmF1bHQK
KyAgICAgICAgICAgIHZhbHVlIHJhdGhlciB0aGFuIGhhcmNvZGluZyBpdCBpbiB0aGUgZnVuY3Rp
b24gYm9keS4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3Zl
RXZlbnQpOiBEbyBub3QgbW9kaWlmeQorICAgICAgICAgICAgdGhlIGFjdGl2ZSBlbGVtZW50IGR1
cmluZyBhIG1vdXNlIG1vdmUgaWYgdGhlIHVzZXIgaXMKKyAgICAgICAgICAgIHRvdWNoaW5nIHRo
ZSBzY3JlZW4uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZl
bnQpOiBTZXQgdGhlIGNvcnJlY3QKKyAgICAgICAgICAgIHR5cGUgb2YgaGl0IHRlc3QgdG8gcGVy
Zm9ybSBkZXBlbmRpbmcgb24gdGhlIHR5cGUgb2YgdGhlCisgICAgICAgICAgICB0b3VjaCBldmVu
dCB3ZSBhcmUgaGFuZGxpbmcuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDogVXBkYXRl
IHRoZSBzaWduYXR1cmUgb2YgaGl0VGVzdFJlc3VsdEF0UG9pbnQuCisKIDIwMTAtMDctMjAgIEFs
ZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBQYXZlbCBGZWxkbWFuLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiA2MzczOCkKKysrIFdlYkNv
cmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIxNyw3ICsyMTcsNyBAQCBfX1pO
N1dlYkNvcmUxMkV2ZW50SGFuZGxlcjE0c2Nyb2xsT3ZlcmZsCiBfX1pON1dlYkNvcmUxMkV2ZW50
SGFuZGxlcjE1c2VuZFNjcm9sbEV2ZW50RXYKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTZo
YW5kbGVXaGVlbEV2ZW50RVJOU18xOFBsYXRmb3JtV2hlZWxFdmVudEUKIF9fWk43V2ViQ29yZTEy
RXZlbnRIYW5kbGVyMjBoYW5kbGVUZXh0SW5wdXRFdmVudEVSS05TXzZTdHJpbmdFUE5TXzVFdmVu
dEViYgotX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIyMGhpdFRlc3RSZXN1bHRBdFBvaW50RVJL
TlNfOEludFBvaW50RWJiTlNfMTdIaXRUZXN0U2Nyb2xsYmFyc0UKK19fWk43V2ViQ29yZTEyRXZl
bnRIYW5kbGVyMjBoaXRUZXN0UmVzdWx0QXRQb2ludEVSS05TXzhJbnRQb2ludEViYk5TXzE3SGl0
VGVzdFNjcm9sbGJhcnNFaQogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIyMWhhbmRsZU1vdXNl
UHJlc3NFdmVudEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RQogX19aTjdXZWJDb3JlMTJFdmVu
dEhhbmRsZXIyM2hhbmRsZU1vdXNlUmVsZWFzZUV2ZW50RVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZl
bnRFCiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjI3Y2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFu
Z2VkRXYKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5vcmRlcgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUub3JkZXIJKHJldmlzaW9uIDYzNzM4KQorKysgV2ViQ29yZS9XZWJDb3JlLm9yZGVy
CSh3b3JraW5nIGNvcHkpCkBAIC0yOTk5LDcgKzI5OTksNyBAQCBfX1pON1dlYkNvcmUyNFN0cmlu
Z1dyYXBwZXJDRkFsbG9jYXRvckwyCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3Q1dGhlbWVF
dgogX19aTks3V2ViQ29yZTE0UmVuZGVyVGhlbWVNYWMyMHN1cHBvcnRzQ29udHJvbFRpbnRzRXYK
IF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0MjNzZXRVcGRhdGluZ0NvbnRyb2xUaW50c0Vi
Ci1fX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjIwaGl0VGVzdFJlc3VsdEF0UG9pbnRFUktOU184
SW50UG9pbnRFYmJOU18xN0hpdFRlc3RTY3JvbGxiYXJzRQorX19aTjdXZWJDb3JlMTJFdmVudEhh
bmRsZXIyMGhpdFRlc3RSZXN1bHRBdFBvaW50RVJLTlNfOEludFBvaW50RWJiTlNfMTdIaXRUZXN0
U2Nyb2xsYmFyc0VpCiBfX1pOSzdXZWJDb3JlMTNIaXRUZXN0UmVzdWx0MTBpc1NlbGVjdGVkRXYK
IF9fWk43V2ViQ29yZTE5U2VsZWN0aW9uQ29udHJvbGxlcjhjb250YWluc0VSS05TXzhJbnRQb2lu
dEUKIF9fWk43V2ViQ29yZTEzSW5saW5lVGV4dEJveDExbm9kZUF0UG9pbnRFUktOU18xNEhpdFRl
c3RSZXF1ZXN0RVJOU18xM0hpdFRlc3RSZXN1bHRFaWlpaQpJbmRleDogV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAJKHJldmlzaW9uIDYzNzM4KQorKysgV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE5MCw2ICsxOTAsOSBAQCBFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxl
cihGcmFtZSogZnJhbWUpCiAgICAgLCBtX3NlbmRpbmdFdmVudFRvU3VidmlldyhmYWxzZSkKICAg
ICAsIG1fYWN0aXZhdGlvbkV2ZW50TnVtYmVyKDApCiAjZW5kaWYKKyNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQorICAgICwgbV90b3VjaFByZXNzZWQoZmFsc2UpCisjZW5kaWYKIHsKIH0KIApAQCAt
ODU5LDEyICs4NjIsMTEgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmFsbG93REhUTUxEcmFnKGJvb2wm
IAogfQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgCi1IaXRUZXN0UmVzdWx0
IEV2ZW50SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0UG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50
LCBib29sIGFsbG93U2hhZG93Q29udGVudCwgYm9vbCBpZ25vcmVDbGlwcGluZywgSGl0VGVzdFNj
cm9sbGJhcnMgdGVzdFNjcm9sbGJhcnMpCitIaXRUZXN0UmVzdWx0IEV2ZW50SGFuZGxlcjo6aGl0
VGVzdFJlc3VsdEF0UG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50LCBib29sIGFsbG93U2hhZG93
Q29udGVudCwgYm9vbCBpZ25vcmVDbGlwcGluZywgSGl0VGVzdFNjcm9sbGJhcnMgdGVzdFNjcm9s
bGJhcnMsIGludCBoaXRUeXBlKQogewogICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KHBvaW50KTsK
ICAgICBpZiAoIW1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgIGludCBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVz
dFJlcXVlc3Q6OkFjdGl2ZTsKICAgICBpZiAoaWdub3JlQ2xpcHBpbmcpCiAgICAgICAgIGhpdFR5
cGUgfD0gSGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNsaXBwaW5nOwogICAgIG1fZnJhbWUtPmNvbnRl
bnRSZW5kZXJlcigpLT5sYXllcigpLT5oaXRUZXN0KEhpdFRlc3RSZXF1ZXN0KGhpdFR5cGUpLCBy
ZXN1bHQpOwpAQCAtMTQ0MSw2ICsxNDQzLDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVN
b3VzZU1vdmVFdmVudCgKICAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6UmVhZE9u
bHk7CiAgICAgaWYgKG1fbW91c2VQcmVzc2VkKQogICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RS
ZXF1ZXN0OjpBY3RpdmU7CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIC8vIFRyZWF0
IGFueSBtb3VzZSBtb3ZlIGV2ZW50cyBhcyByZWFkb25seSBpZiB0aGUgdXNlciBpcyBjdXJyZW50
bHkgdG91Y2hpbmcgdGhlIHNjcmVlbi4KKyAgICBpZiAobV90b3VjaFByZXNzZWQpCisgICAgICAg
IGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpSZWFk
T25seTsKKyNlbmRpZgogICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoaGl0VHlwZSk7CiAgICAg
TW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyBtZXYgPSBwcmVwYXJlTW91c2VFdmVudChyZXF1
ZXN0LCBtb3VzZUV2ZW50KTsKICAgICBpZiAoaG92ZXJlZE5vZGUpCkBAIC0yODM4LDcgKzI4NDYs
MjkgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29ucwogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwb2ludHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgY29uc3Qg
UGxhdGZvcm1Ub3VjaFBvaW50JiBwb2ludCA9IHBvaW50c1tpXTsKICAgICAgICAgSW50UG9pbnQg
cGFnZVBvaW50ID0gZG9jdW1lbnRQb2ludEZvcldpbmRvd1BvaW50KG1fZnJhbWUsIHBvaW50LnBv
cygpKTsKLSAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBoaXRUZXN0UmVzdWx0QXRQb2lu
dChwYWdlUG9pbnQsIC8qYWxsb3dTaGFkb3dDb250ZW50Ki8gZmFsc2UpOworCisgICAgICAgIGlu
dCBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpSZWFk
T25seTsKKyAgICAgICAgLy8gVGhlIEhpdFRlc3RSZXF1ZXN0IHR5cGVzIHVzZWQgZm9yIG1vdXNl
IGV2ZW50cyBtYXAgcXVpdGUgYWRlcXVhdGVseQorICAgICAgICAvLyB0byB0b3VjaCBldmVudHMu
IE5vdGUgdGhhdCBpbiBhZGRpdGlvbiB0byBtZWFuaW5nIHRoYXQgdGhlIGhpdCB0ZXN0CisgICAg
ICAgIC8vIHNob3VsZCBhZmZlY3QgdGhlIGFjdGl2ZSBzdGF0ZSBvZiB0aGUgY3VycmVudCBub2Rl
IGlmIG5lY2Vzc2FyeSwKKyAgICAgICAgLy8gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSBzaWduaWZp
ZXMgdGhhdCB0aGUgaGl0IHRlc3QgaXMgdGFraW5nIHBsYWNlCisgICAgICAgIC8vIHdpdGggdGhl
IG1vdXNlIChvciBmaW5nZXIgaW4gdGhpcyBjYXNlKSBiZWluZyBwcmVzc2VkLgorICAgICAgICBz
d2l0Y2ggKHBvaW50LnN0YXRlKCkpIHsKKyAgICAgICAgY2FzZSBQbGF0Zm9ybVRvdWNoUG9pbnQ6
OlRvdWNoUHJlc3NlZDoKKyAgICAgICAgICAgIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6QWN0
aXZlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUGxhdGZvcm1Ub3VjaFBvaW50
OjpUb3VjaE1vdmVkOgorICAgICAgICAgICAgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpBY3Rp
dmUgfCBIaXRUZXN0UmVxdWVzdDo6TW91c2VNb3ZlIHwgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaFJlbGVhc2VkOgorICAgICAgICBjYXNlIFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hDYW5j
ZWxsZWQ6CisgICAgICAgICAgICBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6Ok1vdXNlVXA7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisKKyAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBoaXRUZXN0UmVzdWx0
QXRQb2ludChwYWdlUG9pbnQsIC8qYWxsb3dTaGFkb3dDb250ZW50Ki8gZmFsc2UsIGZhbHNlLCBE
b250SGl0VGVzdFNjcm9sbGJhcnMsIGhpdFR5cGUpOwogICAgICAgICBOb2RlKiB0YXJnZXQgPSBy
ZXN1bHQuaW5uZXJOb2RlKCk7CiAKICAgICAgICAgLy8gVG91Y2ggZXZlbnRzIHNob3VsZCBub3Qg
Z28gdG8gdGV4dCBub2RlcwpAQCAtMjkwMSw2ICsyOTMxLDggQEAgYm9vbCBFdmVudEhhbmRsZXI6
OmhhbmRsZVRvdWNoRXZlbnQoY29ucwogICAgICAgICAgICAgbW92ZWRUb3VjaGVzLT5hcHBlbmQo
dG91Y2gpOwogICAgIH0KIAorICAgIG1fdG91Y2hQcmVzc2VkID0gdG91Y2hlcy0+bGVuZ3RoKCkg
PiAwOworCiAgICAgYm9vbCBkZWZhdWx0UHJldmVudGVkID0gZmFsc2U7CiAgICAgVG91Y2gqIGNo
YW5nZWRUb3VjaCA9IDA7CiAgICAgRXZlbnRUYXJnZXQqIHRvdWNoRXZlbnRUYXJnZXQgPSAwOwpJ
bmRleDogV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuaAkocmV2aXNpb24gNjM3MzgpCisrKyBXZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUg
IkRyYWdBY3Rpb25zLmgiCiAjaW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIKKyNpbmNsdWRlICJI
aXRUZXN0UmVxdWVzdC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1
ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTEwNSw3ICsxMDYsNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbkluUXVh
ZChjb25zdCBGbG9hdFF1YWQmKTsKIAotICAgIEhpdFRlc3RSZXN1bHQgaGl0VGVzdFJlc3VsdEF0
UG9pbnQoY29uc3QgSW50UG9pbnQmLCBib29sIGFsbG93U2hhZG93Q29udGVudCwgYm9vbCBpZ25v
cmVDbGlwcGluZyA9IGZhbHNlLCBIaXRUZXN0U2Nyb2xsYmFycyBzY3JvbGxiYXJzID0gRG9udEhp
dFRlc3RTY3JvbGxiYXJzKTsKKyAgICBIaXRUZXN0UmVzdWx0IGhpdFRlc3RSZXN1bHRBdFBvaW50
KGNvbnN0IEludFBvaW50JiwgYm9vbCBhbGxvd1NoYWRvd0NvbnRlbnQsIGJvb2wgaWdub3JlQ2xp
cHBpbmcgPSBmYWxzZSwgSGl0VGVzdFNjcm9sbGJhcnMgc2Nyb2xsYmFycyA9IERvbnRIaXRUZXN0
U2Nyb2xsYmFycywgaW50IGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRU
ZXN0UmVxdWVzdDo6QWN0aXZlKTsKIAogICAgIGJvb2wgbW91c2VQcmVzc2VkKCkgY29uc3QgeyBy
ZXR1cm4gbV9tb3VzZVByZXNzZWQ7IH0KICAgICB2b2lkIHNldE1vdXNlUHJlc3NlZChib29sIHBy
ZXNzZWQpIHsgbV9tb3VzZVByZXNzZWQgPSBwcmVzc2VkOyB9CkBAIC00MzEsNiArNDMyLDcgQEAg
cHJpdmF0ZToKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHR5cGVkZWYgSGFzaE1hcDxp
bnQsIFJlZlB0cjxFdmVudFRhcmdldD4gPiBUb3VjaFRhcmdldE1hcDsKICAgICBUb3VjaFRhcmdl
dE1hcCBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHM7CisgICAgYm9vbCBtX3RvdWNoUHJl
c3NlZDsKICNlbmRpZgogfTsKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjM3MzkpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wNy0y
MCAgQmVuIE11cmRvY2ggIDxiZW5tQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG91Y2ggZXZlbnRzIGRvIG5vdCBhZmZlY3QgdGhl
IDphY3RpdmUgQ1NTIHN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zOTQ5MworCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtYWN0
aXZlLXN0YXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91
Y2gvdG91Y2gtYWN0aXZlLXN0YXRlLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA3LTIwICBBbGVqYW5k
cm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3Rv
dWNoLWFjdGl2ZS1zdGF0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDkgQEAKK1Rlc3QgdG91Y2hlcyBzZXQgdGhlIGFjdGl2ZSBzdGF0
ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC1hY3RpdmUtc3RhdGUuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3RvdWNoLWFjdGl2ZS1zdGF0ZS5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ4IEBACis8aHRtbD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMi
Pjwvc2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyNib3ggeworICAgIGJhY2tncm91
bmQtY29sb3I6Ymx1ZTsKKyAgICB3aWR0aDoxMDBweDsKKyAgICBoZWlnaHQ6MTAwcHg7Cit9CisK
KyNib3g6YWN0aXZlIHsKKyAgICB2aXNpYmlsaXR5OmhpZGRlbjsKK30KKworPC9zdHlsZT4KKzxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Cis8ZGl2IGlkPSJib3giIG9udG91Y2hzdGFydD0idGVz
dENvbXBsZXRlKCk7Ij5GQUlMPC9kaXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
K2Rlc2NyaXB0aW9uKCdUZXN0IHRvdWNoZXMgc2V0IHRoZSBhY3RpdmUgc3RhdGUuJyk7CisKK2Z1
bmN0aW9uIHRlc3RDb21wbGV0ZShldmVudCkKK3sKKyAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgp
OworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24g
cnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAvLyBU
b3VjaCB0aGUgY2VudGVyIG9mIHRoZSBkaXYuCisgICAgICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNo
UG9pbnQoNTAsIDUwKTsKKyAgICAgICAgZXZlbnRTZW5kZXIudG91Y2hTdGFydCgpOworICAgIH0g
ZWxzZQorICAgICAgICBkZWJ1ZygnVGhpcyB0ZXN0IHJlcXVpcmVzIERSVC4nKTsKK30KKworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="50186"
          type_id="1"
          status="+"
          setter="steveblock"
    />
    <flag name="commit-queue"
          id="50295"
          type_id="3"
          status="-"
          setter="benm"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62215</attachid>
            <date>2010-07-21 11:59:43 -0700</date>
            <delta_ts>2010-07-21 12:53:15 -0700</delta_ts>
            <desc>Use a typedef as suggested.</desc>
            <filename>39493.txt</filename>
            <type>text/plain</type>
            <size>3770</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Mzg0NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDctMjEgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvdWNo
IGV2ZW50cyBkbyBub3QgYWZmZWN0IHRoZSA6YWN0aXZlIENTUyBzdGF0ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk0OTMKKworICAgICAgICBDbGVh
biB1cCB0aGUgY29kZSBieSB1c2luZyBhIHR5cGVkZWYgYmFzZWQgb24gY29tbWVudHMKKyAgICAg
ICAgcG9zdCBsYW5kaW5nIHRoZSBvcmlnaW5hbCBwYXRjaC4KKworICAgICAgICBObyBjaGFuZ2Ug
aW4gZnVuY3Rpb25hbGl0eSBzbyBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5oOiB0eXBlZGVmIEhpdFRlc3RSZXF1ZXN0VHlwZSB0byBpbnQuCisgICAgICAgICog
cGFnZS9FdmVudEhhbmRsZXIuY3BwOiBVc2UgdGhlIG5ldyB0eXBlZGVmLgorCisKIDIwMTAtMDct
MjEgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHJldmlzaW9uIDYz
ODQ2KQorKysgV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTg2Miw3ICs4NjIsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6YWxsb3dESFRNTERyYWcoYm9vbCYg
CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAKLUhpdFRlc3RSZXN1bHQg
RXZlbnRIYW5kbGVyOjpoaXRUZXN0UmVzdWx0QXRQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQs
IGJvb2wgYWxsb3dTaGFkb3dDb250ZW50LCBib29sIGlnbm9yZUNsaXBwaW5nLCBIaXRUZXN0U2Ny
b2xsYmFycyB0ZXN0U2Nyb2xsYmFycywgaW50IGhpdFR5cGUpCitIaXRUZXN0UmVzdWx0IEV2ZW50
SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0UG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50LCBib29s
IGFsbG93U2hhZG93Q29udGVudCwgYm9vbCBpZ25vcmVDbGlwcGluZywgSGl0VGVzdFNjcm9sbGJh
cnMgdGVzdFNjcm9sbGJhcnMsIEhpdFRlc3RSZXF1ZXN0VHlwZSBoaXRUeXBlKQogewogICAgIEhp
dFRlc3RSZXN1bHQgcmVzdWx0KHBvaW50KTsKICAgICBpZiAoIW1fZnJhbWUtPmNvbnRlbnRSZW5k
ZXJlcigpKQpAQCAtMTQzOCw3ICsxNDM4LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1v
dXNlTW92ZUV2ZW50KAogICAgIC8vIGlmIHdlIGFyZSBhbGxvd2VkIHRvIHNlbGVjdC4KICAgICAv
LyBUaGlzIG1lYW5zIHRoYXQgOmhvdmVyIGFuZCA6YWN0aXZlIGZyZWV6ZSBpbiB0aGUgc3RhdGUg
dGhleSB3ZXJlIGluIHdoZW4gdGhlIG1vdXNlCiAgICAgLy8gd2FzIHByZXNzZWQsIHJhdGhlciB0
aGFuIHVwZGF0aW5nIGZvciBub2RlcyB0aGUgbW91c2UgbW92ZXMgb3ZlciBhcyB5b3UgaG9sZCB0
aGUgbW91c2UgZG93bi4KLSAgICBpbnQgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpNb3VzZU1v
dmU7CisgICAgSGl0VGVzdFJlcXVlc3RUeXBlIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6TW91
c2VNb3ZlOwogICAgIGlmIChtX21vdXNlUHJlc3NlZCAmJiBtX21vdXNlRG93bk1heVN0YXJ0U2Vs
ZWN0KQogICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seTsKICAgICBp
ZiAobV9tb3VzZVByZXNzZWQpCkBAIC0yODQ3LDcgKzI4NDcsNyBAQCBib29sIEV2ZW50SGFuZGxl
cjo6aGFuZGxlVG91Y2hFdmVudChjb25zCiAgICAgICAgIGNvbnN0IFBsYXRmb3JtVG91Y2hQb2lu
dCYgcG9pbnQgPSBwb2ludHNbaV07CiAgICAgICAgIEludFBvaW50IHBhZ2VQb2ludCA9IGRvY3Vt
ZW50UG9pbnRGb3JXaW5kb3dQb2ludChtX2ZyYW1lLCBwb2ludC5wb3MoKSk7CiAKLSAgICAgICAg
aW50IGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OlJl
YWRPbmx5OworICAgICAgICBIaXRUZXN0UmVxdWVzdFR5cGUgaGl0VHlwZSA9IEhpdFRlc3RSZXF1
ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHk7CiAgICAgICAgIC8vIFRoZSBI
aXRUZXN0UmVxdWVzdCB0eXBlcyB1c2VkIGZvciBtb3VzZSBldmVudHMgbWFwIHF1aXRlIGFkZXF1
YXRlbHkKICAgICAgICAgLy8gdG8gdG91Y2ggZXZlbnRzLiBOb3RlIHRoYXQgaW4gYWRkaXRpb24g
dG8gbWVhbmluZyB0aGF0IHRoZSBoaXQgdGVzdAogICAgICAgICAvLyBzaG91bGQgYWZmZWN0IHRo
ZSBhY3RpdmUgc3RhdGUgb2YgdGhlIGN1cnJlbnQgbm9kZSBpZiBuZWNlc3NhcnksCkluZGV4OiBX
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCShyZXZpc2lvbiA2Mzg0NikKKysrIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsOCBAQCBleHRlcm4gY29uc3QgaW50IEdl
bmVyYWxEcmFnSHlzdGVyZXNpczsKIAogZW51bSBIaXRUZXN0U2Nyb2xsYmFycyB7IFNob3VsZEhp
dFRlc3RTY3JvbGxiYXJzLCBEb250SGl0VGVzdFNjcm9sbGJhcnMgfTsKIAordHlwZWRlZiBpbnQg
SGl0VGVzdFJlcXVlc3RUeXBlOworCiBjbGFzcyBFdmVudEhhbmRsZXIgOiBwdWJsaWMgTm9uY29w
eWFibGUgewogcHVibGljOgogICAgIEV2ZW50SGFuZGxlcihGcmFtZSopOwpAQCAtMTA2LDcgKzEw
OCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRTb29u
SW5RdWFkKGNvbnN0IEZsb2F0UXVhZCYpOwogCi0gICAgSGl0VGVzdFJlc3VsdCBoaXRUZXN0UmVz
dWx0QXRQb2ludChjb25zdCBJbnRQb2ludCYsIGJvb2wgYWxsb3dTaGFkb3dDb250ZW50LCBib29s
IGlnbm9yZUNsaXBwaW5nID0gZmFsc2UsIEhpdFRlc3RTY3JvbGxiYXJzIHNjcm9sbGJhcnMgPSBE
b250SGl0VGVzdFNjcm9sbGJhcnMsIGludCBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6OlJlYWRP
bmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7CisgICAgSGl0VGVzdFJlc3VsdCBoaXRUZXN0
UmVzdWx0QXRQb2ludChjb25zdCBJbnRQb2ludCYsIGJvb2wgYWxsb3dTaGFkb3dDb250ZW50LCBi
b29sIGlnbm9yZUNsaXBwaW5nID0gZmFsc2UsIEhpdFRlc3RTY3JvbGxiYXJzIHNjcm9sbGJhcnMg
PSBEb250SGl0VGVzdFNjcm9sbGJhcnMsIEhpdFRlc3RSZXF1ZXN0VHlwZSBoaXRUeXBlID0gSGl0
VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7CiAKICAgICBi
b29sIG1vdXNlUHJlc3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VQcmVzc2VkOyB9CiAgICAg
dm9pZCBzZXRNb3VzZVByZXNzZWQoYm9vbCBwcmVzc2VkKSB7IG1fbW91c2VQcmVzc2VkID0gcHJl
c3NlZDsgfQo=
</data>
<flag name="review"
          id="50359"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62222</attachid>
            <date>2010-07-21 12:53:15 -0700</date>
            <delta_ts>2010-07-22 07:07:33 -0700</delta_ts>
            <desc>Patch with typedef.</desc>
            <filename>39493.txt</filename>
            <type>text/plain</type>
            <size>6017</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Mzg0OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDctMjEgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvdWNo
IGV2ZW50cyBkbyBub3QgYWZmZWN0IHRoZSA6YWN0aXZlIENTUyBzdGF0ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk0OTMKKworICAgICAgICBDbGVh
biB0aGUgY29kZSB1cCBieSB1c2luZyBhIHR5cGVkZWYgYmFzZWQgb24gY29tbWVudHMKKyAgICAg
ICAgcG9zdCBsYW5kaW5nIG9mIHRoZSBvcmlnaW5hbCBwYXRjaC4KKworICAgICAgICBObyBjaGFu
Z2UgaW4gZnVuY3Rpb25hbGl0eSBzbyBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiByZW5kZXJp
bmcvSGl0VGVzdFJlcXVlc3QuaDogVHlwZWRlZiB0aGUgSGl0VGVzdFJlcXVlc3RUeXBlIHRvIHVu
c2lnbmVkLgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBVcGRhdGUgZXhwb3J0IHNpZ25hdHVy
ZS4KKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5jcHA6IHVzZSB0aGUgbmV3IHR5cGVkZWYuCisgICAgICAgICogcGFnZS9FdmVudEhh
bmRsZXIuaDogZGl0dG8uCisKKwogMjAxMC0wNy0yMSAgVG9ueSBHZW50aWxjb3JlICA8dG9ueWdA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4LgpJbmRleDogV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CShyZXZpc2lvbiA2Mzg0NikKKysrIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTIxNiw3ICsyMTYsNyBAQCBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjE0c2Nyb2xs
T3ZlcmZsCiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjE1c2VuZFNjcm9sbEV2ZW50RXYKIF9f
Wk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTZoYW5kbGVXaGVlbEV2ZW50RVJOU18xOFBsYXRmb3Jt
V2hlZWxFdmVudEUKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjBoYW5kbGVUZXh0SW5wdXRF
dmVudEVSS05TXzZTdHJpbmdFUE5TXzVFdmVudEViYgotX19aTjdXZWJDb3JlMTJFdmVudEhhbmRs
ZXIyMGhpdFRlc3RSZXN1bHRBdFBvaW50RVJLTlNfOEludFBvaW50RWJiTlNfMTdIaXRUZXN0U2Ny
b2xsYmFyc0VpCitfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjIwaGl0VGVzdFJlc3VsdEF0UG9p
bnRFUktOU184SW50UG9pbnRFYmJOU18xN0hpdFRlc3RTY3JvbGxiYXJzRWoKIF9fWk43V2ViQ29y
ZTEyRXZlbnRIYW5kbGVyMjFoYW5kbGVNb3VzZVByZXNzRXZlbnRFUktOU18xOFBsYXRmb3JtTW91
c2VFdmVudEUKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjNoYW5kbGVNb3VzZVJlbGVhc2VF
dmVudEVSS05TXzE4UGxhdGZvcm1Nb3VzZUV2ZW50RQogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRs
ZXIyN2NhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZEV2CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUu
b3JkZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLm9yZGVyCShyZXZpc2lvbiA2Mzg0
NikKKysrIFdlYkNvcmUvV2ViQ29yZS5vcmRlcgkod29ya2luZyBjb3B5KQpAQCAtMjk5OSw3ICsy
OTk5LDcgQEAgX19aTjdXZWJDb3JlMjRTdHJpbmdXcmFwcGVyQ0ZBbGxvY2F0b3JMMgogX19aTks3
V2ViQ29yZTEyUmVuZGVyT2JqZWN0NXRoZW1lRXYKIF9fWk5LN1dlYkNvcmUxNFJlbmRlclRoZW1l
TWFjMjBzdXBwb3J0c0NvbnRyb2xUaW50c0V2CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4
dDIzc2V0VXBkYXRpbmdDb250cm9sVGludHNFYgotX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIy
MGhpdFRlc3RSZXN1bHRBdFBvaW50RVJLTlNfOEludFBvaW50RWJiTlNfMTdIaXRUZXN0U2Nyb2xs
YmFyc0VpCitfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjIwaGl0VGVzdFJlc3VsdEF0UG9pbnRF
UktOU184SW50UG9pbnRFYmJOU18xN0hpdFRlc3RTY3JvbGxiYXJzRWoKIF9fWk5LN1dlYkNvcmUx
M0hpdFRlc3RSZXN1bHQxMGlzU2VsZWN0ZWRFdgogX19aTjdXZWJDb3JlMTlTZWxlY3Rpb25Db250
cm9sbGVyOGNvbnRhaW5zRVJLTlNfOEludFBvaW50RQogX19aTjdXZWJDb3JlMTNJbmxpbmVUZXh0
Qm94MTFub2RlQXRQb2ludEVSS05TXzE0SGl0VGVzdFJlcXVlc3RFUk5TXzEzSGl0VGVzdFJlc3Vs
dEVpaWlpCkluZGV4OiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNpb24gNjM4NDYpCisrKyBXZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYyLDcgKzg2Miw3
IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjphbGxvd0RIVE1MRHJhZyhib29sJiAKIH0KICNlbmRpZiAv
LyBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIAotSGl0VGVzdFJlc3VsdCBFdmVudEhhbmRsZXI6
OmhpdFRlc3RSZXN1bHRBdFBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCwgYm9vbCBhbGxvd1No
YWRvd0NvbnRlbnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcsIEhpdFRlc3RTY3JvbGxiYXJzIHRlc3RT
Y3JvbGxiYXJzLCBpbnQgaGl0VHlwZSkKK0hpdFRlc3RSZXN1bHQgRXZlbnRIYW5kbGVyOjpoaXRU
ZXN0UmVzdWx0QXRQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQsIGJvb2wgYWxsb3dTaGFkb3dD
b250ZW50LCBib29sIGlnbm9yZUNsaXBwaW5nLCBIaXRUZXN0U2Nyb2xsYmFycyB0ZXN0U2Nyb2xs
YmFycywgSGl0VGVzdFJlcXVlc3Q6OkhpdFRlc3RSZXF1ZXN0VHlwZSBoaXRUeXBlKQogewogICAg
IEhpdFRlc3RSZXN1bHQgcmVzdWx0KHBvaW50KTsKICAgICBpZiAoIW1fZnJhbWUtPmNvbnRlbnRS
ZW5kZXJlcigpKQpAQCAtMTQzOCw3ICsxNDM4LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRs
ZU1vdXNlTW92ZUV2ZW50KAogICAgIC8vIGlmIHdlIGFyZSBhbGxvd2VkIHRvIHNlbGVjdC4KICAg
ICAvLyBUaGlzIG1lYW5zIHRoYXQgOmhvdmVyIGFuZCA6YWN0aXZlIGZyZWV6ZSBpbiB0aGUgc3Rh
dGUgdGhleSB3ZXJlIGluIHdoZW4gdGhlIG1vdXNlCiAgICAgLy8gd2FzIHByZXNzZWQsIHJhdGhl
ciB0aGFuIHVwZGF0aW5nIGZvciBub2RlcyB0aGUgbW91c2UgbW92ZXMgb3ZlciBhcyB5b3UgaG9s
ZCB0aGUgbW91c2UgZG93bi4KLSAgICBpbnQgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpNb3Vz
ZU1vdmU7CisgICAgSGl0VGVzdFJlcXVlc3Q6OkhpdFRlc3RSZXF1ZXN0VHlwZSBoaXRUeXBlID0g
SGl0VGVzdFJlcXVlc3Q6Ok1vdXNlTW92ZTsKICAgICBpZiAobV9tb3VzZVByZXNzZWQgJiYgbV9t
b3VzZURvd25NYXlTdGFydFNlbGVjdCkKICAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVz
dDo6UmVhZE9ubHk7CiAgICAgaWYgKG1fbW91c2VQcmVzc2VkKQpAQCAtMjg0Nyw3ICsyODQ3LDcg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29ucwogICAgICAgICBjb25z
dCBQbGF0Zm9ybVRvdWNoUG9pbnQmIHBvaW50ID0gcG9pbnRzW2ldOwogICAgICAgICBJbnRQb2lu
dCBwYWdlUG9pbnQgPSBkb2N1bWVudFBvaW50Rm9yV2luZG93UG9pbnQobV9mcmFtZSwgcG9pbnQu
cG9zKCkpOwogCi0gICAgICAgIGludCBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8
IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seTsKKyAgICAgICAgSGl0VGVzdFJlcXVlc3Q6OkhpdFRl
c3RSZXF1ZXN0VHlwZSBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RS
ZXF1ZXN0OjpSZWFkT25seTsKICAgICAgICAgLy8gVGhlIEhpdFRlc3RSZXF1ZXN0IHR5cGVzIHVz
ZWQgZm9yIG1vdXNlIGV2ZW50cyBtYXAgcXVpdGUgYWRlcXVhdGVseQogICAgICAgICAvLyB0byB0
b3VjaCBldmVudHMuIE5vdGUgdGhhdCBpbiBhZGRpdGlvbiB0byBtZWFuaW5nIHRoYXQgdGhlIGhp
dCB0ZXN0CiAgICAgICAgIC8vIHNob3VsZCBhZmZlY3QgdGhlIGFjdGl2ZSBzdGF0ZSBvZiB0aGUg
Y3VycmVudCBub2RlIGlmIG5lY2Vzc2FyeSwKSW5kZXg6IFdlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgJKHJldmlzaW9u
IDYzODQ2KQorKysgV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNwYXRjaEZha2VNb3VzZU1v
dmVFdmVudFNvb25JblF1YWQoY29uc3QgRmxvYXRRdWFkJik7CiAKLSAgICBIaXRUZXN0UmVzdWx0
IGhpdFRlc3RSZXN1bHRBdFBvaW50KGNvbnN0IEludFBvaW50JiwgYm9vbCBhbGxvd1NoYWRvd0Nv
bnRlbnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcgPSBmYWxzZSwgSGl0VGVzdFNjcm9sbGJhcnMgc2Ny
b2xsYmFycyA9IERvbnRIaXRUZXN0U2Nyb2xsYmFycywgaW50IGhpdFR5cGUgPSBIaXRUZXN0UmVx
dWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlKTsKKyAgICBIaXRUZXN0UmVz
dWx0IGhpdFRlc3RSZXN1bHRBdFBvaW50KGNvbnN0IEludFBvaW50JiwgYm9vbCBhbGxvd1NoYWRv
d0NvbnRlbnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcgPSBmYWxzZSwgSGl0VGVzdFNjcm9sbGJhcnMg
c2Nyb2xsYmFycyA9IERvbnRIaXRUZXN0U2Nyb2xsYmFycywgSGl0VGVzdFJlcXVlc3Q6OkhpdFRl
c3RSZXF1ZXN0VHlwZSBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVz
dFJlcXVlc3Q6OkFjdGl2ZSk7CiAKICAgICBib29sIG1vdXNlUHJlc3NlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fbW91c2VQcmVzc2VkOyB9CiAgICAgdm9pZCBzZXRNb3VzZVByZXNzZWQoYm9vbCBwcmVz
c2VkKSB7IG1fbW91c2VQcmVzc2VkID0gcHJlc3NlZDsgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvSGl0VGVzdFJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9IaXRU
ZXN0UmVxdWVzdC5oCShyZXZpc2lvbiA2Mzg0NikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0hpdFRl
c3RSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDkgQEAgcHVibGljOgogICAg
ICAgICBTVkdDbGlwQ29udGVudCA9IDEgPDwgNgogICAgIH07CiAKLSAgICBIaXRUZXN0UmVxdWVz
dChpbnQgcmVxdWVzdFR5cGUpCisgICAgdHlwZWRlZiB1bnNpZ25lZCBIaXRUZXN0UmVxdWVzdFR5
cGU7CisKKyAgICBIaXRUZXN0UmVxdWVzdChIaXRUZXN0UmVxdWVzdFR5cGUgcmVxdWVzdFR5cGUp
CiAgICAgICAgIDogbV9yZXF1ZXN0VHlwZShyZXF1ZXN0VHlwZSkKICAgICB7CiAgICAgfQpAQCAt
NDgsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdmdDbGlwQ29udGVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVxdWVzdFR5cGUgJiBTVkdDbGlwQ29udGVudDsgfQogCiBwcml2YXRlOgotICAg
IGludCBtX3JlcXVlc3RUeXBlOworICAgIEhpdFRlc3RSZXF1ZXN0VHlwZSBtX3JlcXVlc3RUeXBl
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>