<?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>32571</bug_id>
          
          <creation_ts>2009-12-15 12:50:09 -0800</creation_ts>
          <short_desc>Support the aria-checked attribute</short_desc>
          <delta_ts>2010-01-05 11:00:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows Vista</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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dominic Mazzoni">dmazzoni</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bdakin</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>171982</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2009-12-15 12:50:09 -0800</bug_when>
    <thetext>For an object with an aria role of &quot;checkbox&quot; or &quot;radiobutton&quot;, the aria-checked attribute should be used to determine the state of the object.  (Currently that attribute is being used to return the value, but not the state.  The state is needed for MSAA on Windows.)

I&apos;ve got a patch that I intend to attach shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171989</commentid>
    <comment_count>1</comment_count>
      <attachid>44902</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2009-12-15 13:02:58 -0800</bug_when>
    <thetext>Created attachment 44902
Patch to add support for the aria-checked attribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172014</commentid>
    <comment_count>2</comment_count>
      <attachid>44902</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-15 14:00:52 -0800</bug_when>
    <thetext>Comment on attachment 44902
Patch to add support for the aria-checked attribute.

We need a regression test for this. We don&apos;t take code changes without regression tests. There are lots of accessibility regression tests, although I don&apos;t know if they are yet working on the Chrome platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172016</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-15 14:01:56 -0800</bug_when>
    <thetext>Thanks for tackling this. I think this is probably good fix for all platforms, not just MSAA on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172020</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-12-15 14:07:35 -0800</bug_when>
    <thetext>yea, we&apos;d want this for all platforms, although Mac does not rely on isChecked for checkbox state (it uses intValue() instead)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172028</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-15 14:13:49 -0800</bug_when>
    <thetext>Also:
- All changes require a test if possible (which in this case it should be).
- Please don&apos;t change the &quot;Reviewed by NOBODY(OOPS!).&quot; line, otherwise our scripts will have trouble updating the reviewer when landing this for you.

Otherwise a patch which works for all platforms would be awesome!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172042</commentid>
    <comment_count>6</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2009-12-15 14:30:52 -0800</bug_when>
    <thetext>Thanks for the quick feedback, I will be happy to add a test.

Can you clarify what you mean by making this work on all platforms?  This fix is in cross-platform code, and should fix the problem in both Safari and Chrome on Windows.  As Chris said, the Mac accessibility code doesn&apos;t exercise this code path.

I thought it would be better to add a cross-platform test.  Would you prefer a Windows-specific test at the MSAA level, or both?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172043</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-15 14:31:40 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Can you clarify what you mean by making this work on all platforms?  This fix
&gt; is in cross-platform code, and should fix the problem in both Safari and Chrome
&gt; on Windows.  As Chris said, the Mac accessibility code doesn&apos;t exercise this
&gt; code path.

Sounds fine.

&gt; I thought it would be better to add a cross-platform test.  Would you prefer a
&gt; Windows-specific test at the MSAA level, or both?

Cross-platform test is great. MSAA test would be a nice plus, but do we have any of those?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172542</commentid>
    <comment_count>8</comment_count>
      <attachid>45017</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2009-12-16 15:02:03 -0800</bug_when>
    <thetext>Created attachment 45017
Improved patch, adds an isChecked method to AccessibilityUIElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172543</commentid>
    <comment_count>9</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2009-12-16 15:02:29 -0800</bug_when>
    <thetext>As it turns out, there isn&apos;t a way to get at isChecked() or the object&apos;s MSAA state from a LayoutTest currently, so I added a new method to AccessibilityUIElement and separate implementations for win, mac, and gtk.  Does this look right or did I miss an easier way?

This works on the Mac, and I&apos;m working on testing GTK.  I still need to write an equivalent function for chromium&apos;s test_shell that I can try to submit in parallel.

I&apos;m using VS 2008, so I&apos;m having trouble running the layout tests on Windows.  Is there a try bot I can use?  Or is someone willing to test this patch on Windows for me?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172544</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-16 15:02:46 -0800</bug_when>
    <thetext>Attachment 45017 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKitTools/DumpRenderTree/win/AccessibilityUIElementWin.cpp:291:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172545</commentid>
    <comment_count>11</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-12-16 15:05:52 -0800</bug_when>
    <thetext>your methodology looks pretty good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172960</commentid>
    <comment_count>12</comment_count>
      <attachid>45105</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2009-12-17 14:53:22 -0800</bug_when>
    <thetext>Created attachment 45105
All tests pass; source synced.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172961</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-17 14:58:18 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45105 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172962</commentid>
    <comment_count>14</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2009-12-17 14:59:16 -0800</bug_when>
    <thetext>Hi all,

I confirmed that this test passes on Windows and Mac OS X.  I re-synced and fixed the style guide error.

I also have a corresponding patch to Chromium under review, but it doesn&apos;t need to be committed in parallel because that whole directory of layout tests is currently skipped under chromium: http://codereview.chromium.org/503050

So, I hope this is ready to go?  Please take another look.

This is my first webkit patch, so please let me know anything else I should check; otherwise if it looks good, I&apos;d appreciate it if you could tag it to be committed!

Thanks,
Dominic</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173173</commentid>
    <comment_count>15</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2009-12-18 08:57:04 -0800</bug_when>
    <thetext>I&apos;m syncing and re-uploading the patch now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173174</commentid>
    <comment_count>16</comment_count>
      <attachid>45153</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2009-12-18 08:59:21 -0800</bug_when>
    <thetext>Created attachment 45153
Re-synced and updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173177</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-18 09:02:44 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45153 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175193</commentid>
    <comment_count>18</comment_count>
      <attachid>45153</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-12-28 01:46:50 -0800</bug_when>
    <thetext>Comment on attachment 45153
Re-synced and updated patch

I think the correct behavior is that if an element both has native checkedness (e.g. because it is an input element of type radio or checkbox), then the checked attribute should take precedence over aria-checked, because &lt;input type=radio&gt; and &lt;input type=checkbox&gt; have &quot;strong native semantics&quot;. Your patch seems to do it the other way around. Please fix this and provide an updated patch. Thanks!

Reference: http://dev.w3.org/html5/spec/Overview.html#annotations-for-assistive-technology-products-aria</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176218</commentid>
    <comment_count>19</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2009-12-31 10:32:42 -0800</bug_when>
    <thetext>You&apos;re right, thanks.  I modified the test to check the interaction of &lt;input type=&quot;checkbox&quot;&gt; with the &quot;checked&quot; attribute and the &quot;aria-checked&quot; attribute, and confirmed that the Mac version is already working correctly (ignoring aria-checked).  I&apos;ll make the Windows version match that next week after the holiday.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176954</commentid>
    <comment_count>20</comment_count>
      <attachid>45846</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2010-01-04 17:13:26 -0800</bug_when>
    <thetext>Created attachment 45846
Makes native checkedness take precedence when checking for aria-checked. Now tests all permutations of checked and aria-checked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176955</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-04 17:15:06 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45846 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176960</commentid>
    <comment_count>22</comment_count>
      <attachid>45846</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-04 17:24:39 -0800</bug_when>
    <thetext>Comment on attachment 45846
Makes native checkedness take precedence when checking for aria-checked. Now tests all permutations of checked and aria-checked.

&gt; +        if (equalIgnoringCase(getAttribute(aria_checkedAttr).string(), &quot;true&quot;))

You should omit the .string() here.

&gt;      bool isRequired() const;
&gt;      bool isSelected() const;
&gt;      bool isExpanded() const;
&gt; +    bool isChecked();

Why not const?

&gt;      int hierarchicalLevel() const;
&gt;      double clickPointX();
&gt;      double clickPointY();

&gt; +bool AccessibilityUIElement::isChecked()
&gt; +{
&gt; +    return static_cast&lt;bool&gt;(intValue());
&gt; +}

Normally an int to bool conversion would not require an explicit cast.

&gt; +    return (intValue() == 1);

No need for the parentheses here.

&gt; +    return (vState.lVal &amp; STATE_SYSTEM_CHECKED);

Or here.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176973</commentid>
    <comment_count>23</comment_count>
      <attachid>45850</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2010-01-04 17:40:42 -0800</bug_when>
    <thetext>Created attachment 45850
Address review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176974</commentid>
    <comment_count>24</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2010-01-04 17:42:30 -0800</bug_when>
    <thetext>Thanks!  All changes made except:

&gt; &gt;      bool isRequired() const;
&gt; &gt;      bool isSelected() const;
&gt; &gt;      bool isExpanded() const;
&gt; &gt; +    bool isChecked();
&gt;
&gt; Why not const?

Because the Mac implementation calls intValue, which isn&apos;t const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176975</commentid>
    <comment_count>25</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-01-04 17:44:45 -0800</bug_when>
    <thetext>
&gt; Because the Mac implementation calls intValue, which isn&apos;t const.

seems like intValue() could be const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176983</commentid>
    <comment_count>26</comment_count>
      <attachid>45853</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2010-01-04 18:09:46 -0800</bug_when>
    <thetext>Created attachment 45853
Easier than I thought.  Made both intValue and isChecked const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177030</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-04 21:56:01 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45853 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177244</commentid>
    <comment_count>28</comment_count>
      <attachid>45853</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-05 11:00:41 -0800</bug_when>
    <thetext>Comment on attachment 45853
Easier than I thought.  Made both intValue and isChecked const.

Clearing flags on attachment: 45853

Committed r52809: &lt;http://trac.webkit.org/changeset/52809&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177245</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-05 11:00:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44902</attachid>
            <date>2009-12-15 13:02:58 -0800</date>
            <delta_ts>2009-12-16 15:02:03 -0800</delta_ts>
            <desc>Patch to add support for the aria-checked attribute.</desc>
            <filename>checkbox2.patch</filename>
            <type>text/plain</type>
            <size>1603</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIENoYW5nZUxvZwkocmV2aXNpb24gNTIx
NjcpCisrKyBDaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAwOS0x
Mi0xNSAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSA/CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMyNTcxCisKKyAgICAgICAgRm9yIGFuIG9iamVjdCB3aXRoIGFuIGFyaWEgcm9sZSBv
ZiAiY2hlY2tib3giIG9yICJyYWRpb2J1dHRvbiIsCisgICAgICAgIHVzZSB0aGUgImFyaWEtY2hl
Y2tlZCIgYXR0cmlidXRlIHRvIGRldGVybWluZSBpZiBpdCdzIGNoZWNrZWQuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmlzQ2hlY2tlZCk6CisKIDIwMDktMTItMTUgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCShyZXZpc2lv
biA1MTg3NSkKKysrIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM2Miw2ICszNjIsMTQgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojppc0NoZWNrZQogICAgIGlmICghbV9yZW5kZXJlci0+bm9kZSgpIHx8ICFtX3Jl
bmRlcmVyLT5ub2RlKCktPmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CisgICAgLy8gSWYgdGhpcyBpcyBhbiBBUklBIGNoZWNrYm94IG9yIHJhZGlvLCBjaGVjayB0aGUg
YXJpYS1jaGVja2VkIGF0dHJpYnV0ZSByYXRoZXIgdGhhbiBpbnB1dEVsZW1lbnQtPmlzQ2hlY2tl
ZCgpCisgICAgQWNjZXNzaWJpbGl0eVJvbGUgYXJpYVJvbGUgPSBhcmlhUm9sZUF0dHJpYnV0ZSgp
OworICAgIGlmIChhcmlhUm9sZSA9PSBSYWRpb0J1dHRvblJvbGUgfHwgYXJpYVJvbGUgPT0gQ2hl
Y2tCb3hSb2xlKSB7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShnZXRBdHRyaWJ1dGUo
YXJpYV9jaGVja2VkQXR0cikuc3RyaW5nKCksICJ0cnVlIikpCisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIElucHV0RWxlbWVudCog
aW5wdXRFbGVtZW50ID0gdG9JbnB1dEVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG1fcmVu
ZGVyZXItPm5vZGUoKSkpOwogICAgIGlmICghaW5wdXRFbGVtZW50KQogICAgICAgICByZXR1cm4g
ZmFsc2U7Cg==
</data>
<flag name="review"
          id="26828"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45017</attachid>
            <date>2009-12-16 15:02:03 -0800</date>
            <delta_ts>2009-12-17 14:53:22 -0800</delta_ts>
            <desc>Improved patch, adds an isChecked method to AccessibilityUIElement</desc>
            <filename>checkbox3.patch</filename>
            <type>text/plain</type>
            <size>8535</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNTIyMjEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAwOS0xMi0xNiAgRG9taW5pYyBNYXp6b25p
ICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzI1NzEKKworICAgICAgICBBZGRlZCBhIHRlc3QgdG8gbWFrZSBzdXJlIHRoYXQgQVJJQSBjaGVj
a2JveGVzIGNvcnJlY3RseSBoYW5kbGUgdGhlIGFyaWEtY2hlY2tlZCBhdHRyaWJ1dGUuCisKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tlZC5odG1sOiBBZGRlZC4K
KwogMjAwOS0xMi0xNiAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQtZXhwZWN0ZWQudHh0DQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNr
Ym94LWNoZWNrZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACitP
bmUKK1R3bworVGhpcyB0ZXN0cyB0aGF0IEFSSUEgY2hlY2tib3hlcyBjb3JyZWN0bHkgaGFuZGxl
IHRoZSBhcmlhLWNoZWNrZWQgYXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBjaGVja2JveC5pc0NoZWNrZWQgaXMgZmFsc2UKK1BBU1MgY2hlY2tib3guaXND
aGVja2VkIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gt
Y2hlY2tlZC5odG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9h
cmlhLWNoZWNrYm94LWNoZWNrZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVja2VkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQ+Cit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gZmFsc2U7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9k
eSI+CisKKzxkaXYgcm9sZT0iY2hlY2tib3giIGlkPSJjaGVjazEiIHRhYmluZGV4PSIwIj5PbmU8
L2Rpdj4KKzxkaXYgcm9sZT0iY2hlY2tib3giIGlkPSJjaGVjazIiIHRhYmluZGV4PSIwIiBhcmlh
LWNoZWNrZWQ9InRydWUiPlR3bzwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRo
aXMgdGVzdHMgdGhhdCBBUklBIGNoZWNrYm94ZXMgY29ycmVjdGx5IGhhbmRsZSB0aGUgYXJpYS1j
aGVja2VkIGF0dHJpYnV0ZS4iKTsKKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIpIHsKKworICAgICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjaGVjazEiKTsKKyAgICAgICAgICBjaGVja2JveC5mb2N1cygpOworICAgICAgICAgIGNo
ZWNrYm94ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisgICAgICAg
ICAgc2hvdWxkQmUoImNoZWNrYm94LmlzQ2hlY2tlZCIsICJmYWxzZSIpOworCisgICAgICAgICAg
Y2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hlY2syIik7CisgICAgICAgICAg
Y2hlY2tib3guZm9jdXMoKTsKKyAgICAgICAgICBjaGVja2JveCA9IGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmZvY3VzZWRFbGVtZW50OworICAgICAgICAgIHNob3VsZEJlKCJjaGVja2JveC5pc0No
ZWNrZWQiLCAidHJ1ZSIpOworICAgIH0KKworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBXZWJDb3JlL0NoYW5n
ZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MjIyMSkK
KysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MDktMTItMTYgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNTcxCisKKyAgICAgICAgRm9yIGFuIG9iamVjdCB3
aXRoIGFuIGFyaWEgcm9sZSBvZiAiY2hlY2tib3giIG9yICJyYWRpb2J1dHRvbiIsCisgICAgICAg
IFVzZSB0aGUgImFyaWEtY2hlY2tlZCIgYXR0cmlidXRlIHRvIGRldGVybWluZSBpZiBpdCdzIGNo
ZWNrZWQuCisKKyAgICAgICAgQWRkZWQgbmV3IHRlc3Q6IGFjY2Vzc2liaWxpdHkvYXJpYS1jaGVj
a2JveC1jaGVja2VkLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojppc0NoZWNrZWQpOgorCiAyMDA5LTEyLTE2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmlj
YUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBX
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHAJKHJldmlzaW9uIDUyMTY2KQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjIsNiArMzYyLDE0IEBA
IGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNDaGVja2UKICAgICBpZiAoIW1fcmVu
ZGVyZXItPm5vZGUoKSB8fCAhbV9yZW5kZXJlci0+bm9kZSgpLT5pc0VsZW1lbnROb2RlKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIC8vIElmIHRoaXMgaXMgYW4gQVJJQSBjaGVja2Jv
eCBvciByYWRpbywgY2hlY2sgdGhlIGFyaWEtY2hlY2tlZCBhdHRyaWJ1dGUgcmF0aGVyIHRoYW4g
aW5wdXRFbGVtZW50LT5pc0NoZWNrZWQoKQorICAgIEFjY2Vzc2liaWxpdHlSb2xlIGFyaWFSb2xl
ID0gYXJpYVJvbGVBdHRyaWJ1dGUoKTsKKyAgICBpZiAoYXJpYVJvbGUgPT0gUmFkaW9CdXR0b25S
b2xlIHx8IGFyaWFSb2xlID09IENoZWNrQm94Um9sZSkgeworICAgICAgICBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2UoZ2V0QXR0cmlidXRlKGFyaWFfY2hlY2tlZEF0dHIpLnN0cmluZygpLCAidHJ1ZSIp
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKICAgICBJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSW5wdXRFbGVtZW50KHN0YXRp
Y19jYXN0PEVsZW1lbnQqPihtX3JlbmRlcmVyLT5ub2RlKCkpKTsKICAgICBpZiAoIWlucHV0RWxl
bWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkocmV2aXNpb24g
NTIxNjYpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc1LDYgKzQ3NSwxMSBAQCBzdGF0aWMgSlNWYWx1
ZVJlZiBnZXRJc0V4cGFuZGVkQ2FsbGJhY2soCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVh
bihjb250ZXh0LCB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+aXNFeHBhbmRlZCgpKTsKIH0KIAor
c3RhdGljIEpTVmFsdWVSZWYgZ2V0SXNDaGVja2VkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKikKK3sK
KyAgICByZXR1cm4gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIHRvQVhFbGVtZW50KHRoaXNP
YmplY3QpLT5pc0NoZWNrZWQoKSk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIGhpZXJhcmNoaWNh
bExldmVsQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKikKIHsKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VO
dW1iZXIoY29udGV4dCwgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPmhpZXJhcmNoaWNhbExldmVs
KCkpOwpAQCAtNTQ1LDYgKzU1MCw3IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6Z2V0SlMKICAgICAgICAgeyAiaXNSZXF1aXJlZCIsIGdldElzUmVxdWlyZWRDYWxsYmFjaywg
MCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJpc1NlbGVjdGVkIiwgZ2V0SXNTZWxlY3RlZENhbGxiYWNr
LCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgImlzRXhwYW5kZWQiLCBnZXRJc0V4cGFuZGVkQ2FsbGJh
Y2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiaXNDaGVja2VkIiwgZ2V0SXNDaGVja2VkQ2FsbGJh
Y2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAidmFsdWVEZXNjcmlwdGlvbiIsIGdldFZhbHVlRGVz
Y3JpcHRpb25DYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJoaWVyYXJjaGljYWxMZXZl
bCIsIGhpZXJhcmNoaWNhbExldmVsQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZG9j
dW1lbnRFbmNvZGluZyIsIGdldERvY3VtZW50RW5jb2RpbmdDYWxsYmFjaywgMCwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApJ
bmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5o
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oCShyZXZpc2lvbiA1MjE2NikKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDYgKzEx
Miw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzUmVxdWlyZWQoKSBjb25zdDsKICAgICBib29sIGlz
U2VsZWN0ZWQoKSBjb25zdDsKICAgICBib29sIGlzRXhwYW5kZWQoKSBjb25zdDsKKyAgICBib29s
IGlzQ2hlY2tlZCgpOwogICAgIGludCBoaWVyYXJjaGljYWxMZXZlbCgpIGNvbnN0OwogICAgIGRv
dWJsZSBjbGlja1BvaW50WCgpOwogICAgIGRvdWJsZSBjbGlja1BvaW50WSgpOwpJbmRleDogV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3Bw
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRHdGsuY3BwCShyZXZpc2lvbiA1MjE2NikKKysrIFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzU5LDYgKzM1OSwxMSBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
RXhwYW5kZWQoCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmlzQ2hlY2tlZCgpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KGludFZh
bHVlKCkpOworfQorCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1
dGVzT2ZDb2x1bW5IZWFkZXJzKCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CkluZGV4OiBX
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50TWFjLm1tCShyZXZpc2lvbiA1MjE2NikKKysrIFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC01MjksNiArNTI5LDEyIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNF
eHBhbmRlZCgKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNDaGVja2VkKCkKK3sKKyAgICAvLyBPbiB0aGUgTWFjLCBpbnRWYWx1ZSgpPT0xIGlm
IGEgYSBjaGVja2FibGUgY29udHJvbCBpcyBjaGVja2VkLgorICAgIHJldHVybiAoaW50VmFsdWUo
KSA9PSAxKTsKK30KKwogaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhpZXJhcmNoaWNhbExl
dmVsKCkgY29uc3QKIHsKICAgICBpZCB2YWx1ZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0
dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eURpc2Nsb3N1cmVMZXZlbEF0dHJpYnV0ZV07Cklu
ZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dFdpbi5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4v
QWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAJKHJldmlzaW9uIDUyMTY2KQorKysgV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yODIsNiArMjgyLDE1IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNFeHBhbmRlZCgKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKCkKK3sKKyAgICBWQVJJQU5UIHZTdGF0ZTsKKyAgICBp
ZiAoRkFJTEVEKG1fZWxlbWVudC0+Z2V0X2FjY1N0YXRlKHNlbGYoKSwgJnZTdGF0ZSkpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gKHZTdGF0ZS5sVmFsICYgU1RBVEVfU1lT
VEVNX0NIRUNLRUQpICE9IDA7Cit9CisKIEpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6Om9yaWVudGF0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gMDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45105</attachid>
            <date>2009-12-17 14:53:22 -0800</date>
            <delta_ts>2009-12-18 08:59:21 -0800</delta_ts>
            <desc>All tests pass; source synced.</desc>
            <filename>checkbox4.patch</filename>
            <type>text/plain</type>
            <size>9871</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNTIyOTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0xMi0xNyAgRG9taW5pYyBNYXp6b25p
ICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzI1NzEKKworICAgICAgICBBZGRlZCBhIHRlc3QgdG8gbWFrZSBzdXJlIHRoYXQgQVJJQSBjaGVj
a2JveGVzIGNvcnJlY3RseSBoYW5kbGUgdGhlIGFyaWEtY2hlY2tlZCBhdHRyaWJ1dGUuCisKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tlZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVja2VkLmh0
bWw6IEFkZGVkLgorCiAyMDA5LTEyLTE3ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZGhjcC0x
NzItMjgtMTc0LTIyMC5zcGIuY29ycC5nb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFRpbW90aHkgSGF0Y2hlci4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1j
aGVja2JveC1jaGVja2VkLWV4cGVjdGVkLnR4dA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVja2VkLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVja2Vk
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorT25lCitUd28KK1Ro
aXMgdGVzdHMgdGhhdCBBUklBIGNoZWNrYm94ZXMgY29ycmVjdGx5IGhhbmRsZSB0aGUgYXJpYS1j
aGVja2VkIGF0dHJpYnV0ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
Y2hlY2tib3guaXNDaGVja2VkIGlzIGZhbHNlCitQQVNTIGNoZWNrYm94LmlzQ2hlY2tlZCBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQuaHRt
bA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2Jv
eC1jaGVja2VkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2FyaWEtY2hlY2tib3gtY2hlY2tlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0PgordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IGZhbHNlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8ZGl2
IHJvbGU9ImNoZWNrYm94IiBpZD0iY2hlY2sxIiB0YWJpbmRleD0iMCI+T25lPC9kaXY+Cis8ZGl2
IHJvbGU9ImNoZWNrYm94IiBpZD0iY2hlY2syIiB0YWJpbmRleD0iMCIgYXJpYS1jaGVja2VkPSJ0
cnVlIj5Ud288L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRo
YXQgQVJJQSBjaGVja2JveGVzIGNvcnJlY3RseSBoYW5kbGUgdGhlIGFyaWEtY2hlY2tlZCBhdHRy
aWJ1dGUuIik7CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisK
KyAgICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hlY2sx
Iik7CisgICAgICAgICAgY2hlY2tib3guZm9jdXMoKTsKKyAgICAgICAgICBjaGVja2JveCA9IGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworICAgICAgICAgIHNob3VsZEJl
KCJjaGVja2JveC5pc0NoZWNrZWQiLCAiZmFsc2UiKTsKKworICAgICAgICAgIGNoZWNrYm94ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoZWNrMiIpOworICAgICAgICAgIGNoZWNrYm94LmZv
Y3VzKCk7CisgICAgICAgICAgY2hlY2tib3ggPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1
c2VkRWxlbWVudDsKKyAgICAgICAgICBzaG91bGRCZSgiY2hlY2tib3guaXNDaGVja2VkIiwgInRy
dWUiKTsKKyAgICB9CisKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+
CisKKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cNCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNTIyOTIpCisrKyBXZWJDb3Jl
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDA5LTEyLTE3ICBE
b21pbmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMjU3MQorCisgICAgICAgIEZvciBhbiBvYmplY3Qgd2l0aCBhbiBhcmlh
IHJvbGUgb2YgImNoZWNrYm94IiBvciAicmFkaW9idXR0b24iLAorICAgICAgICBVc2UgdGhlICJh
cmlhLWNoZWNrZWQiIGF0dHJpYnV0ZSB0byBkZXRlcm1pbmUgaWYgaXQncyBjaGVja2VkLgorCisg
ICAgICAgIEFkZGVkIG5ldyB0ZXN0OiBhY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tl
ZC5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXND
aGVja2VkKToKKwogMjAwOS0xMi0xNyAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHANCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAJKHJl
dmlzaW9uIDUyMjkxKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjMsNiArMzYzLDE0IEBAIGJvb2wgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNDaGVja2UKICAgICBpZiAoIW1fcmVuZGVyZXItPm5v
ZGUoKSB8fCAhbV9yZW5kZXJlci0+bm9kZSgpLT5pc0VsZW1lbnROb2RlKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAorICAgIC8vIElmIHRoaXMgaXMgYW4gQVJJQSBjaGVja2JveCBvciByYWRp
bywgY2hlY2sgdGhlIGFyaWEtY2hlY2tlZCBhdHRyaWJ1dGUgcmF0aGVyIHRoYW4gaW5wdXRFbGVt
ZW50LT5pc0NoZWNrZWQoKQorICAgIEFjY2Vzc2liaWxpdHlSb2xlIGFyaWFSb2xlID0gYXJpYVJv
bGVBdHRyaWJ1dGUoKTsKKyAgICBpZiAoYXJpYVJvbGUgPT0gUmFkaW9CdXR0b25Sb2xlIHx8IGFy
aWFSb2xlID09IENoZWNrQm94Um9sZSkgeworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uo
Z2V0QXR0cmlidXRlKGFyaWFfY2hlY2tlZEF0dHIpLnN0cmluZygpLCAidHJ1ZSIpKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBJ
bnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSW5wdXRFbGVtZW50KHN0YXRpY19jYXN0PEVs
ZW1lbnQqPihtX3JlbmRlcmVyLT5ub2RlKCkpKTsKICAgICBpZiAoIWlucHV0RWxlbWVudCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MjI5MikKKysrIFdlYktp
dFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDA5LTEy
LTE3ICBEb21pbmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMjU3MQorCisgICAgICAgIEZvciBhbiBvYmplY3Qgd2l0aCBh
biBhcmlhIHJvbGUgb2YgImNoZWNrYm94IiBvciAicmFkaW9idXR0b24iLAorICAgICAgICB1c2Ug
dGhlICJhcmlhLWNoZWNrZWQiIGF0dHJpYnV0ZSB0byBkZXRlcm1pbmUgaWYgaXQncyBjaGVja2Vk
LgorICAgICAgICBUaGVzZSBjaGFuZ2VzIGFkZCBhbiBpc0NoZWNrZWQoKSBtZXRob2QgdG8gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudAorICAgICAgICBzbyB0aGF0IHdlIGNhbiBjaGVjayBmb3IgdGhp
cyBwcm9wZXJ0eSBmcm9tIGEgbGF5b3V0IHRlc3QuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKGdldElzQ2hlY2tlZENhbGxi
YWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpTQ2xhc3MpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEd0ay5jcHA6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0NoZWNrZWQpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOgorICAgICAgICAoQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHA6CisgICAgICAgIChBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc0NoZWNrZWQpOgorCiAyMDA5LTEyLTE3ICBBbGVqYW5kcm8gRy4gQ2Fz
dHJvICA8YWxleEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVs
LgpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmNwcAkocmV2aXNpb24gNTIyOTEpCisrKyBXZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDc1LDYgKzQ3NSwxMSBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBnZXRJc0V4cGFuZGVkQ2FsbGJhY2so
CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCB0b0FYRWxlbWVudCh0aGlz
T2JqZWN0KS0+aXNFeHBhbmRlZCgpKTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgZ2V0SXNDaGVj
a2VkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKikKK3sKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VCb29s
ZWFuKGNvbnRleHQsIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5pc0NoZWNrZWQoKSk7Cit9CisK
IHN0YXRpYyBKU1ZhbHVlUmVmIGhpZXJhcmNoaWNhbExldmVsQ2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVm
KikKIHsKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgdG9BWEVsZW1lbnQo
dGhpc09iamVjdCktPmhpZXJhcmNoaWNhbExldmVsKCkpOwpAQCAtNTUxLDYgKzU1Niw3IEBAIEpT
Q2xhc3NSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0SlMKICAgICAgICAgeyAiaXNSZXF1
aXJlZCIsIGdldElzUmVxdWlyZWRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJpc1Nl
bGVjdGVkIiwgZ2V0SXNTZWxlY3RlZENhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImlz
RXhwYW5kZWQiLCBnZXRJc0V4cGFuZGVkQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAi
aXNDaGVja2VkIiwgZ2V0SXNDaGVja2VkQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
dmFsdWVEZXNjcmlwdGlvbiIsIGdldFZhbHVlRGVzY3JpcHRpb25DYWxsYmFjaywgMCwga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJoaWVyYXJjaGljYWxMZXZlbCIsIGhpZXJhcmNoaWNhbExldmVsQ2FsbGJh
Y2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZG9jdW1lbnRFbmNvZGluZyIsIGdldERvY3VtZW50
RW5jb2RpbmdDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCShyZXZpc2lvbiA1MjI5
MSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDYgKzExMiw3IEBAIHB1YmxpYzoKICAgICBib29sIGlz
UmVxdWlyZWQoKSBjb25zdDsKICAgICBib29sIGlzU2VsZWN0ZWQoKSBjb25zdDsKICAgICBib29s
IGlzRXhwYW5kZWQoKSBjb25zdDsKKyAgICBib29sIGlzQ2hlY2tlZCgpOwogICAgIGludCBoaWVy
YXJjaGljYWxMZXZlbCgpIGNvbnN0OwogICAgIGRvdWJsZSBjbGlja1BvaW50WCgpOwogICAgIGRv
dWJsZSBjbGlja1BvaW50WSgpOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwCShyZXZp
c2lvbiA1MjI5MSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU5LDYgKzM1OSwxMSBAQCBi
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWQoCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZCgpCit7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KGludFZhbHVlKCkpOworfQorCiBKU1N0cmluZ1JlZiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5IZWFkZXJzKCkKIHsKICAg
ICAvLyBGSVhNRTogaW1wbGVtZW50CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQ0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCShyZXZp
c2lvbiA1MjI5MSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01MjksNiArNTI5LDEyIEBAIGJv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKCkKK3sKKyAgICAv
LyBPbiB0aGUgTWFjLCBpbnRWYWx1ZSgpPT0xIGlmIGEgYSBjaGVja2FibGUgY29udHJvbCBpcyBj
aGVja2VkLgorICAgIHJldHVybiAoaW50VmFsdWUoKSA9PSAxKTsKK30KKwogaW50IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmhpZXJhcmNoaWNhbExldmVsKCkgY29uc3QKIHsKICAgICBpZCB2YWx1
ZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0
eURpc2Nsb3N1cmVMZXZlbEF0dHJpYnV0ZV07CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHANCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBX
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5j
cHAJKHJldmlzaW9uIDUyMjkxKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODIsNiArMjgy
LDE1IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKCkK
K3sKKyAgICBWQVJJQU5UIHZTdGF0ZTsKKyAgICBpZiAoRkFJTEVEKG1fZWxlbWVudC0+Z2V0X2Fj
Y1N0YXRlKHNlbGYoKSwgJnZTdGF0ZSkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBy
ZXR1cm4gKHZTdGF0ZS5sVmFsICYgU1RBVEVfU1lTVEVNX0NIRUNLRUQpOworfQorCiBKU1N0cmlu
Z1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpvcmllbnRhdGlvbigpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIDA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45153</attachid>
            <date>2009-12-18 08:59:21 -0800</date>
            <delta_ts>2010-01-04 17:13:26 -0800</delta_ts>
            <desc>Re-synced and updated patch</desc>
            <filename>checkbox5.patch</filename>
            <type>text/plain</type>
            <size>9818</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNTIzMTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0xMi0xOCAgRG9taW5pYyBNYXp6b25p
ICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzI1NzEKKworICAgICAgICBBZGRlZCBhIHRlc3QgdG8gbWFrZSBzdXJlIHRoYXQgQVJJQSBjaGVj
a2JveGVzIGNvcnJlY3RseSBoYW5kbGUgdGhlIGFyaWEtY2hlY2tlZCBhdHRyaWJ1dGUuCisKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tlZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVja2VkLmh0
bWw6IEFkZGVkLgorCiAyMDA5LTEyLTE4ICBTaHUgQ2hhbmcgIDxDaGFuZy5TaHVAbm9raWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQtZXhwZWN0ZWQudHh0DQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9h
cmlhLWNoZWNrYm94LWNoZWNrZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDEzIEBACitPbmUKK1R3bworVGhpcyB0ZXN0cyB0aGF0IEFSSUEgY2hlY2tib3hlcyBjb3JyZWN0
bHkgaGFuZGxlIHRoZSBhcmlhLWNoZWNrZWQgYXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBjaGVja2JveC5pc0NoZWNrZWQgaXMgZmFsc2UKK1BBU1MgY2hl
Y2tib3guaXNDaGVja2VkIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEt
Y2hlY2tib3gtY2hlY2tlZC5odG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVja2VkLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQ+Cit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBpZD0iYm9keSI+CisKKzxkaXYgcm9sZT0iY2hlY2tib3giIGlkPSJjaGVjazEiIHRhYmluZGV4
PSIwIj5PbmU8L2Rpdj4KKzxkaXYgcm9sZT0iY2hlY2tib3giIGlkPSJjaGVjazIiIHRhYmluZGV4
PSIwIiBhcmlhLWNoZWNrZWQ9InRydWUiPlR3bzwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdHMgdGhhdCBBUklBIGNoZWNrYm94ZXMgY29ycmVjdGx5IGhhbmRsZSB0
aGUgYXJpYS1jaGVja2VkIGF0dHJpYnV0ZS4iKTsKKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIpIHsKKworICAgICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjaGVjazEiKTsKKyAgICAgICAgICBjaGVja2JveC5mb2N1cygpOworICAg
ICAgICAgIGNoZWNrYm94ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7
CisgICAgICAgICAgc2hvdWxkQmUoImNoZWNrYm94LmlzQ2hlY2tlZCIsICJmYWxzZSIpOworCisg
ICAgICAgICAgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hlY2syIik7Cisg
ICAgICAgICAgY2hlY2tib3guZm9jdXMoKTsKKyAgICAgICAgICBjaGVja2JveCA9IGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworICAgICAgICAgIHNob3VsZEJlKCJjaGVj
a2JveC5pc0NoZWNrZWQiLCAidHJ1ZSIpOworICAgIH0KKworICAgIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBXZWJD
b3JlL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lv
biA1MjMxMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMDktMTItMTggIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNTcxCisKKyAgICAgICAgRm9yIGFu
IG9iamVjdCB3aXRoIGFuIGFyaWEgcm9sZSBvZiAiY2hlY2tib3giIG9yICJyYWRpb2J1dHRvbiIs
CisgICAgICAgIFVzZSB0aGUgImFyaWEtY2hlY2tlZCIgYXR0cmlidXRlIHRvIGRldGVybWluZSBp
ZiBpdCdzIGNoZWNrZWQuCisKKyAgICAgICAgQWRkZWQgbmV3IHRlc3Q6IGFjY2Vzc2liaWxpdHkv
YXJpYS1jaGVja2JveC1jaGVja2VkLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0Ojppc0NoZWNrZWQpOgorCiAyMDA5LTEyLTE4ICBTaHUgQ2hhbmcgIDxD
aGFuZy5TaHVAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJ
bmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuY3BwCShyZXZpc2lvbiA1MjMxMikKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYzLDYgKzM2
MywxNCBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQ2hlY2tlCiAgICAgaWYg
KCFtX3JlbmRlcmVyLT5ub2RlKCkgfHwgIW1fcmVuZGVyZXItPm5vZGUoKS0+aXNFbGVtZW50Tm9k
ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAvLyBJZiB0aGlzIGlzIGFuIEFSSUEg
Y2hlY2tib3ggb3IgcmFkaW8sIGNoZWNrIHRoZSBhcmlhLWNoZWNrZWQgYXR0cmlidXRlIHJhdGhl
ciB0aGFuIGlucHV0RWxlbWVudC0+aXNDaGVja2VkKCkKKyAgICBBY2Nlc3NpYmlsaXR5Um9sZSBh
cmlhUm9sZSA9IGFyaWFSb2xlQXR0cmlidXRlKCk7CisgICAgaWYgKGFyaWFSb2xlID09IFJhZGlv
QnV0dG9uUm9sZSB8fCBhcmlhUm9sZSA9PSBDaGVja0JveFJvbGUpIHsKKyAgICAgICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKGdldEF0dHJpYnV0ZShhcmlhX2NoZWNrZWRBdHRyKS5zdHJpbmcoKSwg
InRydWUiKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCiAgICAgSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0lucHV0RWxlbWVu
dChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obV9yZW5kZXJlci0+bm9kZSgpKSk7CiAgICAgaWYgKCFp
bnB1dEVsZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFdlYktpdFRvb2xzL0No
YW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24g
NTIzMTIpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyNSBAQAorMjAwOS0xMi0xOCAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI1NzEKKworICAgICAgICBGb3Ig
YW4gb2JqZWN0IHdpdGggYW4gYXJpYSByb2xlIG9mICJjaGVja2JveCIgb3IgInJhZGlvYnV0dG9u
IiwKKyAgICAgICAgdXNlIHRoZSAiYXJpYS1jaGVja2VkIiBhdHRyaWJ1dGUgdG8gZGV0ZXJtaW5l
IGlmIGl0J3MgY2hlY2tlZC4KKyAgICAgICAgVGhlc2UgY2hhbmdlcyBhZGQgYW4gaXNDaGVja2Vk
KCkgbWV0aG9kIHRvIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQKKyAgICAgICAgc28gdGhhdCB3ZSBj
YW4gY2hlY2sgZm9yIHRoaXMgcHJvcGVydHkgZnJvbSBhIGxheW91dCB0ZXN0LgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgIChn
ZXRJc0NoZWNrZWRDYWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpn
ZXRKU0NsYXNzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRHdGsuY3BwOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZCk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwOgorICAg
ICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKToKKwogMjAwOS0xMi0xNyAg
U2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsg
Um93ZS4KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyMzEyKQorKysgV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ3NSw2ICs0NzUsMTEgQEAgc3RhdGljIEpTVmFsdWVSZWYgZ2V0SXNFeHBhbmRlZENhbGxi
YWNrKAogICAgIHJldHVybiBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgdG9BWEVsZW1lbnQo
dGhpc09iamVjdCktPmlzRXhwYW5kZWQoKSk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGdldElz
Q2hlY2tlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiopCit7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtl
Qm9vbGVhbihjb250ZXh0LCB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+aXNDaGVja2VkKCkpOwor
fQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBoaWVyYXJjaGljYWxMZXZlbENhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiwgSlNWYWx1
ZVJlZiopCiB7CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIHRvQVhFbGVt
ZW50KHRoaXNPYmplY3QpLT5oaWVyYXJjaGljYWxMZXZlbCgpKTsKQEAgLTU1MSw2ICs1NTYsNyBA
QCBKU0NsYXNzUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpTCiAgICAgICAgIHsgImlz
UmVxdWlyZWQiLCBnZXRJc1JlcXVpcmVkQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
aXNTZWxlY3RlZCIsIGdldElzU2VsZWN0ZWRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJpc0V4cGFuZGVkIiwgZ2V0SXNFeHBhbmRlZENhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAg
IHsgImlzQ2hlY2tlZCIsIGdldElzQ2hlY2tlZENhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgInZhbHVlRGVzY3JpcHRpb24iLCBnZXRWYWx1ZURlc2NyaXB0aW9uQ2FsbGJhY2ssIDAsIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAiaGllcmFyY2hpY2FsTGV2ZWwiLCBoaWVyYXJjaGljYWxMZXZlbENh
bGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImRvY3VtZW50RW5jb2RpbmciLCBnZXREb2N1
bWVudEVuY29kaW5nQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAkocmV2aXNpb24g
NTIzMTIpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMiw2ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc1JlcXVpcmVkKCkgY29uc3Q7CiAgICAgYm9vbCBpc1NlbGVjdGVkKCkgY29uc3Q7CiAgICAg
Ym9vbCBpc0V4cGFuZGVkKCkgY29uc3Q7CisgICAgYm9vbCBpc0NoZWNrZWQoKTsKICAgICBpbnQg
aGllcmFyY2hpY2FsTGV2ZWwoKSBjb25zdDsKICAgICBkb3VibGUgY2xpY2tQb2ludFgoKTsKICAg
ICBkb3VibGUgY2xpY2tQb2ludFkoKTsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNwcA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNwcAko
cmV2aXNpb24gNTIzMTIpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1OSw2ICszNTksMTEg
QEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0V4cGFuZGVkKAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0NoZWNrZWQoKQorewor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29sPihpbnRWYWx1ZSgpKTsKK30KKwogSlNTdHJpbmdS
ZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mQ29sdW1uSGVhZGVycygpCiB7
CiAgICAgLy8gRklYTUU6IGltcGxlbWVudApJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0NCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQko
cmV2aXNpb24gNTIzMTIpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTI5LDYgKzUyOSwxMiBA
QCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWQoCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZCgpCit7Cisg
ICAgLy8gT24gdGhlIE1hYywgaW50VmFsdWUoKT09MSBpZiBhIGEgY2hlY2thYmxlIGNvbnRyb2wg
aXMgY2hlY2tlZC4KKyAgICByZXR1cm4gKGludFZhbHVlKCkgPT0gMSk7Cit9CisKIGludCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpoaWVyYXJjaGljYWxMZXZlbCgpIGNvbnN0CiB7CiAgICAgaWQg
dmFsdWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2li
aWxpdHlEaXNjbG9zdXJlTGV2ZWxBdHRyaWJ1dGVdOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRX
aW4uY3BwCShyZXZpc2lvbiA1MjMxMikKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgyLDYg
KzI4MiwxNSBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWQoCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tl
ZCgpCit7CisgICAgVkFSSUFOVCB2U3RhdGU7CisgICAgaWYgKEZBSUxFRChtX2VsZW1lbnQtPmdl
dF9hY2NTdGF0ZShzZWxmKCksICZ2U3RhdGUpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgcmV0dXJuICh2U3RhdGUubFZhbCAmIFNUQVRFX1NZU1RFTV9DSEVDS0VEKTsKK30KKwogSlNT
dHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6b3JpZW50YXRpb24oKSBjb25zdAogewog
ICAgIHJldHVybiAwOwo=
</data>
<flag name="review"
          id="27136"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45846</attachid>
            <date>2010-01-04 17:13:26 -0800</date>
            <delta_ts>2010-01-04 17:40:42 -0800</delta_ts>
            <desc>Makes native checkedness take precedence when checking for aria-checked. Now tests all permutations of checked and aria-checked.</desc>
            <filename>checkbox14.patch</filename>
            <type>text/plain</type>
            <size>10857</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1Mjc3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDEtMDQgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNTcxCisKKyAgICAg
ICAgRm9yIGFuIG9iamVjdCB3aXRoIGFuIGFyaWEgcm9sZSBvZiAiY2hlY2tib3giIG9yICJyYWRp
b2J1dHRvbiIsCisgICAgICAgIFVzZSB0aGUgImFyaWEtY2hlY2tlZCIgYXR0cmlidXRlIHRvIGRl
dGVybWluZSBpZiBpdCdzIGNoZWNrZWQuCisKKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9h
cmlhLWNoZWNrYm94LWNoZWNrZWQuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmlzQ2hlY2tlZCk6CisKIDIwMTAtMDEtMDQgIE1hcmsgUm93ZSAgPG1y
b3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBKb24gSG9uZXljdXR0
LgpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gNTI3NjkpCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2MywxMSAr
MzYzLDIxIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNDaGVja2UKICAgICBp
ZiAoIW1fcmVuZGVyZXItPm5vZGUoKSB8fCAhbV9yZW5kZXJlci0+bm9kZSgpLT5pc0VsZW1lbnRO
b2RlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIC8vIEZpcnN0IHRlc3QgZm9yIG5h
dGl2ZSBjaGVja2VkbmVzcyBzZW1hbnRpY3MKICAgICBJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVu
dCA9IHRvSW5wdXRFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihtX3JlbmRlcmVyLT5ub2Rl
KCkpKTsKLSAgICBpZiAoIWlucHV0RWxlbWVudCkKKyAgICBpZiAoaW5wdXRFbGVtZW50KQorICAg
ICAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc0NoZWNrZWQoKTsKKworICAgIC8vIEVsc2UsIGlm
IHRoaXMgaXMgYW4gQVJJQSBjaGVja2JveCBvciByYWRpbywgcmVzcGVjdCB0aGUgYXJpYS1jaGVj
a2VkIGF0dHJpYnV0ZQorICAgIEFjY2Vzc2liaWxpdHlSb2xlIGFyaWFSb2xlID0gYXJpYVJvbGVB
dHRyaWJ1dGUoKTsKKyAgICBpZiAoYXJpYVJvbGUgPT0gUmFkaW9CdXR0b25Sb2xlIHx8IGFyaWFS
b2xlID09IENoZWNrQm94Um9sZSkgeworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZ2V0
QXR0cmlidXRlKGFyaWFfY2hlY2tlZEF0dHIpLnN0cmluZygpLCAidHJ1ZSIpKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKLSAgICByZXR1
cm4gaW5wdXRFbGVtZW50LT5pc0NoZWNrZWQoKTsKKyAgICAvLyBPdGhlcndpc2UgaXQncyBub3Qg
Y2hlY2tlZAorICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Ojppc0hvdmVyZWQoKSBjb25zdApJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNTI3NzApCisrKyBX
ZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAx
MC0wMS0wNCAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI1NzEKKworICAgICAgICBGb3IgYW4gb2JqZWN0IHdp
dGggYW4gYXJpYSByb2xlIG9mICJjaGVja2JveCIgb3IgInJhZGlvYnV0dG9uIiwKKyAgICAgICAg
dXNlIHRoZSAiYXJpYS1jaGVja2VkIiBhdHRyaWJ1dGUgdG8gZGV0ZXJtaW5lIGlmIGl0J3MgY2hl
Y2tlZC4KKyAgICAgICAgVGhlc2UgY2hhbmdlcyBhZGQgYW4gaXNDaGVja2VkKCkgbWV0aG9kIHRv
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gY2hlY2sgZm9y
IHRoaXMgcHJvcGVydHkgZnJvbSBhIGxheW91dCB0ZXN0LgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgIChnZXRJc0NoZWNrZWRD
YWxsYmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRKU0NsYXNzKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwOgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbToKKyAgICAgICAg
KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZCk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwOgorICAgICAgICAoQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKToKKwogMjAxMC0wMS0wNCAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJ
bmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyNzY5KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3NSw2
ICs0NzUsMTEgQEAgc3RhdGljIEpTVmFsdWVSZWYgZ2V0SXNFeHBhbmRlZENhbGxiYWNrKAogICAg
IHJldHVybiBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgdG9BWEVsZW1lbnQodGhpc09iamVj
dCktPmlzRXhwYW5kZWQoKSk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGdldElzQ2hlY2tlZENh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0
cmluZ1JlZiwgSlNWYWx1ZVJlZiopCit7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihj
b250ZXh0LCB0b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+aXNDaGVja2VkKCkpOworfQorCiBzdGF0
aWMgSlNWYWx1ZVJlZiBoaWVyYXJjaGljYWxMZXZlbENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiopCiB7
CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIHRvQVhFbGVtZW50KHRoaXNP
YmplY3QpLT5oaWVyYXJjaGljYWxMZXZlbCgpKTsKQEAgLTU1MSw2ICs1NTYsNyBAQCBKU0NsYXNz
UmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldEpTCiAgICAgICAgIHsgImlzUmVxdWlyZWQi
LCBnZXRJc1JlcXVpcmVkQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiaXNTZWxlY3Rl
ZCIsIGdldElzU2VsZWN0ZWRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJpc0V4cGFu
ZGVkIiwgZ2V0SXNFeHBhbmRlZENhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgImlzQ2hl
Y2tlZCIsIGdldElzQ2hlY2tlZENhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInZhbHVl
RGVzY3JpcHRpb24iLCBnZXRWYWx1ZURlc2NyaXB0aW9uQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAiaGllcmFyY2hpY2FsTGV2ZWwiLCBoaWVyYXJjaGljYWxMZXZlbENhbGxiYWNrLCAw
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgImRvY3VtZW50RW5jb2RpbmciLCBnZXREb2N1bWVudEVuY29k
aW5nQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgJKHJldmlzaW9uIDUyNzY5KQorKysg
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTIsNiArMTEyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNSZXF1aXJl
ZCgpIGNvbnN0OwogICAgIGJvb2wgaXNTZWxlY3RlZCgpIGNvbnN0OwogICAgIGJvb2wgaXNFeHBh
bmRlZCgpIGNvbnN0OworICAgIGJvb2wgaXNDaGVja2VkKCk7CiAgICAgaW50IGhpZXJhcmNoaWNh
bExldmVsKCkgY29uc3Q7CiAgICAgZG91YmxlIGNsaWNrUG9pbnRYKCk7CiAgICAgZG91YmxlIGNs
aWNrUG9pbnRZKCk7CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwCShyZXZpc2lvbiA1Mjc2
OSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU5LDYgKzM1OSwxMSBAQCBib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWQoCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZCgpCit7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGJvb2w+KGludFZhbHVlKCkpOworfQorCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5IZWFkZXJzKCkKIHsKICAgICAvLyBGSVhN
RTogaW1wbGVtZW50CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQkocmV2aXNpb24gNTI3Njkp
CisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTI5LDYgKzUyOSwxMiBAQCBib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWQoCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZCgpCit7CisgICAgLy8gT24gdGhlIE1h
YywgaW50VmFsdWUoKT09MSBpZiBhIGEgY2hlY2thYmxlIGNvbnRyb2wgaXMgY2hlY2tlZC4KKyAg
ICByZXR1cm4gKGludFZhbHVlKCkgPT0gMSk7Cit9CisKIGludCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpoaWVyYXJjaGljYWxMZXZlbCgpIGNvbnN0CiB7CiAgICAgaWQgdmFsdWUgPSBbbV9lbGVt
ZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlEaXNjbG9zdXJl
TGV2ZWxBdHRyaWJ1dGVdOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcAkocmV2aXNpb24g
NTI3NjkpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudFdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4Miw2ICsyODIsMTUgQEAgYm9vbCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0V4cGFuZGVkKAogICAgIHJldHVybiBmYWxzZTsKIH0K
IAorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0NoZWNrZWQoKQoreworICAgIFZBUklB
TlQgdlN0YXRlOworICAgIGlmIChGQUlMRUQobV9lbGVtZW50LT5nZXRfYWNjU3RhdGUoc2VsZigp
LCAmdlN0YXRlKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiAodlN0YXRl
LmxWYWwgJiBTVEFURV9TWVNURU1fQ0hFQ0tFRCk7Cit9CisKIEpTU3RyaW5nUmVmIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6Om9yaWVudGF0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gMDsKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDUyNzcwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDEtMDQgIERvbWluaWMgTWF6em9uaSAgPGRt
YXp6b25pQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNTcx
CisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IEFSSUEgY2hlY2tib3hl
cyBjb3JyZWN0bHkgaGFuZGxlIHRoZSBhcmlhLWNoZWNrZWQgYXR0cmlidXRlLgorCisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tlZC5odG1sOiBB
ZGRlZC4KKwogMjAxMC0wMS0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJbmRleDogTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVja2Vk
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
YXJpYS1jaGVja2JveC1jaGVja2VkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwyMSBAQAorIAorWAorWAorICAgCitUaGlzIHRlc3RzIHRoYXQgQVJJQSBjaGVja2JveGVzIGNv
cnJlY3RseSBoYW5kbGUgdGhlIGFyaWEtY2hlY2tlZCBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNoZWNrYm94LmlzQ2hlY2tlZCBpcyBmYWxzZQorUEFT
UyBjaGVja2JveC5pc0NoZWNrZWQgaXMgdHJ1ZQorUEFTUyBjaGVja2JveC5pc0NoZWNrZWQgaXMg
ZmFsc2UKK1BBU1MgY2hlY2tib3guaXNDaGVja2VkIGlzIHRydWUKK1BBU1MgY2hlY2tib3guaXND
aGVja2VkIGlzIGZhbHNlCitQQVNTIGNoZWNrYm94LmlzQ2hlY2tlZCBpcyB0cnVlCitQQVNTIGNo
ZWNrYm94LmlzQ2hlY2tlZCBpcyBmYWxzZQorUEFTUyBjaGVja2JveC5pc0NoZWNrZWQgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5k
ZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVja2VkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LWNo
ZWNrZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJp
YS1jaGVja2JveC1jaGVja2VkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQ+Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFs
c2U7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxpbnB1dCB0
eXBlPSJjaGVja2JveCIgaWQ9ImNoZWNrMSIgLz4KKzxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9
ImNoZWNrMiIgY2hlY2tlZCAvPgorCis8ZGl2IHRhYmluZGV4PSIwIiByb2xlPSJjaGVja2JveCIg
aWQ9ImNoZWNrMyI+WDwvZGl2PgorPGRpdiB0YWJpbmRleD0iMCIgcm9sZT0iY2hlY2tib3giIGlk
PSJjaGVjazQiIGFyaWEtY2hlY2tlZD0idHJ1ZSI+WDwvZGl2PgorCis8aW5wdXQgdHlwZT0iY2hl
Y2tib3giIGlkPSJjaGVjazUiIGFyaWEtY2hlY2tlZD0iZmFsc2UiIC8+Cis8aW5wdXQgdHlwZT0i
Y2hlY2tib3giIGlkPSJjaGVjazYiIGFyaWEtY2hlY2tlZD0iZmFsc2UiIGNoZWNrZWQgLz4KKzxp
bnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNoZWNrNyIgYXJpYS1jaGVja2VkPSJ0cnVlIiAvPgor
PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2hlY2s4IiBhcmlhLWNoZWNrZWQ9InRydWUiIGNo
ZWNrZWQgLz4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgQVJJ
QSBjaGVja2JveGVzIGNvcnJlY3RseSBoYW5kbGUgdGhlIGFyaWEtY2hlY2tlZCBhdHRyaWJ1dGUu
Iik7CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisKKyAgICAg
ICAgICB2YXIgYW5zd2VycyA9IFtbICJjaGVjazEiLCAiZmFsc2UiIF0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgWyAiY2hlY2syIiwgInRydWUiIF0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgWyAiY2hlY2szIiwgImZhbHNlIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsgImNo
ZWNrNCIsICJ0cnVlIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsgImNoZWNrNSIsICJm
YWxzZSIgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBbICJjaGVjazYiLCAidHJ1ZSIgXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBbICJjaGVjazciLCAiZmFsc2UiIF0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgWyAiY2hlY2s4IiwgInRydWUiIF1dOworCisgICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBhbnN3ZXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAg
dmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYW5zd2Vyc1tpXVswXSk7Cisg
ICAgICAgICAgICAgICAgY2hlY2tib3guZm9jdXMoKTsKKyAgICAgICAgICAgICAgICBjaGVja2Jv
eCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJjaGVja2JveC5pc0NoZWNrZWQiLCBhbnN3ZXJzW2ldWzFdKTsKKyAgICAg
ICAgICB9CisgICAgfQorCisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorCis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="27988"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45850</attachid>
            <date>2010-01-04 17:40:42 -0800</date>
            <delta_ts>2010-01-04 18:09:46 -0800</delta_ts>
            <desc>Address review comments</desc>
            <filename>checkbox15.patch</filename>
            <type>text/plain</type>
            <size>10825</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1Mjc3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDEtMDQgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNTcxCisKKyAgICAg
ICAgRm9yIGFuIG9iamVjdCB3aXRoIGFuIGFyaWEgcm9sZSBvZiAiY2hlY2tib3giIG9yICJyYWRp
b2J1dHRvbiIsCisgICAgICAgIFVzZSB0aGUgImFyaWEtY2hlY2tlZCIgYXR0cmlidXRlIHRvIGRl
dGVybWluZSBpZiBpdCdzIGNoZWNrZWQuCisKKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9h
cmlhLWNoZWNrYm94LWNoZWNrZWQuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmlzQ2hlY2tlZCk6CisKIDIwMTAtMDEtMDQgIE1hcmsgUm93ZSAgPG1y
b3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBKb24gSG9uZXljdXR0
LgpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gNTI3NjkpCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2MywxMSAr
MzYzLDIxIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNDaGVja2UKICAgICBp
ZiAoIW1fcmVuZGVyZXItPm5vZGUoKSB8fCAhbV9yZW5kZXJlci0+bm9kZSgpLT5pc0VsZW1lbnRO
b2RlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIC8vIEZpcnN0IHRlc3QgZm9yIG5h
dGl2ZSBjaGVja2VkbmVzcyBzZW1hbnRpY3MKICAgICBJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVu
dCA9IHRvSW5wdXRFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihtX3JlbmRlcmVyLT5ub2Rl
KCkpKTsKLSAgICBpZiAoIWlucHV0RWxlbWVudCkKKyAgICBpZiAoaW5wdXRFbGVtZW50KQorICAg
ICAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc0NoZWNrZWQoKTsKKworICAgIC8vIEVsc2UsIGlm
IHRoaXMgaXMgYW4gQVJJQSBjaGVja2JveCBvciByYWRpbywgcmVzcGVjdCB0aGUgYXJpYS1jaGVj
a2VkIGF0dHJpYnV0ZQorICAgIEFjY2Vzc2liaWxpdHlSb2xlIGFyaWFSb2xlID0gYXJpYVJvbGVB
dHRyaWJ1dGUoKTsKKyAgICBpZiAoYXJpYVJvbGUgPT0gUmFkaW9CdXR0b25Sb2xlIHx8IGFyaWFS
b2xlID09IENoZWNrQm94Um9sZSkgeworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZ2V0
QXR0cmlidXRlKGFyaWFfY2hlY2tlZEF0dHIpLCAidHJ1ZSIpKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKLSAgICByZXR1cm4gaW5wdXRF
bGVtZW50LT5pc0NoZWNrZWQoKTsKKyAgICAvLyBPdGhlcndpc2UgaXQncyBub3QgY2hlY2tlZAor
ICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpp
c0hvdmVyZWQoKSBjb25zdApJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNTI3NzApCisrKyBXZWJLaXRUb29s
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wMS0wNCAg
RG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzI1NzEKKworICAgICAgICBGb3IgYW4gb2JqZWN0IHdpdGggYW4gYXJp
YSByb2xlIG9mICJjaGVja2JveCIgb3IgInJhZGlvYnV0dG9uIiwKKyAgICAgICAgdXNlIHRoZSAi
YXJpYS1jaGVja2VkIiBhdHRyaWJ1dGUgdG8gZGV0ZXJtaW5lIGlmIGl0J3MgY2hlY2tlZC4KKyAg
ICAgICAgVGhlc2UgY2hhbmdlcyBhZGQgYW4gaXNDaGVja2VkKCkgbWV0aG9kIHRvIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gY2hlY2sgZm9yIHRoaXMgcHJv
cGVydHkgZnJvbSBhIGxheW91dCB0ZXN0LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgIChnZXRJc0NoZWNrZWRDYWxsYmFjayk6
CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRKU0NsYXNzKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwOgorICAgICAgICAo
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbToKKyAgICAgICAgKEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2lu
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNDaGVja2VkKToKKwogMjAxMC0wMS0wNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDUyNzY5KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3NSw2ICs0NzUsMTEg
QEAgc3RhdGljIEpTVmFsdWVSZWYgZ2V0SXNFeHBhbmRlZENhbGxiYWNrKAogICAgIHJldHVybiBK
U1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPmlzRXhw
YW5kZWQoKSk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGdldElzQ2hlY2tlZENhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiwg
SlNWYWx1ZVJlZiopCit7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCB0
b0FYRWxlbWVudCh0aGlzT2JqZWN0KS0+aXNDaGVja2VkKCkpOworfQorCiBzdGF0aWMgSlNWYWx1
ZVJlZiBoaWVyYXJjaGljYWxMZXZlbENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiopCiB7CiAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5o
aWVyYXJjaGljYWxMZXZlbCgpKTsKQEAgLTU1MSw2ICs1NTYsNyBAQCBKU0NsYXNzUmVmIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmdldEpTCiAgICAgICAgIHsgImlzUmVxdWlyZWQiLCBnZXRJc1Jl
cXVpcmVkQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiaXNTZWxlY3RlZCIsIGdldElz
U2VsZWN0ZWRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJpc0V4cGFuZGVkIiwgZ2V0
SXNFeHBhbmRlZENhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgImlzQ2hlY2tlZCIsIGdl
dElzQ2hlY2tlZENhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInZhbHVlRGVzY3JpcHRp
b24iLCBnZXRWYWx1ZURlc2NyaXB0aW9uQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
aGllcmFyY2hpY2FsTGV2ZWwiLCBoaWVyYXJjaGljYWxMZXZlbENhbGxiYWNrLCAwLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgImRvY3VtZW50RW5jb2RpbmciLCBnZXREb2N1bWVudEVuY29kaW5nQ2FsbGJh
Y2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgJKHJldmlzaW9uIDUyNzY5KQorKysgV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTIsNiArMTEyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNSZXF1aXJlZCgpIGNvbnN0
OwogICAgIGJvb2wgaXNTZWxlY3RlZCgpIGNvbnN0OwogICAgIGJvb2wgaXNFeHBhbmRlZCgpIGNv
bnN0OworICAgIGJvb2wgaXNDaGVja2VkKCk7CiAgICAgaW50IGhpZXJhcmNoaWNhbExldmVsKCkg
Y29uc3Q7CiAgICAgZG91YmxlIGNsaWNrUG9pbnRYKCk7CiAgICAgZG91YmxlIGNsaWNrUG9pbnRZ
KCk7CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwCShyZXZpc2lvbiA1Mjc2OSkKKysrIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3RrLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzU5LDYgKzM1OSwxMSBAQCBib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzRXhwYW5kZWQoCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZCgpCit7CisgICAgcmV0dXJuIGludFZhbHVlKCk7
Cit9CisKIEpTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNv
bHVtbkhlYWRlcnMoKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKSW5kZXg6IFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tCShyZXZpc2lvbiA1Mjc2OSkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01
MjksNiArNTI5LDEyIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXND
aGVja2VkKCkKK3sKKyAgICAvLyBPbiB0aGUgTWFjLCBpbnRWYWx1ZSgpPT0xIGlmIGEgYSBjaGVj
a2FibGUgY29udHJvbCBpcyBjaGVja2VkLgorICAgIHJldHVybiBpbnRWYWx1ZSgpID09IDE7Cit9
CisKIGludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoaWVyYXJjaGljYWxMZXZlbCgpIGNvbnN0
CiB7CiAgICAgaWQgdmFsdWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1
ZTpOU0FjY2Vzc2liaWxpdHlEaXNjbG9zdXJlTGV2ZWxBdHRyaWJ1dGVdOwpJbmRleDogV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50V2luLmNwcAkocmV2aXNpb24gNTI3NjkpCisrKyBXZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdpbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4Miw2ICsyODIsMTUgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0V4cGFu
ZGVkKAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0NoZWNrZWQoKQoreworICAgIFZBUklBTlQgdlN0YXRlOworICAgIGlmIChGQUlMRUQobV9l
bGVtZW50LT5nZXRfYWNjU3RhdGUoc2VsZigpLCAmdlN0YXRlKSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJldHVybiB2U3RhdGUubFZhbCAmIFNUQVRFX1NZU1RFTV9DSEVDS0VEOwor
fQorCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpvcmllbnRhdGlvbigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIDA7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1Mjc3MCkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEwLTAx
LTA0ICBEb21pbmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMjU3MQorCisgICAgICAgIEFkZGVkIGEgdGVzdCB0byBtYWtl
IHN1cmUgdGhhdCBBUklBIGNoZWNrYm94ZXMgY29ycmVjdGx5IGhhbmRsZSB0aGUgYXJpYS1jaGVj
a2VkIGF0dHJpYnV0ZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1j
aGVja2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlh
LWNoZWNrYm94LWNoZWNrZWQuaHRtbDogQWRkZWQuCisKIDIwMTAtMDEtMDQgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJl
cm5zdGVpbi4KSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1j
aGVja2VkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2FyaWEtY2hlY2tib3gtY2hlY2tlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tlZC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjEgQEAKKyAKK1gKK1gKKyAgIAorVGhpcyB0ZXN0
cyB0aGF0IEFSSUEgY2hlY2tib3hlcyBjb3JyZWN0bHkgaGFuZGxlIHRoZSBhcmlhLWNoZWNrZWQg
YXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjaGVja2Jv
eC5pc0NoZWNrZWQgaXMgZmFsc2UKK1BBU1MgY2hlY2tib3guaXNDaGVja2VkIGlzIHRydWUKK1BB
U1MgY2hlY2tib3guaXNDaGVja2VkIGlzIGZhbHNlCitQQVNTIGNoZWNrYm94LmlzQ2hlY2tlZCBp
cyB0cnVlCitQQVNTIGNoZWNrYm94LmlzQ2hlY2tlZCBpcyBmYWxzZQorUEFTUyBjaGVja2JveC5p
c0NoZWNrZWQgaXMgdHJ1ZQorUEFTUyBjaGVja2JveC5pc0NoZWNrZWQgaXMgZmFsc2UKK1BBU1Mg
Y2hlY2tib3guaXNDaGVja2VkIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Fy
aWEtY2hlY2tib3gtY2hlY2tlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVja2VkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tlZC5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0PgordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgaWQ9ImJvZHkiPgorCis8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjaGVjazEiIC8+Cis8
aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjaGVjazIiIGNoZWNrZWQgLz4KKworPGRpdiB0YWJp
bmRleD0iMCIgcm9sZT0iY2hlY2tib3giIGlkPSJjaGVjazMiPlg8L2Rpdj4KKzxkaXYgdGFiaW5k
ZXg9IjAiIHJvbGU9ImNoZWNrYm94IiBpZD0iY2hlY2s0IiBhcmlhLWNoZWNrZWQ9InRydWUiPlg8
L2Rpdj4KKworPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2hlY2s1IiBhcmlhLWNoZWNrZWQ9
ImZhbHNlIiAvPgorPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2hlY2s2IiBhcmlhLWNoZWNr
ZWQ9ImZhbHNlIiBjaGVja2VkIC8+Cis8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjaGVjazci
IGFyaWEtY2hlY2tlZD0idHJ1ZSIgLz4KKzxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNoZWNr
OCIgYXJpYS1jaGVja2VkPSJ0cnVlIiBjaGVja2VkIC8+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICBkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0cyB0aGF0IEFSSUEgY2hlY2tib3hlcyBjb3JyZWN0bHkgaGFuZGxlIHRo
ZSBhcmlhLWNoZWNrZWQgYXR0cmlidXRlLiIpOworCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmls
aXR5Q29udHJvbGxlcikgeworCisgICAgICAgICAgdmFyIGFuc3dlcnMgPSBbWyAiY2hlY2sxIiwg
ImZhbHNlIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsgImNoZWNrMiIsICJ0cnVlIiBd
LAorICAgICAgICAgICAgICAgICAgICAgICAgIFsgImNoZWNrMyIsICJmYWxzZSIgXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBbICJjaGVjazQiLCAidHJ1ZSIgXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBbICJjaGVjazUiLCAiZmFsc2UiIF0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgWyAiY2hlY2s2IiwgInRydWUiIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgWyAiY2hl
Y2s3IiwgImZhbHNlIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsgImNoZWNrOCIsICJ0
cnVlIiBdXTsKKworICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYW5zd2Vycy5sZW5ndGg7
IGkrKykgeworICAgICAgICAgICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGFuc3dlcnNbaV1bMF0pOworICAgICAgICAgICAgICAgIGNoZWNrYm94LmZvY3VzKCk7
CisgICAgICAgICAgICAgICAgY2hlY2tib3ggPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1
c2VkRWxlbWVudDsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgiY2hlY2tib3guaXNDaGVja2Vk
IiwgYW5zd2Vyc1tpXVsxXSk7CisgICAgICAgICAgfQorICAgIH0KKworICAgIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="27992"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45853</attachid>
            <date>2010-01-04 18:09:46 -0800</date>
            <delta_ts>2010-01-05 11:00:40 -0800</delta_ts>
            <desc>Easier than I thought.  Made both intValue and isChecked const.</desc>
            <filename>checkbox16.patch</filename>
            <type>text/plain</type>
            <size>11925</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1Mjc4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDEtMDQgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNTcxCisKKyAgICAg
ICAgRm9yIGFuIG9iamVjdCB3aXRoIGFuIGFyaWEgcm9sZSBvZiAiY2hlY2tib3giIG9yICJyYWRp
b2J1dHRvbiIsCisgICAgICAgIFVzZSB0aGUgImFyaWEtY2hlY2tlZCIgYXR0cmlidXRlIHRvIGRl
dGVybWluZSBpZiBpdCdzIGNoZWNrZWQuCisKKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9h
cmlhLWNoZWNrYm94LWNoZWNrZWQuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmlzQ2hlY2tlZCk6CisKIDIwMTAtMDEtMDQgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFr
LgpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gNTI3ODApCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2MywxMSAr
MzYzLDIxIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNDaGVja2UKICAgICBp
ZiAoIW1fcmVuZGVyZXItPm5vZGUoKSB8fCAhbV9yZW5kZXJlci0+bm9kZSgpLT5pc0VsZW1lbnRO
b2RlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIC8vIEZpcnN0IHRlc3QgZm9yIG5h
dGl2ZSBjaGVja2VkbmVzcyBzZW1hbnRpY3MKICAgICBJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVu
dCA9IHRvSW5wdXRFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihtX3JlbmRlcmVyLT5ub2Rl
KCkpKTsKLSAgICBpZiAoIWlucHV0RWxlbWVudCkKKyAgICBpZiAoaW5wdXRFbGVtZW50KQorICAg
ICAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc0NoZWNrZWQoKTsKKworICAgIC8vIEVsc2UsIGlm
IHRoaXMgaXMgYW4gQVJJQSBjaGVja2JveCBvciByYWRpbywgcmVzcGVjdCB0aGUgYXJpYS1jaGVj
a2VkIGF0dHJpYnV0ZQorICAgIEFjY2Vzc2liaWxpdHlSb2xlIGFyaWFSb2xlID0gYXJpYVJvbGVB
dHRyaWJ1dGUoKTsKKyAgICBpZiAoYXJpYVJvbGUgPT0gUmFkaW9CdXR0b25Sb2xlIHx8IGFyaWFS
b2xlID09IENoZWNrQm94Um9sZSkgeworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZ2V0
QXR0cmlidXRlKGFyaWFfY2hlY2tlZEF0dHIpLCAidHJ1ZSIpKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKLSAgICByZXR1cm4gaW5wdXRF
bGVtZW50LT5pc0NoZWNrZWQoKTsKKyAgICAvLyBPdGhlcndpc2UgaXQncyBub3QgY2hlY2tlZAor
ICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpp
c0hvdmVyZWQoKSBjb25zdApJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNTI3ODApCisrKyBXZWJLaXRUb29s
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wMS0wNCAg
RG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzI1NzEKKworICAgICAgICBGb3IgYW4gb2JqZWN0IHdpdGggYW4gYXJp
YSByb2xlIG9mICJjaGVja2JveCIgb3IgInJhZGlvYnV0dG9uIiwKKyAgICAgICAgdXNlIHRoZSAi
YXJpYS1jaGVja2VkIiBhdHRyaWJ1dGUgdG8gZGV0ZXJtaW5lIGlmIGl0J3MgY2hlY2tlZC4KKyAg
ICAgICAgVGhlc2UgY2hhbmdlcyBhZGQgYW4gaXNDaGVja2VkKCkgbWV0aG9kIHRvIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gY2hlY2sgZm9yIHRoaXMgcHJv
cGVydHkgZnJvbSBhIGxheW91dCB0ZXN0LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgIChnZXRJc0NoZWNrZWRDYWxsYmFjayk6
CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRKU0NsYXNzKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwOgorICAgICAgICAo
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbToKKyAgICAgICAgKEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2lu
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNDaGVja2VkKToKKwogMjAxMC0wMS0wNCAgSm9uIEhvbmV5Y3V0dCAgPGpob25l
eWN1dHRAYXBwbGUuY29tPgogCiAgICAgICAgIE1TQUE6IDxzZWxlY3Q+IGVsZW1lbnRzIHNob3Vs
ZCBicm9hZGNhc3QgdmFsdWUgY2hhbmdlIGV2ZW50cwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHJldmlzaW9u
IDUyNzgwKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3NSw2ICs0NzUsMTEgQEAgc3RhdGljIEpTVmFs
dWVSZWYgZ2V0SXNFeHBhbmRlZENhbGxiYWNrKAogICAgIHJldHVybiBKU1ZhbHVlTWFrZUJvb2xl
YW4oY29udGV4dCwgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPmlzRXhwYW5kZWQoKSk7CiB9CiAK
K3N0YXRpYyBKU1ZhbHVlUmVmIGdldElzQ2hlY2tlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiopCit7
CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCB0b0FYRWxlbWVudCh0aGlz
T2JqZWN0KS0+aXNDaGVja2VkKCkpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBoaWVyYXJjaGlj
YWxMZXZlbENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiopCiB7CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
TnVtYmVyKGNvbnRleHQsIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT5oaWVyYXJjaGljYWxMZXZl
bCgpKTsKQEAgLTU1MSw2ICs1NTYsNyBAQCBKU0NsYXNzUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmdldEpTCiAgICAgICAgIHsgImlzUmVxdWlyZWQiLCBnZXRJc1JlcXVpcmVkQ2FsbGJhY2ss
IDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAiaXNTZWxlY3RlZCIsIGdldElzU2VsZWN0ZWRDYWxsYmFj
aywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJpc0V4cGFuZGVkIiwgZ2V0SXNFeHBhbmRlZENhbGxi
YWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgImlzQ2hlY2tlZCIsIGdldElzQ2hlY2tlZENhbGxi
YWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInZhbHVlRGVzY3JpcHRpb24iLCBnZXRWYWx1ZURl
c2NyaXB0aW9uQ2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiaGllcmFyY2hpY2FsTGV2
ZWwiLCBoaWVyYXJjaGljYWxMZXZlbENhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImRv
Y3VtZW50RW5jb2RpbmciLCBnZXREb2N1bWVudEVuY29kaW5nQ2FsbGJhY2ssIDAsIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
SW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmgJKHJldmlzaW9uIDUyNzgwKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNyArMTAy
LDcgQEAgcHVibGljOgogICAgIGRvdWJsZSB5KCk7CiAgICAgZG91YmxlIHdpZHRoKCk7CiAgICAg
ZG91YmxlIGhlaWdodCgpOwotICAgIGRvdWJsZSBpbnRWYWx1ZSgpOworICAgIGRvdWJsZSBpbnRW
YWx1ZSgpIGNvbnN0OwogICAgIGRvdWJsZSBtaW5WYWx1ZSgpOwogICAgIGRvdWJsZSBtYXhWYWx1
ZSgpOwogICAgIEpTU3RyaW5nUmVmIHZhbHVlRGVzY3JpcHRpb24oKTsKQEAgLTExMiw2ICsxMTIs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1JlcXVpcmVkKCkgY29uc3Q7CiAgICAgYm9vbCBpc1Nl
bGVjdGVkKCkgY29uc3Q7CiAgICAgYm9vbCBpc0V4cGFuZGVkKCkgY29uc3Q7CisgICAgYm9vbCBp
c0NoZWNrZWQoKSBjb25zdDsKICAgICBpbnQgaGllcmFyY2hpY2FsTGV2ZWwoKSBjb25zdDsKICAg
ICBkb3VibGUgY2xpY2tQb2ludFgoKTsKICAgICBkb3VibGUgY2xpY2tQb2ludFkoKTsKSW5kZXg6
IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50R3Rr
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudEd0ay5jcHAJKHJldmlzaW9uIDUyNzgwKQorKysgV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRHdGsuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNDksNyArMjQ5LDcgQEAgSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6b3JpZQogICAgIHJldHVybiAwOwogfQogCi1kb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aW50VmFsdWUoKQorZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmludFZhbHVl
KCkgY29uc3QKIHsKICAgICBHVmFsdWUgdmFsdWUgPSB7IDAsIHsgeyAwIH0gfSB9OwogCkBAIC0z
NTksNiArMzU5LDExIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXND
aGVja2VkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaW50VmFsdWUoKTsKK30KKwogSlNTdHJpbmdS
ZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mQ29sdW1uSGVhZGVycygpCiB7
CiAgICAgLy8gRklYTUU6IGltcGxlbWVudApJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0JKHJl
dmlzaW9uIDUyNzgwKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1MSw3ICs0NTEsNyBAQCBk
b3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQb2luCiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGRvdWJsZT4oW3Bvc2l0aW9uVmFsdWUgcG9pbnRWYWx1ZV0ueSk7CiB9CiAKLWRvdWJs
ZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbnRWYWx1ZSgpCitkb3VibGUgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aW50VmFsdWUoKSBjb25zdAogewogICAgIGlkIHZhbHVlID0gW21fZWxlbWVu
dCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5VmFsdWVBdHRyaWJ1
dGVdOwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkKQEAg
LTUyOSw2ICs1MjksMTIgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0V4cGFuZGVk
KAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c0NoZWNrZWQoKSBjb25zdAoreworICAgIC8vIE9uIHRoZSBNYWMsIGludFZhbHVlKCk9PTEgaWYg
YSBhIGNoZWNrYWJsZSBjb250cm9sIGlzIGNoZWNrZWQuCisgICAgcmV0dXJuIGludFZhbHVlKCkg
PT0gMTsKK30KKwogaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhpZXJhcmNoaWNhbExldmVs
KCkgY29uc3QKIHsKICAgICBpZCB2YWx1ZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJp
YnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eURpc2Nsb3N1cmVMZXZlbEF0dHJpYnV0ZV07CkluZGV4
OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdp
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRXaW4uY3BwCShyZXZpc2lvbiA1Mjc4MCkKKysrIFdlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V2luLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgyLDEyICsyODIsMjEgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0V4cGFuZGVkKAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc0NoZWNrZWQoKSBjb25zdAoreworICAgIFZBUklBTlQgdlN0YXRlOworICAg
IGlmIChGQUlMRUQobV9lbGVtZW50LT5nZXRfYWNjU3RhdGUoc2VsZigpLCAmdlN0YXRlKSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB2U3RhdGUubFZhbCAmIFNUQVRFX1NZ
U1RFTV9DSEVDS0VEOworfQorCiBKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpv
cmllbnRhdGlvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CiB9CiAKLWRvdWJsZSBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjppbnRWYWx1ZSgpCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aW50VmFsdWUoKSBjb25zdAogewogICAgIEJTVFIgdmFsdWVCU1RSOwogICAgIGlmIChGQUlM
RUQobV9lbGVtZW50LT5nZXRfYWNjVmFsdWUoc2VsZigpLCAmdmFsdWVCU1RSKSkgfHwgIXZhbHVl
QlNUUikKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDUyNzgwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDEtMDQgIERvbWluaWMgTWF6
em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTMyNTcxCisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IEFSSUEg
Y2hlY2tib3hlcyBjb3JyZWN0bHkgaGFuZGxlIHRoZSBhcmlhLWNoZWNrZWQgYXR0cmlidXRlLgor
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tl
ZC5odG1sOiBBZGRlZC4KKwogMjAxMC0wMS0wNCAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRA
YXBwbGUuY29tPgogCiAgICAgICAgIE1TQUE6IDxzZWxlY3Q+IGVsZW1lbnRzIHNob3VsZCBicm9h
ZGNhc3QgdmFsdWUgY2hhbmdlIGV2ZW50cwpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVja2VkLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1j
aGVja2VkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMSBAQAorIAorWAor
WAorICAgCitUaGlzIHRlc3RzIHRoYXQgQVJJQSBjaGVja2JveGVzIGNvcnJlY3RseSBoYW5kbGUg
dGhlIGFyaWEtY2hlY2tlZCBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGNoZWNrYm94LmlzQ2hlY2tlZCBpcyBmYWxzZQorUEFTUyBjaGVja2JveC5pc0No
ZWNrZWQgaXMgdHJ1ZQorUEFTUyBjaGVja2JveC5pc0NoZWNrZWQgaXMgZmFsc2UKK1BBU1MgY2hl
Y2tib3guaXNDaGVja2VkIGlzIHRydWUKK1BBU1MgY2hlY2tib3guaXNDaGVja2VkIGlzIGZhbHNl
CitQQVNTIGNoZWNrYm94LmlzQ2hlY2tlZCBpcyB0cnVlCitQQVNTIGNoZWNrYm94LmlzQ2hlY2tl
ZCBpcyBmYWxzZQorUEFTUyBjaGVja2JveC5pc0NoZWNrZWQgaXMgdHJ1ZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVja2VkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVj
a2VkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQ+Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7Cis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxpbnB1dCB0eXBlPSJjaGVja2JveCIg
aWQ9ImNoZWNrMSIgLz4KKzxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNoZWNrMiIgY2hlY2tl
ZCAvPgorCis8ZGl2IHRhYmluZGV4PSIwIiByb2xlPSJjaGVja2JveCIgaWQ9ImNoZWNrMyI+WDwv
ZGl2PgorPGRpdiB0YWJpbmRleD0iMCIgcm9sZT0iY2hlY2tib3giIGlkPSJjaGVjazQiIGFyaWEt
Y2hlY2tlZD0idHJ1ZSI+WDwvZGl2PgorCis8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjaGVj
azUiIGFyaWEtY2hlY2tlZD0iZmFsc2UiIC8+Cis8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJj
aGVjazYiIGFyaWEtY2hlY2tlZD0iZmFsc2UiIGNoZWNrZWQgLz4KKzxpbnB1dCB0eXBlPSJjaGVj
a2JveCIgaWQ9ImNoZWNrNyIgYXJpYS1jaGVja2VkPSJ0cnVlIiAvPgorPGlucHV0IHR5cGU9ImNo
ZWNrYm94IiBpZD0iY2hlY2s4IiBhcmlhLWNoZWNrZWQ9InRydWUiIGNoZWNrZWQgLz4KKworPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlw
dD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgQVJJQSBjaGVja2JveGVzIGNv
cnJlY3RseSBoYW5kbGUgdGhlIGFyaWEtY2hlY2tlZCBhdHRyaWJ1dGUuIik7CisKKyAgICBpZiAo
d2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisKKyAgICAgICAgICB2YXIgYW5zd2Vy
cyA9IFtbICJjaGVjazEiLCAiZmFsc2UiIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgWyAi
Y2hlY2syIiwgInRydWUiIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgWyAiY2hlY2szIiwg
ImZhbHNlIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsgImNoZWNrNCIsICJ0cnVlIiBd
LAorICAgICAgICAgICAgICAgICAgICAgICAgIFsgImNoZWNrNSIsICJmYWxzZSIgXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBbICJjaGVjazYiLCAidHJ1ZSIgXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBbICJjaGVjazciLCAiZmFsc2UiIF0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgWyAiY2hlY2s4IiwgInRydWUiIF1dOworCisgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBhbnN3ZXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgdmFyIGNoZWNrYm94ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYW5zd2Vyc1tpXVswXSk7CisgICAgICAgICAgICAgICAg
Y2hlY2tib3guZm9jdXMoKTsKKyAgICAgICAgICAgICAgICBjaGVja2JveCA9IGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJj
aGVja2JveC5pc0NoZWNrZWQiLCBhbnN3ZXJzW2ldWzFdKTsKKyAgICAgICAgICB9CisgICAgfQor
CisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNy
Yz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>